From 18640b0033d68ccc78dc59180f1ea2b9f6f05830 Mon Sep 17 00:00:00 2001 From: fteicht Date: Mon, 20 Nov 2023 10:32:52 +0000 Subject: [PATCH] publish documentation --- 404.html | 6 +++--- assets/js/{101.c4e712b1.js => 101.af65cdb6.js} | 2 +- assets/js/{102.a6ca920b.js => 102.9c488646.js} | 2 +- assets/js/{104.41202947.js => 104.271dd939.js} | 2 +- assets/js/{106.a20eb9dd.js => 106.49110a23.js} | 2 +- assets/js/{17.ed4d08c0.js => 17.ff4cbf41.js} | 2 +- assets/js/{18.a61e946a.js => 18.729b3632.js} | 2 +- assets/js/{19.993fa181.js => 19.b6053bc9.js} | 2 +- assets/js/{20.3d4abf66.js => 20.b6c7b27f.js} | 2 +- assets/js/{21.1cdf26ca.js => 21.c96761b6.js} | 2 +- assets/js/{27.96185631.js => 27.a8517eb1.js} | 2 +- assets/js/{29.be2b287e.js => 29.0324e672.js} | 2 +- assets/js/{30.279ea1c8.js => 30.540409b0.js} | 2 +- assets/js/{31.ed24278d.js => 31.3d3c89ff.js} | 2 +- assets/js/{37.13325dbd.js => 37.87bc5b81.js} | 2 +- assets/js/{38.d76321e7.js => 38.bd8643b8.js} | 2 +- assets/js/{39.c5487bfd.js => 39.f812636a.js} | 2 +- assets/js/{43.c10393ba.js => 43.0c4df3d9.js} | 2 +- assets/js/{44.ca219e23.js => 44.c049209a.js} | 2 +- assets/js/{45.c9e41fbd.js => 45.4b0a420e.js} | 2 +- assets/js/{46.c5372345.js => 46.ec3f0af0.js} | 2 +- assets/js/{47.41ce156f.js => 47.f624f9b6.js} | 2 +- assets/js/{48.5ef1a85f.js => 48.c8d14038.js} | 2 +- assets/js/{49.18fad982.js => 49.78c3cf02.js} | 2 +- assets/js/{50.e038058b.js => 50.9af5c247.js} | 2 +- assets/js/{52.b1796220.js => 52.bb4a463b.js} | 2 +- assets/js/{53.5e1f2b8e.js => 53.0cc6d034.js} | 2 +- assets/js/{54.d821fbe2.js => 54.f20d19ed.js} | 2 +- assets/js/{55.2a49ec6d.js => 55.5cdb1a34.js} | 2 +- assets/js/{56.2c288681.js => 56.8d05e1a4.js} | 2 +- assets/js/{57.9bdcb20d.js => 57.732c77e0.js} | 2 +- assets/js/{58.da8381b7.js => 58.46dbeb86.js} | 2 +- assets/js/{59.aade58ac.js => 59.0c516308.js} | 2 +- assets/js/{60.c3098f33.js => 60.e7e90057.js} | 2 +- assets/js/{61.2d939b63.js => 61.1d91d3b3.js} | 2 +- assets/js/{62.51bd9adb.js => 62.fa270052.js} | 2 +- assets/js/{63.53e6e389.js => 63.9d861964.js} | 2 +- assets/js/{67.9d2f8468.js => 67.919956b0.js} | 2 +- assets/js/{68.46e66ebb.js => 68.1b53bd75.js} | 2 +- assets/js/{69.d57a93c9.js => 69.df4c07e4.js} | 2 +- assets/js/{70.ddc9f6da.js => 70.16f7a11c.js} | 2 +- assets/js/{71.a4ad120d.js => 71.3dd1e6ad.js} | 2 +- assets/js/{73.0138011d.js => 73.db870ad5.js} | 2 +- assets/js/{74.6df934d4.js => 74.408baccf.js} | 2 +- assets/js/{75.6e950b0e.js => 75.00e3ca16.js} | 2 +- assets/js/{76.e6122d58.js => 76.bab0b272.js} | 2 +- assets/js/{77.d6bcdb39.js => 77.7190ff4d.js} | 2 +- assets/js/{78.0e3bd757.js => 78.035fe9d5.js} | 2 +- assets/js/{85.45b8209e.js => 85.524465f2.js} | 2 +- assets/js/{87.b5140c2e.js => 87.a8970c55.js} | 2 +- assets/js/{88.35569a43.js => 88.4af6fe55.js} | 2 +- assets/js/{93.6ce172af.js => 93.ff029ffb.js} | 2 +- assets/js/{94.72a2355d.js => 94.8b155c6d.js} | 2 +- assets/js/{95.9f787adb.js => 95.7ad26ea5.js} | 2 +- assets/js/{98.37e08c33.js => 98.b3c3d224.js} | 2 +- assets/js/{99.81e75079.js => 99.875ee937.js} | 2 +- assets/js/{app.c447a952.js => app.627b5298.js} | 8 ++++---- codegen/_domainspec.html | 4 ++-- codegen/_solverspec.html | 4 ++-- codegen/index.html | 8 ++++---- contribute.html | 4 ++-- guide/index.html | 4 ++-- index.html | 4 ++-- install.html | 4 ++-- notebooks/index.html | 4 ++-- reference/_skdecide.builders.domain.agent.html | 4 ++-- reference/_skdecide.builders.domain.concurrency.html | 4 ++-- reference/_skdecide.builders.domain.constraints.html | 4 ++-- reference/_skdecide.builders.domain.dynamics.html | 4 ++-- reference/_skdecide.builders.domain.events.html | 4 ++-- reference/_skdecide.builders.domain.goals.html | 4 ++-- reference/_skdecide.builders.domain.initialization.html | 4 ++-- reference/_skdecide.builders.domain.memory.html | 4 ++-- reference/_skdecide.builders.domain.observability.html | 4 ++-- reference/_skdecide.builders.domain.renderability.html | 4 ++-- ...cide.builders.domain.scheduling.conditional_tasks.html | 4 ++-- ...skdecide.builders.domain.scheduling.graph_toolbox.html | 4 ++-- reference/_skdecide.builders.domain.scheduling.modes.html | 4 ++-- ...kdecide.builders.domain.scheduling.preallocations.html | 4 ++-- .../_skdecide.builders.domain.scheduling.precedence.html | 4 ++-- ..._skdecide.builders.domain.scheduling.preemptivity.html | 4 ++-- ....builders.domain.scheduling.resource_availability.html | 4 ++-- ...e.builders.domain.scheduling.resource_consumption.html | 4 ++-- ...kdecide.builders.domain.scheduling.resource_costs.html | 4 ++-- ....builders.domain.scheduling.resource_renewability.html | 4 ++-- ...skdecide.builders.domain.scheduling.resource_type.html | 4 ++-- ...ide.builders.domain.scheduling.scheduling_domains.html | 4 ++-- ...rs.domain.scheduling.scheduling_domains_modelling.html | 4 ++-- .../_skdecide.builders.domain.scheduling.skills.html | 4 ++-- reference/_skdecide.builders.domain.scheduling.task.html | 4 ++-- ...skdecide.builders.domain.scheduling.task_duration.html | 4 ++-- ...skdecide.builders.domain.scheduling.task_progress.html | 4 ++-- .../_skdecide.builders.domain.scheduling.time_lag.html | 4 ++-- ..._skdecide.builders.domain.scheduling.time_windows.html | 4 ++-- reference/_skdecide.builders.domain.value.html | 4 ++-- reference/_skdecide.builders.solver.assessability.html | 4 ++-- reference/_skdecide.builders.solver.parallelability.html | 4 ++-- reference/_skdecide.builders.solver.policy.html | 4 ++-- reference/_skdecide.builders.solver.restorability.html | 4 ++-- reference/_skdecide.core.html | 4 ++-- reference/_skdecide.domains.html | 4 ++-- ...g.weather_interpolator.weather_tools.common_utils.html | 4 ++-- ...interpolator.weather_tools.interpolator.intergrid.html | 4 ++-- ...anning.weather_interpolator.weather_tools.std_atm.html | 4 ++-- ...eather_interpolator.weather_tools.unit_conversion.html | 4 ++-- reference/_skdecide.hub.domain.gym.gym.html | 4 ++-- reference/_skdecide.hub.domain.mastermind.mastermind.html | 4 ++-- reference/_skdecide.hub.domain.maze.maze.html | 4 ++-- reference/_skdecide.hub.domain.rcpsp.rcpsp_sk.html | 4 ++-- reference/_skdecide.hub.domain.rcpsp.rcpsp_sk_parser.html | 4 ++-- ...ub.domain.rock_paper_scissors.rock_paper_scissors.html | 4 ++-- ...de.hub.domain.simple_grid_world.simple_grid_world.html | 4 ++-- reference/_skdecide.hub.solver.aostar.aostar.html | 4 ++-- reference/_skdecide.hub.solver.ars.ars.html | 4 ++-- reference/_skdecide.hub.solver.astar.astar.html | 4 ++-- reference/_skdecide.hub.solver.bfws.bfws.html | 4 ++-- reference/_skdecide.hub.solver.cgp.cgp.html | 4 ++-- reference/_skdecide.hub.solver.cgp.pycgp.cgp.html | 4 ++-- reference/_skdecide.hub.solver.cgp.pycgp.cgpes.html | 4 ++-- .../_skdecide.hub.solver.cgp.pycgp.cgpfunctions.html | 4 ++-- reference/_skdecide.hub.solver.cgp.pycgp.evaluator.html | 4 ++-- ...kdecide.hub.solver.do_solver.do_solver_scheduling.html | 4 ++-- .../_skdecide.hub.solver.do_solver.sk_to_do_binding.html | 4 ++-- reference/_skdecide.hub.solver.gphh.gphh.html | 4 ++-- ...skdecide.hub.solver.graph_explorer.DFSExploration.html | 4 ++-- ...b.solver.graph_explorer.DFS_Uncertain_Exploration.html | 4 ++-- ...de.hub.solver.graph_explorer.FullSpaceExploration.html | 4 ++-- .../_skdecide.hub.solver.graph_explorer.GraphDomain.html | 4 ++-- ...decide.hub.solver.graph_explorer.GraphExploration.html | 4 ++-- reference/_skdecide.hub.solver.ilaostar.ilaostar.html | 4 ++-- reference/_skdecide.hub.solver.iw.iw.html | 4 ++-- reference/_skdecide.hub.solver.lazy_astar.lazy_astar.html | 4 ++-- reference/_skdecide.hub.solver.lrtastar.lrtastar.html | 4 ++-- reference/_skdecide.hub.solver.lrtdp.lrtdp.html | 4 ++-- reference/_skdecide.hub.solver.mahd.mahd.html | 4 ++-- reference/_skdecide.hub.solver.martdp.martdp.html | 4 ++-- reference/_skdecide.hub.solver.maxent_irl.maxent_irl.html | 4 ++-- reference/_skdecide.hub.solver.mcts.mcts.html | 4 ++-- .../_skdecide.hub.solver.meta_policy.meta_policies.html | 4 ++-- .../_skdecide.hub.solver.pile_policy.pile_policy.html | 4 ++-- ...ide.hub.solver.policy_evaluators.policy_evaluator.html | 4 ++-- reference/_skdecide.hub.solver.pomcp.pomcp.html | 4 ++-- reference/_skdecide.hub.solver.ray_rllib.ray_rllib.html | 4 ++-- reference/_skdecide.hub.solver.riw.riw.html | 4 ++-- .../_skdecide.hub.solver.sgs_policies.sgs_policies.html | 4 ++-- .../_skdecide.hub.solver.simple_greedy.simple_greedy.html | 4 ++-- ...cide.hub.solver.stable_baselines.stable_baselines.html | 4 ++-- reference/_skdecide.hub.space.gym.gym.html | 4 ++-- reference/_skdecide.parallel_domains.html | 4 ++-- reference/_skdecide.solvers.html | 4 ++-- reference/_skdecide.utils.html | 4 ++-- reference/index.html | 4 ++-- 152 files changed, 254 insertions(+), 254 deletions(-) rename assets/js/{101.c4e712b1.js => 101.af65cdb6.js} (90%) rename assets/js/{102.a6ca920b.js => 102.9c488646.js} (92%) rename assets/js/{104.41202947.js => 104.271dd939.js} (99%) rename assets/js/{106.a20eb9dd.js => 106.49110a23.js} (98%) rename assets/js/{17.ed4d08c0.js => 17.ff4cbf41.js} (92%) rename assets/js/{18.a61e946a.js => 18.729b3632.js} (99%) rename assets/js/{19.993fa181.js => 19.b6053bc9.js} (99%) rename assets/js/{20.3d4abf66.js => 20.b6c7b27f.js} (99%) rename assets/js/{21.1cdf26ca.js => 21.c96761b6.js} (99%) rename assets/js/{27.96185631.js => 27.a8517eb1.js} (99%) rename assets/js/{29.be2b287e.js => 29.0324e672.js} (99%) rename assets/js/{30.279ea1c8.js => 30.540409b0.js} (99%) rename assets/js/{31.ed24278d.js => 31.3d3c89ff.js} (99%) rename assets/js/{37.13325dbd.js => 37.87bc5b81.js} (98%) rename assets/js/{38.d76321e7.js => 38.bd8643b8.js} (99%) rename assets/js/{39.c5487bfd.js => 39.f812636a.js} (99%) rename assets/js/{43.c10393ba.js => 43.0c4df3d9.js} (99%) rename assets/js/{44.ca219e23.js => 44.c049209a.js} (99%) rename assets/js/{45.c9e41fbd.js => 45.4b0a420e.js} (98%) rename assets/js/{46.c5372345.js => 46.ec3f0af0.js} (99%) rename assets/js/{47.41ce156f.js => 47.f624f9b6.js} (90%) rename assets/js/{48.5ef1a85f.js => 48.c8d14038.js} (99%) rename assets/js/{49.18fad982.js => 49.78c3cf02.js} (98%) rename assets/js/{50.e038058b.js => 50.9af5c247.js} (99%) rename assets/js/{52.b1796220.js => 52.bb4a463b.js} (99%) rename assets/js/{53.5e1f2b8e.js => 53.0cc6d034.js} (99%) rename assets/js/{54.d821fbe2.js => 54.f20d19ed.js} (98%) rename assets/js/{55.2a49ec6d.js => 55.5cdb1a34.js} (99%) rename assets/js/{56.2c288681.js => 56.8d05e1a4.js} (98%) rename assets/js/{57.9bdcb20d.js => 57.732c77e0.js} (99%) rename assets/js/{58.da8381b7.js => 58.46dbeb86.js} (99%) rename assets/js/{59.aade58ac.js => 59.0c516308.js} (96%) rename assets/js/{60.c3098f33.js => 60.e7e90057.js} (97%) rename assets/js/{61.2d939b63.js => 61.1d91d3b3.js} (99%) rename assets/js/{62.51bd9adb.js => 62.fa270052.js} (99%) rename assets/js/{63.53e6e389.js => 63.9d861964.js} (99%) rename assets/js/{67.9d2f8468.js => 67.919956b0.js} (90%) rename assets/js/{68.46e66ebb.js => 68.1b53bd75.js} (97%) rename assets/js/{69.d57a93c9.js => 69.df4c07e4.js} (97%) rename assets/js/{70.ddc9f6da.js => 70.16f7a11c.js} (90%) rename assets/js/{71.a4ad120d.js => 71.3dd1e6ad.js} (92%) rename assets/js/{73.0138011d.js => 73.db870ad5.js} (90%) rename assets/js/{74.6df934d4.js => 74.408baccf.js} (97%) rename assets/js/{75.6e950b0e.js => 75.00e3ca16.js} (90%) rename assets/js/{76.e6122d58.js => 76.bab0b272.js} (90%) rename assets/js/{77.d6bcdb39.js => 77.7190ff4d.js} (90%) rename assets/js/{78.0e3bd757.js => 78.035fe9d5.js} (90%) rename assets/js/{85.45b8209e.js => 85.524465f2.js} (90%) rename assets/js/{87.b5140c2e.js => 87.a8970c55.js} (90%) rename assets/js/{88.35569a43.js => 88.4af6fe55.js} (89%) rename assets/js/{93.6ce172af.js => 93.ff029ffb.js} (90%) rename assets/js/{94.72a2355d.js => 94.8b155c6d.js} (90%) rename assets/js/{95.9f787adb.js => 95.7ad26ea5.js} (90%) rename assets/js/{98.37e08c33.js => 98.b3c3d224.js} (91%) rename assets/js/{99.81e75079.js => 99.875ee937.js} (94%) rename assets/js/{app.c447a952.js => app.627b5298.js} (86%) diff --git a/404.html b/404.html index f3b2eda524..f58981bdc9 100644 --- a/404.html +++ b/404.html @@ -8,13 +8,13 @@ - + -

404

That's a Four-Oh-Four.
+ - + diff --git a/assets/js/101.c4e712b1.js b/assets/js/101.af65cdb6.js similarity index 90% rename from assets/js/101.c4e712b1.js rename to assets/js/101.af65cdb6.js index 937d414e8c..6b8f2c6487 100644 --- a/assets/js/101.c4e712b1.js +++ b/assets/js/101.af65cdb6.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[101],{618:function(t,s,i){"use strict";i.r(s);var r=i(38),e=Object(r.a)({},(function(){var t=this.$createElement,s=this._self._c||t;return s("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[s("h1",{attrs:{id:"hub-solver-riw-riw"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#hub-solver-riw-riw"}},[this._v("#")]),this._v(" hub.solver.riw.riw")]),this._v(" "),s("div",{staticClass:"custom-block tip"},[s("p",{staticClass:"custom-block-title"},[this._v("Domain specification")]),this._v(" "),s("skdecide-summary")],1)])}),[],!1,null,null,null);s.default=e.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[101],{617:function(t,s,i){"use strict";i.r(s);var r=i(38),e=Object(r.a)({},(function(){var t=this.$createElement,s=this._self._c||t;return s("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[s("h1",{attrs:{id:"hub-solver-riw-riw"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#hub-solver-riw-riw"}},[this._v("#")]),this._v(" hub.solver.riw.riw")]),this._v(" "),s("div",{staticClass:"custom-block tip"},[s("p",{staticClass:"custom-block-title"},[this._v("Domain specification")]),this._v(" "),s("skdecide-summary")],1)])}),[],!1,null,null,null);s.default=e.exports}}]); \ No newline at end of file diff --git a/assets/js/102.a6ca920b.js b/assets/js/102.9c488646.js similarity index 92% rename from assets/js/102.a6ca920b.js rename to assets/js/102.9c488646.js index b3b92a7457..f893332f8f 100644 --- a/assets/js/102.a6ca920b.js +++ b/assets/js/102.9c488646.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[102],{617:function(s,t,e){"use strict";e.r(t);var i=e(38),o=Object(i.a)({},(function(){var s=this,t=s.$createElement,e=s._self._c||t;return e("ContentSlotsDistributor",{attrs:{"slot-key":s.$parent.slotKey}},[e("h1",{attrs:{id:"hub-solver-sgs-policies-sgs-policies"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#hub-solver-sgs-policies-sgs-policies"}},[s._v("#")]),s._v(" hub.solver.sgs_policies.sgs_policies")]),s._v(" "),e("div",{staticClass:"custom-block tip"},[e("p",{staticClass:"custom-block-title"},[s._v("Domain specification")]),s._v(" "),e("skdecide-summary")],1),s._v(" "),e("h2",{attrs:{id:"basepolicymethod"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#basepolicymethod"}},[s._v("#")]),s._v(" BasePolicyMethod")]),s._v(" "),e("p",[s._v("An enumeration.")])])}),[],!1,null,null,null);t.default=o.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[102],{618:function(s,t,e){"use strict";e.r(t);var i=e(38),o=Object(i.a)({},(function(){var s=this,t=s.$createElement,e=s._self._c||t;return e("ContentSlotsDistributor",{attrs:{"slot-key":s.$parent.slotKey}},[e("h1",{attrs:{id:"hub-solver-sgs-policies-sgs-policies"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#hub-solver-sgs-policies-sgs-policies"}},[s._v("#")]),s._v(" hub.solver.sgs_policies.sgs_policies")]),s._v(" "),e("div",{staticClass:"custom-block tip"},[e("p",{staticClass:"custom-block-title"},[s._v("Domain specification")]),s._v(" "),e("skdecide-summary")],1),s._v(" "),e("h2",{attrs:{id:"basepolicymethod"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#basepolicymethod"}},[s._v("#")]),s._v(" BasePolicyMethod")]),s._v(" "),e("p",[s._v("An enumeration.")])])}),[],!1,null,null,null);t.default=o.exports}}]); \ No newline at end of file diff --git a/assets/js/104.41202947.js b/assets/js/104.271dd939.js similarity index 99% rename from assets/js/104.41202947.js rename to assets/js/104.271dd939.js index c219b5adba..020f0ba23d 100644 --- a/assets/js/104.41202947.js +++ b/assets/js/104.271dd939.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[104],{622:function(e,t,a){"use strict";a.r(t);var s=a(38),r=Object(s.a)({},(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("h1",{attrs:{id:"hub-solver-stable-baselines-stable-baselines"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#hub-solver-stable-baselines-stable-baselines"}},[e._v("#")]),e._v(" hub.solver.stable_baselines.stable_baselines")]),e._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[e._v("Domain specification")]),e._v(" "),a("skdecide-summary")],1),e._v(" "),a("h2",{attrs:{id:"stablebaseline"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#stablebaseline"}},[e._v("#")]),e._v(" StableBaseline")]),e._v(" "),a("p",[e._v("This class wraps a stable OpenAI Baselines solver (stable_baselines3) as a scikit-decide solver.")]),e._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[e._v("WARNING")]),e._v(" "),a("p",[e._v("Using this class requires Stable Baselines 3 to be installed.")])]),e._v(" "),a("h3",{attrs:{id:"constructor"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#constructor"}},[e._v("#")]),e._v(" Constructor "),a("Badge",{attrs:{text:"StableBaseline",type:"tip"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"StableBaseline",sig:{params:[{name:"algo_class",annotation:"type"},{name:"baselines_policy",annotation:"Any"},{name:"learn_config",default:"None",annotation:"Dict"},{name:"**kwargs",annotation:"Any"}],return:"None"}}}),e._v(" "),a("p",[e._v("Initialize StableBaselines.")]),e._v(" "),a("h4",{attrs:{id:"parameters"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),a("ul",[a("li",[a("strong",[e._v("algo_class")]),e._v(": The class of Baselines solver (stable_baselines3) to wrap.")]),e._v(" "),a("li",[a("strong",[e._v("baselines_policy")]),e._v(": The class of Baselines policy network (stable_baselines3.common.policies or str) to use.")])]),e._v(" "),a("h3",{attrs:{id:"check-domain"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#check-domain"}},[e._v("#")]),e._v(" check_domain "),a("Badge",{attrs:{text:"Solver",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"check_domain",sig:{params:[{name:"domain",annotation:"Domain"}],return:"bool"}}}),e._v(" "),a("p",[e._v("Check whether a domain is compliant with this solver type.")]),e._v(" "),a("p",[e._v("By default, "),a("code",[e._v("Solver.check_domain()")]),e._v(" provides some boilerplate code and internally\ncalls "),a("code",[e._v("Solver._check_domain_additional()")]),e._v(' (which returns True by default but can be overridden to define\nspecific checks in addition to the "domain requirements"). The boilerplate code automatically checks whether all\ndomain requirements are met.')]),e._v(" "),a("h4",{attrs:{id:"parameters-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-2"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),a("ul",[a("li",[a("strong",[e._v("domain")]),e._v(": The domain to check.")])]),e._v(" "),a("h4",{attrs:{id:"returns"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns"}},[e._v("#")]),e._v(" Returns")]),e._v(" "),a("p",[e._v("True if the domain is compliant with the solver type (False otherwise).")]),e._v(" "),a("h3",{attrs:{id:"get-domain-requirements"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-domain-requirements"}},[e._v("#")]),e._v(" get_domain_requirements "),a("Badge",{attrs:{text:"Solver",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"get_domain_requirements",sig:{params:[],return:"List[type]"}}}),e._v(" "),a("p",[e._v("Get domain requirements for this solver class to be applicable.")]),e._v(" "),a("p",[e._v("Domain requirements are classes from the "),a("code",[e._v("skdecide.builders.domain")]),e._v(" package that the domain needs to inherit from.")]),e._v(" "),a("h4",{attrs:{id:"returns-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-2"}},[e._v("#")]),e._v(" Returns")]),e._v(" "),a("p",[e._v("A list of classes to inherit from.")]),e._v(" "),a("h3",{attrs:{id:"is-policy-defined-for"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-policy-defined-for"}},[e._v("#")]),e._v(" is_policy_defined_for "),a("Badge",{attrs:{text:"Policies",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"is_policy_defined_for",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"bool"}}}),e._v(" "),a("p",[e._v("Check whether the solver's current policy is defined for the given observation.")]),e._v(" "),a("h4",{attrs:{id:"parameters-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-3"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),a("ul",[a("li",[a("strong",[e._v("observation")]),e._v(": The observation to consider.")])]),e._v(" "),a("h4",{attrs:{id:"returns-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-3"}},[e._v("#")]),e._v(" Returns")]),e._v(" "),a("p",[e._v("True if the policy is defined for the given observation memory (False otherwise).")]),e._v(" "),a("h3",{attrs:{id:"load"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#load"}},[e._v("#")]),e._v(" load "),a("Badge",{attrs:{text:"Restorable",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"load",sig:{params:[{name:"self"},{name:"path",annotation:"str"},{name:"domain_factory",annotation:"Callable[[], D]"}],return:"None"}}}),e._v(" "),a("p",[e._v("Restore the solver state from given path.")]),e._v(" "),a("h4",{attrs:{id:"parameters-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-4"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),a("ul",[a("li",[a("strong",[e._v("path")]),e._v(": The path where the solver state was saved.")]),e._v(" "),a("li",[a("strong",[e._v("domain_factory")]),e._v(": A callable with no argument returning the domain to solve (useful in some implementations).")])]),e._v(" "),a("h3",{attrs:{id:"reset"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#reset"}},[e._v("#")]),e._v(" reset "),a("Badge",{attrs:{text:"Solver",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"reset",sig:{params:[{name:"self"}],return:"None"}}}),e._v(" "),a("p",[e._v("Reset whatever is needed on this solver before running a new episode.")]),e._v(" "),a("p",[e._v("This function does nothing by default but can be overridden if needed (e.g. to reset the hidden state of a LSTM\npolicy network, which carries information about past observations seen in the previous episode).")]),e._v(" "),a("h3",{attrs:{id:"sample-action"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample-action"}},[e._v("#")]),e._v(" sample_action "),a("Badge",{attrs:{text:"Policies",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"sample_action",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"D.T_agent[D.T_concurrency[D.T_event]]"}}}),e._v(" "),a("p",[e._v("Sample an action for the given observation (from the solver's current policy).")]),e._v(" "),a("h4",{attrs:{id:"parameters-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-5"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),a("ul",[a("li",[a("strong",[e._v("observation")]),e._v(": The observation for which an action must be sampled.")])]),e._v(" "),a("h4",{attrs:{id:"returns-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-4"}},[e._v("#")]),e._v(" Returns")]),e._v(" "),a("p",[e._v("The sampled action.")]),e._v(" "),a("h3",{attrs:{id:"save"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#save"}},[e._v("#")]),e._v(" save "),a("Badge",{attrs:{text:"Restorable",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"save",sig:{params:[{name:"self"},{name:"path",annotation:"str"}],return:"None"}}}),e._v(" "),a("p",[e._v("Save the solver state to given path.")]),e._v(" "),a("h4",{attrs:{id:"parameters-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-6"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),a("ul",[a("li",[a("strong",[e._v("path")]),e._v(": The path to store the saved state.")])]),e._v(" "),a("h3",{attrs:{id:"solve"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#solve"}},[e._v("#")]),e._v(" solve "),a("Badge",{attrs:{text:"Solver",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"solve",sig:{params:[{name:"self"},{name:"domain_factory",annotation:"Callable[[], Domain]"}],return:"None"}}}),e._v(" "),a("p",[e._v("Run the solving process.")]),e._v(" "),a("p",[e._v("By default, "),a("code",[e._v("Solver.solve()")]),e._v(" provides some boilerplate code and internally calls "),a("code",[e._v("Solver._solve()")]),e._v(". The\nboilerplate code transforms the domain factory to auto-cast the new domains to the level expected by the solver.")]),e._v(" "),a("h4",{attrs:{id:"parameters-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-7"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),a("ul",[a("li",[a("strong",[e._v("domain_factory")]),e._v(": A callable with no argument returning the domain to solve (can be just a domain class).")])]),e._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[e._v("TIP")]),e._v(" "),a("p",[e._v("The nature of the solutions produced here depends on other solver's characteristics like\n"),a("code",[e._v("policy")]),e._v(" and "),a("code",[e._v("assessibility")]),e._v(".")])]),e._v(" "),a("h3",{attrs:{id:"solve-from"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#solve-from"}},[e._v("#")]),e._v(" solve_from "),a("Badge",{attrs:{text:"Solver",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"solve_from",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"None"}}}),e._v(" "),a("p",[e._v("Run the solving process from a given state.")]),e._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[e._v("TIP")]),e._v(" "),a("p",[e._v("Create the domain first by calling the @Solver.reset() method")])]),e._v(" "),a("h4",{attrs:{id:"parameters-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-8"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),a("ul",[a("li",[a("strong",[e._v("memory")]),e._v(": The source memory (state or history) of the transition.")])]),e._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[e._v("TIP")]),e._v(" "),a("p",[e._v("The nature of the solutions produced here depends on other solver's characteristics like\n"),a("code",[e._v("policy")]),e._v(" and "),a("code",[e._v("assessibility")]),e._v(".")])]),e._v(" "),a("h3",{attrs:{id:"check-domain-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#check-domain-2"}},[e._v("#")]),e._v(" _check_domain "),a("Badge",{attrs:{text:"Solver",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"_check_domain",sig:{params:[{name:"domain",annotation:"Domain"}],return:"bool"}}}),e._v(" "),a("p",[e._v("Check whether a domain is compliant with this solver type.")]),e._v(" "),a("p",[e._v("By default, "),a("code",[e._v("Solver._check_domain()")]),e._v(" provides some boilerplate code and internally\ncalls "),a("code",[e._v("Solver._check_domain_additional()")]),e._v(' (which returns True by default but can be overridden to define specific\nchecks in addition to the "domain requirements"). The boilerplate code automatically checks whether all domain\nrequirements are met.')]),e._v(" "),a("h4",{attrs:{id:"parameters-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-9"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),a("ul",[a("li",[a("strong",[e._v("domain")]),e._v(": The domain to check.")])]),e._v(" "),a("h4",{attrs:{id:"returns-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-5"}},[e._v("#")]),e._v(" Returns")]),e._v(" "),a("p",[e._v("True if the domain is compliant with the solver type (False otherwise).")]),e._v(" "),a("h3",{attrs:{id:"check-domain-additional"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#check-domain-additional"}},[e._v("#")]),e._v(" _check_domain_additional "),a("Badge",{attrs:{text:"Solver",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"_check_domain_additional",sig:{params:[{name:"domain",annotation:"Domain"}],return:"bool"}}}),e._v(" "),a("p",[e._v('Check whether the given domain is compliant with the specific requirements of this solver type (i.e. the\nones in addition to "domain requirements").')]),e._v(" "),a("p",[e._v("This is a helper function called by default from "),a("code",[e._v("Solver._check_domain()")]),e._v(". It focuses on specific checks, as\nopposed to taking also into account the domain requirements for the latter.")]),e._v(" "),a("h4",{attrs:{id:"parameters-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-10"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),a("ul",[a("li",[a("strong",[e._v("domain")]),e._v(": The domain to check.")])]),e._v(" "),a("h4",{attrs:{id:"returns-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-6"}},[e._v("#")]),e._v(" Returns")]),e._v(" "),a("p",[e._v("True if the domain is compliant with the specific requirements of this solver type (False otherwise).")]),e._v(" "),a("h3",{attrs:{id:"cleanup"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#cleanup"}},[e._v("#")]),e._v(" _cleanup "),a("Badge",{attrs:{text:"Solver",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"_cleanup",sig:{params:[{name:"self"}]}}}),e._v(" "),a("p",[e._v("Runs cleanup code here, or code to be executed at the exit of a\n'with' context statement.")]),e._v(" "),a("h3",{attrs:{id:"get-domain-requirements-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-domain-requirements-2"}},[e._v("#")]),e._v(" _get_domain_requirements "),a("Badge",{attrs:{text:"Solver",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"_get_domain_requirements",sig:{params:[],return:"List[type]"}}}),e._v(" "),a("p",[e._v("Get domain requirements for this solver class to be applicable.")]),e._v(" "),a("p",[e._v("Domain requirements are classes from the "),a("code",[e._v("skdecide.builders.domain")]),e._v(" package that the domain needs to inherit from.")]),e._v(" "),a("h4",{attrs:{id:"returns-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-7"}},[e._v("#")]),e._v(" Returns")]),e._v(" "),a("p",[e._v("A list of classes to inherit from.")]),e._v(" "),a("h3",{attrs:{id:"initialize"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#initialize"}},[e._v("#")]),e._v(" _initialize "),a("Badge",{attrs:{text:"Solver",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"_initialize",sig:{params:[{name:"self"}]}}}),e._v(" "),a("p",[e._v("Runs long-lasting initialization code here, or code to be executed at the\nentering of a 'with' context statement.")]),e._v(" "),a("h3",{attrs:{id:"is-policy-defined-for-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-policy-defined-for-2"}},[e._v("#")]),e._v(" _is_policy_defined_for "),a("Badge",{attrs:{text:"Policies",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"_is_policy_defined_for",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"bool"}}}),e._v(" "),a("p",[e._v("Check whether the solver's current policy is defined for the given observation.")]),e._v(" "),a("h4",{attrs:{id:"parameters-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-11"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),a("ul",[a("li",[a("strong",[e._v("observation")]),e._v(": The observation to consider.")])]),e._v(" "),a("h4",{attrs:{id:"returns-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-8"}},[e._v("#")]),e._v(" Returns")]),e._v(" "),a("p",[e._v("True if the policy is defined for the given observation memory (False otherwise).")]),e._v(" "),a("h3",{attrs:{id:"load-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#load-2"}},[e._v("#")]),e._v(" _load "),a("Badge",{attrs:{text:"Restorable",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"_load",sig:{params:[{name:"self"},{name:"path",annotation:"str"},{name:"domain_factory",annotation:"Callable[[], D]"}]}}}),e._v(" "),a("p",[e._v("Restore the solver state from given path.")]),e._v(" "),a("h4",{attrs:{id:"parameters-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-12"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),a("ul",[a("li",[a("strong",[e._v("path")]),e._v(": The path where the solver state was saved.")]),e._v(" "),a("li",[a("strong",[e._v("domain_factory")]),e._v(": A callable with no argument returning the domain to solve (useful in some implementations).")])]),e._v(" "),a("h3",{attrs:{id:"reset-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#reset-2"}},[e._v("#")]),e._v(" _reset "),a("Badge",{attrs:{text:"Solver",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"_reset",sig:{params:[{name:"self"}],return:"None"}}}),e._v(" "),a("p",[e._v("Reset whatever is needed on this solver before running a new episode.")]),e._v(" "),a("p",[e._v("This function does nothing by default but can be overridden if needed (e.g. to reset the hidden state of a LSTM\npolicy network, which carries information about past observations seen in the previous episode).")]),e._v(" "),a("h3",{attrs:{id:"sample-action-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample-action-2"}},[e._v("#")]),e._v(" _sample_action "),a("Badge",{attrs:{text:"Policies",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"_sample_action",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"D.T_agent[D.T_concurrency[D.T_event]]"}}}),e._v(" "),a("p",[e._v("Sample an action for the given observation (from the solver's current policy).")]),e._v(" "),a("h4",{attrs:{id:"parameters-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-13"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),a("ul",[a("li",[a("strong",[e._v("observation")]),e._v(": The observation for which an action must be sampled.")])]),e._v(" "),a("h4",{attrs:{id:"returns-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-9"}},[e._v("#")]),e._v(" Returns")]),e._v(" "),a("p",[e._v("The sampled action.")]),e._v(" "),a("h3",{attrs:{id:"save-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#save-2"}},[e._v("#")]),e._v(" _save "),a("Badge",{attrs:{text:"Restorable",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"_save",sig:{params:[{name:"self"},{name:"path",annotation:"str"}],return:"None"}}}),e._v(" "),a("p",[e._v("Save the solver state to given path.")]),e._v(" "),a("h4",{attrs:{id:"parameters-14"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-14"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),a("ul",[a("li",[a("strong",[e._v("path")]),e._v(": The path to store the saved state.")])]),e._v(" "),a("h3",{attrs:{id:"solve-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#solve-2"}},[e._v("#")]),e._v(" _solve "),a("Badge",{attrs:{text:"Solver",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"_solve",sig:{params:[{name:"self"},{name:"domain_factory",annotation:"Callable[[], Domain]"}],return:"None"}}}),e._v(" "),a("p",[e._v("Run the solving process.")]),e._v(" "),a("p",[e._v("By default, "),a("code",[e._v("Solver._solve()")]),e._v(" provides some boilerplate code and internally calls "),a("code",[e._v("Solver._solve_domain()")]),e._v(". The\nboilerplate code transforms the domain factory to auto-cast the new domains to the level expected by the solver.")]),e._v(" "),a("h4",{attrs:{id:"parameters-15"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-15"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),a("ul",[a("li",[a("strong",[e._v("domain_factory")]),e._v(": A callable with no argument returning the domain to solve (can be just a domain class).")])]),e._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[e._v("TIP")]),e._v(" "),a("p",[e._v("The nature of the solutions produced here depends on other solver's characteristics like\n"),a("code",[e._v("policy")]),e._v(" and "),a("code",[e._v("assessibility")]),e._v(".")])]),e._v(" "),a("h3",{attrs:{id:"solve-domain"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#solve-domain"}},[e._v("#")]),e._v(" _solve_domain "),a("Badge",{attrs:{text:"Solver",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"_solve_domain",sig:{params:[{name:"self"},{name:"domain_factory",annotation:"Callable[[], D]"}],return:"None"}}}),e._v(" "),a("p",[e._v("Run the solving process.")]),e._v(" "),a("p",[e._v("This is a helper function called by default from "),a("code",[e._v("Solver._solve()")]),e._v(", the difference being that the domain factory\nhere returns domains auto-cast to the level expected by the solver.")]),e._v(" "),a("h4",{attrs:{id:"parameters-16"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-16"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),a("ul",[a("li",[a("strong",[e._v("domain_factory")]),e._v(": A callable with no argument returning the domain to solve (auto-cast to expected level).")])]),e._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[e._v("TIP")]),e._v(" "),a("p",[e._v("The nature of the solutions produced here depends on other solver's characteristics like\n"),a("code",[e._v("policy")]),e._v(" and "),a("code",[e._v("assessibility")]),e._v(".")])]),e._v(" "),a("h3",{attrs:{id:"solve-from-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#solve-from-2"}},[e._v("#")]),e._v(" _solve_from "),a("Badge",{attrs:{text:"Solver",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"_solve_from",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"None"}}}),e._v(" "),a("p",[e._v("Run the solving process from a given state.")]),e._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[e._v("TIP")]),e._v(" "),a("p",[e._v("Create the domain first by calling the @Solver.reset() method")])]),e._v(" "),a("h4",{attrs:{id:"parameters-17"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-17"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),a("ul",[a("li",[a("strong",[e._v("memory")]),e._v(": The source memory (state or history) of the transition.")])]),e._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[e._v("TIP")]),e._v(" "),a("p",[e._v("The nature of the solutions produced here depends on other solver's characteristics like\n"),a("code",[e._v("policy")]),e._v(" and "),a("code",[e._v("assessibility")]),e._v(".")])])],1)}),[],!1,null,null,null);t.default=r.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[104],{621:function(e,t,a){"use strict";a.r(t);var s=a(38),r=Object(s.a)({},(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("h1",{attrs:{id:"hub-solver-stable-baselines-stable-baselines"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#hub-solver-stable-baselines-stable-baselines"}},[e._v("#")]),e._v(" hub.solver.stable_baselines.stable_baselines")]),e._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[e._v("Domain specification")]),e._v(" "),a("skdecide-summary")],1),e._v(" "),a("h2",{attrs:{id:"stablebaseline"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#stablebaseline"}},[e._v("#")]),e._v(" StableBaseline")]),e._v(" "),a("p",[e._v("This class wraps a stable OpenAI Baselines solver (stable_baselines3) as a scikit-decide solver.")]),e._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[e._v("WARNING")]),e._v(" "),a("p",[e._v("Using this class requires Stable Baselines 3 to be installed.")])]),e._v(" "),a("h3",{attrs:{id:"constructor"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#constructor"}},[e._v("#")]),e._v(" Constructor "),a("Badge",{attrs:{text:"StableBaseline",type:"tip"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"StableBaseline",sig:{params:[{name:"algo_class",annotation:"type"},{name:"baselines_policy",annotation:"Any"},{name:"learn_config",default:"None",annotation:"Dict"},{name:"**kwargs",annotation:"Any"}],return:"None"}}}),e._v(" "),a("p",[e._v("Initialize StableBaselines.")]),e._v(" "),a("h4",{attrs:{id:"parameters"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),a("ul",[a("li",[a("strong",[e._v("algo_class")]),e._v(": The class of Baselines solver (stable_baselines3) to wrap.")]),e._v(" "),a("li",[a("strong",[e._v("baselines_policy")]),e._v(": The class of Baselines policy network (stable_baselines3.common.policies or str) to use.")])]),e._v(" "),a("h3",{attrs:{id:"check-domain"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#check-domain"}},[e._v("#")]),e._v(" check_domain "),a("Badge",{attrs:{text:"Solver",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"check_domain",sig:{params:[{name:"domain",annotation:"Domain"}],return:"bool"}}}),e._v(" "),a("p",[e._v("Check whether a domain is compliant with this solver type.")]),e._v(" "),a("p",[e._v("By default, "),a("code",[e._v("Solver.check_domain()")]),e._v(" provides some boilerplate code and internally\ncalls "),a("code",[e._v("Solver._check_domain_additional()")]),e._v(' (which returns True by default but can be overridden to define\nspecific checks in addition to the "domain requirements"). The boilerplate code automatically checks whether all\ndomain requirements are met.')]),e._v(" "),a("h4",{attrs:{id:"parameters-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-2"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),a("ul",[a("li",[a("strong",[e._v("domain")]),e._v(": The domain to check.")])]),e._v(" "),a("h4",{attrs:{id:"returns"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns"}},[e._v("#")]),e._v(" Returns")]),e._v(" "),a("p",[e._v("True if the domain is compliant with the solver type (False otherwise).")]),e._v(" "),a("h3",{attrs:{id:"get-domain-requirements"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-domain-requirements"}},[e._v("#")]),e._v(" get_domain_requirements "),a("Badge",{attrs:{text:"Solver",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"get_domain_requirements",sig:{params:[],return:"List[type]"}}}),e._v(" "),a("p",[e._v("Get domain requirements for this solver class to be applicable.")]),e._v(" "),a("p",[e._v("Domain requirements are classes from the "),a("code",[e._v("skdecide.builders.domain")]),e._v(" package that the domain needs to inherit from.")]),e._v(" "),a("h4",{attrs:{id:"returns-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-2"}},[e._v("#")]),e._v(" Returns")]),e._v(" "),a("p",[e._v("A list of classes to inherit from.")]),e._v(" "),a("h3",{attrs:{id:"is-policy-defined-for"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-policy-defined-for"}},[e._v("#")]),e._v(" is_policy_defined_for "),a("Badge",{attrs:{text:"Policies",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"is_policy_defined_for",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"bool"}}}),e._v(" "),a("p",[e._v("Check whether the solver's current policy is defined for the given observation.")]),e._v(" "),a("h4",{attrs:{id:"parameters-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-3"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),a("ul",[a("li",[a("strong",[e._v("observation")]),e._v(": The observation to consider.")])]),e._v(" "),a("h4",{attrs:{id:"returns-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-3"}},[e._v("#")]),e._v(" Returns")]),e._v(" "),a("p",[e._v("True if the policy is defined for the given observation memory (False otherwise).")]),e._v(" "),a("h3",{attrs:{id:"load"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#load"}},[e._v("#")]),e._v(" load "),a("Badge",{attrs:{text:"Restorable",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"load",sig:{params:[{name:"self"},{name:"path",annotation:"str"},{name:"domain_factory",annotation:"Callable[[], D]"}],return:"None"}}}),e._v(" "),a("p",[e._v("Restore the solver state from given path.")]),e._v(" "),a("h4",{attrs:{id:"parameters-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-4"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),a("ul",[a("li",[a("strong",[e._v("path")]),e._v(": The path where the solver state was saved.")]),e._v(" "),a("li",[a("strong",[e._v("domain_factory")]),e._v(": A callable with no argument returning the domain to solve (useful in some implementations).")])]),e._v(" "),a("h3",{attrs:{id:"reset"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#reset"}},[e._v("#")]),e._v(" reset "),a("Badge",{attrs:{text:"Solver",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"reset",sig:{params:[{name:"self"}],return:"None"}}}),e._v(" "),a("p",[e._v("Reset whatever is needed on this solver before running a new episode.")]),e._v(" "),a("p",[e._v("This function does nothing by default but can be overridden if needed (e.g. to reset the hidden state of a LSTM\npolicy network, which carries information about past observations seen in the previous episode).")]),e._v(" "),a("h3",{attrs:{id:"sample-action"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample-action"}},[e._v("#")]),e._v(" sample_action "),a("Badge",{attrs:{text:"Policies",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"sample_action",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"D.T_agent[D.T_concurrency[D.T_event]]"}}}),e._v(" "),a("p",[e._v("Sample an action for the given observation (from the solver's current policy).")]),e._v(" "),a("h4",{attrs:{id:"parameters-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-5"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),a("ul",[a("li",[a("strong",[e._v("observation")]),e._v(": The observation for which an action must be sampled.")])]),e._v(" "),a("h4",{attrs:{id:"returns-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-4"}},[e._v("#")]),e._v(" Returns")]),e._v(" "),a("p",[e._v("The sampled action.")]),e._v(" "),a("h3",{attrs:{id:"save"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#save"}},[e._v("#")]),e._v(" save "),a("Badge",{attrs:{text:"Restorable",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"save",sig:{params:[{name:"self"},{name:"path",annotation:"str"}],return:"None"}}}),e._v(" "),a("p",[e._v("Save the solver state to given path.")]),e._v(" "),a("h4",{attrs:{id:"parameters-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-6"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),a("ul",[a("li",[a("strong",[e._v("path")]),e._v(": The path to store the saved state.")])]),e._v(" "),a("h3",{attrs:{id:"solve"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#solve"}},[e._v("#")]),e._v(" solve "),a("Badge",{attrs:{text:"Solver",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"solve",sig:{params:[{name:"self"},{name:"domain_factory",annotation:"Callable[[], Domain]"}],return:"None"}}}),e._v(" "),a("p",[e._v("Run the solving process.")]),e._v(" "),a("p",[e._v("By default, "),a("code",[e._v("Solver.solve()")]),e._v(" provides some boilerplate code and internally calls "),a("code",[e._v("Solver._solve()")]),e._v(". The\nboilerplate code transforms the domain factory to auto-cast the new domains to the level expected by the solver.")]),e._v(" "),a("h4",{attrs:{id:"parameters-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-7"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),a("ul",[a("li",[a("strong",[e._v("domain_factory")]),e._v(": A callable with no argument returning the domain to solve (can be just a domain class).")])]),e._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[e._v("TIP")]),e._v(" "),a("p",[e._v("The nature of the solutions produced here depends on other solver's characteristics like\n"),a("code",[e._v("policy")]),e._v(" and "),a("code",[e._v("assessibility")]),e._v(".")])]),e._v(" "),a("h3",{attrs:{id:"solve-from"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#solve-from"}},[e._v("#")]),e._v(" solve_from "),a("Badge",{attrs:{text:"Solver",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"solve_from",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"None"}}}),e._v(" "),a("p",[e._v("Run the solving process from a given state.")]),e._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[e._v("TIP")]),e._v(" "),a("p",[e._v("Create the domain first by calling the @Solver.reset() method")])]),e._v(" "),a("h4",{attrs:{id:"parameters-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-8"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),a("ul",[a("li",[a("strong",[e._v("memory")]),e._v(": The source memory (state or history) of the transition.")])]),e._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[e._v("TIP")]),e._v(" "),a("p",[e._v("The nature of the solutions produced here depends on other solver's characteristics like\n"),a("code",[e._v("policy")]),e._v(" and "),a("code",[e._v("assessibility")]),e._v(".")])]),e._v(" "),a("h3",{attrs:{id:"check-domain-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#check-domain-2"}},[e._v("#")]),e._v(" _check_domain "),a("Badge",{attrs:{text:"Solver",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"_check_domain",sig:{params:[{name:"domain",annotation:"Domain"}],return:"bool"}}}),e._v(" "),a("p",[e._v("Check whether a domain is compliant with this solver type.")]),e._v(" "),a("p",[e._v("By default, "),a("code",[e._v("Solver._check_domain()")]),e._v(" provides some boilerplate code and internally\ncalls "),a("code",[e._v("Solver._check_domain_additional()")]),e._v(' (which returns True by default but can be overridden to define specific\nchecks in addition to the "domain requirements"). The boilerplate code automatically checks whether all domain\nrequirements are met.')]),e._v(" "),a("h4",{attrs:{id:"parameters-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-9"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),a("ul",[a("li",[a("strong",[e._v("domain")]),e._v(": The domain to check.")])]),e._v(" "),a("h4",{attrs:{id:"returns-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-5"}},[e._v("#")]),e._v(" Returns")]),e._v(" "),a("p",[e._v("True if the domain is compliant with the solver type (False otherwise).")]),e._v(" "),a("h3",{attrs:{id:"check-domain-additional"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#check-domain-additional"}},[e._v("#")]),e._v(" _check_domain_additional "),a("Badge",{attrs:{text:"Solver",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"_check_domain_additional",sig:{params:[{name:"domain",annotation:"Domain"}],return:"bool"}}}),e._v(" "),a("p",[e._v('Check whether the given domain is compliant with the specific requirements of this solver type (i.e. the\nones in addition to "domain requirements").')]),e._v(" "),a("p",[e._v("This is a helper function called by default from "),a("code",[e._v("Solver._check_domain()")]),e._v(". It focuses on specific checks, as\nopposed to taking also into account the domain requirements for the latter.")]),e._v(" "),a("h4",{attrs:{id:"parameters-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-10"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),a("ul",[a("li",[a("strong",[e._v("domain")]),e._v(": The domain to check.")])]),e._v(" "),a("h4",{attrs:{id:"returns-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-6"}},[e._v("#")]),e._v(" Returns")]),e._v(" "),a("p",[e._v("True if the domain is compliant with the specific requirements of this solver type (False otherwise).")]),e._v(" "),a("h3",{attrs:{id:"cleanup"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#cleanup"}},[e._v("#")]),e._v(" _cleanup "),a("Badge",{attrs:{text:"Solver",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"_cleanup",sig:{params:[{name:"self"}]}}}),e._v(" "),a("p",[e._v("Runs cleanup code here, or code to be executed at the exit of a\n'with' context statement.")]),e._v(" "),a("h3",{attrs:{id:"get-domain-requirements-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-domain-requirements-2"}},[e._v("#")]),e._v(" _get_domain_requirements "),a("Badge",{attrs:{text:"Solver",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"_get_domain_requirements",sig:{params:[],return:"List[type]"}}}),e._v(" "),a("p",[e._v("Get domain requirements for this solver class to be applicable.")]),e._v(" "),a("p",[e._v("Domain requirements are classes from the "),a("code",[e._v("skdecide.builders.domain")]),e._v(" package that the domain needs to inherit from.")]),e._v(" "),a("h4",{attrs:{id:"returns-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-7"}},[e._v("#")]),e._v(" Returns")]),e._v(" "),a("p",[e._v("A list of classes to inherit from.")]),e._v(" "),a("h3",{attrs:{id:"initialize"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#initialize"}},[e._v("#")]),e._v(" _initialize "),a("Badge",{attrs:{text:"Solver",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"_initialize",sig:{params:[{name:"self"}]}}}),e._v(" "),a("p",[e._v("Runs long-lasting initialization code here, or code to be executed at the\nentering of a 'with' context statement.")]),e._v(" "),a("h3",{attrs:{id:"is-policy-defined-for-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-policy-defined-for-2"}},[e._v("#")]),e._v(" _is_policy_defined_for "),a("Badge",{attrs:{text:"Policies",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"_is_policy_defined_for",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"bool"}}}),e._v(" "),a("p",[e._v("Check whether the solver's current policy is defined for the given observation.")]),e._v(" "),a("h4",{attrs:{id:"parameters-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-11"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),a("ul",[a("li",[a("strong",[e._v("observation")]),e._v(": The observation to consider.")])]),e._v(" "),a("h4",{attrs:{id:"returns-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-8"}},[e._v("#")]),e._v(" Returns")]),e._v(" "),a("p",[e._v("True if the policy is defined for the given observation memory (False otherwise).")]),e._v(" "),a("h3",{attrs:{id:"load-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#load-2"}},[e._v("#")]),e._v(" _load "),a("Badge",{attrs:{text:"Restorable",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"_load",sig:{params:[{name:"self"},{name:"path",annotation:"str"},{name:"domain_factory",annotation:"Callable[[], D]"}]}}}),e._v(" "),a("p",[e._v("Restore the solver state from given path.")]),e._v(" "),a("h4",{attrs:{id:"parameters-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-12"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),a("ul",[a("li",[a("strong",[e._v("path")]),e._v(": The path where the solver state was saved.")]),e._v(" "),a("li",[a("strong",[e._v("domain_factory")]),e._v(": A callable with no argument returning the domain to solve (useful in some implementations).")])]),e._v(" "),a("h3",{attrs:{id:"reset-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#reset-2"}},[e._v("#")]),e._v(" _reset "),a("Badge",{attrs:{text:"Solver",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"_reset",sig:{params:[{name:"self"}],return:"None"}}}),e._v(" "),a("p",[e._v("Reset whatever is needed on this solver before running a new episode.")]),e._v(" "),a("p",[e._v("This function does nothing by default but can be overridden if needed (e.g. to reset the hidden state of a LSTM\npolicy network, which carries information about past observations seen in the previous episode).")]),e._v(" "),a("h3",{attrs:{id:"sample-action-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample-action-2"}},[e._v("#")]),e._v(" _sample_action "),a("Badge",{attrs:{text:"Policies",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"_sample_action",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"D.T_agent[D.T_concurrency[D.T_event]]"}}}),e._v(" "),a("p",[e._v("Sample an action for the given observation (from the solver's current policy).")]),e._v(" "),a("h4",{attrs:{id:"parameters-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-13"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),a("ul",[a("li",[a("strong",[e._v("observation")]),e._v(": The observation for which an action must be sampled.")])]),e._v(" "),a("h4",{attrs:{id:"returns-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-9"}},[e._v("#")]),e._v(" Returns")]),e._v(" "),a("p",[e._v("The sampled action.")]),e._v(" "),a("h3",{attrs:{id:"save-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#save-2"}},[e._v("#")]),e._v(" _save "),a("Badge",{attrs:{text:"Restorable",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"_save",sig:{params:[{name:"self"},{name:"path",annotation:"str"}],return:"None"}}}),e._v(" "),a("p",[e._v("Save the solver state to given path.")]),e._v(" "),a("h4",{attrs:{id:"parameters-14"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-14"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),a("ul",[a("li",[a("strong",[e._v("path")]),e._v(": The path to store the saved state.")])]),e._v(" "),a("h3",{attrs:{id:"solve-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#solve-2"}},[e._v("#")]),e._v(" _solve "),a("Badge",{attrs:{text:"Solver",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"_solve",sig:{params:[{name:"self"},{name:"domain_factory",annotation:"Callable[[], Domain]"}],return:"None"}}}),e._v(" "),a("p",[e._v("Run the solving process.")]),e._v(" "),a("p",[e._v("By default, "),a("code",[e._v("Solver._solve()")]),e._v(" provides some boilerplate code and internally calls "),a("code",[e._v("Solver._solve_domain()")]),e._v(". The\nboilerplate code transforms the domain factory to auto-cast the new domains to the level expected by the solver.")]),e._v(" "),a("h4",{attrs:{id:"parameters-15"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-15"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),a("ul",[a("li",[a("strong",[e._v("domain_factory")]),e._v(": A callable with no argument returning the domain to solve (can be just a domain class).")])]),e._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[e._v("TIP")]),e._v(" "),a("p",[e._v("The nature of the solutions produced here depends on other solver's characteristics like\n"),a("code",[e._v("policy")]),e._v(" and "),a("code",[e._v("assessibility")]),e._v(".")])]),e._v(" "),a("h3",{attrs:{id:"solve-domain"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#solve-domain"}},[e._v("#")]),e._v(" _solve_domain "),a("Badge",{attrs:{text:"Solver",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"_solve_domain",sig:{params:[{name:"self"},{name:"domain_factory",annotation:"Callable[[], D]"}],return:"None"}}}),e._v(" "),a("p",[e._v("Run the solving process.")]),e._v(" "),a("p",[e._v("This is a helper function called by default from "),a("code",[e._v("Solver._solve()")]),e._v(", the difference being that the domain factory\nhere returns domains auto-cast to the level expected by the solver.")]),e._v(" "),a("h4",{attrs:{id:"parameters-16"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-16"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),a("ul",[a("li",[a("strong",[e._v("domain_factory")]),e._v(": A callable with no argument returning the domain to solve (auto-cast to expected level).")])]),e._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[e._v("TIP")]),e._v(" "),a("p",[e._v("The nature of the solutions produced here depends on other solver's characteristics like\n"),a("code",[e._v("policy")]),e._v(" and "),a("code",[e._v("assessibility")]),e._v(".")])]),e._v(" "),a("h3",{attrs:{id:"solve-from-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#solve-from-2"}},[e._v("#")]),e._v(" _solve_from "),a("Badge",{attrs:{text:"Solver",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"_solve_from",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"None"}}}),e._v(" "),a("p",[e._v("Run the solving process from a given state.")]),e._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[e._v("TIP")]),e._v(" "),a("p",[e._v("Create the domain first by calling the @Solver.reset() method")])]),e._v(" "),a("h4",{attrs:{id:"parameters-17"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-17"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),a("ul",[a("li",[a("strong",[e._v("memory")]),e._v(": The source memory (state or history) of the transition.")])]),e._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[e._v("TIP")]),e._v(" "),a("p",[e._v("The nature of the solutions produced here depends on other solver's characteristics like\n"),a("code",[e._v("policy")]),e._v(" and "),a("code",[e._v("assessibility")]),e._v(".")])])],1)}),[],!1,null,null,null);t.default=r.exports}}]); \ No newline at end of file diff --git a/assets/js/106.a20eb9dd.js b/assets/js/106.49110a23.js similarity index 98% rename from assets/js/106.a20eb9dd.js rename to assets/js/106.49110a23.js index aa38e5d476..9a698cb95f 100644 --- a/assets/js/106.a20eb9dd.js +++ b/assets/js/106.49110a23.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[106],{621:function(a,e,t){"use strict";t.r(e);var s=t(38),n=Object(s.a)({},(function(){var a=this,e=a.$createElement,t=a._self._c||e;return t("ContentSlotsDistributor",{attrs:{"slot-key":a.$parent.slotKey}},[t("h1",{attrs:{id:"parallel-domains"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#parallel-domains"}},[a._v("#")]),a._v(" parallel_domains")]),a._v(" "),t("p",[a._v("This module contains helper classes to manage domains for parallel compurations.")]),a._v(" "),t("div",{staticClass:"custom-block tip"},[t("p",{staticClass:"custom-block-title"},[a._v("Domain specification")]),a._v(" "),t("skdecide-summary")],1),a._v(" "),t("h2",{attrs:{id:"paralleldomain"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#paralleldomain"}},[a._v("#")]),a._v(" ParallelDomain")]),a._v(" "),t("p",[a._v("Base class for creating and launching n domains in separate processes.\nEach domain listens for incoming domain requests.\nEach request can indicate which domain should serve it, otherwise the first available\ndomain i is chosen and its id is returned to the incoming request.")]),a._v(" "),t("h3",{attrs:{id:"constructor"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#constructor"}},[a._v("#")]),a._v(" Constructor "),t("Badge",{attrs:{text:"ParallelDomain",type:"tip"}})],1),a._v(" "),t("skdecide-signature",{attrs:{name:"ParallelDomain",sig:{params:[{name:"domain_factory"},{name:"lambdas",default:"None"},{name:"nb_domains",default:"4"},{name:"ipc_notify",default:"False"}]}}}),a._v(" "),t("p",[a._v("Initialize self. See help(type(self)) for accurate signature.")]),a._v(" "),t("h2",{attrs:{id:"pipeparalleldomain"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#pipeparalleldomain"}},[a._v("#")]),a._v(" PipeParallelDomain")]),a._v(" "),t("p",[a._v("This class can be used to create and launch n domains in separate processes.\nEach domain listens for incoming domain requests.\nEach request can indicate which domain should serve it, otherwise the first available\ndomain i is chosen and its id is returned to the incoming request.")]),a._v(" "),t("h3",{attrs:{id:"constructor-2"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#constructor-2"}},[a._v("#")]),a._v(" Constructor "),t("Badge",{attrs:{text:"PipeParallelDomain",type:"tip"}})],1),a._v(" "),t("skdecide-signature",{attrs:{name:"PipeParallelDomain",sig:{params:[{name:"domain_factory"},{name:"lambdas",default:"None"},{name:"nb_domains",default:"4"},{name:"ipc_notify",default:"False"}]}}}),a._v(" "),t("p",[a._v("Initialize self. See help(type(self)) for accurate signature.")]),a._v(" "),t("h2",{attrs:{id:"shmparalleldomain"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#shmparalleldomain"}},[a._v("#")]),a._v(" ShmParallelDomain")]),a._v(" "),t("p",[a._v("This class can be used to create and launch n domains in separate processes\nwith shared memory between the Python processes.\nEach domain listens for incoming domain requests.\nEach request can indicate which domain should serve it, otherwise the first available\ndomain is chosen and its id is returned to the incoming request.")]),a._v(" "),t("h3",{attrs:{id:"constructor-3"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#constructor-3"}},[a._v("#")]),a._v(" Constructor "),t("Badge",{attrs:{text:"ShmParallelDomain",type:"tip"}})],1),a._v(" "),t("skdecide-signature",{attrs:{name:"ShmParallelDomain",sig:{params:[{name:"domain_factory"},{name:"shm_proxy"},{name:"lambdas",default:"None"},{name:"nb_domains",default:"4"},{name:"ipc_notify",default:"False"}]}}}),a._v(" "),t("p",[a._v("Initialize self. See help(type(self)) for accurate signature.")])],1)}),[],!1,null,null,null);e.default=n.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[106],{622:function(a,e,t){"use strict";t.r(e);var s=t(38),n=Object(s.a)({},(function(){var a=this,e=a.$createElement,t=a._self._c||e;return t("ContentSlotsDistributor",{attrs:{"slot-key":a.$parent.slotKey}},[t("h1",{attrs:{id:"parallel-domains"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#parallel-domains"}},[a._v("#")]),a._v(" parallel_domains")]),a._v(" "),t("p",[a._v("This module contains helper classes to manage domains for parallel compurations.")]),a._v(" "),t("div",{staticClass:"custom-block tip"},[t("p",{staticClass:"custom-block-title"},[a._v("Domain specification")]),a._v(" "),t("skdecide-summary")],1),a._v(" "),t("h2",{attrs:{id:"paralleldomain"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#paralleldomain"}},[a._v("#")]),a._v(" ParallelDomain")]),a._v(" "),t("p",[a._v("Base class for creating and launching n domains in separate processes.\nEach domain listens for incoming domain requests.\nEach request can indicate which domain should serve it, otherwise the first available\ndomain i is chosen and its id is returned to the incoming request.")]),a._v(" "),t("h3",{attrs:{id:"constructor"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#constructor"}},[a._v("#")]),a._v(" Constructor "),t("Badge",{attrs:{text:"ParallelDomain",type:"tip"}})],1),a._v(" "),t("skdecide-signature",{attrs:{name:"ParallelDomain",sig:{params:[{name:"domain_factory"},{name:"lambdas",default:"None"},{name:"nb_domains",default:"4"},{name:"ipc_notify",default:"False"}]}}}),a._v(" "),t("p",[a._v("Initialize self. See help(type(self)) for accurate signature.")]),a._v(" "),t("h2",{attrs:{id:"pipeparalleldomain"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#pipeparalleldomain"}},[a._v("#")]),a._v(" PipeParallelDomain")]),a._v(" "),t("p",[a._v("This class can be used to create and launch n domains in separate processes.\nEach domain listens for incoming domain requests.\nEach request can indicate which domain should serve it, otherwise the first available\ndomain i is chosen and its id is returned to the incoming request.")]),a._v(" "),t("h3",{attrs:{id:"constructor-2"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#constructor-2"}},[a._v("#")]),a._v(" Constructor "),t("Badge",{attrs:{text:"PipeParallelDomain",type:"tip"}})],1),a._v(" "),t("skdecide-signature",{attrs:{name:"PipeParallelDomain",sig:{params:[{name:"domain_factory"},{name:"lambdas",default:"None"},{name:"nb_domains",default:"4"},{name:"ipc_notify",default:"False"}]}}}),a._v(" "),t("p",[a._v("Initialize self. See help(type(self)) for accurate signature.")]),a._v(" "),t("h2",{attrs:{id:"shmparalleldomain"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#shmparalleldomain"}},[a._v("#")]),a._v(" ShmParallelDomain")]),a._v(" "),t("p",[a._v("This class can be used to create and launch n domains in separate processes\nwith shared memory between the Python processes.\nEach domain listens for incoming domain requests.\nEach request can indicate which domain should serve it, otherwise the first available\ndomain is chosen and its id is returned to the incoming request.")]),a._v(" "),t("h3",{attrs:{id:"constructor-3"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#constructor-3"}},[a._v("#")]),a._v(" Constructor "),t("Badge",{attrs:{text:"ShmParallelDomain",type:"tip"}})],1),a._v(" "),t("skdecide-signature",{attrs:{name:"ShmParallelDomain",sig:{params:[{name:"domain_factory"},{name:"shm_proxy"},{name:"lambdas",default:"None"},{name:"nb_domains",default:"4"},{name:"ipc_notify",default:"False"}]}}}),a._v(" "),t("p",[a._v("Initialize self. See help(type(self)) for accurate signature.")])],1)}),[],!1,null,null,null);e.default=n.exports}}]); \ No newline at end of file diff --git a/assets/js/17.ed4d08c0.js b/assets/js/17.ff4cbf41.js similarity index 92% rename from assets/js/17.ed4d08c0.js rename to assets/js/17.ff4cbf41.js index 368866e060..5a0887dc96 100644 --- a/assets/js/17.ed4d08c0.js +++ b/assets/js/17.ff4cbf41.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[17],{534:function(t,s,e){"use strict";e.r(s);var o=e(38),a=Object(o.a)({},(function(){var t=this,s=t.$createElement,e=t._self._c||s;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"code-generators"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#code-generators"}},[t._v("#")]),t._v(" Code generators")]),t._v(" "),e("div",{staticClass:"custom-block tip"},[e("p",{staticClass:"custom-block-title"},[t._v("Domain specification")]),t._v(" "),e("skdecide-summary")],1),t._v(" "),e("skdecide-codegen",{scopedSlots:t._u([{key:"SolverSummary",fn:function(){return[e("div",{staticClass:"custom-block warning"},[e("p",{staticClass:"custom-block-title"},[t._v("Solver specification")]),t._v(" "),e("skdecide-summary",{attrs:{isSolver:""}})],1)]},proxy:!0}])})],1)}),[],!1,null,null,null);s.default=a.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[17],{533:function(t,s,e){"use strict";e.r(s);var o=e(38),a=Object(o.a)({},(function(){var t=this,s=t.$createElement,e=t._self._c||s;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"code-generators"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#code-generators"}},[t._v("#")]),t._v(" Code generators")]),t._v(" "),e("div",{staticClass:"custom-block tip"},[e("p",{staticClass:"custom-block-title"},[t._v("Domain specification")]),t._v(" "),e("skdecide-summary")],1),t._v(" "),e("skdecide-codegen",{scopedSlots:t._u([{key:"SolverSummary",fn:function(){return[e("div",{staticClass:"custom-block warning"},[e("p",{staticClass:"custom-block-title"},[t._v("Solver specification")]),t._v(" "),e("skdecide-summary",{attrs:{isSolver:""}})],1)]},proxy:!0}])})],1)}),[],!1,null,null,null);s.default=a.exports}}]); \ No newline at end of file diff --git a/assets/js/18.a61e946a.js b/assets/js/18.729b3632.js similarity index 99% rename from assets/js/18.a61e946a.js rename to assets/js/18.729b3632.js index 4d53c6a8c6..00e483d7cd 100644 --- a/assets/js/18.a61e946a.js +++ b/assets/js/18.729b3632.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[18],{533:function(e,t,s){"use strict";s.r(t);var a=s(38),n=Object(a.a)({},(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[s("h1",{attrs:{id:"contributing-to-scikit-decide"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#contributing-to-scikit-decide"}},[e._v("#")]),e._v(" Contributing to scikit-decide")]),e._v(" "),s("p",[e._v("We welcome all contributions to scikit-decide.")]),e._v(" "),s("p",[e._v("You can help by:")]),e._v(" "),s("ul",[s("li",[e._v("fixing bugs (see "),s("a",{attrs:{href:"https://github.com/airbus/scikit-decide/issues",target:"_blank",rel:"noopener noreferrer"}},[e._v("issues"),s("OutboundLink")],1),e._v(' with label "bug"),')]),e._v(" "),s("li",[e._v("adding new domains or solvers to the hub in "),s("code",[e._v("skdecide/hub/")]),e._v(",")]),e._v(" "),s("li",[e._v("improving the documentation,")]),e._v(" "),s("li",[e._v("adding and improving educational notebooks in "),s("code",[e._v("notebooks/")]),e._v(".")])]),e._v(" "),s("p",[e._v("This is not exhaustive.")]),e._v(" "),s("p",[e._v("The project is hosted on "),s("a",{attrs:{href:"https://github.com/airbus/scikit-decide",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://github.com/airbus/scikit-decide"),s("OutboundLink")],1),e._v(".\nContributions to the repository are made by submitting pull requests.")]),e._v(" "),s("p",[e._v("This guide is organized as follows:")]),e._v(" "),s("ul",[s("li",[s("a",{attrs:{href:"#setting-up-your-development-environment"}},[e._v("Setting up your development environment")])]),e._v(" "),s("li",[s("a",{attrs:{href:"#guidelines-to-follow-when-preparing-a-contribution"}},[e._v("Guidelines to follow when preparing a contribution")])]),e._v(" "),s("li",[s("a",{attrs:{href:"#submitting-pull-requests"}},[e._v("Submitting pull requests")]),e._v(" to put your contribution in the main repository")])]),e._v(" "),s("h2",{attrs:{id:"setting-up-your-development-environment"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#setting-up-your-development-environment"}},[e._v("#")]),e._v(" Setting up your development environment")]),e._v(" "),s("h3",{attrs:{id:"prerequisite-minizinc"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#prerequisite-minizinc"}},[e._v("#")]),e._v(" Prerequisite: minizinc")]),e._v(" "),s("p",[e._v("You need first to install "),s("a",{attrs:{href:"https://www.minizinc.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("minizinc"),s("OutboundLink")],1),e._v(" (version greater than 2.6) and update the "),s("code",[e._v("PATH")]),e._v(" environment variable\nso that it can be found by Python. See "),s("a",{attrs:{href:"https://www.minizinc.org/doc-latest/en/installation.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("minizinc documentation"),s("OutboundLink")],1),e._v(" for more details.")]),e._v(" "),s("h3",{attrs:{id:"installing-from-source-in-developer-mode"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#installing-from-source-in-developer-mode"}},[e._v("#")]),e._v(" Installing from source in developer mode")]),e._v(" "),s("blockquote",[s("p",[s("strong",[e._v("Disclaimer")]),e._v(": The following process has only been tested on Linux/MacOS platforms.")])]),e._v(" "),s("p",[e._v("In order to install scikit-decide from the source so that your modification to the library are taken into account, we recommmend using poetry.")]),e._v(" "),s("h4",{attrs:{id:"prerequisites-for-c"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#prerequisites-for-c"}},[e._v("#")]),e._v(" Prerequisites for C++")]),e._v(" "),s("p",[e._v("To build the c++ part of the library,\nyou need a minimal environment with c++ compiler, cmake, and boost.\nTo be able to use parallelism based on openMP, you should also install libomp.\nFor instance, on macOS it is done via:")]),e._v(" "),s("div",{staticClass:"language-shell extra-class"},[s("pre",{pre:!0,attrs:{class:"language-shell"}},[s("code",[e._v("xcode-select --install\nbrew "),s("span",{pre:!0,attrs:{class:"token function"}},[e._v("install")]),e._v(" cmake\nbrew "),s("span",{pre:!0,attrs:{class:"token function"}},[e._v("install")]),e._v(" boost\nbrew "),s("span",{pre:!0,attrs:{class:"token function"}},[e._v("install")]),e._v(" libomp\n")])])]),s("h4",{attrs:{id:"installation-with-pyenv-poetry"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#installation-with-pyenv-poetry"}},[e._v("#")]),e._v(" Installation with pyenv + poetry")]),e._v(" "),s("p",[e._v("Here are the steps to follow:")]),e._v(" "),s("ul",[s("li",[s("p",[e._v('Clone the source and got to the "scikit-decide" root directory.')]),e._v(" "),s("div",{staticClass:"language-shell extra-class"},[s("pre",{pre:!0,attrs:{class:"language-shell"}},[s("code",[s("span",{pre:!0,attrs:{class:"token function"}},[e._v("git")]),e._v(" clone --recurse-submodules -j8 https://github.com/airbus/scikit-decide.git\n"),s("span",{pre:!0,attrs:{class:"token builtin class-name"}},[e._v("cd")]),e._v(" scikit-decide\n")])])])]),e._v(" "),s("li",[s("p",[e._v("Set proper python version (e.g. 3.8.11) for the scikit-decide project.")]),e._v(" "),s("div",{staticClass:"language-shell extra-class"},[s("pre",{pre:!0,attrs:{class:"language-shell"}},[s("code",[e._v("pyenv "),s("span",{pre:!0,attrs:{class:"token builtin class-name"}},[e._v("local")]),e._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[e._v("3.8")]),e._v(".11\n")])])])]),e._v(" "),s("li",[s("p",[e._v("Update pip installer (the one that "),s("code",[e._v("pyenv")]),e._v(" makes you use).")]),e._v(" "),s("div",{staticClass:"language-shell extra-class"},[s("pre",{pre:!0,attrs:{class:"language-shell"}},[s("code",[e._v("pip "),s("span",{pre:!0,attrs:{class:"token function"}},[e._v("install")]),e._v(" -U pip\n")])])]),s("ul",[s("li",[s("p",[e._v("Use poetry to install the project:")]),e._v(" "),s("ul",[s("li",[s("p",[e._v("Install "),s("a",{attrs:{href:"https://python-poetry.org/docs/master/#installation",target:"_blank",rel:"noopener noreferrer"}},[e._v("poetry"),s("OutboundLink")],1),e._v(".")]),e._v(" "),s("div",{staticClass:"language-shell extra-class"},[s("pre",{pre:!0,attrs:{class:"language-shell"}},[s("code",[s("span",{pre:!0,attrs:{class:"token function"}},[e._v("curl")]),e._v(" -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/install-poetry.py "),s("span",{pre:!0,attrs:{class:"token operator"}},[e._v("|")]),e._v(" python -\n"),s("span",{pre:!0,attrs:{class:"token builtin class-name"}},[e._v("export")]),e._v(" "),s("span",{pre:!0,attrs:{class:"token assign-left variable"}},[s("span",{pre:!0,attrs:{class:"token environment constant"}},[e._v("PATH")])]),s("span",{pre:!0,attrs:{class:"token operator"}},[e._v("=")]),s("span",{pre:!0,attrs:{class:"token string"}},[e._v('"'),s("span",{pre:!0,attrs:{class:"token environment constant"}},[e._v("$HOME")]),e._v("/.local/bin:"),s("span",{pre:!0,attrs:{class:"token environment constant"}},[e._v("$PATH")]),e._v('"')]),e._v(" "),s("span",{pre:!0,attrs:{class:"token comment"}},[e._v("# add path to poetry")]),e._v("\n")])])])]),e._v(" "),s("li",[s("p",[e._v("Install poetry-dynamic-versioning in poetry root env")]),e._v(" "),s("div",{staticClass:"language-shell extra-class"},[s("pre",{pre:!0,attrs:{class:"language-shell"}},[s("code",[e._v("poetry self "),s("span",{pre:!0,attrs:{class:"token function"}},[e._v("add")]),e._v(" poetry-dynamic-versioning\n")])])])]),e._v(" "),s("li",[s("p",[e._v("Specify to poetry the python version to use so that it creates the appropriate virtual environment.")]),e._v(" "),s("div",{staticClass:"language-shell extra-class"},[s("pre",{pre:!0,attrs:{class:"language-shell"}},[s("code",[e._v("poetry "),s("span",{pre:!0,attrs:{class:"token function"}},[e._v("env")]),e._v(" use "),s("span",{pre:!0,attrs:{class:"token number"}},[e._v("3.8")]),e._v(".11\n")])])])]),e._v(" "),s("li",[s("p",[e._v("Preinstall gym 0.21.0 with appropriate option to avoid an error during installation\n(see this "),s("a",{attrs:{href:"https://github.com/openai/gym/issues/3176",target:"_blank",rel:"noopener noreferrer"}},[e._v("issue"),s("OutboundLink")],1),e._v("\nand this "),s("a",{attrs:{href:"https://github.com/python-poetry/poetry/issues/3433#issuecomment-840509576",target:"_blank",rel:"noopener noreferrer"}},[e._v("solution"),s("OutboundLink")],1),e._v("):")]),e._v(" "),s("div",{staticClass:"language-shell extra-class"},[s("pre",{pre:!0,attrs:{class:"language-shell"}},[s("code",[e._v("poetry run python -m pip "),s("span",{pre:!0,attrs:{class:"token function"}},[e._v("install")]),e._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[e._v('"pip==22"')]),e._v(" "),s("span",{pre:!0,attrs:{class:"token comment"}},[e._v("# starting with pip 23.1, gym 0.21.0 is not intallable anymore")]),e._v("\npoetry run python -m pip "),s("span",{pre:!0,attrs:{class:"token function"}},[e._v("install")]),e._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[e._v('"setuptools<67"')]),e._v(" "),s("span",{pre:!0,attrs:{class:"token comment"}},[e._v("# starting with setuptools 67, gym 0.21.0 is not intallable anymore")]),e._v("\npoetry run python -m pip uninstall -y wheel "),s("span",{pre:!0,attrs:{class:"token comment"}},[e._v("# wheel must not be here to fall back directly to python setup.py")]),e._v("\npoetry run python -m pip "),s("span",{pre:!0,attrs:{class:"token function"}},[e._v("install")]),e._v(" "),s("span",{pre:!0,attrs:{class:"token assign-left variable"}},[e._v("gym")]),s("span",{pre:!0,attrs:{class:"token operator"}},[e._v("==")]),s("span",{pre:!0,attrs:{class:"token number"}},[e._v("0.21")]),e._v(".0 --no-use-pep517\n")])])])]),e._v(" "),s("li",[s("p",[e._v("Install all dependencies as defined in "),s("code",[e._v("poetry.lock")]),e._v(", build and install the c++ library.")]),e._v(" "),s("div",{staticClass:"language-shell extra-class"},[s("pre",{pre:!0,attrs:{class:"language-shell"}},[s("code",[s("span",{pre:!0,attrs:{class:"token function"}},[e._v("rm")]),e._v(" -rf build "),s("span",{pre:!0,attrs:{class:"token comment"}},[e._v("# removing previous build")]),e._v("\npoetry "),s("span",{pre:!0,attrs:{class:"token function"}},[e._v("install")]),e._v(" --extras all\n")])])])])])])])])]),e._v(" "),s("h4",{attrs:{id:"alternate-installation-with-conda-poetry"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#alternate-installation-with-conda-poetry"}},[e._v("#")]),e._v(" Alternate installation with conda + poetry")]),e._v(" "),s("p",[e._v("You can also use conda rather than pyenv. It can be useful when you cannot install poetry via the above method,\nas it can also be installed by conda via the conda-forge channel.")]),e._v(" "),s("ul",[s("li",[s("p",[e._v('Clone the source and got to the "scikit-decide" root directory.')]),e._v(" "),s("div",{staticClass:"language-shell extra-class"},[s("pre",{pre:!0,attrs:{class:"language-shell"}},[s("code",[s("span",{pre:!0,attrs:{class:"token function"}},[e._v("git")]),e._v(" clone --recurse-submodules -j8 https://github.com/airbus/scikit-decide.git\n"),s("span",{pre:!0,attrs:{class:"token builtin class-name"}},[e._v("cd")]),e._v(" scikit-decide\n")])])])]),e._v(" "),s("li",[s("p",[e._v("Create and activate a conda environment with the proper python version for the scikit-decide project.")]),e._v(" "),s("div",{staticClass:"language-shell extra-class"},[s("pre",{pre:!0,attrs:{class:"language-shell"}},[s("code",[e._v("conda create -n test_dev_skdecide "),s("span",{pre:!0,attrs:{class:"token assign-left variable"}},[e._v("python")]),s("span",{pre:!0,attrs:{class:"token operator"}},[e._v("=")]),s("span",{pre:!0,attrs:{class:"token number"}},[e._v("3.8")]),e._v(".11\nconda activate test_dev_skdecide\n")])])])]),e._v(" "),s("li",[s("p",[e._v("Update pip installer")]),e._v(" "),s("div",{staticClass:"language-shell extra-class"},[s("pre",{pre:!0,attrs:{class:"language-shell"}},[s("code",[e._v("pip "),s("span",{pre:!0,attrs:{class:"token function"}},[e._v("install")]),e._v(" -U pip\n")])])])]),e._v(" "),s("li",[s("p",[e._v("Install poetry in the environment")]),e._v(" "),s("div",{staticClass:"language-shell extra-class"},[s("pre",{pre:!0,attrs:{class:"language-shell"}},[s("code",[e._v("conda "),s("span",{pre:!0,attrs:{class:"token function"}},[e._v("install")]),e._v(" -c conda-forge poetry\n")])])])]),e._v(" "),s("li",[s("p",[e._v("Install poetry-dynamic-versioning in poetry root env")]),e._v(" "),s("div",{staticClass:"language-shell extra-class"},[s("pre",{pre:!0,attrs:{class:"language-shell"}},[s("code",[e._v("poetry self "),s("span",{pre:!0,attrs:{class:"token function"}},[e._v("add")]),e._v(" poetry-dynamic-versioning\n")])])])]),e._v(" "),s("li",[s("p",[e._v("Preinstall gym 0.21.0 with appropriate option to avoid an error during installation\n(see this "),s("a",{attrs:{href:"https://github.com/openai/gym/issues/3176",target:"_blank",rel:"noopener noreferrer"}},[e._v("issue"),s("OutboundLink")],1),e._v("\nand this "),s("a",{attrs:{href:"https://github.com/python-poetry/poetry/issues/3433#issuecomment-840509576",target:"_blank",rel:"noopener noreferrer"}},[e._v("solution"),s("OutboundLink")],1),e._v("):")]),e._v(" "),s("div",{staticClass:"language-shell extra-class"},[s("pre",{pre:!0,attrs:{class:"language-shell"}},[s("code",[e._v("poetry run python -m pip "),s("span",{pre:!0,attrs:{class:"token function"}},[e._v("install")]),e._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[e._v('"pip==22"')]),e._v(" "),s("span",{pre:!0,attrs:{class:"token comment"}},[e._v("# starting with pip 23.1, gym 0.21.0 is not intallable anymore")]),e._v("\npoetry run python -m pip "),s("span",{pre:!0,attrs:{class:"token function"}},[e._v("install")]),e._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[e._v('"setuptools<67"')]),e._v(" "),s("span",{pre:!0,attrs:{class:"token comment"}},[e._v("# starting with setuptools 67, gym 0.21.0 is not intallable anymore")]),e._v("\npoetry run python -m pip uninstall -y wheel "),s("span",{pre:!0,attrs:{class:"token comment"}},[e._v("# wheel must not be here to fall back directly to python setup.py")]),e._v("\npoetry run python -m pip "),s("span",{pre:!0,attrs:{class:"token function"}},[e._v("install")]),e._v(" "),s("span",{pre:!0,attrs:{class:"token assign-left variable"}},[e._v("gym")]),s("span",{pre:!0,attrs:{class:"token operator"}},[e._v("==")]),s("span",{pre:!0,attrs:{class:"token number"}},[e._v("0.21")]),e._v(".0 --no-use-pep517\n")])])])]),e._v(" "),s("li",[s("p",[e._v("Install all dependencies as defined in "),s("code",[e._v("poetry.lock")]),e._v(", build and install the c++ library.")]),e._v(" "),s("div",{staticClass:"language-shell extra-class"},[s("pre",{pre:!0,attrs:{class:"language-shell"}},[s("code",[s("span",{pre:!0,attrs:{class:"token function"}},[e._v("rm")]),e._v(" -rf build "),s("span",{pre:!0,attrs:{class:"token comment"}},[e._v("# removing previous build")]),e._v("\npoetry "),s("span",{pre:!0,attrs:{class:"token function"}},[e._v("install")]),e._v(" --extras all\n")])])])])]),e._v(" "),s("h4",{attrs:{id:"use-of-developer-mode-installation"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#use-of-developer-mode-installation"}},[e._v("#")]),e._v(" Use of developer mode installation")]),e._v(" "),s("p",[e._v("Now you are able to use the library in developer mode (i.e. with code modifications directly taken into account)\nby prefixing all commands with "),s("code",[e._v("poetry run")]),e._v(".\nFor instance:")]),e._v(" "),s("ul",[s("li",[e._v("to see the list of installed packages: "),s("code",[e._v("poetry run pip list")]),e._v(" (NB: you can also use "),s("code",[e._v("poetry show")]),e._v(")")]),e._v(" "),s("li",[e._v("to run the tutorial script from examples: "),s("code",[e._v("poetry run python examples/tutorial.py")])])]),e._v(" "),s("h3",{attrs:{id:"building-the-docs-locally"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#building-the-docs-locally"}},[e._v("#")]),e._v(" Building the docs locally")]),e._v(" "),s("p",[e._v("The documentation is using "),s("a",{attrs:{href:"https://v1.vuepress.vuejs.org",target:"_blank",rel:"noopener noreferrer"}},[e._v("VuePress"),s("OutboundLink")],1),e._v(" to generate an interactive static website.\nSome pages are generated from code thanks to the Python script "),s("code",[e._v("docs/autodoc.py")]),e._v(".")]),e._v(" "),s("h4",{attrs:{id:"install-the-library-in-developer-mode"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#install-the-library-in-developer-mode"}},[e._v("#")]),e._v(" Install the library in developer mode.")]),e._v(" "),s("p",[e._v("See "),s("a",{attrs:{href:"#installing-from-source-in-developer-mode"}},[e._v("above")]),e._v(" to install scikit-decide with poetry.")]),e._v(" "),s("h4",{attrs:{id:"install-the-documentation-dependencies"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#install-the-documentation-dependencies"}},[e._v("#")]),e._v(" Install the documentation dependencies")]),e._v(" "),s("p",[e._v("The Python dependencies should have been installed in previous step,\nbut you still need to install the JavaScript ones (including VuePress).")]),e._v(" "),s("p",[e._v("First, get Yarn (package manager) by following "),s("a",{attrs:{href:"https://yarnpkg.com/en/docs/install",target:"_blank",rel:"noopener noreferrer"}},[e._v("these installation steps"),s("OutboundLink")],1),e._v(".")]),e._v(" "),s("p",[e._v('Make sure you are in the "scikit-decide" root directory and install documentation dependencies:')]),e._v(" "),s("div",{staticClass:"language-shell extra-class"},[s("pre",{pre:!0,attrs:{class:"language-shell"}},[s("code",[s("span",{pre:!0,attrs:{class:"token function"}},[e._v("yarn")]),e._v(" "),s("span",{pre:!0,attrs:{class:"token function"}},[e._v("install")]),e._v("\n")])])]),s("h4",{attrs:{id:"define-environment-variables-for-binder-links"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#define-environment-variables-for-binder-links"}},[e._v("#")]),e._v(" Define environment variables for binder links")]),e._v(" "),s("p",[e._v("In order to define appropriate links for notebooks (github source + launching on binder), we need several environment variables:")]),e._v(" "),s("ul",[s("li",[e._v("AUTODOC_BINDER_ENV_GH_REPO_NAME: name of the github repository hosting the binder environment")]),e._v(" "),s("li",[e._v("AUTODOC_BINDER_ENV_GH_BRANCH: branch hosting the binder environment")]),e._v(" "),s("li",[e._v("AUTODOC_NOTEBOOKS_REPO_URL: url of the content repository for the notebooks")]),e._v(" "),s("li",[e._v("AUTODOC_NOTEBOOKS_BRANCH: branch containing the notebooks")])]),e._v(" "),s("p",[e._v("For instance:")]),e._v(" "),s("div",{staticClass:"language-shell extra-class"},[s("pre",{pre:!0,attrs:{class:"language-shell"}},[s("code",[s("span",{pre:!0,attrs:{class:"token builtin class-name"}},[e._v("export")]),e._v(" "),s("span",{pre:!0,attrs:{class:"token assign-left variable"}},[e._v("AUTODOC_BINDER_ENV_GH_REPO_NAME")]),s("span",{pre:!0,attrs:{class:"token operator"}},[e._v("=")]),s("span",{pre:!0,attrs:{class:"token string"}},[e._v('"airbus/scikit-decide"')]),e._v("\n"),s("span",{pre:!0,attrs:{class:"token builtin class-name"}},[e._v("export")]),e._v(" "),s("span",{pre:!0,attrs:{class:"token assign-left variable"}},[e._v("AUTODOC_BINDER_ENV_GH_BRANCH")]),s("span",{pre:!0,attrs:{class:"token operator"}},[e._v("=")]),s("span",{pre:!0,attrs:{class:"token string"}},[e._v('"binder"')]),e._v("\n"),s("span",{pre:!0,attrs:{class:"token assign-left variable"}},[e._v("current_repo_url_withdotgit")]),s("span",{pre:!0,attrs:{class:"token operator"}},[e._v("=")]),s("span",{pre:!0,attrs:{class:"token variable"}},[s("span",{pre:!0,attrs:{class:"token variable"}},[e._v("$(")]),s("span",{pre:!0,attrs:{class:"token function"}},[e._v("git")]),e._v(" remote get-url origin"),s("span",{pre:!0,attrs:{class:"token variable"}},[e._v(")")])]),e._v("\n"),s("span",{pre:!0,attrs:{class:"token builtin class-name"}},[e._v("export")]),e._v(" "),s("span",{pre:!0,attrs:{class:"token assign-left variable"}},[e._v("AUTODOC_NOTEBOOKS_REPO_URL")]),s("span",{pre:!0,attrs:{class:"token operator"}},[e._v("=")]),s("span",{pre:!0,attrs:{class:"token variable"}},[e._v("${current_repo_url_withdotgit"),s("span",{pre:!0,attrs:{class:"token operator"}},[e._v("/")]),e._v(".git"),s("span",{pre:!0,attrs:{class:"token operator"}},[e._v("/")]),e._v("}")]),e._v("\n"),s("span",{pre:!0,attrs:{class:"token builtin class-name"}},[e._v("export")]),e._v(" "),s("span",{pre:!0,attrs:{class:"token assign-left variable"}},[e._v("AUTODOC_NOTEBOOKS_BRANCH")]),s("span",{pre:!0,attrs:{class:"token operator"}},[e._v("=")]),s("span",{pre:!0,attrs:{class:"token variable"}},[s("span",{pre:!0,attrs:{class:"token variable"}},[e._v("$(")]),s("span",{pre:!0,attrs:{class:"token function"}},[e._v("git")]),e._v(" branch --show-current"),s("span",{pre:!0,attrs:{class:"token variable"}},[e._v(")")])]),e._v("\n")])])]),s("h4",{attrs:{id:"build-the-docs"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#build-the-docs"}},[e._v("#")]),e._v(" Build the docs")]),e._v(" "),s("p",[e._v('Make sure you are in the "scikit-decide" root directory and using the virtual environment where you installed scikit-decide.\nIf you used poetry, that means prepending python commands with '),s("code",[e._v("poetry run")]),e._v(".\nThen generate and serve locally the documentation with:")]),e._v(" "),s("div",{staticClass:"language-shell extra-class"},[s("pre",{pre:!0,attrs:{class:"language-shell"}},[s("code",[e._v("poetry run "),s("span",{pre:!0,attrs:{class:"token function"}},[e._v("yarn")]),e._v(" docs:dev\n")])])]),s("p",[e._v("NB: The above command will call "),s("code",[e._v("python docs/autodoc.py")]),e._v(" hence the use of "),s("code",[e._v("poetry run")]),e._v(".")]),e._v(" "),s("p",[e._v("Open your web browser to access the documentation (by default on http://localhost:8080/scikit-decide/).")]),e._v(" "),s("h3",{attrs:{id:"running-unit-tests"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#running-unit-tests"}},[e._v("#")]),e._v(" Running unit tests")]),e._v(" "),s("p",[e._v("The unit tests are gathered in "),s("code",[e._v("tests/")]),e._v(" folder and run with "),s("a",{attrs:{href:"https://docs.pytest.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("pytest"),s("OutboundLink")],1),e._v(".\nProviding you installed the library in developer mode as described "),s("a",{attrs:{href:"#installing-from-source-in-developer-mode"}},[e._v("above")]),e._v(",\npytest should have been already installed by poetry.")]),e._v(" "),s("p",[e._v('From the "scikit-decide" root directory, run unit tests with:')]),e._v(" "),s("div",{staticClass:"language-shell extra-class"},[s("pre",{pre:!0,attrs:{class:"language-shell"}},[s("code",[e._v("poetry run pytest tests\n")])])]),s("h3",{attrs:{id:"running-notebooks-as-tests"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#running-notebooks-as-tests"}},[e._v("#")]),e._v(" Running notebooks as tests")]),e._v(" "),s("p",[e._v("One can test programmatically that notebooks are not broken thanks to "),s("a",{attrs:{href:"https://github.com/treebeardtech/nbmake",target:"_blank",rel:"noopener noreferrer"}},[e._v("nbmake"),s("OutboundLink")],1),e._v(" extension for pytest.")]),e._v(" "),s("div",{staticClass:"language-shell extra-class"},[s("pre",{pre:!0,attrs:{class:"language-shell"}},[s("code",[e._v("poetry run pytest --nbmake notebooks -v\n")])])]),s("h2",{attrs:{id:"guidelines-to-follow-when-preparing-a-contribution"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#guidelines-to-follow-when-preparing-a-contribution"}},[e._v("#")]),e._v(" Guidelines to follow when preparing a contribution")]),e._v(" "),s("h3",{attrs:{id:"coding-style-and-code-linting"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#coding-style-and-code-linting"}},[e._v("#")]),e._v(" Coding style and code linting")]),e._v(" "),s("p",[e._v("To help maintaining the same coding style across the project, some code linters are used via "),s("a",{attrs:{href:"https://pre-commit.com/",target:"_blank",rel:"noopener noreferrer"}},[e._v("pre-commit"),s("OutboundLink")],1),e._v(".")]),e._v(" "),s("p",[e._v("It is used by CI to run checks at each push, but can also be used locally.")]),e._v(" "),s("p",[e._v("Once installed, you can run it on all files with")]),e._v(" "),s("div",{staticClass:"language-shell extra-class"},[s("pre",{pre:!0,attrs:{class:"language-shell"}},[s("code",[e._v("pre-commit run --all-files\n")])])]),s("p",[e._v("Beware that doing so, you are actually modifying the files.")]),e._v(" "),s("p",[e._v("You can also use it when committing:")]),e._v(" "),s("ul",[s("li",[e._v("stage your changes: "),s("code",[e._v("git add your_files")]),e._v(",")]),e._v(" "),s("li",[e._v("run pre-commit on the staged files: "),s("code",[e._v("pre-commit run")]),e._v(",")]),e._v(" "),s("li",[e._v("check the changes made,")]),e._v(" "),s("li",[e._v("accept them by adding modified files: "),s("code",[e._v("git add -u")]),e._v(",")]),e._v(" "),s("li",[e._v("commit: "),s("code",[e._v("git commit")]),e._v(".")])]),e._v(" "),s("p",[e._v("This can also be done automatically at each commit if you add pre-commit to git hooks with "),s("code",[e._v("pre-commit install")]),e._v(".\nBeware that when doing so,")]),e._v(" "),s("ul",[s("li",[e._v("the changes will be refused if pre-commit actually modifies the files,")]),e._v(" "),s("li",[e._v("you can then accept the modifications with "),s("code",[e._v("git add -u")]),e._v(",")]),e._v(" "),s("li",[e._v("you can still force a commit that violates pre-commit checks with "),s("code",[e._v("git commit -n")]),e._v(" or "),s("code",[e._v("git commit --no-verify")]),e._v(".")])]),e._v(" "),s("p",[e._v("If you prefer run pre-commit manually, you can remove the hooks with "),s("code",[e._v("pre-commit uninstall")]),e._v(".")]),e._v(" "),s("h3",{attrs:{id:"notebooks"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#notebooks"}},[e._v("#")]),e._v(" Notebooks")]),e._v(" "),s("p",[e._v("We try to give some introductory examples via notebooks available in the corresponding "),s("code",[e._v("notebooks/")]),e._v(" directory.")]),e._v(" "),s("p",[e._v("The list of these notebooks is automatically inserted in the documentation with a title and a description.\nThese are actually extracted from the first cell. To enable that, each notebook should")]),e._v(" "),s("ul",[s("li",[e._v("start with a markdown cell,")]),e._v(" "),s("li",[e._v('its first line being the title starting with one number sign ("# "),')]),e._v(" "),s("li",[e._v("the remaining lines being used as the description.")])]),e._v(" "),s("p",[e._v("For instance:")]),e._v(" "),s("div",{staticClass:"language-markdown extra-class"},[s("pre",{pre:!0,attrs:{class:"language-markdown"}},[s("code",[s("span",{pre:!0,attrs:{class:"token title important"}},[s("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("#")]),e._v(" Great notebook title")]),e._v("\n\nA quick description of the main features of the notebook.\nCan be on several lines.\n\nCan include a nice thumbnail.\n"),s("span",{pre:!0,attrs:{class:"token url"}},[s("span",{pre:!0,attrs:{class:"token operator"}},[e._v("!")]),e._v("["),s("span",{pre:!0,attrs:{class:"token content"}},[e._v("Notebook_thumbnail")]),e._v("]("),s("span",{pre:!0,attrs:{class:"token url"}},[e._v("https://airbus.github.io/scikit-decide/maze.png")]),e._v(")")]),e._v("\n")])])]),s("h3",{attrs:{id:"adding-unit-tests"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#adding-unit-tests"}},[e._v("#")]),e._v(" Adding unit tests")]),e._v(" "),s("ul",[s("li",[e._v("Whenever adding some code, think to add some tests to the "),s("code",[e._v("tests/")]),e._v(" folder.")]),e._v(" "),s("li",[e._v("Whenever fixing a bug, think to add a test that crashes before fixing the bug and does not afterwards.")])]),e._v(" "),s("p",[e._v("Follow "),s("a",{attrs:{href:"#running-unit-tests"}},[e._v("above instructions")]),e._v(" to run them with pytest.")]),e._v(" "),s("h2",{attrs:{id:"submitting-pull-requests"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#submitting-pull-requests"}},[e._v("#")]),e._v(" Submitting pull requests")]),e._v(" "),s("p",[e._v("When you think you are ready to merge your modifications into the main repository, you will have to open a pull request (PR).\nWe can summarize the process as follows:")]),e._v(" "),s("ul",[s("li",[e._v("Fork the repository on github.")]),e._v(" "),s("li",[e._v("Clone your fork on your computer.")]),e._v(" "),s("li",[e._v("Make your changes and push them to your fork.")]),e._v(" "),s("li",[e._v("Do the necessary checks (see "),s("a",{attrs:{href:"#prior-checks"}},[e._v("below")]),e._v(").")]),e._v(" "),s("li",[e._v("Reorganize your commits (see "),s("a",{attrs:{href:"#reorganizing-commits"}},[e._v("below")]),e._v(").")]),e._v(" "),s("li",[e._v("Submit your pull request (see "),s("a",{attrs:{href:"https://help.github.com/articles/creating-a-pull-request-from-a-fork/",target:"_blank",rel:"noopener noreferrer"}},[e._v("github documentation"),s("OutboundLink")],1),e._v(").")]),e._v(" "),s("li",[e._v("See if all CI checks passed on your PR.")]),e._v(" "),s("li",[e._v("Wait for a review.")]),e._v(" "),s("li",[e._v("Take the comments and required changes into account.")])]),e._v(" "),s("p",[e._v("Note that a PR needs at least one review by a core developer to be merged.")]),e._v(" "),s("p",[e._v("You may want to add a reference to the main repository to fetch from it and (re)base your changes on it:")]),e._v(" "),s("div",{staticClass:"language-shell extra-class"},[s("pre",{pre:!0,attrs:{class:"language-shell"}},[s("code",[s("span",{pre:!0,attrs:{class:"token function"}},[e._v("git")]),e._v(" remote "),s("span",{pre:!0,attrs:{class:"token function"}},[e._v("add")]),e._v(" upstream https://github.com/airbus/scikit-decide\n")])])]),s("p",[e._v("This "),s("a",{attrs:{href:"https://medium.com/google-developer-experts/how-to-pull-request-d75ac81449a5",target:"_blank",rel:"noopener noreferrer"}},[e._v("post"),s("OutboundLink")],1),e._v(" points out good practices to follow to submit great pull requests and review them efficiently.")]),e._v(" "),s("h3",{attrs:{id:"prior-checks"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#prior-checks"}},[e._v("#")]),e._v(" Prior checks")]),e._v(" "),s("p",[e._v("Before submitting your pull request, think to")]),e._v(" "),s("ul",[s("li",[s("a",{attrs:{href:"#running-unit-tests"}},[e._v("run the unit tests")]),e._v(",")]),e._v(" "),s("li",[s("a",{attrs:{href:"#building-the-docs-locally"}},[e._v("check the documentation locally")]),e._v(" if you modified it,")]),e._v(" "),s("li",[e._v("check you respect the coding styles by "),s("a",{attrs:{href:"#coding-style-and-code-linting"}},[e._v("running linters")]),e._v(".")])]),e._v(" "),s("p",[e._v("If you do not, you will still be able to see the status of your PR as CI will do these checks for you.")]),e._v(" "),s("h3",{attrs:{id:"reorganizing-commits"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#reorganizing-commits"}},[e._v("#")]),e._v(" Reorganizing commits")]),e._v(" "),s("p",[e._v("On your way to implement your contribution, you will probably have lots of commits,\nsome modifying other ones from the same PR, or only modifying the code style.")]),e._v(" "),s("p",[e._v("At the end of your work, consider reorganizing them by")]),e._v(" "),s("ul",[s("li",[e._v("squashing them into one or only a few logical commits,")]),e._v(" "),s("li",[e._v("having a separate commit to reformat previous existing code if necessary,")]),e._v(" "),s("li",[e._v('rewritting commit messages so that it explains the changes made and why, the "how" part being explained by the code itself\n(see this '),s("a",{attrs:{href:"https://chris.beams.io/posts/git-commit/",target:"_blank",rel:"noopener noreferrer"}},[e._v("post"),s("OutboundLink")],1),e._v(" about what a commit message should and should not contain),")]),e._v(" "),s("li",[e._v("rebasing on upstream repository master branch if it diverged too much by the time you finished.")])]),e._v(" "),s("p",[e._v("You can use "),s("code",[e._v("git rebase -i")]),e._v(" to do that, as explained in "),s("a",{attrs:{href:"https://git-scm.com/book/en/v2/Git-Tools-Rewriting-History",target:"_blank",rel:"noopener noreferrer"}},[e._v("git documentation"),s("OutboundLink")],1),e._v(".")])])}),[],!1,null,null,null);t.default=n.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[18],{534:function(e,t,s){"use strict";s.r(t);var a=s(38),n=Object(a.a)({},(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[s("h1",{attrs:{id:"contributing-to-scikit-decide"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#contributing-to-scikit-decide"}},[e._v("#")]),e._v(" Contributing to scikit-decide")]),e._v(" "),s("p",[e._v("We welcome all contributions to scikit-decide.")]),e._v(" "),s("p",[e._v("You can help by:")]),e._v(" "),s("ul",[s("li",[e._v("fixing bugs (see "),s("a",{attrs:{href:"https://github.com/airbus/scikit-decide/issues",target:"_blank",rel:"noopener noreferrer"}},[e._v("issues"),s("OutboundLink")],1),e._v(' with label "bug"),')]),e._v(" "),s("li",[e._v("adding new domains or solvers to the hub in "),s("code",[e._v("skdecide/hub/")]),e._v(",")]),e._v(" "),s("li",[e._v("improving the documentation,")]),e._v(" "),s("li",[e._v("adding and improving educational notebooks in "),s("code",[e._v("notebooks/")]),e._v(".")])]),e._v(" "),s("p",[e._v("This is not exhaustive.")]),e._v(" "),s("p",[e._v("The project is hosted on "),s("a",{attrs:{href:"https://github.com/airbus/scikit-decide",target:"_blank",rel:"noopener noreferrer"}},[e._v("https://github.com/airbus/scikit-decide"),s("OutboundLink")],1),e._v(".\nContributions to the repository are made by submitting pull requests.")]),e._v(" "),s("p",[e._v("This guide is organized as follows:")]),e._v(" "),s("ul",[s("li",[s("a",{attrs:{href:"#setting-up-your-development-environment"}},[e._v("Setting up your development environment")])]),e._v(" "),s("li",[s("a",{attrs:{href:"#guidelines-to-follow-when-preparing-a-contribution"}},[e._v("Guidelines to follow when preparing a contribution")])]),e._v(" "),s("li",[s("a",{attrs:{href:"#submitting-pull-requests"}},[e._v("Submitting pull requests")]),e._v(" to put your contribution in the main repository")])]),e._v(" "),s("h2",{attrs:{id:"setting-up-your-development-environment"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#setting-up-your-development-environment"}},[e._v("#")]),e._v(" Setting up your development environment")]),e._v(" "),s("h3",{attrs:{id:"prerequisite-minizinc"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#prerequisite-minizinc"}},[e._v("#")]),e._v(" Prerequisite: minizinc")]),e._v(" "),s("p",[e._v("You need first to install "),s("a",{attrs:{href:"https://www.minizinc.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("minizinc"),s("OutboundLink")],1),e._v(" (version greater than 2.6) and update the "),s("code",[e._v("PATH")]),e._v(" environment variable\nso that it can be found by Python. See "),s("a",{attrs:{href:"https://www.minizinc.org/doc-latest/en/installation.html",target:"_blank",rel:"noopener noreferrer"}},[e._v("minizinc documentation"),s("OutboundLink")],1),e._v(" for more details.")]),e._v(" "),s("h3",{attrs:{id:"installing-from-source-in-developer-mode"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#installing-from-source-in-developer-mode"}},[e._v("#")]),e._v(" Installing from source in developer mode")]),e._v(" "),s("blockquote",[s("p",[s("strong",[e._v("Disclaimer")]),e._v(": The following process has only been tested on Linux/MacOS platforms.")])]),e._v(" "),s("p",[e._v("In order to install scikit-decide from the source so that your modification to the library are taken into account, we recommmend using poetry.")]),e._v(" "),s("h4",{attrs:{id:"prerequisites-for-c"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#prerequisites-for-c"}},[e._v("#")]),e._v(" Prerequisites for C++")]),e._v(" "),s("p",[e._v("To build the c++ part of the library,\nyou need a minimal environment with c++ compiler, cmake, and boost.\nTo be able to use parallelism based on openMP, you should also install libomp.\nFor instance, on macOS it is done via:")]),e._v(" "),s("div",{staticClass:"language-shell extra-class"},[s("pre",{pre:!0,attrs:{class:"language-shell"}},[s("code",[e._v("xcode-select --install\nbrew "),s("span",{pre:!0,attrs:{class:"token function"}},[e._v("install")]),e._v(" cmake\nbrew "),s("span",{pre:!0,attrs:{class:"token function"}},[e._v("install")]),e._v(" boost\nbrew "),s("span",{pre:!0,attrs:{class:"token function"}},[e._v("install")]),e._v(" libomp\n")])])]),s("h4",{attrs:{id:"installation-with-pyenv-poetry"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#installation-with-pyenv-poetry"}},[e._v("#")]),e._v(" Installation with pyenv + poetry")]),e._v(" "),s("p",[e._v("Here are the steps to follow:")]),e._v(" "),s("ul",[s("li",[s("p",[e._v('Clone the source and got to the "scikit-decide" root directory.')]),e._v(" "),s("div",{staticClass:"language-shell extra-class"},[s("pre",{pre:!0,attrs:{class:"language-shell"}},[s("code",[s("span",{pre:!0,attrs:{class:"token function"}},[e._v("git")]),e._v(" clone --recurse-submodules -j8 https://github.com/airbus/scikit-decide.git\n"),s("span",{pre:!0,attrs:{class:"token builtin class-name"}},[e._v("cd")]),e._v(" scikit-decide\n")])])])]),e._v(" "),s("li",[s("p",[e._v("Set proper python version (e.g. 3.8.11) for the scikit-decide project.")]),e._v(" "),s("div",{staticClass:"language-shell extra-class"},[s("pre",{pre:!0,attrs:{class:"language-shell"}},[s("code",[e._v("pyenv "),s("span",{pre:!0,attrs:{class:"token builtin class-name"}},[e._v("local")]),e._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[e._v("3.8")]),e._v(".11\n")])])])]),e._v(" "),s("li",[s("p",[e._v("Update pip installer (the one that "),s("code",[e._v("pyenv")]),e._v(" makes you use).")]),e._v(" "),s("div",{staticClass:"language-shell extra-class"},[s("pre",{pre:!0,attrs:{class:"language-shell"}},[s("code",[e._v("pip "),s("span",{pre:!0,attrs:{class:"token function"}},[e._v("install")]),e._v(" -U pip\n")])])]),s("ul",[s("li",[s("p",[e._v("Use poetry to install the project:")]),e._v(" "),s("ul",[s("li",[s("p",[e._v("Install "),s("a",{attrs:{href:"https://python-poetry.org/docs/master/#installation",target:"_blank",rel:"noopener noreferrer"}},[e._v("poetry"),s("OutboundLink")],1),e._v(".")]),e._v(" "),s("div",{staticClass:"language-shell extra-class"},[s("pre",{pre:!0,attrs:{class:"language-shell"}},[s("code",[s("span",{pre:!0,attrs:{class:"token function"}},[e._v("curl")]),e._v(" -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/install-poetry.py "),s("span",{pre:!0,attrs:{class:"token operator"}},[e._v("|")]),e._v(" python -\n"),s("span",{pre:!0,attrs:{class:"token builtin class-name"}},[e._v("export")]),e._v(" "),s("span",{pre:!0,attrs:{class:"token assign-left variable"}},[s("span",{pre:!0,attrs:{class:"token environment constant"}},[e._v("PATH")])]),s("span",{pre:!0,attrs:{class:"token operator"}},[e._v("=")]),s("span",{pre:!0,attrs:{class:"token string"}},[e._v('"'),s("span",{pre:!0,attrs:{class:"token environment constant"}},[e._v("$HOME")]),e._v("/.local/bin:"),s("span",{pre:!0,attrs:{class:"token environment constant"}},[e._v("$PATH")]),e._v('"')]),e._v(" "),s("span",{pre:!0,attrs:{class:"token comment"}},[e._v("# add path to poetry")]),e._v("\n")])])])]),e._v(" "),s("li",[s("p",[e._v("Install poetry-dynamic-versioning in poetry root env")]),e._v(" "),s("div",{staticClass:"language-shell extra-class"},[s("pre",{pre:!0,attrs:{class:"language-shell"}},[s("code",[e._v("poetry self "),s("span",{pre:!0,attrs:{class:"token function"}},[e._v("add")]),e._v(" poetry-dynamic-versioning\n")])])])]),e._v(" "),s("li",[s("p",[e._v("Specify to poetry the python version to use so that it creates the appropriate virtual environment.")]),e._v(" "),s("div",{staticClass:"language-shell extra-class"},[s("pre",{pre:!0,attrs:{class:"language-shell"}},[s("code",[e._v("poetry "),s("span",{pre:!0,attrs:{class:"token function"}},[e._v("env")]),e._v(" use "),s("span",{pre:!0,attrs:{class:"token number"}},[e._v("3.8")]),e._v(".11\n")])])])]),e._v(" "),s("li",[s("p",[e._v("Preinstall gym 0.21.0 with appropriate option to avoid an error during installation\n(see this "),s("a",{attrs:{href:"https://github.com/openai/gym/issues/3176",target:"_blank",rel:"noopener noreferrer"}},[e._v("issue"),s("OutboundLink")],1),e._v("\nand this "),s("a",{attrs:{href:"https://github.com/python-poetry/poetry/issues/3433#issuecomment-840509576",target:"_blank",rel:"noopener noreferrer"}},[e._v("solution"),s("OutboundLink")],1),e._v("):")]),e._v(" "),s("div",{staticClass:"language-shell extra-class"},[s("pre",{pre:!0,attrs:{class:"language-shell"}},[s("code",[e._v("poetry run python -m pip "),s("span",{pre:!0,attrs:{class:"token function"}},[e._v("install")]),e._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[e._v('"pip==22"')]),e._v(" "),s("span",{pre:!0,attrs:{class:"token comment"}},[e._v("# starting with pip 23.1, gym 0.21.0 is not intallable anymore")]),e._v("\npoetry run python -m pip "),s("span",{pre:!0,attrs:{class:"token function"}},[e._v("install")]),e._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[e._v('"setuptools<67"')]),e._v(" "),s("span",{pre:!0,attrs:{class:"token comment"}},[e._v("# starting with setuptools 67, gym 0.21.0 is not intallable anymore")]),e._v("\npoetry run python -m pip uninstall -y wheel "),s("span",{pre:!0,attrs:{class:"token comment"}},[e._v("# wheel must not be here to fall back directly to python setup.py")]),e._v("\npoetry run python -m pip "),s("span",{pre:!0,attrs:{class:"token function"}},[e._v("install")]),e._v(" "),s("span",{pre:!0,attrs:{class:"token assign-left variable"}},[e._v("gym")]),s("span",{pre:!0,attrs:{class:"token operator"}},[e._v("==")]),s("span",{pre:!0,attrs:{class:"token number"}},[e._v("0.21")]),e._v(".0 --no-use-pep517\n")])])])]),e._v(" "),s("li",[s("p",[e._v("Install all dependencies as defined in "),s("code",[e._v("poetry.lock")]),e._v(", build and install the c++ library.")]),e._v(" "),s("div",{staticClass:"language-shell extra-class"},[s("pre",{pre:!0,attrs:{class:"language-shell"}},[s("code",[s("span",{pre:!0,attrs:{class:"token function"}},[e._v("rm")]),e._v(" -rf build "),s("span",{pre:!0,attrs:{class:"token comment"}},[e._v("# removing previous build")]),e._v("\npoetry "),s("span",{pre:!0,attrs:{class:"token function"}},[e._v("install")]),e._v(" --extras all\n")])])])])])])])])]),e._v(" "),s("h4",{attrs:{id:"alternate-installation-with-conda-poetry"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#alternate-installation-with-conda-poetry"}},[e._v("#")]),e._v(" Alternate installation with conda + poetry")]),e._v(" "),s("p",[e._v("You can also use conda rather than pyenv. It can be useful when you cannot install poetry via the above method,\nas it can also be installed by conda via the conda-forge channel.")]),e._v(" "),s("ul",[s("li",[s("p",[e._v('Clone the source and got to the "scikit-decide" root directory.')]),e._v(" "),s("div",{staticClass:"language-shell extra-class"},[s("pre",{pre:!0,attrs:{class:"language-shell"}},[s("code",[s("span",{pre:!0,attrs:{class:"token function"}},[e._v("git")]),e._v(" clone --recurse-submodules -j8 https://github.com/airbus/scikit-decide.git\n"),s("span",{pre:!0,attrs:{class:"token builtin class-name"}},[e._v("cd")]),e._v(" scikit-decide\n")])])])]),e._v(" "),s("li",[s("p",[e._v("Create and activate a conda environment with the proper python version for the scikit-decide project.")]),e._v(" "),s("div",{staticClass:"language-shell extra-class"},[s("pre",{pre:!0,attrs:{class:"language-shell"}},[s("code",[e._v("conda create -n test_dev_skdecide "),s("span",{pre:!0,attrs:{class:"token assign-left variable"}},[e._v("python")]),s("span",{pre:!0,attrs:{class:"token operator"}},[e._v("=")]),s("span",{pre:!0,attrs:{class:"token number"}},[e._v("3.8")]),e._v(".11\nconda activate test_dev_skdecide\n")])])])]),e._v(" "),s("li",[s("p",[e._v("Update pip installer")]),e._v(" "),s("div",{staticClass:"language-shell extra-class"},[s("pre",{pre:!0,attrs:{class:"language-shell"}},[s("code",[e._v("pip "),s("span",{pre:!0,attrs:{class:"token function"}},[e._v("install")]),e._v(" -U pip\n")])])])]),e._v(" "),s("li",[s("p",[e._v("Install poetry in the environment")]),e._v(" "),s("div",{staticClass:"language-shell extra-class"},[s("pre",{pre:!0,attrs:{class:"language-shell"}},[s("code",[e._v("conda "),s("span",{pre:!0,attrs:{class:"token function"}},[e._v("install")]),e._v(" -c conda-forge poetry\n")])])])]),e._v(" "),s("li",[s("p",[e._v("Install poetry-dynamic-versioning in poetry root env")]),e._v(" "),s("div",{staticClass:"language-shell extra-class"},[s("pre",{pre:!0,attrs:{class:"language-shell"}},[s("code",[e._v("poetry self "),s("span",{pre:!0,attrs:{class:"token function"}},[e._v("add")]),e._v(" poetry-dynamic-versioning\n")])])])]),e._v(" "),s("li",[s("p",[e._v("Preinstall gym 0.21.0 with appropriate option to avoid an error during installation\n(see this "),s("a",{attrs:{href:"https://github.com/openai/gym/issues/3176",target:"_blank",rel:"noopener noreferrer"}},[e._v("issue"),s("OutboundLink")],1),e._v("\nand this "),s("a",{attrs:{href:"https://github.com/python-poetry/poetry/issues/3433#issuecomment-840509576",target:"_blank",rel:"noopener noreferrer"}},[e._v("solution"),s("OutboundLink")],1),e._v("):")]),e._v(" "),s("div",{staticClass:"language-shell extra-class"},[s("pre",{pre:!0,attrs:{class:"language-shell"}},[s("code",[e._v("poetry run python -m pip "),s("span",{pre:!0,attrs:{class:"token function"}},[e._v("install")]),e._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[e._v('"pip==22"')]),e._v(" "),s("span",{pre:!0,attrs:{class:"token comment"}},[e._v("# starting with pip 23.1, gym 0.21.0 is not intallable anymore")]),e._v("\npoetry run python -m pip "),s("span",{pre:!0,attrs:{class:"token function"}},[e._v("install")]),e._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[e._v('"setuptools<67"')]),e._v(" "),s("span",{pre:!0,attrs:{class:"token comment"}},[e._v("# starting with setuptools 67, gym 0.21.0 is not intallable anymore")]),e._v("\npoetry run python -m pip uninstall -y wheel "),s("span",{pre:!0,attrs:{class:"token comment"}},[e._v("# wheel must not be here to fall back directly to python setup.py")]),e._v("\npoetry run python -m pip "),s("span",{pre:!0,attrs:{class:"token function"}},[e._v("install")]),e._v(" "),s("span",{pre:!0,attrs:{class:"token assign-left variable"}},[e._v("gym")]),s("span",{pre:!0,attrs:{class:"token operator"}},[e._v("==")]),s("span",{pre:!0,attrs:{class:"token number"}},[e._v("0.21")]),e._v(".0 --no-use-pep517\n")])])])]),e._v(" "),s("li",[s("p",[e._v("Install all dependencies as defined in "),s("code",[e._v("poetry.lock")]),e._v(", build and install the c++ library.")]),e._v(" "),s("div",{staticClass:"language-shell extra-class"},[s("pre",{pre:!0,attrs:{class:"language-shell"}},[s("code",[s("span",{pre:!0,attrs:{class:"token function"}},[e._v("rm")]),e._v(" -rf build "),s("span",{pre:!0,attrs:{class:"token comment"}},[e._v("# removing previous build")]),e._v("\npoetry "),s("span",{pre:!0,attrs:{class:"token function"}},[e._v("install")]),e._v(" --extras all\n")])])])])]),e._v(" "),s("h4",{attrs:{id:"use-of-developer-mode-installation"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#use-of-developer-mode-installation"}},[e._v("#")]),e._v(" Use of developer mode installation")]),e._v(" "),s("p",[e._v("Now you are able to use the library in developer mode (i.e. with code modifications directly taken into account)\nby prefixing all commands with "),s("code",[e._v("poetry run")]),e._v(".\nFor instance:")]),e._v(" "),s("ul",[s("li",[e._v("to see the list of installed packages: "),s("code",[e._v("poetry run pip list")]),e._v(" (NB: you can also use "),s("code",[e._v("poetry show")]),e._v(")")]),e._v(" "),s("li",[e._v("to run the tutorial script from examples: "),s("code",[e._v("poetry run python examples/tutorial.py")])])]),e._v(" "),s("h3",{attrs:{id:"building-the-docs-locally"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#building-the-docs-locally"}},[e._v("#")]),e._v(" Building the docs locally")]),e._v(" "),s("p",[e._v("The documentation is using "),s("a",{attrs:{href:"https://v1.vuepress.vuejs.org",target:"_blank",rel:"noopener noreferrer"}},[e._v("VuePress"),s("OutboundLink")],1),e._v(" to generate an interactive static website.\nSome pages are generated from code thanks to the Python script "),s("code",[e._v("docs/autodoc.py")]),e._v(".")]),e._v(" "),s("h4",{attrs:{id:"install-the-library-in-developer-mode"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#install-the-library-in-developer-mode"}},[e._v("#")]),e._v(" Install the library in developer mode.")]),e._v(" "),s("p",[e._v("See "),s("a",{attrs:{href:"#installing-from-source-in-developer-mode"}},[e._v("above")]),e._v(" to install scikit-decide with poetry.")]),e._v(" "),s("h4",{attrs:{id:"install-the-documentation-dependencies"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#install-the-documentation-dependencies"}},[e._v("#")]),e._v(" Install the documentation dependencies")]),e._v(" "),s("p",[e._v("The Python dependencies should have been installed in previous step,\nbut you still need to install the JavaScript ones (including VuePress).")]),e._v(" "),s("p",[e._v("First, get Yarn (package manager) by following "),s("a",{attrs:{href:"https://yarnpkg.com/en/docs/install",target:"_blank",rel:"noopener noreferrer"}},[e._v("these installation steps"),s("OutboundLink")],1),e._v(".")]),e._v(" "),s("p",[e._v('Make sure you are in the "scikit-decide" root directory and install documentation dependencies:')]),e._v(" "),s("div",{staticClass:"language-shell extra-class"},[s("pre",{pre:!0,attrs:{class:"language-shell"}},[s("code",[s("span",{pre:!0,attrs:{class:"token function"}},[e._v("yarn")]),e._v(" "),s("span",{pre:!0,attrs:{class:"token function"}},[e._v("install")]),e._v("\n")])])]),s("h4",{attrs:{id:"define-environment-variables-for-binder-links"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#define-environment-variables-for-binder-links"}},[e._v("#")]),e._v(" Define environment variables for binder links")]),e._v(" "),s("p",[e._v("In order to define appropriate links for notebooks (github source + launching on binder), we need several environment variables:")]),e._v(" "),s("ul",[s("li",[e._v("AUTODOC_BINDER_ENV_GH_REPO_NAME: name of the github repository hosting the binder environment")]),e._v(" "),s("li",[e._v("AUTODOC_BINDER_ENV_GH_BRANCH: branch hosting the binder environment")]),e._v(" "),s("li",[e._v("AUTODOC_NOTEBOOKS_REPO_URL: url of the content repository for the notebooks")]),e._v(" "),s("li",[e._v("AUTODOC_NOTEBOOKS_BRANCH: branch containing the notebooks")])]),e._v(" "),s("p",[e._v("For instance:")]),e._v(" "),s("div",{staticClass:"language-shell extra-class"},[s("pre",{pre:!0,attrs:{class:"language-shell"}},[s("code",[s("span",{pre:!0,attrs:{class:"token builtin class-name"}},[e._v("export")]),e._v(" "),s("span",{pre:!0,attrs:{class:"token assign-left variable"}},[e._v("AUTODOC_BINDER_ENV_GH_REPO_NAME")]),s("span",{pre:!0,attrs:{class:"token operator"}},[e._v("=")]),s("span",{pre:!0,attrs:{class:"token string"}},[e._v('"airbus/scikit-decide"')]),e._v("\n"),s("span",{pre:!0,attrs:{class:"token builtin class-name"}},[e._v("export")]),e._v(" "),s("span",{pre:!0,attrs:{class:"token assign-left variable"}},[e._v("AUTODOC_BINDER_ENV_GH_BRANCH")]),s("span",{pre:!0,attrs:{class:"token operator"}},[e._v("=")]),s("span",{pre:!0,attrs:{class:"token string"}},[e._v('"binder"')]),e._v("\n"),s("span",{pre:!0,attrs:{class:"token assign-left variable"}},[e._v("current_repo_url_withdotgit")]),s("span",{pre:!0,attrs:{class:"token operator"}},[e._v("=")]),s("span",{pre:!0,attrs:{class:"token variable"}},[s("span",{pre:!0,attrs:{class:"token variable"}},[e._v("$(")]),s("span",{pre:!0,attrs:{class:"token function"}},[e._v("git")]),e._v(" remote get-url origin"),s("span",{pre:!0,attrs:{class:"token variable"}},[e._v(")")])]),e._v("\n"),s("span",{pre:!0,attrs:{class:"token builtin class-name"}},[e._v("export")]),e._v(" "),s("span",{pre:!0,attrs:{class:"token assign-left variable"}},[e._v("AUTODOC_NOTEBOOKS_REPO_URL")]),s("span",{pre:!0,attrs:{class:"token operator"}},[e._v("=")]),s("span",{pre:!0,attrs:{class:"token variable"}},[e._v("${current_repo_url_withdotgit"),s("span",{pre:!0,attrs:{class:"token operator"}},[e._v("/")]),e._v(".git"),s("span",{pre:!0,attrs:{class:"token operator"}},[e._v("/")]),e._v("}")]),e._v("\n"),s("span",{pre:!0,attrs:{class:"token builtin class-name"}},[e._v("export")]),e._v(" "),s("span",{pre:!0,attrs:{class:"token assign-left variable"}},[e._v("AUTODOC_NOTEBOOKS_BRANCH")]),s("span",{pre:!0,attrs:{class:"token operator"}},[e._v("=")]),s("span",{pre:!0,attrs:{class:"token variable"}},[s("span",{pre:!0,attrs:{class:"token variable"}},[e._v("$(")]),s("span",{pre:!0,attrs:{class:"token function"}},[e._v("git")]),e._v(" branch --show-current"),s("span",{pre:!0,attrs:{class:"token variable"}},[e._v(")")])]),e._v("\n")])])]),s("h4",{attrs:{id:"build-the-docs"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#build-the-docs"}},[e._v("#")]),e._v(" Build the docs")]),e._v(" "),s("p",[e._v('Make sure you are in the "scikit-decide" root directory and using the virtual environment where you installed scikit-decide.\nIf you used poetry, that means prepending python commands with '),s("code",[e._v("poetry run")]),e._v(".\nThen generate and serve locally the documentation with:")]),e._v(" "),s("div",{staticClass:"language-shell extra-class"},[s("pre",{pre:!0,attrs:{class:"language-shell"}},[s("code",[e._v("poetry run "),s("span",{pre:!0,attrs:{class:"token function"}},[e._v("yarn")]),e._v(" docs:dev\n")])])]),s("p",[e._v("NB: The above command will call "),s("code",[e._v("python docs/autodoc.py")]),e._v(" hence the use of "),s("code",[e._v("poetry run")]),e._v(".")]),e._v(" "),s("p",[e._v("Open your web browser to access the documentation (by default on http://localhost:8080/scikit-decide/).")]),e._v(" "),s("h3",{attrs:{id:"running-unit-tests"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#running-unit-tests"}},[e._v("#")]),e._v(" Running unit tests")]),e._v(" "),s("p",[e._v("The unit tests are gathered in "),s("code",[e._v("tests/")]),e._v(" folder and run with "),s("a",{attrs:{href:"https://docs.pytest.org/",target:"_blank",rel:"noopener noreferrer"}},[e._v("pytest"),s("OutboundLink")],1),e._v(".\nProviding you installed the library in developer mode as described "),s("a",{attrs:{href:"#installing-from-source-in-developer-mode"}},[e._v("above")]),e._v(",\npytest should have been already installed by poetry.")]),e._v(" "),s("p",[e._v('From the "scikit-decide" root directory, run unit tests with:')]),e._v(" "),s("div",{staticClass:"language-shell extra-class"},[s("pre",{pre:!0,attrs:{class:"language-shell"}},[s("code",[e._v("poetry run pytest tests\n")])])]),s("h3",{attrs:{id:"running-notebooks-as-tests"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#running-notebooks-as-tests"}},[e._v("#")]),e._v(" Running notebooks as tests")]),e._v(" "),s("p",[e._v("One can test programmatically that notebooks are not broken thanks to "),s("a",{attrs:{href:"https://github.com/treebeardtech/nbmake",target:"_blank",rel:"noopener noreferrer"}},[e._v("nbmake"),s("OutboundLink")],1),e._v(" extension for pytest.")]),e._v(" "),s("div",{staticClass:"language-shell extra-class"},[s("pre",{pre:!0,attrs:{class:"language-shell"}},[s("code",[e._v("poetry run pytest --nbmake notebooks -v\n")])])]),s("h2",{attrs:{id:"guidelines-to-follow-when-preparing-a-contribution"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#guidelines-to-follow-when-preparing-a-contribution"}},[e._v("#")]),e._v(" Guidelines to follow when preparing a contribution")]),e._v(" "),s("h3",{attrs:{id:"coding-style-and-code-linting"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#coding-style-and-code-linting"}},[e._v("#")]),e._v(" Coding style and code linting")]),e._v(" "),s("p",[e._v("To help maintaining the same coding style across the project, some code linters are used via "),s("a",{attrs:{href:"https://pre-commit.com/",target:"_blank",rel:"noopener noreferrer"}},[e._v("pre-commit"),s("OutboundLink")],1),e._v(".")]),e._v(" "),s("p",[e._v("It is used by CI to run checks at each push, but can also be used locally.")]),e._v(" "),s("p",[e._v("Once installed, you can run it on all files with")]),e._v(" "),s("div",{staticClass:"language-shell extra-class"},[s("pre",{pre:!0,attrs:{class:"language-shell"}},[s("code",[e._v("pre-commit run --all-files\n")])])]),s("p",[e._v("Beware that doing so, you are actually modifying the files.")]),e._v(" "),s("p",[e._v("You can also use it when committing:")]),e._v(" "),s("ul",[s("li",[e._v("stage your changes: "),s("code",[e._v("git add your_files")]),e._v(",")]),e._v(" "),s("li",[e._v("run pre-commit on the staged files: "),s("code",[e._v("pre-commit run")]),e._v(",")]),e._v(" "),s("li",[e._v("check the changes made,")]),e._v(" "),s("li",[e._v("accept them by adding modified files: "),s("code",[e._v("git add -u")]),e._v(",")]),e._v(" "),s("li",[e._v("commit: "),s("code",[e._v("git commit")]),e._v(".")])]),e._v(" "),s("p",[e._v("This can also be done automatically at each commit if you add pre-commit to git hooks with "),s("code",[e._v("pre-commit install")]),e._v(".\nBeware that when doing so,")]),e._v(" "),s("ul",[s("li",[e._v("the changes will be refused if pre-commit actually modifies the files,")]),e._v(" "),s("li",[e._v("you can then accept the modifications with "),s("code",[e._v("git add -u")]),e._v(",")]),e._v(" "),s("li",[e._v("you can still force a commit that violates pre-commit checks with "),s("code",[e._v("git commit -n")]),e._v(" or "),s("code",[e._v("git commit --no-verify")]),e._v(".")])]),e._v(" "),s("p",[e._v("If you prefer run pre-commit manually, you can remove the hooks with "),s("code",[e._v("pre-commit uninstall")]),e._v(".")]),e._v(" "),s("h3",{attrs:{id:"notebooks"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#notebooks"}},[e._v("#")]),e._v(" Notebooks")]),e._v(" "),s("p",[e._v("We try to give some introductory examples via notebooks available in the corresponding "),s("code",[e._v("notebooks/")]),e._v(" directory.")]),e._v(" "),s("p",[e._v("The list of these notebooks is automatically inserted in the documentation with a title and a description.\nThese are actually extracted from the first cell. To enable that, each notebook should")]),e._v(" "),s("ul",[s("li",[e._v("start with a markdown cell,")]),e._v(" "),s("li",[e._v('its first line being the title starting with one number sign ("# "),')]),e._v(" "),s("li",[e._v("the remaining lines being used as the description.")])]),e._v(" "),s("p",[e._v("For instance:")]),e._v(" "),s("div",{staticClass:"language-markdown extra-class"},[s("pre",{pre:!0,attrs:{class:"language-markdown"}},[s("code",[s("span",{pre:!0,attrs:{class:"token title important"}},[s("span",{pre:!0,attrs:{class:"token punctuation"}},[e._v("#")]),e._v(" Great notebook title")]),e._v("\n\nA quick description of the main features of the notebook.\nCan be on several lines.\n\nCan include a nice thumbnail.\n"),s("span",{pre:!0,attrs:{class:"token url"}},[s("span",{pre:!0,attrs:{class:"token operator"}},[e._v("!")]),e._v("["),s("span",{pre:!0,attrs:{class:"token content"}},[e._v("Notebook_thumbnail")]),e._v("]("),s("span",{pre:!0,attrs:{class:"token url"}},[e._v("https://airbus.github.io/scikit-decide/maze.png")]),e._v(")")]),e._v("\n")])])]),s("h3",{attrs:{id:"adding-unit-tests"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#adding-unit-tests"}},[e._v("#")]),e._v(" Adding unit tests")]),e._v(" "),s("ul",[s("li",[e._v("Whenever adding some code, think to add some tests to the "),s("code",[e._v("tests/")]),e._v(" folder.")]),e._v(" "),s("li",[e._v("Whenever fixing a bug, think to add a test that crashes before fixing the bug and does not afterwards.")])]),e._v(" "),s("p",[e._v("Follow "),s("a",{attrs:{href:"#running-unit-tests"}},[e._v("above instructions")]),e._v(" to run them with pytest.")]),e._v(" "),s("h2",{attrs:{id:"submitting-pull-requests"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#submitting-pull-requests"}},[e._v("#")]),e._v(" Submitting pull requests")]),e._v(" "),s("p",[e._v("When you think you are ready to merge your modifications into the main repository, you will have to open a pull request (PR).\nWe can summarize the process as follows:")]),e._v(" "),s("ul",[s("li",[e._v("Fork the repository on github.")]),e._v(" "),s("li",[e._v("Clone your fork on your computer.")]),e._v(" "),s("li",[e._v("Make your changes and push them to your fork.")]),e._v(" "),s("li",[e._v("Do the necessary checks (see "),s("a",{attrs:{href:"#prior-checks"}},[e._v("below")]),e._v(").")]),e._v(" "),s("li",[e._v("Reorganize your commits (see "),s("a",{attrs:{href:"#reorganizing-commits"}},[e._v("below")]),e._v(").")]),e._v(" "),s("li",[e._v("Submit your pull request (see "),s("a",{attrs:{href:"https://help.github.com/articles/creating-a-pull-request-from-a-fork/",target:"_blank",rel:"noopener noreferrer"}},[e._v("github documentation"),s("OutboundLink")],1),e._v(").")]),e._v(" "),s("li",[e._v("See if all CI checks passed on your PR.")]),e._v(" "),s("li",[e._v("Wait for a review.")]),e._v(" "),s("li",[e._v("Take the comments and required changes into account.")])]),e._v(" "),s("p",[e._v("Note that a PR needs at least one review by a core developer to be merged.")]),e._v(" "),s("p",[e._v("You may want to add a reference to the main repository to fetch from it and (re)base your changes on it:")]),e._v(" "),s("div",{staticClass:"language-shell extra-class"},[s("pre",{pre:!0,attrs:{class:"language-shell"}},[s("code",[s("span",{pre:!0,attrs:{class:"token function"}},[e._v("git")]),e._v(" remote "),s("span",{pre:!0,attrs:{class:"token function"}},[e._v("add")]),e._v(" upstream https://github.com/airbus/scikit-decide\n")])])]),s("p",[e._v("This "),s("a",{attrs:{href:"https://medium.com/google-developer-experts/how-to-pull-request-d75ac81449a5",target:"_blank",rel:"noopener noreferrer"}},[e._v("post"),s("OutboundLink")],1),e._v(" points out good practices to follow to submit great pull requests and review them efficiently.")]),e._v(" "),s("h3",{attrs:{id:"prior-checks"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#prior-checks"}},[e._v("#")]),e._v(" Prior checks")]),e._v(" "),s("p",[e._v("Before submitting your pull request, think to")]),e._v(" "),s("ul",[s("li",[s("a",{attrs:{href:"#running-unit-tests"}},[e._v("run the unit tests")]),e._v(",")]),e._v(" "),s("li",[s("a",{attrs:{href:"#building-the-docs-locally"}},[e._v("check the documentation locally")]),e._v(" if you modified it,")]),e._v(" "),s("li",[e._v("check you respect the coding styles by "),s("a",{attrs:{href:"#coding-style-and-code-linting"}},[e._v("running linters")]),e._v(".")])]),e._v(" "),s("p",[e._v("If you do not, you will still be able to see the status of your PR as CI will do these checks for you.")]),e._v(" "),s("h3",{attrs:{id:"reorganizing-commits"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#reorganizing-commits"}},[e._v("#")]),e._v(" Reorganizing commits")]),e._v(" "),s("p",[e._v("On your way to implement your contribution, you will probably have lots of commits,\nsome modifying other ones from the same PR, or only modifying the code style.")]),e._v(" "),s("p",[e._v("At the end of your work, consider reorganizing them by")]),e._v(" "),s("ul",[s("li",[e._v("squashing them into one or only a few logical commits,")]),e._v(" "),s("li",[e._v("having a separate commit to reformat previous existing code if necessary,")]),e._v(" "),s("li",[e._v('rewritting commit messages so that it explains the changes made and why, the "how" part being explained by the code itself\n(see this '),s("a",{attrs:{href:"https://chris.beams.io/posts/git-commit/",target:"_blank",rel:"noopener noreferrer"}},[e._v("post"),s("OutboundLink")],1),e._v(" about what a commit message should and should not contain),")]),e._v(" "),s("li",[e._v("rebasing on upstream repository master branch if it diverged too much by the time you finished.")])]),e._v(" "),s("p",[e._v("You can use "),s("code",[e._v("git rebase -i")]),e._v(" to do that, as explained in "),s("a",{attrs:{href:"https://git-scm.com/book/en/v2/Git-Tools-Rewriting-History",target:"_blank",rel:"noopener noreferrer"}},[e._v("git documentation"),s("OutboundLink")],1),e._v(".")])])}),[],!1,null,null,null);t.default=n.exports}}]); \ No newline at end of file diff --git a/assets/js/19.993fa181.js b/assets/js/19.b6053bc9.js similarity index 99% rename from assets/js/19.993fa181.js rename to assets/js/19.b6053bc9.js index b6e2b1e8e5..5030a15eae 100644 --- a/assets/js/19.993fa181.js +++ b/assets/js/19.b6053bc9.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[19],{535:function(t,a,e){"use strict";e.r(a);var s=e(38),o=Object(s.a)({},(function(){var t=this,a=t.$createElement,e=t._self._c||a;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"guide"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#guide"}},[t._v("#")]),t._v(" Guide")]),t._v(" "),e("p"),e("div",{staticClass:"table-of-contents"},[e("ul",[e("li",[e("a",{attrs:{href:"#introduction"}},[t._v("Introduction")]),e("ul",[e("li",[e("a",{attrs:{href:"#as-a-domain-developer"}},[t._v("As a domain developer")])]),e("li",[e("a",{attrs:{href:"#as-a-solver-developer"}},[t._v("As a solver developer")])])])]),e("li",[e("a",{attrs:{href:"#getting-started"}},[t._v("Getting started")])]),e("li",[e("a",{attrs:{href:"#how-to"}},[t._v("How to")]),e("ul",[e("li",[e("a",{attrs:{href:"#select-a-domain-to-solve"}},[t._v("Select a domain to solve")])]),e("li",[e("a",{attrs:{href:"#find-compatible-solvers"}},[t._v("Find compatible solvers")])]),e("li",[e("a",{attrs:{href:"#compute-a-solution"}},[t._v("Compute a solution")])]),e("li",[e("a",{attrs:{href:"#test-the-solution"}},[t._v("Test the solution")])]),e("li",[e("a",{attrs:{href:"#clean-up-the-solver"}},[t._v("Clean up the solver")])])])]),e("li",[e("a",{attrs:{href:"#examples"}},[t._v("Examples")]),e("ul",[e("li",[e("a",{attrs:{href:"#notebooks"}},[t._v("Notebooks")])]),e("li",[e("a",{attrs:{href:"#python-scripts"}},[t._v("Python scripts")])]),e("li",[e("a",{attrs:{href:"#playground"}},[t._v("Playground")])])])]),e("li",[e("a",{attrs:{href:"#code-generators"}},[t._v("Code generators")])]),e("li",[e("a",{attrs:{href:"#roadmap"}},[t._v("Roadmap")])])])]),e("p"),t._v(" "),e("h2",{attrs:{id:"introduction"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#introduction"}},[t._v("#")]),t._v(" Introduction")]),t._v(" "),e("p",[t._v("Scikit-decide is an AI framework for Reinforcement Learning, Automated Planning and Scheduling.")]),t._v(" "),e("p",[t._v("It is meant for being a one-stop shop solution to formalize decision-making problems, finding compatible solvers among a growing catalog and get the best solution possible. The catalog is a combination of wrapped existing domains/solvers and newly contributed ones.")]),t._v(" "),e("img",{attrs:{src:t.$withBase("/architecture.png"),alt:"Architecture"}}),t._v(" "),e("p",[t._v("Please refer to our "),e("router-link",{attrs:{to:"/install"}},[t._v("installation instructions")]),t._v(" for installing scikit-decide.")],1),t._v(" "),e("h3",{attrs:{id:"as-a-domain-developer"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#as-a-domain-developer"}},[t._v("#")]),t._v(" As a domain developer")]),t._v(" "),e("div",{staticClass:"custom-block tip"},[e("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),e("p",[t._v("Scikit-decide supports formalizing the problem one characteristic at a time without the need of being an algorithmic expert nor knowing in advance the best kind of solver for this task (RL, planning, scheduling or any hybrid type).")])]),t._v(" "),e("h3",{attrs:{id:"as-a-solver-developer"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#as-a-solver-developer"}},[t._v("#")]),t._v(" As a solver developer")]),t._v(" "),e("div",{staticClass:"custom-block tip"},[e("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),e("p",[t._v("Scikit-decide provides a meaningful API to interact with domains at the expected level of information, as well as a catalog of domains/solvers to test/benchmark new algorithms.")])]),t._v(" "),e("h2",{attrs:{id:"getting-started"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#getting-started"}},[t._v("#")]),t._v(" Getting started")]),t._v(" "),e("p",[t._v("Domain characteristics are one of the key concepts in scikit-decide: they are combined on the one hand to define domains, on the other hand to specify the envelope of domains a solver can tackle.")]),t._v(" "),e("p",[t._v("Each characteristic has various levels, from general (high-level) to specialized (low-level) ones, each level inheriting higher-level functions. Any domain fully contained in a solver's envelope is compatible with this solver, unless it violates additional requirements (optional).")]),t._v(" "),e("img",{attrs:{src:t.$withBase("/characteristics.png"),alt:"Characteristics"}}),t._v(" "),e("p",[t._v("Defining a domain to solve is a matter of:")]),t._v(" "),e("ul",[e("li",[t._v("selecting a base domain class ("),e("code",[t._v("Domain")]),t._v(" by default or any pre-made template for typical combinations like "),e("code",[t._v("DeterministicPlanningDomain")]),t._v(")")]),t._v(" "),e("li",[t._v("fine-tuning any necessary characteristic level with something more specialized (lower-level)")]),t._v(" "),e("li",[t._v("auto-generating the code skeleton from the combination above (technically by implementing all abstract methods)")]),t._v(" "),e("li",[t._v("filling the code as needed based on domain expertise")])]),t._v(" "),e("div",{staticClass:"custom-block tip"},[e("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),e("p",[t._v("When starting a new domain or solver, it is highly recommended to check the "),e("a",{attrs:{href:"#code-generators"}},[t._v("code generators")]),t._v(" for assistance and auto-generation of the skeleton to fill.")])]),t._v(" "),e("p",[t._v("Check "),e("a",{attrs:{href:"#how-to"}},[t._v("How to")]),t._v(" to see how to find compatible solvers and compute a solution, once a domain is defined.")]),t._v(" "),e("h2",{attrs:{id:"how-to"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#how-to"}},[t._v("#")]),t._v(" How to")]),t._v(" "),e("div",{staticClass:"custom-block warning"},[e("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),e("p",[t._v("Exact prints and outputs may vary depending on which domains/solvers are registered on your system.")])]),t._v(" "),e("h3",{attrs:{id:"select-a-domain-to-solve"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#select-a-domain-to-solve"}},[t._v("#")]),t._v(" Select a domain to solve")]),t._v(" "),e("p",[t._v("This step can be skipped if a domain has already been defined. Otherwise, here is how to load one from the catalog of registered domains:")]),t._v(" "),e("div",{staticClass:"language-python extra-class"},[e("pre",{pre:!0,attrs:{class:"language-python"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("from")]),t._v(" skdecide "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" utils\n\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("print")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("utils"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("get_registered_domains"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# prints: ['GymDomain', 'MasterMind', 'Maze', 'RockPaperScissors', ...]")]),t._v("\n\nMyDomain "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" utils"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("load_registered_domain"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'Maze'")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),e("h3",{attrs:{id:"find-compatible-solvers"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#find-compatible-solvers"}},[t._v("#")]),t._v(" Find compatible solvers")]),t._v(" "),e("p",[t._v("This step can be skipped if a solver is already known to be compatible and selected as best candidate. Otherwise, here is how to find all compatible solvers:")]),t._v(" "),e("div",{staticClass:"language-python extra-class"},[e("pre",{pre:!0,attrs:{class:"language-python"}},[e("code",[t._v("compatible_solvers "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" utils"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("match_solvers"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("MyDomain"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("print")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("compatible_solvers"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# prints: [, ...]")]),t._v("\n\n"),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# select Lazy A* solver and instanciate with default parameters")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("from")]),t._v(" skdecide"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("hub"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("solver"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("lazy_astar "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" LazyAstar\nmysolver "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" LazyAstar"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),e("h3",{attrs:{id:"compute-a-solution"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#compute-a-solution"}},[t._v("#")]),t._v(" Compute a solution")]),t._v(" "),e("p",[t._v("Here is how to solve "),e("code",[t._v("MyDomain")]),t._v(" with "),e("code",[t._v("mysolver")]),t._v(":")]),t._v(" "),e("div",{staticClass:"language-python extra-class"},[e("pre",{pre:!0,attrs:{class:"language-python"}},[e("code",[t._v("MyDomain"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("solve_with"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("mysolver"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),e("h3",{attrs:{id:"test-the-solution"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#test-the-solution"}},[t._v("#")]),t._v(" Test the solution")]),t._v(" "),e("div",{staticClass:"language-python extra-class"},[e("pre",{pre:!0,attrs:{class:"language-python"}},[e("code",[e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Simple case (one basic rollout)")]),t._v("\nutils"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("rollout"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("MyDomain"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" mysolver"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Example of additional rollout parameters")]),t._v("\nutils"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("rollout"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("MyDomain"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" mysolver"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" num_episodes"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("3")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" max_steps"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("1000")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" max_framerate"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("30")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),e("p",[t._v("In the example of the Maze solved with Lazy A*, the goal (in green) should be reached by the agent (in blue):")]),t._v(" "),e("img",{attrs:{src:t.$withBase("/maze.png"),alt:"Maze"}}),t._v(" "),e("div",{staticClass:"custom-block tip"},[e("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),e("p",[t._v("The rendering of the maze is done in a separate window when running in a local python script.\nTo get a similar result in a jupyter notebook, add a line")]),t._v(" "),e("div",{staticClass:"language-jupyter extra-class"},[e("pre",{pre:!0,attrs:{class:"language-text"}},[e("code",[t._v("%matplotlib qt\n")])])]),e("p",[t._v("before calling "),e("code",[t._v("rollout()")]),t._v(". See also the available "),e("router-link",{attrs:{to:"/notebooks"}},[t._v("tutorial notebooks")]),t._v("\nto know how to render the maze inline.")],1)]),t._v(" "),e("h3",{attrs:{id:"clean-up-the-solver"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#clean-up-the-solver"}},[t._v("#")]),t._v(" Clean up the solver")]),t._v(" "),e("p",[t._v("Some solvers (especially parallel C++ ones) need to be properly cleaned once used.")]),t._v(" "),e("div",{staticClass:"language-python extra-class"},[e("pre",{pre:!0,attrs:{class:"language-python"}},[e("code",[t._v("mysolver"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("_cleanup"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),e("div",{staticClass:"custom-block tip"},[e("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),e("p",[t._v("Note that this is automatically done if you use the solver within a "),e("code",[t._v("with")]),t._v(" statement:")]),t._v(" "),e("div",{staticClass:"language-python extra-class"},[e("pre",{pre:!0,attrs:{class:"language-python"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("with")]),t._v(" LazyAstar"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("as")]),t._v(" mysolver"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n MyDomain"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("solve_with"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("mysolver"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n utils"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("rollout"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("MyDomain"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" mysolver"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])])]),t._v(" "),e("h2",{attrs:{id:"examples"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#examples"}},[t._v("#")]),t._v(" Examples")]),t._v(" "),e("h3",{attrs:{id:"notebooks"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#notebooks"}},[t._v("#")]),t._v(" Notebooks")]),t._v(" "),e("p",[t._v("Go to the dedicated "),e("router-link",{attrs:{to:"/notebooks"}},[t._v("Notebooks")]),t._v(" page to see a curated list of notebooks recommended to start with scikit-decide.")],1),t._v(" "),e("h3",{attrs:{id:"python-scripts"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#python-scripts"}},[t._v("#")]),t._v(" Python scripts")]),t._v(" "),e("p",[t._v("More examples can be found in the "),e("code",[t._v("examples/")]),t._v(" folder, showing how to import or define a domain, and how to run or solve it. Most of the examples rely on scikit-decide Hub, an extensible catalog of domains/solvers.")]),t._v(" "),e("h3",{attrs:{id:"playground"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#playground"}},[t._v("#")]),t._v(" Playground")]),t._v(" "),e("p",[t._v("The best example to try out scikit-decide capabilities might be "),e("code",[t._v("examples/full_multisolve.py")]),t._v(". This interactive console experience makes it easy to pick a domain among a pre-defined catalog selection:")]),t._v(" "),e("ul",[e("li",[t._v("Simple Grid World")]),t._v(" "),e("li",[t._v("Maze")]),t._v(" "),e("li",[t._v("Mastermind")]),t._v(" "),e("li",[t._v("Cart Pole (OpenAI Gym)")]),t._v(" "),e("li",[t._v("Mountain Car continuous (OpenAI Gym)")]),t._v(" "),e("li",[t._v("ATARI Pacman (OpenAI Gym)")])]),t._v(" "),e("p",[t._v("...and then solve it with any compatible solver (detected automatically) among following selection:")]),t._v(" "),e("ul",[e("li",[t._v("Random walk")]),t._v(" "),e("li",[t._v("Simple greedy")]),t._v(" "),e("li",[t._v("Lazy A* (classical planning)")]),t._v(" "),e("li",[t._v("PPO: Proximal Policy Optimization (deep reinforcement learning)")]),t._v(" "),e("li",[t._v("POMCP: Partially Observable Monte-Carlo Planning (online planning for POMDP)")]),t._v(" "),e("li",[t._v("CGP: Cartesian Genetic Programming (evolution strategy)")]),t._v(" "),e("li",[t._v("IW: Iterated Width search (width-based planning)")])]),t._v(" "),e("p",[e("strong",[t._v("Note")]),t._v(": some requirements declared in above solvers still need fine-tuning, so in some cases an auto-detected compatible solver may still be unable to solve a domain (for now).")]),t._v(" "),e("p",[t._v("These combinations are particularly efficient if you want to try them out:")]),t._v(" "),e("ul",[e("li",[t._v("Simple Grid World -> Lazy A*")]),t._v(" "),e("li",[t._v("Maze -> Lazy A*")]),t._v(" "),e("li",[t._v("Mastermind -> POMCP: Partially Observable Monte-Carlo Planning")]),t._v(" "),e("li",[t._v("Cart Pole -> PPO: Proximal Policy Optimization")]),t._v(" "),e("li",[t._v("Mountain Car continuous -> CGP: Cartesian Genetic Programming")]),t._v(" "),e("li",[t._v("ATARI Pacman -> Random walk")])]),t._v(" "),e("div",{staticClass:"custom-block warning"},[e("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),e("p",[t._v("Some domains/solvers might require extra manual setup steps to work at 100%.\nIn the future, each scikit-decide hub entry might have a dedicated help page to list them, but in the meantime please refer to this:")]),t._v(" "),e("ul",[e("li",[t._v("OpenAI Gym domains: "),e("a",{attrs:{href:"http://gym.openai.com/docs/#installation",target:"_blank",rel:"noopener noreferrer"}},[t._v("OpenAI Gym"),e("OutboundLink")],1),t._v(" for loading Gym environments not included by default (e.g. atari games).")])])]),t._v(" "),e("h2",{attrs:{id:"code-generators"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#code-generators"}},[t._v("#")]),t._v(" Code generators")]),t._v(" "),e("p",[t._v("Go to "),e("router-link",{attrs:{to:"/codegen"}},[t._v("Code generators")]),t._v(" for assistance when creating a new domain or solver.")],1),t._v(" "),e("h2",{attrs:{id:"roadmap"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#roadmap"}},[t._v("#")]),t._v(" Roadmap")]),t._v(" "),e("p",[t._v("Following features will be added to scikit-decide soon:")]),t._v(" "),e("ul",[e("li",[t._v("Scheduling API")]),t._v(" "),e("li",[t._v("PDDL parser")])])])}),[],!1,null,null,null);a.default=o.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[19],{536:function(t,a,e){"use strict";e.r(a);var s=e(38),o=Object(s.a)({},(function(){var t=this,a=t.$createElement,e=t._self._c||a;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"guide"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#guide"}},[t._v("#")]),t._v(" Guide")]),t._v(" "),e("p"),e("div",{staticClass:"table-of-contents"},[e("ul",[e("li",[e("a",{attrs:{href:"#introduction"}},[t._v("Introduction")]),e("ul",[e("li",[e("a",{attrs:{href:"#as-a-domain-developer"}},[t._v("As a domain developer")])]),e("li",[e("a",{attrs:{href:"#as-a-solver-developer"}},[t._v("As a solver developer")])])])]),e("li",[e("a",{attrs:{href:"#getting-started"}},[t._v("Getting started")])]),e("li",[e("a",{attrs:{href:"#how-to"}},[t._v("How to")]),e("ul",[e("li",[e("a",{attrs:{href:"#select-a-domain-to-solve"}},[t._v("Select a domain to solve")])]),e("li",[e("a",{attrs:{href:"#find-compatible-solvers"}},[t._v("Find compatible solvers")])]),e("li",[e("a",{attrs:{href:"#compute-a-solution"}},[t._v("Compute a solution")])]),e("li",[e("a",{attrs:{href:"#test-the-solution"}},[t._v("Test the solution")])]),e("li",[e("a",{attrs:{href:"#clean-up-the-solver"}},[t._v("Clean up the solver")])])])]),e("li",[e("a",{attrs:{href:"#examples"}},[t._v("Examples")]),e("ul",[e("li",[e("a",{attrs:{href:"#notebooks"}},[t._v("Notebooks")])]),e("li",[e("a",{attrs:{href:"#python-scripts"}},[t._v("Python scripts")])]),e("li",[e("a",{attrs:{href:"#playground"}},[t._v("Playground")])])])]),e("li",[e("a",{attrs:{href:"#code-generators"}},[t._v("Code generators")])]),e("li",[e("a",{attrs:{href:"#roadmap"}},[t._v("Roadmap")])])])]),e("p"),t._v(" "),e("h2",{attrs:{id:"introduction"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#introduction"}},[t._v("#")]),t._v(" Introduction")]),t._v(" "),e("p",[t._v("Scikit-decide is an AI framework for Reinforcement Learning, Automated Planning and Scheduling.")]),t._v(" "),e("p",[t._v("It is meant for being a one-stop shop solution to formalize decision-making problems, finding compatible solvers among a growing catalog and get the best solution possible. The catalog is a combination of wrapped existing domains/solvers and newly contributed ones.")]),t._v(" "),e("img",{attrs:{src:t.$withBase("/architecture.png"),alt:"Architecture"}}),t._v(" "),e("p",[t._v("Please refer to our "),e("router-link",{attrs:{to:"/install"}},[t._v("installation instructions")]),t._v(" for installing scikit-decide.")],1),t._v(" "),e("h3",{attrs:{id:"as-a-domain-developer"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#as-a-domain-developer"}},[t._v("#")]),t._v(" As a domain developer")]),t._v(" "),e("div",{staticClass:"custom-block tip"},[e("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),e("p",[t._v("Scikit-decide supports formalizing the problem one characteristic at a time without the need of being an algorithmic expert nor knowing in advance the best kind of solver for this task (RL, planning, scheduling or any hybrid type).")])]),t._v(" "),e("h3",{attrs:{id:"as-a-solver-developer"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#as-a-solver-developer"}},[t._v("#")]),t._v(" As a solver developer")]),t._v(" "),e("div",{staticClass:"custom-block tip"},[e("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),e("p",[t._v("Scikit-decide provides a meaningful API to interact with domains at the expected level of information, as well as a catalog of domains/solvers to test/benchmark new algorithms.")])]),t._v(" "),e("h2",{attrs:{id:"getting-started"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#getting-started"}},[t._v("#")]),t._v(" Getting started")]),t._v(" "),e("p",[t._v("Domain characteristics are one of the key concepts in scikit-decide: they are combined on the one hand to define domains, on the other hand to specify the envelope of domains a solver can tackle.")]),t._v(" "),e("p",[t._v("Each characteristic has various levels, from general (high-level) to specialized (low-level) ones, each level inheriting higher-level functions. Any domain fully contained in a solver's envelope is compatible with this solver, unless it violates additional requirements (optional).")]),t._v(" "),e("img",{attrs:{src:t.$withBase("/characteristics.png"),alt:"Characteristics"}}),t._v(" "),e("p",[t._v("Defining a domain to solve is a matter of:")]),t._v(" "),e("ul",[e("li",[t._v("selecting a base domain class ("),e("code",[t._v("Domain")]),t._v(" by default or any pre-made template for typical combinations like "),e("code",[t._v("DeterministicPlanningDomain")]),t._v(")")]),t._v(" "),e("li",[t._v("fine-tuning any necessary characteristic level with something more specialized (lower-level)")]),t._v(" "),e("li",[t._v("auto-generating the code skeleton from the combination above (technically by implementing all abstract methods)")]),t._v(" "),e("li",[t._v("filling the code as needed based on domain expertise")])]),t._v(" "),e("div",{staticClass:"custom-block tip"},[e("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),e("p",[t._v("When starting a new domain or solver, it is highly recommended to check the "),e("a",{attrs:{href:"#code-generators"}},[t._v("code generators")]),t._v(" for assistance and auto-generation of the skeleton to fill.")])]),t._v(" "),e("p",[t._v("Check "),e("a",{attrs:{href:"#how-to"}},[t._v("How to")]),t._v(" to see how to find compatible solvers and compute a solution, once a domain is defined.")]),t._v(" "),e("h2",{attrs:{id:"how-to"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#how-to"}},[t._v("#")]),t._v(" How to")]),t._v(" "),e("div",{staticClass:"custom-block warning"},[e("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),e("p",[t._v("Exact prints and outputs may vary depending on which domains/solvers are registered on your system.")])]),t._v(" "),e("h3",{attrs:{id:"select-a-domain-to-solve"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#select-a-domain-to-solve"}},[t._v("#")]),t._v(" Select a domain to solve")]),t._v(" "),e("p",[t._v("This step can be skipped if a domain has already been defined. Otherwise, here is how to load one from the catalog of registered domains:")]),t._v(" "),e("div",{staticClass:"language-python extra-class"},[e("pre",{pre:!0,attrs:{class:"language-python"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("from")]),t._v(" skdecide "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" utils\n\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("print")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("utils"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("get_registered_domains"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# prints: ['GymDomain', 'MasterMind', 'Maze', 'RockPaperScissors', ...]")]),t._v("\n\nMyDomain "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" utils"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("load_registered_domain"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token string"}},[t._v("'Maze'")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),e("h3",{attrs:{id:"find-compatible-solvers"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#find-compatible-solvers"}},[t._v("#")]),t._v(" Find compatible solvers")]),t._v(" "),e("p",[t._v("This step can be skipped if a solver is already known to be compatible and selected as best candidate. Otherwise, here is how to find all compatible solvers:")]),t._v(" "),e("div",{staticClass:"language-python extra-class"},[e("pre",{pre:!0,attrs:{class:"language-python"}},[e("code",[t._v("compatible_solvers "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" utils"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("match_solvers"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("MyDomain"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("print")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("compatible_solvers"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# prints: [, ...]")]),t._v("\n\n"),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# select Lazy A* solver and instanciate with default parameters")]),t._v("\n"),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("from")]),t._v(" skdecide"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("hub"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("solver"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("lazy_astar "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" LazyAstar\nmysolver "),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" LazyAstar"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),e("h3",{attrs:{id:"compute-a-solution"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#compute-a-solution"}},[t._v("#")]),t._v(" Compute a solution")]),t._v(" "),e("p",[t._v("Here is how to solve "),e("code",[t._v("MyDomain")]),t._v(" with "),e("code",[t._v("mysolver")]),t._v(":")]),t._v(" "),e("div",{staticClass:"language-python extra-class"},[e("pre",{pre:!0,attrs:{class:"language-python"}},[e("code",[t._v("MyDomain"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("solve_with"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("mysolver"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),e("h3",{attrs:{id:"test-the-solution"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#test-the-solution"}},[t._v("#")]),t._v(" Test the solution")]),t._v(" "),e("div",{staticClass:"language-python extra-class"},[e("pre",{pre:!0,attrs:{class:"language-python"}},[e("code",[e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Simple case (one basic rollout)")]),t._v("\nutils"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("rollout"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("MyDomain"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" mysolver"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),e("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Example of additional rollout parameters")]),t._v("\nutils"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("rollout"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("MyDomain"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" mysolver"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" num_episodes"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("3")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" max_steps"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("1000")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" max_framerate"),e("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("30")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),e("p",[t._v("In the example of the Maze solved with Lazy A*, the goal (in green) should be reached by the agent (in blue):")]),t._v(" "),e("img",{attrs:{src:t.$withBase("/maze.png"),alt:"Maze"}}),t._v(" "),e("div",{staticClass:"custom-block tip"},[e("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),e("p",[t._v("The rendering of the maze is done in a separate window when running in a local python script.\nTo get a similar result in a jupyter notebook, add a line")]),t._v(" "),e("div",{staticClass:"language-jupyter extra-class"},[e("pre",{pre:!0,attrs:{class:"language-text"}},[e("code",[t._v("%matplotlib qt\n")])])]),e("p",[t._v("before calling "),e("code",[t._v("rollout()")]),t._v(". See also the available "),e("router-link",{attrs:{to:"/notebooks"}},[t._v("tutorial notebooks")]),t._v("\nto know how to render the maze inline.")],1)]),t._v(" "),e("h3",{attrs:{id:"clean-up-the-solver"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#clean-up-the-solver"}},[t._v("#")]),t._v(" Clean up the solver")]),t._v(" "),e("p",[t._v("Some solvers (especially parallel C++ ones) need to be properly cleaned once used.")]),t._v(" "),e("div",{staticClass:"language-python extra-class"},[e("pre",{pre:!0,attrs:{class:"language-python"}},[e("code",[t._v("mysolver"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("_cleanup"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),e("div",{staticClass:"custom-block tip"},[e("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),e("p",[t._v("Note that this is automatically done if you use the solver within a "),e("code",[t._v("with")]),t._v(" statement:")]),t._v(" "),e("div",{staticClass:"language-python extra-class"},[e("pre",{pre:!0,attrs:{class:"language-python"}},[e("code",[e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("with")]),t._v(" LazyAstar"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("as")]),t._v(" mysolver"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n MyDomain"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("solve_with"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("mysolver"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n utils"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("rollout"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("MyDomain"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" mysolver"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])])]),t._v(" "),e("h2",{attrs:{id:"examples"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#examples"}},[t._v("#")]),t._v(" Examples")]),t._v(" "),e("h3",{attrs:{id:"notebooks"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#notebooks"}},[t._v("#")]),t._v(" Notebooks")]),t._v(" "),e("p",[t._v("Go to the dedicated "),e("router-link",{attrs:{to:"/notebooks"}},[t._v("Notebooks")]),t._v(" page to see a curated list of notebooks recommended to start with scikit-decide.")],1),t._v(" "),e("h3",{attrs:{id:"python-scripts"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#python-scripts"}},[t._v("#")]),t._v(" Python scripts")]),t._v(" "),e("p",[t._v("More examples can be found in the "),e("code",[t._v("examples/")]),t._v(" folder, showing how to import or define a domain, and how to run or solve it. Most of the examples rely on scikit-decide Hub, an extensible catalog of domains/solvers.")]),t._v(" "),e("h3",{attrs:{id:"playground"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#playground"}},[t._v("#")]),t._v(" Playground")]),t._v(" "),e("p",[t._v("The best example to try out scikit-decide capabilities might be "),e("code",[t._v("examples/full_multisolve.py")]),t._v(". This interactive console experience makes it easy to pick a domain among a pre-defined catalog selection:")]),t._v(" "),e("ul",[e("li",[t._v("Simple Grid World")]),t._v(" "),e("li",[t._v("Maze")]),t._v(" "),e("li",[t._v("Mastermind")]),t._v(" "),e("li",[t._v("Cart Pole (OpenAI Gym)")]),t._v(" "),e("li",[t._v("Mountain Car continuous (OpenAI Gym)")]),t._v(" "),e("li",[t._v("ATARI Pacman (OpenAI Gym)")])]),t._v(" "),e("p",[t._v("...and then solve it with any compatible solver (detected automatically) among following selection:")]),t._v(" "),e("ul",[e("li",[t._v("Random walk")]),t._v(" "),e("li",[t._v("Simple greedy")]),t._v(" "),e("li",[t._v("Lazy A* (classical planning)")]),t._v(" "),e("li",[t._v("PPO: Proximal Policy Optimization (deep reinforcement learning)")]),t._v(" "),e("li",[t._v("POMCP: Partially Observable Monte-Carlo Planning (online planning for POMDP)")]),t._v(" "),e("li",[t._v("CGP: Cartesian Genetic Programming (evolution strategy)")]),t._v(" "),e("li",[t._v("IW: Iterated Width search (width-based planning)")])]),t._v(" "),e("p",[e("strong",[t._v("Note")]),t._v(": some requirements declared in above solvers still need fine-tuning, so in some cases an auto-detected compatible solver may still be unable to solve a domain (for now).")]),t._v(" "),e("p",[t._v("These combinations are particularly efficient if you want to try them out:")]),t._v(" "),e("ul",[e("li",[t._v("Simple Grid World -> Lazy A*")]),t._v(" "),e("li",[t._v("Maze -> Lazy A*")]),t._v(" "),e("li",[t._v("Mastermind -> POMCP: Partially Observable Monte-Carlo Planning")]),t._v(" "),e("li",[t._v("Cart Pole -> PPO: Proximal Policy Optimization")]),t._v(" "),e("li",[t._v("Mountain Car continuous -> CGP: Cartesian Genetic Programming")]),t._v(" "),e("li",[t._v("ATARI Pacman -> Random walk")])]),t._v(" "),e("div",{staticClass:"custom-block warning"},[e("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),e("p",[t._v("Some domains/solvers might require extra manual setup steps to work at 100%.\nIn the future, each scikit-decide hub entry might have a dedicated help page to list them, but in the meantime please refer to this:")]),t._v(" "),e("ul",[e("li",[t._v("OpenAI Gym domains: "),e("a",{attrs:{href:"http://gym.openai.com/docs/#installation",target:"_blank",rel:"noopener noreferrer"}},[t._v("OpenAI Gym"),e("OutboundLink")],1),t._v(" for loading Gym environments not included by default (e.g. atari games).")])])]),t._v(" "),e("h2",{attrs:{id:"code-generators"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#code-generators"}},[t._v("#")]),t._v(" Code generators")]),t._v(" "),e("p",[t._v("Go to "),e("router-link",{attrs:{to:"/codegen"}},[t._v("Code generators")]),t._v(" for assistance when creating a new domain or solver.")],1),t._v(" "),e("h2",{attrs:{id:"roadmap"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#roadmap"}},[t._v("#")]),t._v(" Roadmap")]),t._v(" "),e("p",[t._v("Following features will be added to scikit-decide soon:")]),t._v(" "),e("ul",[e("li",[t._v("Scheduling API")]),t._v(" "),e("li",[t._v("PDDL parser")])])])}),[],!1,null,null,null);a.default=o.exports}}]); \ No newline at end of file diff --git a/assets/js/20.3d4abf66.js b/assets/js/20.b6c7b27f.js similarity index 99% rename from assets/js/20.3d4abf66.js rename to assets/js/20.b6c7b27f.js index efc4b4718e..12bfafcf6f 100644 --- a/assets/js/20.3d4abf66.js +++ b/assets/js/20.b6c7b27f.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[20],{537:function(n,t,e){"use strict";e.r(t);var a=e(38),s=Object(a.a)({},(function(){var n=this,t=n.$createElement,e=n._self._c||t;return e("ContentSlotsDistributor",{attrs:{"slot-key":n.$parent.slotKey}},[e("h1",{attrs:{id:"installation"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#installation"}},[n._v("#")]),n._v(" Installation")]),n._v(" "),e("h2",{attrs:{id:"prerequisites"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#prerequisites"}},[n._v("#")]),n._v(" Prerequisites")]),n._v(" "),e("h3",{attrs:{id:"minizinc-2-6"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#minizinc-2-6"}},[n._v("#")]),n._v(" Minizinc 2.6+")]),n._v(" "),e("p",[n._v("You need to install "),e("a",{attrs:{href:"https://www.minizinc.org/",target:"_blank",rel:"noopener noreferrer"}},[n._v("minizinc"),e("OutboundLink")],1),n._v(" (version greater than 2.6) and update the "),e("code",[n._v("PATH")]),n._v(" environment variable\nso that it can be found by Python. See "),e("a",{attrs:{href:"https://www.minizinc.org/doc-latest/en/installation.html",target:"_blank",rel:"noopener noreferrer"}},[n._v("minizinc documentation"),e("OutboundLink")],1),n._v(" for more details.")]),n._v(" "),e("div",{staticClass:"custom-block tip"},[e("p",{staticClass:"custom-block-title"},[n._v("TIP")]),n._v(" "),e("p",[n._v("You can easily install minizinc from the command line, which can be useful when on cloud.\nIn order to make life easier to cloud users, we reproduce below the necessary lines. Please be careful that this\nis not an official documentation for minizinc and that the following lines can stop working without notice\nas we do not test them automatically.")])]),n._v(" "),e("h4",{attrs:{id:"linux-command-line"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#linux-command-line"}},[n._v("#")]),n._v(" Linux command line")]),n._v(" "),e("p",[n._v("On a Linux distribution, you can use the bundled "),e("a",{attrs:{href:"https://www.minizinc.org/doc-latest/en/installation.html#appimage",target:"_blank",rel:"noopener noreferrer"}},[n._v("minizinc AppImage"),e("OutboundLink")],1),n._v(".")]),n._v(" "),e("p",[n._v("If "),e("a",{attrs:{href:"https://en.wikipedia.org/wiki/Filesystem_in_Userspace",target:"_blank",rel:"noopener noreferrer"}},[n._v("FUSE"),e("OutboundLink")],1),n._v(" is available:")]),n._v(" "),e("div",{staticClass:"language- extra-class"},[e("pre",{pre:!0,attrs:{class:"language-text"}},[e("code",[n._v('mkdir minizinc_install\ncurl -o minizinc_install/minizinc -L https://github.com/MiniZinc/MiniZincIDE/releases/download/2.6.3/MiniZincIDE-2.6.3-x86_64.AppImage\nchmod +x minizinc_install/minizinc\nexport PATH="$(pwd)/minizinc_install/":$PATH\nminizinc --version\n')])])]),e("p",[n._v("Else, this is still possible by extracting the files:")]),n._v(" "),e("div",{staticClass:"language- extra-class"},[e("pre",{pre:!0,attrs:{class:"language-text"}},[e("code",[n._v('mkdir minizinc_install\ncd minizinc_install\ncurl -o minizinc.AppImage -L https://github.com/MiniZinc/MiniZincIDE/releases/download/2.6.3/MiniZincIDE-2.6.3-x86_64.AppImage\nchmod +x minizinc.AppImage\n./minizinc.AppImage --appimage-extract\ncd ..\nexport LD_LIBRARY_PATH="$(pwd)/minizinc_install/squashfs-root/usr/lib/":$LD_LIBRARY_PATH\nexport PATH="$(pwd)/minizinc_install/squashfs-root/usr/bin/":$PATH\nminizinc --version\n')])])]),e("h4",{attrs:{id:"macos-command-line"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#macos-command-line"}},[n._v("#")]),n._v(" MacOs command line")]),n._v(" "),e("div",{staticClass:"language- extra-class"},[e("pre",{pre:!0,attrs:{class:"language-text"}},[e("code",[n._v('mkdir minizinc_install\ncurl -o minizinc.dmg -L https://github.com/MiniZinc/MiniZincIDE/releases/download/2.6.3/MiniZincIDE-2.6.3-bundled.dmg\nhdiutil attach minizinc.dmg\ncp -R /Volumes/MiniZinc*/MiniZincIDE.app minizinc_install/.\nexport PATH="$(pwd)/minizinc_install/MiniZincIDE.app/Contents/Resources":$PATH\nminizinc --version\n')])])]),e("h4",{attrs:{id:"windows-command-line"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#windows-command-line"}},[n._v("#")]),n._v(" Windows command line")]),n._v(" "),e("p",[n._v("Works on Windows Server 2022 with bash shell:")]),n._v(" "),e("div",{staticClass:"language- extra-class"},[e("pre",{pre:!0,attrs:{class:"language-text"}},[e("code",[n._v('mkdir minizinc_install\ncurl -o minizinc_setup.exe -L https://github.com/MiniZinc/MiniZincIDE/releases/download/2.6.3/MiniZincIDE-2.6.3-bundled-setup-win64.exe\ncmd //c "minizinc_setup.exe /verysilent /currentuser /norestart /suppressmsgboxes /sp"\nexport PATH="~/AppData/Local/Programs/MiniZinc":$PATH\nminizinc --version\n')])])]),e("h4",{attrs:{id:"skipping-minizinc-version-check"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#skipping-minizinc-version-check"}},[n._v("#")]),n._v(" Skipping minizinc version check")]),n._v(" "),e("p",[n._v("It may happen that you do not want to install minzinc.\nFor instance if you need to use only a part of the library which is not relying on minizinc at all,\nespecially when not relying on discrete-optimization which is the actual library depending on minizinc.")]),n._v(" "),e("p",[n._v("This can be troublesome as the minizinc binary version is checked by "),e("a",{attrs:{href:"https://airbus.github.io/discrete-optimization",target:"_blank",rel:"noopener noreferrer"}},[n._v("discrete-optimization"),e("OutboundLink")],1),n._v(" at library import.\nHowever discrete-optimization provides a way to bypass this check\nby setting the environment variable DO_SKIP_MZN_CHECK:")]),n._v(" "),e("div",{staticClass:"language-shell extra-class"},[e("pre",{pre:!0,attrs:{class:"language-shell"}},[e("code",[e("span",{pre:!0,attrs:{class:"token builtin class-name"}},[n._v("export")]),n._v(" "),e("span",{pre:!0,attrs:{class:"token assign-left variable"}},[n._v("DO_SKIP_MZN_CHECK")]),e("span",{pre:!0,attrs:{class:"token operator"}},[n._v("=")]),e("span",{pre:!0,attrs:{class:"token number"}},[n._v("1")]),n._v("\n")])])]),e("p",[n._v("Please note however that the library is never tested without minizinc (or minizinc versions < 2.6).")]),n._v(" "),e("h3",{attrs:{id:"python-3-7-environment"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#python-3-7-environment"}},[n._v("#")]),n._v(" Python 3.7+ environment")]),n._v(" "),e("p",[n._v("The use of a virtual environment for scikit-decide is recommended, and you will need to ensure that the environment use a Python version greater than 3.7.\nThis can be achieved either by using "),e("a",{attrs:{href:"https://docs.conda.io/en/latest/",target:"_blank",rel:"noopener noreferrer"}},[n._v("conda"),e("OutboundLink")],1),n._v(" or by using "),e("a",{attrs:{href:"https://github.com/pyenv/pyenv",target:"_blank",rel:"noopener noreferrer"}},[n._v("pyenv"),e("OutboundLink")],1),n._v(" (or "),e("a",{attrs:{href:"https://github.com/pyenv-win/pyenv-win",target:"_blank",rel:"noopener noreferrer"}},[n._v("pyenv-win"),e("OutboundLink")],1),n._v(" on windows)\nand "),e("a",{attrs:{href:"https://docs.python.org/fr/3/library/venv.html",target:"_blank",rel:"noopener noreferrer"}},[n._v("venv"),e("OutboundLink")],1),n._v(" module.")]),n._v(" "),e("p",[n._v("The following examples show how to create a virtual environment with Python version 3.8.13 with the mentioned methods.")]),n._v(" "),e("h4",{attrs:{id:"with-conda-all-platforms"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#with-conda-all-platforms"}},[n._v("#")]),n._v(" With conda (all platforms)")]),n._v(" "),e("div",{staticClass:"language-shell extra-class"},[e("pre",{pre:!0,attrs:{class:"language-shell"}},[e("code",[n._v("conda create -n skdecide "),e("span",{pre:!0,attrs:{class:"token assign-left variable"}},[n._v("python")]),e("span",{pre:!0,attrs:{class:"token operator"}},[n._v("=")]),e("span",{pre:!0,attrs:{class:"token number"}},[n._v("3.8")]),n._v(".13\nconda activate skdecide\n")])])]),e("h4",{attrs:{id:"with-pyenv-venv-linux-macos"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#with-pyenv-venv-linux-macos"}},[n._v("#")]),n._v(" With pyenv + venv (Linux/MacOS)")]),n._v(" "),e("div",{staticClass:"language-shell extra-class"},[e("pre",{pre:!0,attrs:{class:"language-shell"}},[e("code",[n._v("pyenv "),e("span",{pre:!0,attrs:{class:"token function"}},[n._v("install")]),n._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[n._v("3.8")]),n._v(".13\npyenv shell "),e("span",{pre:!0,attrs:{class:"token number"}},[n._v("3.8")]),n._v(".13\npython -m venv skdecide-venv\n"),e("span",{pre:!0,attrs:{class:"token builtin class-name"}},[n._v("source")]),n._v(" skdecide-venv/bin/activate\n")])])]),e("h4",{attrs:{id:"with-pyenv-win-venv-windows"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#with-pyenv-win-venv-windows"}},[n._v("#")]),n._v(" With pyenv-win + venv (Windows)")]),n._v(" "),e("div",{staticClass:"language-shell extra-class"},[e("pre",{pre:!0,attrs:{class:"language-shell"}},[e("code",[n._v("pyenv "),e("span",{pre:!0,attrs:{class:"token function"}},[n._v("install")]),n._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[n._v("3.8")]),n._v(".13\npyenv shell "),e("span",{pre:!0,attrs:{class:"token number"}},[n._v("3.8")]),n._v(".13\npython -m venv skdecide-venv\nskdecide-venv"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[n._v("\\")]),n._v("Scripts"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[n._v("\\")]),n._v("activate\n")])])]),e("h2",{attrs:{id:"install-scikit-decide-library"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#install-scikit-decide-library"}},[n._v("#")]),n._v(" Install scikit-decide library")]),n._v(" "),e("h3",{attrs:{id:"full-install-recommended"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#full-install-recommended"}},[n._v("#")]),n._v(" Full install [Recommended]")]),n._v(" "),e("p",[n._v("Install scikit-decide library from PyPI with all dependencies required by domains/solvers in the hub (scikit-decide catalog).")]),n._v(" "),e("div",{staticClass:"language-shell extra-class"},[e("pre",{pre:!0,attrs:{class:"language-shell"}},[e("code",[n._v("pip "),e("span",{pre:!0,attrs:{class:"token function"}},[n._v("install")]),n._v(" -U pip\npip "),e("span",{pre:!0,attrs:{class:"token function"}},[n._v("install")]),n._v(" -U scikit-decide"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[n._v("[")]),n._v("all"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[n._v("]")]),n._v("\n")])])]),e("h3",{attrs:{id:"minimal-install"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#minimal-install"}},[n._v("#")]),n._v(" Minimal install")]),n._v(" "),e("p",[n._v("Alternatively you can choose to only install the core library, which is enough if you intend to create your own domain and solver.")]),n._v(" "),e("div",{staticClass:"language-shell extra-class"},[e("pre",{pre:!0,attrs:{class:"language-shell"}},[e("code",[n._v("pip "),e("span",{pre:!0,attrs:{class:"token function"}},[n._v("install")]),n._v(" -U pip\npip "),e("span",{pre:!0,attrs:{class:"token function"}},[n._v("install")]),n._v(" -U scikit-decide\n")])])]),e("h2",{attrs:{id:"troubleshooting"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#troubleshooting"}},[n._v("#")]),n._v(" Troubleshooting")]),n._v(" "),e("p",[n._v("You may encounter an "),e("a",{attrs:{href:"https://github.com/openai/gym/issues/3176",target:"_blank",rel:"noopener noreferrer"}},[n._v("error when installing "),e("code",[n._v("gym==0.21.0")]),e("OutboundLink")],1),n._v(" which happens to be a dependency of "),e("code",[n._v("scikit-decide[all]")]),n._v(".\nThis is because its installation does not respect PEP 517 which is enforced by default by last versions of pip and setuptools.\nThe solution is to install it beforehand:")]),n._v(" "),e("div",{staticClass:"language-shell extra-class"},[e("pre",{pre:!0,attrs:{class:"language-shell"}},[e("code",[e("span",{pre:!0,attrs:{class:"token comment"}},[n._v("# preinstall gym==0.21.0 with legacy method (python setup.py) because its requirements list is broken")]),n._v("\npython -m pip "),e("span",{pre:!0,attrs:{class:"token function"}},[n._v("install")]),n._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[n._v('"pip==22"')]),n._v(" "),e("span",{pre:!0,attrs:{class:"token comment"}},[n._v("# starting with pip 23.1, gym 0.21.0 is not intallable anymore")]),n._v("\npython -m pip "),e("span",{pre:!0,attrs:{class:"token function"}},[n._v("install")]),n._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[n._v('"setuptools<67"')]),n._v(" "),e("span",{pre:!0,attrs:{class:"token comment"}},[n._v("# starting with setuptools 67, gym 0.21.0 is not intallable anymore")]),n._v("\npython -m pip "),e("span",{pre:!0,attrs:{class:"token function"}},[n._v("install")]),n._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[n._v('"importlib-metadata<5"')]),n._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[n._v('"virtualenv==20.16.6"')]),n._v(" "),e("span",{pre:!0,attrs:{class:"token comment"}},[n._v("# cannot import gym with importlib-metadata >= 5 and python<3.8")]),n._v("\npython -m pip uninstall -y wheel "),e("span",{pre:!0,attrs:{class:"token comment"}},[n._v("# wheel must not be here to fall back directly to python setup.py")]),n._v("\npython -m pip "),e("span",{pre:!0,attrs:{class:"token function"}},[n._v("install")]),n._v(" "),e("span",{pre:!0,attrs:{class:"token assign-left variable"}},[n._v("gym")]),e("span",{pre:!0,attrs:{class:"token operator"}},[n._v("==")]),e("span",{pre:!0,attrs:{class:"token number"}},[n._v("0.21")]),n._v(".0 --no-use-pep517\n"),e("span",{pre:!0,attrs:{class:"token comment"}},[n._v("# preinstall ray[rllib]<2.3.0 because starting from 2.3.0, ray also install gym > 0.21")]),n._v("\npython -m pip "),e("span",{pre:!0,attrs:{class:"token function"}},[n._v("install")]),n._v(" --upgrade pip\npython -m pip "),e("span",{pre:!0,attrs:{class:"token function"}},[n._v("install")]),n._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[n._v('"ray[rllib]<2.3.0"')]),n._v("\n"),e("span",{pre:!0,attrs:{class:"token comment"}},[n._v("# preinstall stable-baselines3<2.0.0 because starting from 2.0.0, stable-baselines3 requires gym > 0.26")]),n._v("\npython -m pip "),e("span",{pre:!0,attrs:{class:"token function"}},[n._v("install")]),n._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[n._v('"stable-baselines3<2.0.0"')]),n._v("\n"),e("span",{pre:!0,attrs:{class:"token comment"}},[n._v("# install scikit-decide and remaining dependencies")]),n._v("\npip "),e("span",{pre:!0,attrs:{class:"token function"}},[n._v("install")]),n._v(" -U scikit-decide"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[n._v("[")]),n._v("all"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[n._v("]")]),n._v("\n")])])]),e("div",{staticClass:"custom-block tip"},[e("p",{staticClass:"custom-block-title"},[n._v("Note")]),n._v(" "),e("p",[n._v("Newer versions of gym or "),e("a",{attrs:{href:"https://gymnasium.farama.org/",target:"_blank",rel:"noopener noreferrer"}},[n._v("gymnasium"),e("OutboundLink")],1),n._v(", typically greater than 0.26 are not yet possible\nbecause of a conflict between "),e("a",{attrs:{href:"https://github.com/ray-project/ray/issues/34396",target:"_blank",rel:"noopener noreferrer"}},[e("code",[n._v("ray[rllib]")]),e("OutboundLink")],1),n._v("\nand "),e("a",{attrs:{href:"https://github.com/DLR-RM/stable-baselines3/issues/1452",target:"_blank",rel:"noopener noreferrer"}},[e("code",[n._v("stable-baselines3")]),e("OutboundLink")],1),n._v(".")])])])}),[],!1,null,null,null);t.default=s.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[20],{535:function(n,t,e){"use strict";e.r(t);var a=e(38),s=Object(a.a)({},(function(){var n=this,t=n.$createElement,e=n._self._c||t;return e("ContentSlotsDistributor",{attrs:{"slot-key":n.$parent.slotKey}},[e("h1",{attrs:{id:"installation"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#installation"}},[n._v("#")]),n._v(" Installation")]),n._v(" "),e("h2",{attrs:{id:"prerequisites"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#prerequisites"}},[n._v("#")]),n._v(" Prerequisites")]),n._v(" "),e("h3",{attrs:{id:"minizinc-2-6"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#minizinc-2-6"}},[n._v("#")]),n._v(" Minizinc 2.6+")]),n._v(" "),e("p",[n._v("You need to install "),e("a",{attrs:{href:"https://www.minizinc.org/",target:"_blank",rel:"noopener noreferrer"}},[n._v("minizinc"),e("OutboundLink")],1),n._v(" (version greater than 2.6) and update the "),e("code",[n._v("PATH")]),n._v(" environment variable\nso that it can be found by Python. See "),e("a",{attrs:{href:"https://www.minizinc.org/doc-latest/en/installation.html",target:"_blank",rel:"noopener noreferrer"}},[n._v("minizinc documentation"),e("OutboundLink")],1),n._v(" for more details.")]),n._v(" "),e("div",{staticClass:"custom-block tip"},[e("p",{staticClass:"custom-block-title"},[n._v("TIP")]),n._v(" "),e("p",[n._v("You can easily install minizinc from the command line, which can be useful when on cloud.\nIn order to make life easier to cloud users, we reproduce below the necessary lines. Please be careful that this\nis not an official documentation for minizinc and that the following lines can stop working without notice\nas we do not test them automatically.")])]),n._v(" "),e("h4",{attrs:{id:"linux-command-line"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#linux-command-line"}},[n._v("#")]),n._v(" Linux command line")]),n._v(" "),e("p",[n._v("On a Linux distribution, you can use the bundled "),e("a",{attrs:{href:"https://www.minizinc.org/doc-latest/en/installation.html#appimage",target:"_blank",rel:"noopener noreferrer"}},[n._v("minizinc AppImage"),e("OutboundLink")],1),n._v(".")]),n._v(" "),e("p",[n._v("If "),e("a",{attrs:{href:"https://en.wikipedia.org/wiki/Filesystem_in_Userspace",target:"_blank",rel:"noopener noreferrer"}},[n._v("FUSE"),e("OutboundLink")],1),n._v(" is available:")]),n._v(" "),e("div",{staticClass:"language- extra-class"},[e("pre",{pre:!0,attrs:{class:"language-text"}},[e("code",[n._v('mkdir minizinc_install\ncurl -o minizinc_install/minizinc -L https://github.com/MiniZinc/MiniZincIDE/releases/download/2.6.3/MiniZincIDE-2.6.3-x86_64.AppImage\nchmod +x minizinc_install/minizinc\nexport PATH="$(pwd)/minizinc_install/":$PATH\nminizinc --version\n')])])]),e("p",[n._v("Else, this is still possible by extracting the files:")]),n._v(" "),e("div",{staticClass:"language- extra-class"},[e("pre",{pre:!0,attrs:{class:"language-text"}},[e("code",[n._v('mkdir minizinc_install\ncd minizinc_install\ncurl -o minizinc.AppImage -L https://github.com/MiniZinc/MiniZincIDE/releases/download/2.6.3/MiniZincIDE-2.6.3-x86_64.AppImage\nchmod +x minizinc.AppImage\n./minizinc.AppImage --appimage-extract\ncd ..\nexport LD_LIBRARY_PATH="$(pwd)/minizinc_install/squashfs-root/usr/lib/":$LD_LIBRARY_PATH\nexport PATH="$(pwd)/minizinc_install/squashfs-root/usr/bin/":$PATH\nminizinc --version\n')])])]),e("h4",{attrs:{id:"macos-command-line"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#macos-command-line"}},[n._v("#")]),n._v(" MacOs command line")]),n._v(" "),e("div",{staticClass:"language- extra-class"},[e("pre",{pre:!0,attrs:{class:"language-text"}},[e("code",[n._v('mkdir minizinc_install\ncurl -o minizinc.dmg -L https://github.com/MiniZinc/MiniZincIDE/releases/download/2.6.3/MiniZincIDE-2.6.3-bundled.dmg\nhdiutil attach minizinc.dmg\ncp -R /Volumes/MiniZinc*/MiniZincIDE.app minizinc_install/.\nexport PATH="$(pwd)/minizinc_install/MiniZincIDE.app/Contents/Resources":$PATH\nminizinc --version\n')])])]),e("h4",{attrs:{id:"windows-command-line"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#windows-command-line"}},[n._v("#")]),n._v(" Windows command line")]),n._v(" "),e("p",[n._v("Works on Windows Server 2022 with bash shell:")]),n._v(" "),e("div",{staticClass:"language- extra-class"},[e("pre",{pre:!0,attrs:{class:"language-text"}},[e("code",[n._v('mkdir minizinc_install\ncurl -o minizinc_setup.exe -L https://github.com/MiniZinc/MiniZincIDE/releases/download/2.6.3/MiniZincIDE-2.6.3-bundled-setup-win64.exe\ncmd //c "minizinc_setup.exe /verysilent /currentuser /norestart /suppressmsgboxes /sp"\nexport PATH="~/AppData/Local/Programs/MiniZinc":$PATH\nminizinc --version\n')])])]),e("h4",{attrs:{id:"skipping-minizinc-version-check"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#skipping-minizinc-version-check"}},[n._v("#")]),n._v(" Skipping minizinc version check")]),n._v(" "),e("p",[n._v("It may happen that you do not want to install minzinc.\nFor instance if you need to use only a part of the library which is not relying on minizinc at all,\nespecially when not relying on discrete-optimization which is the actual library depending on minizinc.")]),n._v(" "),e("p",[n._v("This can be troublesome as the minizinc binary version is checked by "),e("a",{attrs:{href:"https://airbus.github.io/discrete-optimization",target:"_blank",rel:"noopener noreferrer"}},[n._v("discrete-optimization"),e("OutboundLink")],1),n._v(" at library import.\nHowever discrete-optimization provides a way to bypass this check\nby setting the environment variable DO_SKIP_MZN_CHECK:")]),n._v(" "),e("div",{staticClass:"language-shell extra-class"},[e("pre",{pre:!0,attrs:{class:"language-shell"}},[e("code",[e("span",{pre:!0,attrs:{class:"token builtin class-name"}},[n._v("export")]),n._v(" "),e("span",{pre:!0,attrs:{class:"token assign-left variable"}},[n._v("DO_SKIP_MZN_CHECK")]),e("span",{pre:!0,attrs:{class:"token operator"}},[n._v("=")]),e("span",{pre:!0,attrs:{class:"token number"}},[n._v("1")]),n._v("\n")])])]),e("p",[n._v("Please note however that the library is never tested without minizinc (or minizinc versions < 2.6).")]),n._v(" "),e("h3",{attrs:{id:"python-3-7-environment"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#python-3-7-environment"}},[n._v("#")]),n._v(" Python 3.7+ environment")]),n._v(" "),e("p",[n._v("The use of a virtual environment for scikit-decide is recommended, and you will need to ensure that the environment use a Python version greater than 3.7.\nThis can be achieved either by using "),e("a",{attrs:{href:"https://docs.conda.io/en/latest/",target:"_blank",rel:"noopener noreferrer"}},[n._v("conda"),e("OutboundLink")],1),n._v(" or by using "),e("a",{attrs:{href:"https://github.com/pyenv/pyenv",target:"_blank",rel:"noopener noreferrer"}},[n._v("pyenv"),e("OutboundLink")],1),n._v(" (or "),e("a",{attrs:{href:"https://github.com/pyenv-win/pyenv-win",target:"_blank",rel:"noopener noreferrer"}},[n._v("pyenv-win"),e("OutboundLink")],1),n._v(" on windows)\nand "),e("a",{attrs:{href:"https://docs.python.org/fr/3/library/venv.html",target:"_blank",rel:"noopener noreferrer"}},[n._v("venv"),e("OutboundLink")],1),n._v(" module.")]),n._v(" "),e("p",[n._v("The following examples show how to create a virtual environment with Python version 3.8.13 with the mentioned methods.")]),n._v(" "),e("h4",{attrs:{id:"with-conda-all-platforms"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#with-conda-all-platforms"}},[n._v("#")]),n._v(" With conda (all platforms)")]),n._v(" "),e("div",{staticClass:"language-shell extra-class"},[e("pre",{pre:!0,attrs:{class:"language-shell"}},[e("code",[n._v("conda create -n skdecide "),e("span",{pre:!0,attrs:{class:"token assign-left variable"}},[n._v("python")]),e("span",{pre:!0,attrs:{class:"token operator"}},[n._v("=")]),e("span",{pre:!0,attrs:{class:"token number"}},[n._v("3.8")]),n._v(".13\nconda activate skdecide\n")])])]),e("h4",{attrs:{id:"with-pyenv-venv-linux-macos"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#with-pyenv-venv-linux-macos"}},[n._v("#")]),n._v(" With pyenv + venv (Linux/MacOS)")]),n._v(" "),e("div",{staticClass:"language-shell extra-class"},[e("pre",{pre:!0,attrs:{class:"language-shell"}},[e("code",[n._v("pyenv "),e("span",{pre:!0,attrs:{class:"token function"}},[n._v("install")]),n._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[n._v("3.8")]),n._v(".13\npyenv shell "),e("span",{pre:!0,attrs:{class:"token number"}},[n._v("3.8")]),n._v(".13\npython -m venv skdecide-venv\n"),e("span",{pre:!0,attrs:{class:"token builtin class-name"}},[n._v("source")]),n._v(" skdecide-venv/bin/activate\n")])])]),e("h4",{attrs:{id:"with-pyenv-win-venv-windows"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#with-pyenv-win-venv-windows"}},[n._v("#")]),n._v(" With pyenv-win + venv (Windows)")]),n._v(" "),e("div",{staticClass:"language-shell extra-class"},[e("pre",{pre:!0,attrs:{class:"language-shell"}},[e("code",[n._v("pyenv "),e("span",{pre:!0,attrs:{class:"token function"}},[n._v("install")]),n._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[n._v("3.8")]),n._v(".13\npyenv shell "),e("span",{pre:!0,attrs:{class:"token number"}},[n._v("3.8")]),n._v(".13\npython -m venv skdecide-venv\nskdecide-venv"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[n._v("\\")]),n._v("Scripts"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[n._v("\\")]),n._v("activate\n")])])]),e("h2",{attrs:{id:"install-scikit-decide-library"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#install-scikit-decide-library"}},[n._v("#")]),n._v(" Install scikit-decide library")]),n._v(" "),e("h3",{attrs:{id:"full-install-recommended"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#full-install-recommended"}},[n._v("#")]),n._v(" Full install [Recommended]")]),n._v(" "),e("p",[n._v("Install scikit-decide library from PyPI with all dependencies required by domains/solvers in the hub (scikit-decide catalog).")]),n._v(" "),e("div",{staticClass:"language-shell extra-class"},[e("pre",{pre:!0,attrs:{class:"language-shell"}},[e("code",[n._v("pip "),e("span",{pre:!0,attrs:{class:"token function"}},[n._v("install")]),n._v(" -U pip\npip "),e("span",{pre:!0,attrs:{class:"token function"}},[n._v("install")]),n._v(" -U scikit-decide"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[n._v("[")]),n._v("all"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[n._v("]")]),n._v("\n")])])]),e("h3",{attrs:{id:"minimal-install"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#minimal-install"}},[n._v("#")]),n._v(" Minimal install")]),n._v(" "),e("p",[n._v("Alternatively you can choose to only install the core library, which is enough if you intend to create your own domain and solver.")]),n._v(" "),e("div",{staticClass:"language-shell extra-class"},[e("pre",{pre:!0,attrs:{class:"language-shell"}},[e("code",[n._v("pip "),e("span",{pre:!0,attrs:{class:"token function"}},[n._v("install")]),n._v(" -U pip\npip "),e("span",{pre:!0,attrs:{class:"token function"}},[n._v("install")]),n._v(" -U scikit-decide\n")])])]),e("h2",{attrs:{id:"troubleshooting"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#troubleshooting"}},[n._v("#")]),n._v(" Troubleshooting")]),n._v(" "),e("p",[n._v("You may encounter an "),e("a",{attrs:{href:"https://github.com/openai/gym/issues/3176",target:"_blank",rel:"noopener noreferrer"}},[n._v("error when installing "),e("code",[n._v("gym==0.21.0")]),e("OutboundLink")],1),n._v(" which happens to be a dependency of "),e("code",[n._v("scikit-decide[all]")]),n._v(".\nThis is because its installation does not respect PEP 517 which is enforced by default by last versions of pip and setuptools.\nThe solution is to install it beforehand:")]),n._v(" "),e("div",{staticClass:"language-shell extra-class"},[e("pre",{pre:!0,attrs:{class:"language-shell"}},[e("code",[e("span",{pre:!0,attrs:{class:"token comment"}},[n._v("# preinstall gym==0.21.0 with legacy method (python setup.py) because its requirements list is broken")]),n._v("\npython -m pip "),e("span",{pre:!0,attrs:{class:"token function"}},[n._v("install")]),n._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[n._v('"pip==22"')]),n._v(" "),e("span",{pre:!0,attrs:{class:"token comment"}},[n._v("# starting with pip 23.1, gym 0.21.0 is not intallable anymore")]),n._v("\npython -m pip "),e("span",{pre:!0,attrs:{class:"token function"}},[n._v("install")]),n._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[n._v('"setuptools<67"')]),n._v(" "),e("span",{pre:!0,attrs:{class:"token comment"}},[n._v("# starting with setuptools 67, gym 0.21.0 is not intallable anymore")]),n._v("\npython -m pip "),e("span",{pre:!0,attrs:{class:"token function"}},[n._v("install")]),n._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[n._v('"importlib-metadata<5"')]),n._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[n._v('"virtualenv==20.16.6"')]),n._v(" "),e("span",{pre:!0,attrs:{class:"token comment"}},[n._v("# cannot import gym with importlib-metadata >= 5 and python<3.8")]),n._v("\npython -m pip uninstall -y wheel "),e("span",{pre:!0,attrs:{class:"token comment"}},[n._v("# wheel must not be here to fall back directly to python setup.py")]),n._v("\npython -m pip "),e("span",{pre:!0,attrs:{class:"token function"}},[n._v("install")]),n._v(" "),e("span",{pre:!0,attrs:{class:"token assign-left variable"}},[n._v("gym")]),e("span",{pre:!0,attrs:{class:"token operator"}},[n._v("==")]),e("span",{pre:!0,attrs:{class:"token number"}},[n._v("0.21")]),n._v(".0 --no-use-pep517\n"),e("span",{pre:!0,attrs:{class:"token comment"}},[n._v("# preinstall ray[rllib]<2.3.0 because starting from 2.3.0, ray also install gym > 0.21")]),n._v("\npython -m pip "),e("span",{pre:!0,attrs:{class:"token function"}},[n._v("install")]),n._v(" --upgrade pip\npython -m pip "),e("span",{pre:!0,attrs:{class:"token function"}},[n._v("install")]),n._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[n._v('"ray[rllib]<2.3.0"')]),n._v("\n"),e("span",{pre:!0,attrs:{class:"token comment"}},[n._v("# preinstall stable-baselines3<2.0.0 because starting from 2.0.0, stable-baselines3 requires gym > 0.26")]),n._v("\npython -m pip "),e("span",{pre:!0,attrs:{class:"token function"}},[n._v("install")]),n._v(" "),e("span",{pre:!0,attrs:{class:"token string"}},[n._v('"stable-baselines3<2.0.0"')]),n._v("\n"),e("span",{pre:!0,attrs:{class:"token comment"}},[n._v("# install scikit-decide and remaining dependencies")]),n._v("\npip "),e("span",{pre:!0,attrs:{class:"token function"}},[n._v("install")]),n._v(" -U scikit-decide"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[n._v("[")]),n._v("all"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[n._v("]")]),n._v("\n")])])]),e("div",{staticClass:"custom-block tip"},[e("p",{staticClass:"custom-block-title"},[n._v("Note")]),n._v(" "),e("p",[n._v("Newer versions of gym or "),e("a",{attrs:{href:"https://gymnasium.farama.org/",target:"_blank",rel:"noopener noreferrer"}},[n._v("gymnasium"),e("OutboundLink")],1),n._v(", typically greater than 0.26 are not yet possible\nbecause of a conflict between "),e("a",{attrs:{href:"https://github.com/ray-project/ray/issues/34396",target:"_blank",rel:"noopener noreferrer"}},[e("code",[n._v("ray[rllib]")]),e("OutboundLink")],1),n._v("\nand "),e("a",{attrs:{href:"https://github.com/DLR-RM/stable-baselines3/issues/1452",target:"_blank",rel:"noopener noreferrer"}},[e("code",[n._v("stable-baselines3")]),e("OutboundLink")],1),n._v(".")])])])}),[],!1,null,null,null);t.default=s.exports}}]); \ No newline at end of file diff --git a/assets/js/21.1cdf26ca.js b/assets/js/21.c96761b6.js similarity index 99% rename from assets/js/21.1cdf26ca.js rename to assets/js/21.c96761b6.js index 03241dc14f..26b379867d 100644 --- a/assets/js/21.1cdf26ca.js +++ b/assets/js/21.c96761b6.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[21],{536:function(t,a,e){"use strict";e.r(a);var r=e(38),i=Object(r.a)({},(function(){var t=this,a=t.$createElement,e=t._self._c||a;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"notebooks"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#notebooks"}},[t._v("#")]),t._v(" Notebooks")]),t._v(" "),e("p",[t._v("We present here a curated list of notebooks recommended to start with scikit-decide, available in the "),e("code",[t._v("notebooks/")]),t._v(" folder of the repository.")]),t._v(" "),e("p"),e("div",{staticClass:"table-of-contents"},[e("ul",[e("li",[e("a",{attrs:{href:"#maze-tutorial"}},[t._v("Maze tutorial")])]),e("li",[e("a",{attrs:{href:"#gym-environment-with-scikit-decide-tutorial-continuous-mountain-car"}},[t._v("Gym environment with scikit-decide tutorial: Continuous Mountain Car")])]),e("li",[e("a",{attrs:{href:"#introduction-to-scheduling"}},[t._v("Introduction to scheduling")])]),e("li",[e("a",{attrs:{href:"#benchmarking-scikit-decide-solvers"}},[t._v("Benchmarking scikit-decide solvers")])]),e("li",[e("a",{attrs:{href:"#flight-planning-domain"}},[t._v("Flight Planning Domain")])])])]),e("p"),t._v(" "),e("h2",{attrs:{id:"maze-tutorial"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#maze-tutorial"}},[t._v("#")]),t._v(" Maze tutorial")]),t._v(" "),e("p",[e("a",{attrs:{href:"https://github.com/airbus/scikit-decide/blob/master/notebooks/11_maze_tuto.ipynb",target:"_blank",rel:"noopener noreferrer"}},[e("img",{attrs:{src:"https://img.shields.io/badge/see-Github-579aca?logo=github",alt:"Github"}}),e("OutboundLink")],1),t._v(" "),e("a",{attrs:{href:"https://mybinder.org/v2/gh/airbus/scikit-decide/binder?urlpath=git-pull%3Frepo%3Dhttps%253A%252F%252Fgithub.com%252Fairbus%252Fscikit-decide%26urlpath%3Dtree%252Fscikit-decide%252Fnotebooks%252F11_maze_tuto.ipynb%26branch%3Dmaster",target:"_blank",rel:"noopener noreferrer"}},[e("img",{attrs:{src:"https://mybinder.org/badge_logo.svg",alt:"Binder"}}),e("OutboundLink")],1)]),t._v(" "),e("p",[t._v("In this tutorial, we tackle the maze problem.\nWe use this classical game to demonstrate how")]),t._v(" "),e("ul",[e("li",[t._v("a new scikit-decide domain can be easily created")]),t._v(" "),e("li",[t._v("to find solvers from scikit-decide hub matching its characteristics")]),t._v(" "),e("li",[t._v("to apply a scikit-decide solver to a domain")]),t._v(" "),e("li",[t._v("to create its own rollout function to play a trained solver on a domain")])]),t._v(" "),e("p",[t._v("Notes:")]),t._v(" "),e("ul",[e("li",[t._v("In order to focus on scikit-decide use, we put some code not directly related to the library in a "),e("a",{attrs:{href:"./maze_utils.py"}},[t._v("separate module")]),t._v(" (like maze generation and display).")]),t._v(" "),e("li",[t._v("A similar maze domain is already defined in "),e("a",{attrs:{href:"https://github.com/airbus/scikit-decide/blob/master/skdecide/hub/domain/maze/maze.py",target:"_blank",rel:"noopener noreferrer"}},[t._v("scikit-decide hub"),e("OutboundLink")],1),t._v(" but we do not use it for the sake of this tutorial.")])]),t._v(" "),e("h2",{attrs:{id:"gym-environment-with-scikit-decide-tutorial-continuous-mountain-car"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#gym-environment-with-scikit-decide-tutorial-continuous-mountain-car"}},[t._v("#")]),t._v(" Gym environment with scikit-decide tutorial: Continuous Mountain Car")]),t._v(" "),e("p",[e("a",{attrs:{href:"https://github.com/airbus/scikit-decide/blob/master/notebooks/12_gym_tuto.ipynb",target:"_blank",rel:"noopener noreferrer"}},[e("img",{attrs:{src:"https://img.shields.io/badge/see-Github-579aca?logo=github",alt:"Github"}}),e("OutboundLink")],1),t._v(" "),e("a",{attrs:{href:"https://mybinder.org/v2/gh/airbus/scikit-decide/binder?urlpath=git-pull%3Frepo%3Dhttps%253A%252F%252Fgithub.com%252Fairbus%252Fscikit-decide%26urlpath%3Dtree%252Fscikit-decide%252Fnotebooks%252F12_gym_tuto.ipynb%26branch%3Dmaster",target:"_blank",rel:"noopener noreferrer"}},[e("img",{attrs:{src:"https://mybinder.org/badge_logo.svg",alt:"Binder"}}),e("OutboundLink")],1)]),t._v(" "),e("p",[t._v("In this notebook we tackle the continuous mountain car problem taken from "),e("a",{attrs:{href:"https://gym.openai.com/",target:"_blank",rel:"noopener noreferrer"}},[t._v("OpenAI Gym"),e("OutboundLink")],1),t._v(", a toolkit for developing environments, usually to be solved by Reinforcement Learning (RL) algorithms.")]),t._v(" "),e("p",[t._v("Continuous Mountain Car, a standard testing domain in RL, is a problem in which an under-powered car must drive up a steep hill.")]),t._v(" "),e("div",{attrs:{align:"middle"}},[e("video",{attrs:{controls:"",autoplay:"",preload:"",src:"https://gym.openai.com/videos/2019-10-21--mqt8Qj1mwo/MountainCarContinuous-v0/original.mp4"}})]),t._v(" "),e("p",[t._v("Note that we use here the "),e("em",[t._v("continuous")]),t._v(" version of the mountain car because\nit has a "),e("em",[t._v("shaped")]),t._v(" or "),e("em",[t._v("dense")]),t._v(' reward (i.e. not sparse) which can be used successfully when solving, as opposed to the other "Mountain Car" environments.\nFor reminder, a sparse reward is a reward which is null almost everywhere, whereas a dense or shaped reward has more meaningful values for most transitions.')]),t._v(" "),e("p",[t._v("This problem has been chosen for two reasons:")]),t._v(" "),e("ul",[e("li",[t._v("Show how scikit-decide can be used to solve Gym environments (the de-facto standard in the RL community),")]),t._v(" "),e("li",[t._v("Highlight that by doing so, you will be able to use not only solvers from the RL community (like the ones in "),e("a",{attrs:{href:"https://github.com/DLR-RM/stable-baselines3",target:"_blank",rel:"noopener noreferrer"}},[t._v("stable_baselines3"),e("OutboundLink")],1),t._v(" for example), but also other solvers coming from other communities like genetic programming and planning/search (use of an underlying search graph) that can be very efficient.")])]),t._v(" "),e("p",[t._v("Therefore in this notebook we will go through the following steps:")]),t._v(" "),e("ul",[e("li",[t._v("Wrap a Gym environment in a scikit-decide domain;")]),t._v(" "),e("li",[t._v("Use a classical RL algorithm like PPO to solve our problem;")]),t._v(" "),e("li",[t._v("Give CGP (Cartesian Genetic Programming) a try on the same problem;")]),t._v(" "),e("li",[t._v("Finally use IW (Iterated Width) coming from the planning community on the same problem.")])]),t._v(" "),e("h2",{attrs:{id:"introduction-to-scheduling"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#introduction-to-scheduling"}},[t._v("#")]),t._v(" Introduction to scheduling")]),t._v(" "),e("p",[e("a",{attrs:{href:"https://github.com/airbus/scikit-decide/blob/master/notebooks/13_scheduling_tuto.ipynb",target:"_blank",rel:"noopener noreferrer"}},[e("img",{attrs:{src:"https://img.shields.io/badge/see-Github-579aca?logo=github",alt:"Github"}}),e("OutboundLink")],1),t._v(" "),e("a",{attrs:{href:"https://mybinder.org/v2/gh/airbus/scikit-decide/binder?urlpath=git-pull%3Frepo%3Dhttps%253A%252F%252Fgithub.com%252Fairbus%252Fscikit-decide%26urlpath%3Dtree%252Fscikit-decide%252Fnotebooks%252F13_scheduling_tuto.ipynb%26branch%3Dmaster",target:"_blank",rel:"noopener noreferrer"}},[e("img",{attrs:{src:"https://mybinder.org/badge_logo.svg",alt:"Binder"}}),e("OutboundLink")],1)]),t._v(" "),e("p",[t._v("In this notebook, we explore how to solve a resource constrained project scheduling problem (RCPSP).")]),t._v(" "),e("p",[t._v("The problem is made of "),e("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[e("svg",{staticStyle:{"vertical-align":"0"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"2.378ex",height:"1.545ex",viewBox:"0 -683 1051 683"}},[e("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[e("g",{attrs:{"data-mml-node":"math"}},[e("g",{attrs:{"data-mml-node":"mi"}},[e("path",{attrs:{"data-c":"4D",d:"M289 629Q289 635 232 637Q208 637 201 638T194 648Q194 649 196 659Q197 662 198 666T199 671T201 676T203 679T207 681T212 683T220 683T232 684Q238 684 262 684T307 683Q386 683 398 683T414 678Q415 674 451 396L487 117L510 154Q534 190 574 254T662 394Q837 673 839 675Q840 676 842 678T846 681L852 683H948Q965 683 988 683T1017 684Q1051 684 1051 673Q1051 668 1048 656T1045 643Q1041 637 1008 637Q968 636 957 634T939 623Q936 618 867 340T797 59Q797 55 798 54T805 50T822 48T855 46H886Q892 37 892 35Q892 19 885 5Q880 0 869 0Q864 0 828 1T736 2Q675 2 644 2T609 1Q592 1 592 11Q592 13 594 25Q598 41 602 43T625 46Q652 46 685 49Q699 52 704 61Q706 65 742 207T813 490T848 631L654 322Q458 10 453 5Q451 4 449 3Q444 0 433 0Q418 0 415 7Q413 11 374 317L335 624L267 354Q200 88 200 79Q206 46 272 46H282Q288 41 289 37T286 19Q282 3 278 1Q274 0 267 0Q265 0 255 0T221 1T157 2Q127 2 95 1T58 0Q43 0 39 2T35 11Q35 13 38 25T43 40Q45 46 65 46Q135 46 154 86Q158 92 223 354T289 629Z"}})])])])])]),t._v(" activities that have precedence constraints. That means that if activity "),e("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[e("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.471ex",height:"2.262ex",viewBox:"0 -750 4186.2 1000"}},[e("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[e("g",{attrs:{"data-mml-node":"math"}},[e("g",{attrs:{"data-mml-node":"mi"}},[e("path",{attrs:{"data-c":"6A",d:"M297 596Q297 627 318 644T361 661Q378 661 389 651T403 623Q403 595 384 576T340 557Q322 557 310 567T297 596ZM288 376Q288 405 262 405Q240 405 220 393T185 362T161 325T144 293L137 279Q135 278 121 278H107Q101 284 101 286T105 299Q126 348 164 391T252 441Q253 441 260 441T272 442Q296 441 316 432Q341 418 354 401T367 348V332L318 133Q267 -67 264 -75Q246 -125 194 -164T75 -204Q25 -204 7 -183T-12 -137Q-12 -110 7 -91T53 -71Q70 -71 82 -81T95 -112Q95 -148 63 -167Q69 -168 77 -168Q111 -168 139 -140T182 -74L193 -32Q204 11 219 72T251 197T278 308T289 365Q289 372 288 376Z"}})]),e("g",{attrs:{"data-mml-node":"mo",transform:"translate(689.8, 0)"}},[e("path",{attrs:{"data-c":"2208",d:"M84 250Q84 372 166 450T360 539Q361 539 377 539T419 540T469 540H568Q583 532 583 520Q583 511 570 501L466 500Q355 499 329 494Q280 482 242 458T183 409T147 354T129 306T124 272V270H568Q583 262 583 250T568 230H124V228Q124 207 134 177T167 112T231 48T328 7Q355 1 466 0H570Q583 -10 583 -20Q583 -32 568 -40H471Q464 -40 446 -40T417 -41Q262 -41 172 45Q84 127 84 250Z"}})]),e("g",{attrs:{"data-mml-node":"mo",transform:"translate(1634.6, 0)"}},[e("path",{attrs:{"data-c":"5B",d:"M118 -250V750H255V710H158V-210H255V-250H118Z"}})]),e("g",{attrs:{"data-mml-node":"mn",transform:"translate(1912.6, 0)"}},[e("path",{attrs:{"data-c":"31",d:"M213 578L200 573Q186 568 160 563T102 556H83V602H102Q149 604 189 617T245 641T273 663Q275 666 285 666Q294 666 302 660V361L303 61Q310 54 315 52T339 48T401 46H427V0H416Q395 3 257 3Q121 3 100 0H88V46H114Q136 46 152 46T177 47T193 50T201 52T207 57T213 61V578Z"}})]),e("g",{attrs:{"data-mml-node":"mo",transform:"translate(2412.6, 0)"}},[e("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),e("g",{attrs:{"data-mml-node":"mi",transform:"translate(2857.2, 0)"}},[e("path",{attrs:{"data-c":"4D",d:"M289 629Q289 635 232 637Q208 637 201 638T194 648Q194 649 196 659Q197 662 198 666T199 671T201 676T203 679T207 681T212 683T220 683T232 684Q238 684 262 684T307 683Q386 683 398 683T414 678Q415 674 451 396L487 117L510 154Q534 190 574 254T662 394Q837 673 839 675Q840 676 842 678T846 681L852 683H948Q965 683 988 683T1017 684Q1051 684 1051 673Q1051 668 1048 656T1045 643Q1041 637 1008 637Q968 636 957 634T939 623Q936 618 867 340T797 59Q797 55 798 54T805 50T822 48T855 46H886Q892 37 892 35Q892 19 885 5Q880 0 869 0Q864 0 828 1T736 2Q675 2 644 2T609 1Q592 1 592 11Q592 13 594 25Q598 41 602 43T625 46Q652 46 685 49Q699 52 704 61Q706 65 742 207T813 490T848 631L654 322Q458 10 453 5Q451 4 449 3Q444 0 433 0Q418 0 415 7Q413 11 374 317L335 624L267 354Q200 88 200 79Q206 46 272 46H282Q288 41 289 37T286 19Q282 3 278 1Q274 0 267 0Q265 0 255 0T221 1T157 2Q127 2 95 1T58 0Q43 0 39 2T35 11Q35 13 38 25T43 40Q45 46 65 46Q135 46 154 86Q158 92 223 354T289 629Z"}})]),e("g",{attrs:{"data-mml-node":"mo",transform:"translate(3908.2, 0)"}},[e("path",{attrs:{"data-c":"5D",d:"M22 710V750H159V-250H22V-210H119V710H22Z"}})])])])])]),t._v(" is a successor of activity "),e("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[e("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.32ex",height:"2.262ex",viewBox:"0 -750 4119.2 1000"}},[e("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[e("g",{attrs:{"data-mml-node":"math"}},[e("g",{attrs:{"data-mml-node":"mi"}},[e("path",{attrs:{"data-c":"69",d:"M184 600Q184 624 203 642T247 661Q265 661 277 649T290 619Q290 596 270 577T226 557Q211 557 198 567T184 600ZM21 287Q21 295 30 318T54 369T98 420T158 442Q197 442 223 419T250 357Q250 340 236 301T196 196T154 83Q149 61 149 51Q149 26 166 26Q175 26 185 29T208 43T235 78T260 137Q263 149 265 151T282 153Q302 153 302 143Q302 135 293 112T268 61T223 11T161 -11Q129 -11 102 10T74 74Q74 91 79 106T122 220Q160 321 166 341T173 380Q173 404 156 404H154Q124 404 99 371T61 287Q60 286 59 284T58 281T56 279T53 278T49 278T41 278H27Q21 284 21 287Z"}})]),e("g",{attrs:{"data-mml-node":"mo",transform:"translate(622.8, 0)"}},[e("path",{attrs:{"data-c":"2208",d:"M84 250Q84 372 166 450T360 539Q361 539 377 539T419 540T469 540H568Q583 532 583 520Q583 511 570 501L466 500Q355 499 329 494Q280 482 242 458T183 409T147 354T129 306T124 272V270H568Q583 262 583 250T568 230H124V228Q124 207 134 177T167 112T231 48T328 7Q355 1 466 0H570Q583 -10 583 -20Q583 -32 568 -40H471Q464 -40 446 -40T417 -41Q262 -41 172 45Q84 127 84 250Z"}})]),e("g",{attrs:{"data-mml-node":"mo",transform:"translate(1567.6, 0)"}},[e("path",{attrs:{"data-c":"5B",d:"M118 -250V750H255V710H158V-210H255V-250H118Z"}})]),e("g",{attrs:{"data-mml-node":"mn",transform:"translate(1845.6, 0)"}},[e("path",{attrs:{"data-c":"31",d:"M213 578L200 573Q186 568 160 563T102 556H83V602H102Q149 604 189 617T245 641T273 663Q275 666 285 666Q294 666 302 660V361L303 61Q310 54 315 52T339 48T401 46H427V0H416Q395 3 257 3Q121 3 100 0H88V46H114Q136 46 152 46T177 47T193 50T201 52T207 57T213 61V578Z"}})]),e("g",{attrs:{"data-mml-node":"mo",transform:"translate(2345.6, 0)"}},[e("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),e("g",{attrs:{"data-mml-node":"mi",transform:"translate(2790.2, 0)"}},[e("path",{attrs:{"data-c":"4D",d:"M289 629Q289 635 232 637Q208 637 201 638T194 648Q194 649 196 659Q197 662 198 666T199 671T201 676T203 679T207 681T212 683T220 683T232 684Q238 684 262 684T307 683Q386 683 398 683T414 678Q415 674 451 396L487 117L510 154Q534 190 574 254T662 394Q837 673 839 675Q840 676 842 678T846 681L852 683H948Q965 683 988 683T1017 684Q1051 684 1051 673Q1051 668 1048 656T1045 643Q1041 637 1008 637Q968 636 957 634T939 623Q936 618 867 340T797 59Q797 55 798 54T805 50T822 48T855 46H886Q892 37 892 35Q892 19 885 5Q880 0 869 0Q864 0 828 1T736 2Q675 2 644 2T609 1Q592 1 592 11Q592 13 594 25Q598 41 602 43T625 46Q652 46 685 49Q699 52 704 61Q706 65 742 207T813 490T848 631L654 322Q458 10 453 5Q451 4 449 3Q444 0 433 0Q418 0 415 7Q413 11 374 317L335 624L267 354Q200 88 200 79Q206 46 272 46H282Q288 41 289 37T286 19Q282 3 278 1Q274 0 267 0Q265 0 255 0T221 1T157 2Q127 2 95 1T58 0Q43 0 39 2T35 11Q35 13 38 25T43 40Q45 46 65 46Q135 46 154 86Q158 92 223 354T289 629Z"}})]),e("g",{attrs:{"data-mml-node":"mo",transform:"translate(3841.2, 0)"}},[e("path",{attrs:{"data-c":"5D",d:"M22 710V750H159V-250H22V-210H119V710H22Z"}})])])])])]),t._v(", then activity "),e("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[e("svg",{staticStyle:{"vertical-align":"-0.025ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"0.781ex",height:"1.52ex",viewBox:"0 -661 345 672"}},[e("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[e("g",{attrs:{"data-mml-node":"math"}},[e("g",{attrs:{"data-mml-node":"mi"}},[e("path",{attrs:{"data-c":"69",d:"M184 600Q184 624 203 642T247 661Q265 661 277 649T290 619Q290 596 270 577T226 557Q211 557 198 567T184 600ZM21 287Q21 295 30 318T54 369T98 420T158 442Q197 442 223 419T250 357Q250 340 236 301T196 196T154 83Q149 61 149 51Q149 26 166 26Q175 26 185 29T208 43T235 78T260 137Q263 149 265 151T282 153Q302 153 302 143Q302 135 293 112T268 61T223 11T161 -11Q129 -11 102 10T74 74Q74 91 79 106T122 220Q160 321 166 341T173 380Q173 404 156 404H154Q124 404 99 371T61 287Q60 286 59 284T58 281T56 279T53 278T49 278T41 278H27Q21 284 21 287Z"}})])])])])]),t._v(" must be completed before activity "),e("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[e("svg",{staticStyle:{"vertical-align":"-0.462ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"0.932ex",height:"1.957ex",viewBox:"0 -661 412 865"}},[e("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[e("g",{attrs:{"data-mml-node":"math"}},[e("g",{attrs:{"data-mml-node":"mi"}},[e("path",{attrs:{"data-c":"6A",d:"M297 596Q297 627 318 644T361 661Q378 661 389 651T403 623Q403 595 384 576T340 557Q322 557 310 567T297 596ZM288 376Q288 405 262 405Q240 405 220 393T185 362T161 325T144 293L137 279Q135 278 121 278H107Q101 284 101 286T105 299Q126 348 164 391T252 441Q253 441 260 441T272 442Q296 441 316 432Q341 418 354 401T367 348V332L318 133Q267 -67 264 -75Q246 -125 194 -164T75 -204Q25 -204 7 -183T-12 -137Q-12 -110 7 -91T53 -71Q70 -71 82 -81T95 -112Q95 -148 63 -167Q69 -168 77 -168Q111 -168 139 -140T182 -74L193 -32Q204 11 219 72T251 197T278 308T289 365Q289 372 288 376Z"}})])])])])]),t._v(" can be started")],1),t._v(" "),e("p",[t._v("On top of these constraints, each project is assigned a set of K renewable resources where each resource "),e("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[e("svg",{staticStyle:{"vertical-align":"-0.025ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.179ex",height:"1.595ex",viewBox:"0 -694 521 705"}},[e("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[e("g",{attrs:{"data-mml-node":"math"}},[e("g",{attrs:{"data-mml-node":"mi"}},[e("path",{attrs:{"data-c":"6B",d:"M121 647Q121 657 125 670T137 683Q138 683 209 688T282 694Q294 694 294 686Q294 679 244 477Q194 279 194 272Q213 282 223 291Q247 309 292 354T362 415Q402 442 438 442Q468 442 485 423T503 369Q503 344 496 327T477 302T456 291T438 288Q418 288 406 299T394 328Q394 353 410 369T442 390L458 393Q446 405 434 405H430Q398 402 367 380T294 316T228 255Q230 254 243 252T267 246T293 238T320 224T342 206T359 180T365 147Q365 130 360 106T354 66Q354 26 381 26Q429 26 459 145Q461 153 479 153H483Q499 153 499 144Q499 139 496 130Q455 -11 378 -11Q333 -11 305 15T277 90Q277 108 280 121T283 145Q283 167 269 183T234 206T200 217T182 220H180Q168 178 159 139T145 81T136 44T129 20T122 7T111 -2Q98 -11 83 -11Q66 -11 57 -1T48 16Q48 26 85 176T158 471L195 616Q196 629 188 632T149 637H144Q134 637 131 637T124 640T121 647Z"}})])])])])]),t._v(" is available in "),e("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[e("svg",{staticStyle:{"vertical-align":"-0.357ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"2.664ex",height:"1.902ex",viewBox:"0 -683 1177.4 840.8"}},[e("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[e("g",{attrs:{"data-mml-node":"math"}},[e("g",{attrs:{"data-mml-node":"msub"}},[e("g",{attrs:{"data-mml-node":"mi"}},[e("path",{attrs:{"data-c":"52",d:"M230 637Q203 637 198 638T193 649Q193 676 204 682Q206 683 378 683Q550 682 564 680Q620 672 658 652T712 606T733 563T739 529Q739 484 710 445T643 385T576 351T538 338L545 333Q612 295 612 223Q612 212 607 162T602 80V71Q602 53 603 43T614 25T640 16Q668 16 686 38T712 85Q717 99 720 102T735 105Q755 105 755 93Q755 75 731 36Q693 -21 641 -21H632Q571 -21 531 4T487 82Q487 109 502 166T517 239Q517 290 474 313Q459 320 449 321T378 323H309L277 193Q244 61 244 59Q244 55 245 54T252 50T269 48T302 46H333Q339 38 339 37T336 19Q332 6 326 0H311Q275 2 180 2Q146 2 117 2T71 2T50 1Q33 1 33 10Q33 12 36 24Q41 43 46 45Q50 46 61 46H67Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628Q287 635 230 637ZM630 554Q630 586 609 608T523 636Q521 636 500 636T462 637H440Q393 637 386 627Q385 624 352 494T319 361Q319 360 388 360Q466 361 492 367Q556 377 592 426Q608 449 619 486T630 554Z"}})]),e("g",{attrs:{"data-mml-node":"TeXAtom",transform:"translate(759, -150) scale(0.707)"}},[e("g",{attrs:{"data-mml-node":"mi"}},[e("path",{attrs:{"data-c":"6B",d:"M121 647Q121 657 125 670T137 683Q138 683 209 688T282 694Q294 694 294 686Q294 679 244 477Q194 279 194 272Q213 282 223 291Q247 309 292 354T362 415Q402 442 438 442Q468 442 485 423T503 369Q503 344 496 327T477 302T456 291T438 288Q418 288 406 299T394 328Q394 353 410 369T442 390L458 393Q446 405 434 405H430Q398 402 367 380T294 316T228 255Q230 254 243 252T267 246T293 238T320 224T342 206T359 180T365 147Q365 130 360 106T354 66Q354 26 381 26Q429 26 459 145Q461 153 479 153H483Q499 153 499 144Q499 139 496 130Q455 -11 378 -11Q333 -11 305 15T277 90Q277 108 280 121T283 145Q283 167 269 183T234 206T200 217T182 220H180Q168 178 159 139T145 81T136 44T129 20T122 7T111 -2Q98 -11 83 -11Q66 -11 57 -1T48 16Q48 26 85 176T158 471L195 616Q196 629 188 632T149 637H144Q134 637 131 637T124 640T121 647Z"}})])])])])])])]),t._v(" units for the entire duration of the project. Each activity may require one or more of these resources to be completed. While scheduling the activities, the daily resource usage for resource "),e("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[e("svg",{staticStyle:{"vertical-align":"-0.025ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.179ex",height:"1.595ex",viewBox:"0 -694 521 705"}},[e("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[e("g",{attrs:{"data-mml-node":"math"}},[e("g",{attrs:{"data-mml-node":"mi"}},[e("path",{attrs:{"data-c":"6B",d:"M121 647Q121 657 125 670T137 683Q138 683 209 688T282 694Q294 694 294 686Q294 679 244 477Q194 279 194 272Q213 282 223 291Q247 309 292 354T362 415Q402 442 438 442Q468 442 485 423T503 369Q503 344 496 327T477 302T456 291T438 288Q418 288 406 299T394 328Q394 353 410 369T442 390L458 393Q446 405 434 405H430Q398 402 367 380T294 316T228 255Q230 254 243 252T267 246T293 238T320 224T342 206T359 180T365 147Q365 130 360 106T354 66Q354 26 381 26Q429 26 459 145Q461 153 479 153H483Q499 153 499 144Q499 139 496 130Q455 -11 378 -11Q333 -11 305 15T277 90Q277 108 280 121T283 145Q283 167 269 183T234 206T200 217T182 220H180Q168 178 159 139T145 81T136 44T129 20T122 7T111 -2Q98 -11 83 -11Q66 -11 57 -1T48 16Q48 26 85 176T158 471L195 616Q196 629 188 632T149 637H144Q134 637 131 637T124 640T121 647Z"}})])])])])]),t._v(" can not exceed "),e("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[e("svg",{staticStyle:{"vertical-align":"-0.357ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"2.664ex",height:"1.902ex",viewBox:"0 -683 1177.4 840.8"}},[e("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[e("g",{attrs:{"data-mml-node":"math"}},[e("g",{attrs:{"data-mml-node":"msub"}},[e("g",{attrs:{"data-mml-node":"mi"}},[e("path",{attrs:{"data-c":"52",d:"M230 637Q203 637 198 638T193 649Q193 676 204 682Q206 683 378 683Q550 682 564 680Q620 672 658 652T712 606T733 563T739 529Q739 484 710 445T643 385T576 351T538 338L545 333Q612 295 612 223Q612 212 607 162T602 80V71Q602 53 603 43T614 25T640 16Q668 16 686 38T712 85Q717 99 720 102T735 105Q755 105 755 93Q755 75 731 36Q693 -21 641 -21H632Q571 -21 531 4T487 82Q487 109 502 166T517 239Q517 290 474 313Q459 320 449 321T378 323H309L277 193Q244 61 244 59Q244 55 245 54T252 50T269 48T302 46H333Q339 38 339 37T336 19Q332 6 326 0H311Q275 2 180 2Q146 2 117 2T71 2T50 1Q33 1 33 10Q33 12 36 24Q41 43 46 45Q50 46 61 46H67Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628Q287 635 230 637ZM630 554Q630 586 609 608T523 636Q521 636 500 636T462 637H440Q393 637 386 627Q385 624 352 494T319 361Q319 360 388 360Q466 361 492 367Q556 377 592 426Q608 449 619 486T630 554Z"}})]),e("g",{attrs:{"data-mml-node":"TeXAtom",transform:"translate(759, -150) scale(0.707)"}},[e("g",{attrs:{"data-mml-node":"mi"}},[e("path",{attrs:{"data-c":"6B",d:"M121 647Q121 657 125 670T137 683Q138 683 209 688T282 694Q294 694 294 686Q294 679 244 477Q194 279 194 272Q213 282 223 291Q247 309 292 354T362 415Q402 442 438 442Q468 442 485 423T503 369Q503 344 496 327T477 302T456 291T438 288Q418 288 406 299T394 328Q394 353 410 369T442 390L458 393Q446 405 434 405H430Q398 402 367 380T294 316T228 255Q230 254 243 252T267 246T293 238T320 224T342 206T359 180T365 147Q365 130 360 106T354 66Q354 26 381 26Q429 26 459 145Q461 153 479 153H483Q499 153 499 144Q499 139 496 130Q455 -11 378 -11Q333 -11 305 15T277 90Q277 108 280 121T283 145Q283 167 269 183T234 206T200 217T182 220H180Q168 178 159 139T145 81T136 44T129 20T122 7T111 -2Q98 -11 83 -11Q66 -11 57 -1T48 16Q48 26 85 176T158 471L195 616Q196 629 188 632T149 637H144Q134 637 131 637T124 640T121 647Z"}})])])])])])])]),t._v(" units.")],1),t._v(" "),e("p",[t._v("Each activity "),e("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[e("svg",{staticStyle:{"vertical-align":"-0.462ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"0.932ex",height:"1.957ex",viewBox:"0 -661 412 865"}},[e("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[e("g",{attrs:{"data-mml-node":"math"}},[e("g",{attrs:{"data-mml-node":"mi"}},[e("path",{attrs:{"data-c":"6A",d:"M297 596Q297 627 318 644T361 661Q378 661 389 651T403 623Q403 595 384 576T340 557Q322 557 310 567T297 596ZM288 376Q288 405 262 405Q240 405 220 393T185 362T161 325T144 293L137 279Q135 278 121 278H107Q101 284 101 286T105 299Q126 348 164 391T252 441Q253 441 260 441T272 442Q296 441 316 432Q341 418 354 401T367 348V332L318 133Q267 -67 264 -75Q246 -125 194 -164T75 -204Q25 -204 7 -183T-12 -137Q-12 -110 7 -91T53 -71Q70 -71 82 -81T95 -112Q95 -148 63 -167Q69 -168 77 -168Q111 -168 139 -140T182 -74L193 -32Q204 11 219 72T251 197T278 308T289 365Q289 372 288 376Z"}})])])])])]),t._v(" takes "),e("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[e("svg",{staticStyle:{"vertical-align":"-0.666ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.949ex",height:"2.236ex",viewBox:"0 -694 861.3 988.2"}},[e("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[e("g",{attrs:{"data-mml-node":"math"}},[e("g",{attrs:{"data-mml-node":"msub"}},[e("g",{attrs:{"data-mml-node":"mi"}},[e("path",{attrs:{"data-c":"64",d:"M366 683Q367 683 438 688T511 694Q523 694 523 686Q523 679 450 384T375 83T374 68Q374 26 402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487H491Q506 153 506 145Q506 140 503 129Q490 79 473 48T445 8T417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157Q33 205 53 255T101 341Q148 398 195 420T280 442Q336 442 364 400Q369 394 369 396Q370 400 396 505T424 616Q424 629 417 632T378 637H357Q351 643 351 645T353 664Q358 683 366 683ZM352 326Q329 405 277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q233 26 290 98L298 109L352 326Z"}})]),e("g",{attrs:{"data-mml-node":"TeXAtom",transform:"translate(520, -150) scale(0.707)"}},[e("g",{attrs:{"data-mml-node":"mi"}},[e("path",{attrs:{"data-c":"6A",d:"M297 596Q297 627 318 644T361 661Q378 661 389 651T403 623Q403 595 384 576T340 557Q322 557 310 567T297 596ZM288 376Q288 405 262 405Q240 405 220 393T185 362T161 325T144 293L137 279Q135 278 121 278H107Q101 284 101 286T105 299Q126 348 164 391T252 441Q253 441 260 441T272 442Q296 441 316 432Q341 418 354 401T367 348V332L318 133Q267 -67 264 -75Q246 -125 194 -164T75 -204Q25 -204 7 -183T-12 -137Q-12 -110 7 -91T53 -71Q70 -71 82 -81T95 -112Q95 -148 63 -167Q69 -168 77 -168Q111 -168 139 -140T182 -74L193 -32Q204 11 219 72T251 197T278 308T289 365Q289 372 288 376Z"}})])])])])])])]),t._v(" time units to complete.")],1),t._v(" "),e("p",[t._v("The overall goal of the problem is usually to minimize the makespan.")]),t._v(" "),e("p",[t._v("A classic variant of RCPSP is the multimode RCPSP where each task can be executed in several ways (one way=one mode). A typical example is :")]),t._v(" "),e("p",[t._v("Mode n°1 'Fast mode': high resource consumption and fast\nMode n°2 'Slow mode' : low resource consumption but slow")]),t._v(" "),e("h2",{attrs:{id:"benchmarking-scikit-decide-solvers"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#benchmarking-scikit-decide-solvers"}},[t._v("#")]),t._v(" Benchmarking scikit-decide solvers")]),t._v(" "),e("p",[e("a",{attrs:{href:"https://github.com/airbus/scikit-decide/blob/master/notebooks/14_benchmarking_tuto.ipynb",target:"_blank",rel:"noopener noreferrer"}},[e("img",{attrs:{src:"https://img.shields.io/badge/see-Github-579aca?logo=github",alt:"Github"}}),e("OutboundLink")],1),t._v(" "),e("a",{attrs:{href:"https://mybinder.org/v2/gh/airbus/scikit-decide/binder?urlpath=git-pull%3Frepo%3Dhttps%253A%252F%252Fgithub.com%252Fairbus%252Fscikit-decide%26urlpath%3Dtree%252Fscikit-decide%252Fnotebooks%252F14_benchmarking_tuto.ipynb%26branch%3Dmaster",target:"_blank",rel:"noopener noreferrer"}},[e("img",{attrs:{src:"https://mybinder.org/badge_logo.svg",alt:"Binder"}}),e("OutboundLink")],1)]),t._v(" "),e("p",[t._v("This notebook demonstrates how to run and compare scikit-decide solvers compatible with a given domain.")]),t._v(" "),e("p",[t._v("This benchmark is supported by "),e("a",{attrs:{href:"https://docs.ray.io/en/latest/tune/index.html",target:"_blank",rel:"noopener noreferrer"}},[t._v("Ray Tune"),e("OutboundLink")],1),t._v(", a scalable Python library for experiment execution and hyperparameter tuning (incl. running experiments in parallel and logging results to Tensorboard).")]),t._v(" "),e("p",[t._v("Benchmarking is important since the most efficient solvers might greatly vary depending on the domain.")]),t._v(" "),e("h2",{attrs:{id:"flight-planning-domain"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#flight-planning-domain"}},[t._v("#")]),t._v(" Flight Planning Domain")]),t._v(" "),e("p",[e("a",{attrs:{href:"https://github.com/airbus/scikit-decide/blob/master/notebooks/15_flightplanning_tuto.ipynb",target:"_blank",rel:"noopener noreferrer"}},[e("img",{attrs:{src:"https://img.shields.io/badge/see-Github-579aca?logo=github",alt:"Github"}}),e("OutboundLink")],1),t._v(" "),e("a",{attrs:{href:"https://mybinder.org/v2/gh/airbus/scikit-decide/binder?urlpath=git-pull%3Frepo%3Dhttps%253A%252F%252Fgithub.com%252Fairbus%252Fscikit-decide%26urlpath%3Dtree%252Fscikit-decide%252Fnotebooks%252F15_flightplanning_tuto.ipynb%26branch%3Dmaster",target:"_blank",rel:"noopener noreferrer"}},[e("img",{attrs:{src:"https://mybinder.org/badge_logo.svg",alt:"Binder"}}),e("OutboundLink")],1)]),t._v(" "),e("p",[t._v("This notebook aims to make a short and interactive example of the Flight Planning Domain. You can find more information about it in the README file.")])])}),[],!1,null,null,null);a.default=i.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[21],{537:function(t,a,e){"use strict";e.r(a);var r=e(38),i=Object(r.a)({},(function(){var t=this,a=t.$createElement,e=t._self._c||a;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"notebooks"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#notebooks"}},[t._v("#")]),t._v(" Notebooks")]),t._v(" "),e("p",[t._v("We present here a curated list of notebooks recommended to start with scikit-decide, available in the "),e("code",[t._v("notebooks/")]),t._v(" folder of the repository.")]),t._v(" "),e("p"),e("div",{staticClass:"table-of-contents"},[e("ul",[e("li",[e("a",{attrs:{href:"#maze-tutorial"}},[t._v("Maze tutorial")])]),e("li",[e("a",{attrs:{href:"#gym-environment-with-scikit-decide-tutorial-continuous-mountain-car"}},[t._v("Gym environment with scikit-decide tutorial: Continuous Mountain Car")])]),e("li",[e("a",{attrs:{href:"#introduction-to-scheduling"}},[t._v("Introduction to scheduling")])]),e("li",[e("a",{attrs:{href:"#benchmarking-scikit-decide-solvers"}},[t._v("Benchmarking scikit-decide solvers")])]),e("li",[e("a",{attrs:{href:"#flight-planning-domain"}},[t._v("Flight Planning Domain")])])])]),e("p"),t._v(" "),e("h2",{attrs:{id:"maze-tutorial"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#maze-tutorial"}},[t._v("#")]),t._v(" Maze tutorial")]),t._v(" "),e("p",[e("a",{attrs:{href:"https://github.com/airbus/scikit-decide/blob/master/notebooks/11_maze_tuto.ipynb",target:"_blank",rel:"noopener noreferrer"}},[e("img",{attrs:{src:"https://img.shields.io/badge/see-Github-579aca?logo=github",alt:"Github"}}),e("OutboundLink")],1),t._v(" "),e("a",{attrs:{href:"https://mybinder.org/v2/gh/airbus/scikit-decide/binder?urlpath=git-pull%3Frepo%3Dhttps%253A%252F%252Fgithub.com%252Fairbus%252Fscikit-decide%26urlpath%3Dtree%252Fscikit-decide%252Fnotebooks%252F11_maze_tuto.ipynb%26branch%3Dmaster",target:"_blank",rel:"noopener noreferrer"}},[e("img",{attrs:{src:"https://mybinder.org/badge_logo.svg",alt:"Binder"}}),e("OutboundLink")],1)]),t._v(" "),e("p",[t._v("In this tutorial, we tackle the maze problem.\nWe use this classical game to demonstrate how")]),t._v(" "),e("ul",[e("li",[t._v("a new scikit-decide domain can be easily created")]),t._v(" "),e("li",[t._v("to find solvers from scikit-decide hub matching its characteristics")]),t._v(" "),e("li",[t._v("to apply a scikit-decide solver to a domain")]),t._v(" "),e("li",[t._v("to create its own rollout function to play a trained solver on a domain")])]),t._v(" "),e("p",[t._v("Notes:")]),t._v(" "),e("ul",[e("li",[t._v("In order to focus on scikit-decide use, we put some code not directly related to the library in a "),e("a",{attrs:{href:"./maze_utils.py"}},[t._v("separate module")]),t._v(" (like maze generation and display).")]),t._v(" "),e("li",[t._v("A similar maze domain is already defined in "),e("a",{attrs:{href:"https://github.com/airbus/scikit-decide/blob/master/skdecide/hub/domain/maze/maze.py",target:"_blank",rel:"noopener noreferrer"}},[t._v("scikit-decide hub"),e("OutboundLink")],1),t._v(" but we do not use it for the sake of this tutorial.")])]),t._v(" "),e("h2",{attrs:{id:"gym-environment-with-scikit-decide-tutorial-continuous-mountain-car"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#gym-environment-with-scikit-decide-tutorial-continuous-mountain-car"}},[t._v("#")]),t._v(" Gym environment with scikit-decide tutorial: Continuous Mountain Car")]),t._v(" "),e("p",[e("a",{attrs:{href:"https://github.com/airbus/scikit-decide/blob/master/notebooks/12_gym_tuto.ipynb",target:"_blank",rel:"noopener noreferrer"}},[e("img",{attrs:{src:"https://img.shields.io/badge/see-Github-579aca?logo=github",alt:"Github"}}),e("OutboundLink")],1),t._v(" "),e("a",{attrs:{href:"https://mybinder.org/v2/gh/airbus/scikit-decide/binder?urlpath=git-pull%3Frepo%3Dhttps%253A%252F%252Fgithub.com%252Fairbus%252Fscikit-decide%26urlpath%3Dtree%252Fscikit-decide%252Fnotebooks%252F12_gym_tuto.ipynb%26branch%3Dmaster",target:"_blank",rel:"noopener noreferrer"}},[e("img",{attrs:{src:"https://mybinder.org/badge_logo.svg",alt:"Binder"}}),e("OutboundLink")],1)]),t._v(" "),e("p",[t._v("In this notebook we tackle the continuous mountain car problem taken from "),e("a",{attrs:{href:"https://gym.openai.com/",target:"_blank",rel:"noopener noreferrer"}},[t._v("OpenAI Gym"),e("OutboundLink")],1),t._v(", a toolkit for developing environments, usually to be solved by Reinforcement Learning (RL) algorithms.")]),t._v(" "),e("p",[t._v("Continuous Mountain Car, a standard testing domain in RL, is a problem in which an under-powered car must drive up a steep hill.")]),t._v(" "),e("div",{attrs:{align:"middle"}},[e("video",{attrs:{controls:"",autoplay:"",preload:"",src:"https://gym.openai.com/videos/2019-10-21--mqt8Qj1mwo/MountainCarContinuous-v0/original.mp4"}})]),t._v(" "),e("p",[t._v("Note that we use here the "),e("em",[t._v("continuous")]),t._v(" version of the mountain car because\nit has a "),e("em",[t._v("shaped")]),t._v(" or "),e("em",[t._v("dense")]),t._v(' reward (i.e. not sparse) which can be used successfully when solving, as opposed to the other "Mountain Car" environments.\nFor reminder, a sparse reward is a reward which is null almost everywhere, whereas a dense or shaped reward has more meaningful values for most transitions.')]),t._v(" "),e("p",[t._v("This problem has been chosen for two reasons:")]),t._v(" "),e("ul",[e("li",[t._v("Show how scikit-decide can be used to solve Gym environments (the de-facto standard in the RL community),")]),t._v(" "),e("li",[t._v("Highlight that by doing so, you will be able to use not only solvers from the RL community (like the ones in "),e("a",{attrs:{href:"https://github.com/DLR-RM/stable-baselines3",target:"_blank",rel:"noopener noreferrer"}},[t._v("stable_baselines3"),e("OutboundLink")],1),t._v(" for example), but also other solvers coming from other communities like genetic programming and planning/search (use of an underlying search graph) that can be very efficient.")])]),t._v(" "),e("p",[t._v("Therefore in this notebook we will go through the following steps:")]),t._v(" "),e("ul",[e("li",[t._v("Wrap a Gym environment in a scikit-decide domain;")]),t._v(" "),e("li",[t._v("Use a classical RL algorithm like PPO to solve our problem;")]),t._v(" "),e("li",[t._v("Give CGP (Cartesian Genetic Programming) a try on the same problem;")]),t._v(" "),e("li",[t._v("Finally use IW (Iterated Width) coming from the planning community on the same problem.")])]),t._v(" "),e("h2",{attrs:{id:"introduction-to-scheduling"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#introduction-to-scheduling"}},[t._v("#")]),t._v(" Introduction to scheduling")]),t._v(" "),e("p",[e("a",{attrs:{href:"https://github.com/airbus/scikit-decide/blob/master/notebooks/13_scheduling_tuto.ipynb",target:"_blank",rel:"noopener noreferrer"}},[e("img",{attrs:{src:"https://img.shields.io/badge/see-Github-579aca?logo=github",alt:"Github"}}),e("OutboundLink")],1),t._v(" "),e("a",{attrs:{href:"https://mybinder.org/v2/gh/airbus/scikit-decide/binder?urlpath=git-pull%3Frepo%3Dhttps%253A%252F%252Fgithub.com%252Fairbus%252Fscikit-decide%26urlpath%3Dtree%252Fscikit-decide%252Fnotebooks%252F13_scheduling_tuto.ipynb%26branch%3Dmaster",target:"_blank",rel:"noopener noreferrer"}},[e("img",{attrs:{src:"https://mybinder.org/badge_logo.svg",alt:"Binder"}}),e("OutboundLink")],1)]),t._v(" "),e("p",[t._v("In this notebook, we explore how to solve a resource constrained project scheduling problem (RCPSP).")]),t._v(" "),e("p",[t._v("The problem is made of "),e("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[e("svg",{staticStyle:{"vertical-align":"0"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"2.378ex",height:"1.545ex",viewBox:"0 -683 1051 683"}},[e("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[e("g",{attrs:{"data-mml-node":"math"}},[e("g",{attrs:{"data-mml-node":"mi"}},[e("path",{attrs:{"data-c":"4D",d:"M289 629Q289 635 232 637Q208 637 201 638T194 648Q194 649 196 659Q197 662 198 666T199 671T201 676T203 679T207 681T212 683T220 683T232 684Q238 684 262 684T307 683Q386 683 398 683T414 678Q415 674 451 396L487 117L510 154Q534 190 574 254T662 394Q837 673 839 675Q840 676 842 678T846 681L852 683H948Q965 683 988 683T1017 684Q1051 684 1051 673Q1051 668 1048 656T1045 643Q1041 637 1008 637Q968 636 957 634T939 623Q936 618 867 340T797 59Q797 55 798 54T805 50T822 48T855 46H886Q892 37 892 35Q892 19 885 5Q880 0 869 0Q864 0 828 1T736 2Q675 2 644 2T609 1Q592 1 592 11Q592 13 594 25Q598 41 602 43T625 46Q652 46 685 49Q699 52 704 61Q706 65 742 207T813 490T848 631L654 322Q458 10 453 5Q451 4 449 3Q444 0 433 0Q418 0 415 7Q413 11 374 317L335 624L267 354Q200 88 200 79Q206 46 272 46H282Q288 41 289 37T286 19Q282 3 278 1Q274 0 267 0Q265 0 255 0T221 1T157 2Q127 2 95 1T58 0Q43 0 39 2T35 11Q35 13 38 25T43 40Q45 46 65 46Q135 46 154 86Q158 92 223 354T289 629Z"}})])])])])]),t._v(" activities that have precedence constraints. That means that if activity "),e("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[e("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.471ex",height:"2.262ex",viewBox:"0 -750 4186.2 1000"}},[e("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[e("g",{attrs:{"data-mml-node":"math"}},[e("g",{attrs:{"data-mml-node":"mi"}},[e("path",{attrs:{"data-c":"6A",d:"M297 596Q297 627 318 644T361 661Q378 661 389 651T403 623Q403 595 384 576T340 557Q322 557 310 567T297 596ZM288 376Q288 405 262 405Q240 405 220 393T185 362T161 325T144 293L137 279Q135 278 121 278H107Q101 284 101 286T105 299Q126 348 164 391T252 441Q253 441 260 441T272 442Q296 441 316 432Q341 418 354 401T367 348V332L318 133Q267 -67 264 -75Q246 -125 194 -164T75 -204Q25 -204 7 -183T-12 -137Q-12 -110 7 -91T53 -71Q70 -71 82 -81T95 -112Q95 -148 63 -167Q69 -168 77 -168Q111 -168 139 -140T182 -74L193 -32Q204 11 219 72T251 197T278 308T289 365Q289 372 288 376Z"}})]),e("g",{attrs:{"data-mml-node":"mo",transform:"translate(689.8, 0)"}},[e("path",{attrs:{"data-c":"2208",d:"M84 250Q84 372 166 450T360 539Q361 539 377 539T419 540T469 540H568Q583 532 583 520Q583 511 570 501L466 500Q355 499 329 494Q280 482 242 458T183 409T147 354T129 306T124 272V270H568Q583 262 583 250T568 230H124V228Q124 207 134 177T167 112T231 48T328 7Q355 1 466 0H570Q583 -10 583 -20Q583 -32 568 -40H471Q464 -40 446 -40T417 -41Q262 -41 172 45Q84 127 84 250Z"}})]),e("g",{attrs:{"data-mml-node":"mo",transform:"translate(1634.6, 0)"}},[e("path",{attrs:{"data-c":"5B",d:"M118 -250V750H255V710H158V-210H255V-250H118Z"}})]),e("g",{attrs:{"data-mml-node":"mn",transform:"translate(1912.6, 0)"}},[e("path",{attrs:{"data-c":"31",d:"M213 578L200 573Q186 568 160 563T102 556H83V602H102Q149 604 189 617T245 641T273 663Q275 666 285 666Q294 666 302 660V361L303 61Q310 54 315 52T339 48T401 46H427V0H416Q395 3 257 3Q121 3 100 0H88V46H114Q136 46 152 46T177 47T193 50T201 52T207 57T213 61V578Z"}})]),e("g",{attrs:{"data-mml-node":"mo",transform:"translate(2412.6, 0)"}},[e("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),e("g",{attrs:{"data-mml-node":"mi",transform:"translate(2857.2, 0)"}},[e("path",{attrs:{"data-c":"4D",d:"M289 629Q289 635 232 637Q208 637 201 638T194 648Q194 649 196 659Q197 662 198 666T199 671T201 676T203 679T207 681T212 683T220 683T232 684Q238 684 262 684T307 683Q386 683 398 683T414 678Q415 674 451 396L487 117L510 154Q534 190 574 254T662 394Q837 673 839 675Q840 676 842 678T846 681L852 683H948Q965 683 988 683T1017 684Q1051 684 1051 673Q1051 668 1048 656T1045 643Q1041 637 1008 637Q968 636 957 634T939 623Q936 618 867 340T797 59Q797 55 798 54T805 50T822 48T855 46H886Q892 37 892 35Q892 19 885 5Q880 0 869 0Q864 0 828 1T736 2Q675 2 644 2T609 1Q592 1 592 11Q592 13 594 25Q598 41 602 43T625 46Q652 46 685 49Q699 52 704 61Q706 65 742 207T813 490T848 631L654 322Q458 10 453 5Q451 4 449 3Q444 0 433 0Q418 0 415 7Q413 11 374 317L335 624L267 354Q200 88 200 79Q206 46 272 46H282Q288 41 289 37T286 19Q282 3 278 1Q274 0 267 0Q265 0 255 0T221 1T157 2Q127 2 95 1T58 0Q43 0 39 2T35 11Q35 13 38 25T43 40Q45 46 65 46Q135 46 154 86Q158 92 223 354T289 629Z"}})]),e("g",{attrs:{"data-mml-node":"mo",transform:"translate(3908.2, 0)"}},[e("path",{attrs:{"data-c":"5D",d:"M22 710V750H159V-250H22V-210H119V710H22Z"}})])])])])]),t._v(" is a successor of activity "),e("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[e("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.32ex",height:"2.262ex",viewBox:"0 -750 4119.2 1000"}},[e("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[e("g",{attrs:{"data-mml-node":"math"}},[e("g",{attrs:{"data-mml-node":"mi"}},[e("path",{attrs:{"data-c":"69",d:"M184 600Q184 624 203 642T247 661Q265 661 277 649T290 619Q290 596 270 577T226 557Q211 557 198 567T184 600ZM21 287Q21 295 30 318T54 369T98 420T158 442Q197 442 223 419T250 357Q250 340 236 301T196 196T154 83Q149 61 149 51Q149 26 166 26Q175 26 185 29T208 43T235 78T260 137Q263 149 265 151T282 153Q302 153 302 143Q302 135 293 112T268 61T223 11T161 -11Q129 -11 102 10T74 74Q74 91 79 106T122 220Q160 321 166 341T173 380Q173 404 156 404H154Q124 404 99 371T61 287Q60 286 59 284T58 281T56 279T53 278T49 278T41 278H27Q21 284 21 287Z"}})]),e("g",{attrs:{"data-mml-node":"mo",transform:"translate(622.8, 0)"}},[e("path",{attrs:{"data-c":"2208",d:"M84 250Q84 372 166 450T360 539Q361 539 377 539T419 540T469 540H568Q583 532 583 520Q583 511 570 501L466 500Q355 499 329 494Q280 482 242 458T183 409T147 354T129 306T124 272V270H568Q583 262 583 250T568 230H124V228Q124 207 134 177T167 112T231 48T328 7Q355 1 466 0H570Q583 -10 583 -20Q583 -32 568 -40H471Q464 -40 446 -40T417 -41Q262 -41 172 45Q84 127 84 250Z"}})]),e("g",{attrs:{"data-mml-node":"mo",transform:"translate(1567.6, 0)"}},[e("path",{attrs:{"data-c":"5B",d:"M118 -250V750H255V710H158V-210H255V-250H118Z"}})]),e("g",{attrs:{"data-mml-node":"mn",transform:"translate(1845.6, 0)"}},[e("path",{attrs:{"data-c":"31",d:"M213 578L200 573Q186 568 160 563T102 556H83V602H102Q149 604 189 617T245 641T273 663Q275 666 285 666Q294 666 302 660V361L303 61Q310 54 315 52T339 48T401 46H427V0H416Q395 3 257 3Q121 3 100 0H88V46H114Q136 46 152 46T177 47T193 50T201 52T207 57T213 61V578Z"}})]),e("g",{attrs:{"data-mml-node":"mo",transform:"translate(2345.6, 0)"}},[e("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),e("g",{attrs:{"data-mml-node":"mi",transform:"translate(2790.2, 0)"}},[e("path",{attrs:{"data-c":"4D",d:"M289 629Q289 635 232 637Q208 637 201 638T194 648Q194 649 196 659Q197 662 198 666T199 671T201 676T203 679T207 681T212 683T220 683T232 684Q238 684 262 684T307 683Q386 683 398 683T414 678Q415 674 451 396L487 117L510 154Q534 190 574 254T662 394Q837 673 839 675Q840 676 842 678T846 681L852 683H948Q965 683 988 683T1017 684Q1051 684 1051 673Q1051 668 1048 656T1045 643Q1041 637 1008 637Q968 636 957 634T939 623Q936 618 867 340T797 59Q797 55 798 54T805 50T822 48T855 46H886Q892 37 892 35Q892 19 885 5Q880 0 869 0Q864 0 828 1T736 2Q675 2 644 2T609 1Q592 1 592 11Q592 13 594 25Q598 41 602 43T625 46Q652 46 685 49Q699 52 704 61Q706 65 742 207T813 490T848 631L654 322Q458 10 453 5Q451 4 449 3Q444 0 433 0Q418 0 415 7Q413 11 374 317L335 624L267 354Q200 88 200 79Q206 46 272 46H282Q288 41 289 37T286 19Q282 3 278 1Q274 0 267 0Q265 0 255 0T221 1T157 2Q127 2 95 1T58 0Q43 0 39 2T35 11Q35 13 38 25T43 40Q45 46 65 46Q135 46 154 86Q158 92 223 354T289 629Z"}})]),e("g",{attrs:{"data-mml-node":"mo",transform:"translate(3841.2, 0)"}},[e("path",{attrs:{"data-c":"5D",d:"M22 710V750H159V-250H22V-210H119V710H22Z"}})])])])])]),t._v(", then activity "),e("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[e("svg",{staticStyle:{"vertical-align":"-0.025ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"0.781ex",height:"1.52ex",viewBox:"0 -661 345 672"}},[e("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[e("g",{attrs:{"data-mml-node":"math"}},[e("g",{attrs:{"data-mml-node":"mi"}},[e("path",{attrs:{"data-c":"69",d:"M184 600Q184 624 203 642T247 661Q265 661 277 649T290 619Q290 596 270 577T226 557Q211 557 198 567T184 600ZM21 287Q21 295 30 318T54 369T98 420T158 442Q197 442 223 419T250 357Q250 340 236 301T196 196T154 83Q149 61 149 51Q149 26 166 26Q175 26 185 29T208 43T235 78T260 137Q263 149 265 151T282 153Q302 153 302 143Q302 135 293 112T268 61T223 11T161 -11Q129 -11 102 10T74 74Q74 91 79 106T122 220Q160 321 166 341T173 380Q173 404 156 404H154Q124 404 99 371T61 287Q60 286 59 284T58 281T56 279T53 278T49 278T41 278H27Q21 284 21 287Z"}})])])])])]),t._v(" must be completed before activity "),e("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[e("svg",{staticStyle:{"vertical-align":"-0.462ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"0.932ex",height:"1.957ex",viewBox:"0 -661 412 865"}},[e("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[e("g",{attrs:{"data-mml-node":"math"}},[e("g",{attrs:{"data-mml-node":"mi"}},[e("path",{attrs:{"data-c":"6A",d:"M297 596Q297 627 318 644T361 661Q378 661 389 651T403 623Q403 595 384 576T340 557Q322 557 310 567T297 596ZM288 376Q288 405 262 405Q240 405 220 393T185 362T161 325T144 293L137 279Q135 278 121 278H107Q101 284 101 286T105 299Q126 348 164 391T252 441Q253 441 260 441T272 442Q296 441 316 432Q341 418 354 401T367 348V332L318 133Q267 -67 264 -75Q246 -125 194 -164T75 -204Q25 -204 7 -183T-12 -137Q-12 -110 7 -91T53 -71Q70 -71 82 -81T95 -112Q95 -148 63 -167Q69 -168 77 -168Q111 -168 139 -140T182 -74L193 -32Q204 11 219 72T251 197T278 308T289 365Q289 372 288 376Z"}})])])])])]),t._v(" can be started")],1),t._v(" "),e("p",[t._v("On top of these constraints, each project is assigned a set of K renewable resources where each resource "),e("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[e("svg",{staticStyle:{"vertical-align":"-0.025ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.179ex",height:"1.595ex",viewBox:"0 -694 521 705"}},[e("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[e("g",{attrs:{"data-mml-node":"math"}},[e("g",{attrs:{"data-mml-node":"mi"}},[e("path",{attrs:{"data-c":"6B",d:"M121 647Q121 657 125 670T137 683Q138 683 209 688T282 694Q294 694 294 686Q294 679 244 477Q194 279 194 272Q213 282 223 291Q247 309 292 354T362 415Q402 442 438 442Q468 442 485 423T503 369Q503 344 496 327T477 302T456 291T438 288Q418 288 406 299T394 328Q394 353 410 369T442 390L458 393Q446 405 434 405H430Q398 402 367 380T294 316T228 255Q230 254 243 252T267 246T293 238T320 224T342 206T359 180T365 147Q365 130 360 106T354 66Q354 26 381 26Q429 26 459 145Q461 153 479 153H483Q499 153 499 144Q499 139 496 130Q455 -11 378 -11Q333 -11 305 15T277 90Q277 108 280 121T283 145Q283 167 269 183T234 206T200 217T182 220H180Q168 178 159 139T145 81T136 44T129 20T122 7T111 -2Q98 -11 83 -11Q66 -11 57 -1T48 16Q48 26 85 176T158 471L195 616Q196 629 188 632T149 637H144Q134 637 131 637T124 640T121 647Z"}})])])])])]),t._v(" is available in "),e("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[e("svg",{staticStyle:{"vertical-align":"-0.357ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"2.664ex",height:"1.902ex",viewBox:"0 -683 1177.4 840.8"}},[e("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[e("g",{attrs:{"data-mml-node":"math"}},[e("g",{attrs:{"data-mml-node":"msub"}},[e("g",{attrs:{"data-mml-node":"mi"}},[e("path",{attrs:{"data-c":"52",d:"M230 637Q203 637 198 638T193 649Q193 676 204 682Q206 683 378 683Q550 682 564 680Q620 672 658 652T712 606T733 563T739 529Q739 484 710 445T643 385T576 351T538 338L545 333Q612 295 612 223Q612 212 607 162T602 80V71Q602 53 603 43T614 25T640 16Q668 16 686 38T712 85Q717 99 720 102T735 105Q755 105 755 93Q755 75 731 36Q693 -21 641 -21H632Q571 -21 531 4T487 82Q487 109 502 166T517 239Q517 290 474 313Q459 320 449 321T378 323H309L277 193Q244 61 244 59Q244 55 245 54T252 50T269 48T302 46H333Q339 38 339 37T336 19Q332 6 326 0H311Q275 2 180 2Q146 2 117 2T71 2T50 1Q33 1 33 10Q33 12 36 24Q41 43 46 45Q50 46 61 46H67Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628Q287 635 230 637ZM630 554Q630 586 609 608T523 636Q521 636 500 636T462 637H440Q393 637 386 627Q385 624 352 494T319 361Q319 360 388 360Q466 361 492 367Q556 377 592 426Q608 449 619 486T630 554Z"}})]),e("g",{attrs:{"data-mml-node":"TeXAtom",transform:"translate(759, -150) scale(0.707)"}},[e("g",{attrs:{"data-mml-node":"mi"}},[e("path",{attrs:{"data-c":"6B",d:"M121 647Q121 657 125 670T137 683Q138 683 209 688T282 694Q294 694 294 686Q294 679 244 477Q194 279 194 272Q213 282 223 291Q247 309 292 354T362 415Q402 442 438 442Q468 442 485 423T503 369Q503 344 496 327T477 302T456 291T438 288Q418 288 406 299T394 328Q394 353 410 369T442 390L458 393Q446 405 434 405H430Q398 402 367 380T294 316T228 255Q230 254 243 252T267 246T293 238T320 224T342 206T359 180T365 147Q365 130 360 106T354 66Q354 26 381 26Q429 26 459 145Q461 153 479 153H483Q499 153 499 144Q499 139 496 130Q455 -11 378 -11Q333 -11 305 15T277 90Q277 108 280 121T283 145Q283 167 269 183T234 206T200 217T182 220H180Q168 178 159 139T145 81T136 44T129 20T122 7T111 -2Q98 -11 83 -11Q66 -11 57 -1T48 16Q48 26 85 176T158 471L195 616Q196 629 188 632T149 637H144Q134 637 131 637T124 640T121 647Z"}})])])])])])])]),t._v(" units for the entire duration of the project. Each activity may require one or more of these resources to be completed. While scheduling the activities, the daily resource usage for resource "),e("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[e("svg",{staticStyle:{"vertical-align":"-0.025ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.179ex",height:"1.595ex",viewBox:"0 -694 521 705"}},[e("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[e("g",{attrs:{"data-mml-node":"math"}},[e("g",{attrs:{"data-mml-node":"mi"}},[e("path",{attrs:{"data-c":"6B",d:"M121 647Q121 657 125 670T137 683Q138 683 209 688T282 694Q294 694 294 686Q294 679 244 477Q194 279 194 272Q213 282 223 291Q247 309 292 354T362 415Q402 442 438 442Q468 442 485 423T503 369Q503 344 496 327T477 302T456 291T438 288Q418 288 406 299T394 328Q394 353 410 369T442 390L458 393Q446 405 434 405H430Q398 402 367 380T294 316T228 255Q230 254 243 252T267 246T293 238T320 224T342 206T359 180T365 147Q365 130 360 106T354 66Q354 26 381 26Q429 26 459 145Q461 153 479 153H483Q499 153 499 144Q499 139 496 130Q455 -11 378 -11Q333 -11 305 15T277 90Q277 108 280 121T283 145Q283 167 269 183T234 206T200 217T182 220H180Q168 178 159 139T145 81T136 44T129 20T122 7T111 -2Q98 -11 83 -11Q66 -11 57 -1T48 16Q48 26 85 176T158 471L195 616Q196 629 188 632T149 637H144Q134 637 131 637T124 640T121 647Z"}})])])])])]),t._v(" can not exceed "),e("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[e("svg",{staticStyle:{"vertical-align":"-0.357ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"2.664ex",height:"1.902ex",viewBox:"0 -683 1177.4 840.8"}},[e("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[e("g",{attrs:{"data-mml-node":"math"}},[e("g",{attrs:{"data-mml-node":"msub"}},[e("g",{attrs:{"data-mml-node":"mi"}},[e("path",{attrs:{"data-c":"52",d:"M230 637Q203 637 198 638T193 649Q193 676 204 682Q206 683 378 683Q550 682 564 680Q620 672 658 652T712 606T733 563T739 529Q739 484 710 445T643 385T576 351T538 338L545 333Q612 295 612 223Q612 212 607 162T602 80V71Q602 53 603 43T614 25T640 16Q668 16 686 38T712 85Q717 99 720 102T735 105Q755 105 755 93Q755 75 731 36Q693 -21 641 -21H632Q571 -21 531 4T487 82Q487 109 502 166T517 239Q517 290 474 313Q459 320 449 321T378 323H309L277 193Q244 61 244 59Q244 55 245 54T252 50T269 48T302 46H333Q339 38 339 37T336 19Q332 6 326 0H311Q275 2 180 2Q146 2 117 2T71 2T50 1Q33 1 33 10Q33 12 36 24Q41 43 46 45Q50 46 61 46H67Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628Q287 635 230 637ZM630 554Q630 586 609 608T523 636Q521 636 500 636T462 637H440Q393 637 386 627Q385 624 352 494T319 361Q319 360 388 360Q466 361 492 367Q556 377 592 426Q608 449 619 486T630 554Z"}})]),e("g",{attrs:{"data-mml-node":"TeXAtom",transform:"translate(759, -150) scale(0.707)"}},[e("g",{attrs:{"data-mml-node":"mi"}},[e("path",{attrs:{"data-c":"6B",d:"M121 647Q121 657 125 670T137 683Q138 683 209 688T282 694Q294 694 294 686Q294 679 244 477Q194 279 194 272Q213 282 223 291Q247 309 292 354T362 415Q402 442 438 442Q468 442 485 423T503 369Q503 344 496 327T477 302T456 291T438 288Q418 288 406 299T394 328Q394 353 410 369T442 390L458 393Q446 405 434 405H430Q398 402 367 380T294 316T228 255Q230 254 243 252T267 246T293 238T320 224T342 206T359 180T365 147Q365 130 360 106T354 66Q354 26 381 26Q429 26 459 145Q461 153 479 153H483Q499 153 499 144Q499 139 496 130Q455 -11 378 -11Q333 -11 305 15T277 90Q277 108 280 121T283 145Q283 167 269 183T234 206T200 217T182 220H180Q168 178 159 139T145 81T136 44T129 20T122 7T111 -2Q98 -11 83 -11Q66 -11 57 -1T48 16Q48 26 85 176T158 471L195 616Q196 629 188 632T149 637H144Q134 637 131 637T124 640T121 647Z"}})])])])])])])]),t._v(" units.")],1),t._v(" "),e("p",[t._v("Each activity "),e("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[e("svg",{staticStyle:{"vertical-align":"-0.462ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"0.932ex",height:"1.957ex",viewBox:"0 -661 412 865"}},[e("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[e("g",{attrs:{"data-mml-node":"math"}},[e("g",{attrs:{"data-mml-node":"mi"}},[e("path",{attrs:{"data-c":"6A",d:"M297 596Q297 627 318 644T361 661Q378 661 389 651T403 623Q403 595 384 576T340 557Q322 557 310 567T297 596ZM288 376Q288 405 262 405Q240 405 220 393T185 362T161 325T144 293L137 279Q135 278 121 278H107Q101 284 101 286T105 299Q126 348 164 391T252 441Q253 441 260 441T272 442Q296 441 316 432Q341 418 354 401T367 348V332L318 133Q267 -67 264 -75Q246 -125 194 -164T75 -204Q25 -204 7 -183T-12 -137Q-12 -110 7 -91T53 -71Q70 -71 82 -81T95 -112Q95 -148 63 -167Q69 -168 77 -168Q111 -168 139 -140T182 -74L193 -32Q204 11 219 72T251 197T278 308T289 365Q289 372 288 376Z"}})])])])])]),t._v(" takes "),e("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[e("svg",{staticStyle:{"vertical-align":"-0.666ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.949ex",height:"2.236ex",viewBox:"0 -694 861.3 988.2"}},[e("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[e("g",{attrs:{"data-mml-node":"math"}},[e("g",{attrs:{"data-mml-node":"msub"}},[e("g",{attrs:{"data-mml-node":"mi"}},[e("path",{attrs:{"data-c":"64",d:"M366 683Q367 683 438 688T511 694Q523 694 523 686Q523 679 450 384T375 83T374 68Q374 26 402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487H491Q506 153 506 145Q506 140 503 129Q490 79 473 48T445 8T417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157Q33 205 53 255T101 341Q148 398 195 420T280 442Q336 442 364 400Q369 394 369 396Q370 400 396 505T424 616Q424 629 417 632T378 637H357Q351 643 351 645T353 664Q358 683 366 683ZM352 326Q329 405 277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q233 26 290 98L298 109L352 326Z"}})]),e("g",{attrs:{"data-mml-node":"TeXAtom",transform:"translate(520, -150) scale(0.707)"}},[e("g",{attrs:{"data-mml-node":"mi"}},[e("path",{attrs:{"data-c":"6A",d:"M297 596Q297 627 318 644T361 661Q378 661 389 651T403 623Q403 595 384 576T340 557Q322 557 310 567T297 596ZM288 376Q288 405 262 405Q240 405 220 393T185 362T161 325T144 293L137 279Q135 278 121 278H107Q101 284 101 286T105 299Q126 348 164 391T252 441Q253 441 260 441T272 442Q296 441 316 432Q341 418 354 401T367 348V332L318 133Q267 -67 264 -75Q246 -125 194 -164T75 -204Q25 -204 7 -183T-12 -137Q-12 -110 7 -91T53 -71Q70 -71 82 -81T95 -112Q95 -148 63 -167Q69 -168 77 -168Q111 -168 139 -140T182 -74L193 -32Q204 11 219 72T251 197T278 308T289 365Q289 372 288 376Z"}})])])])])])])]),t._v(" time units to complete.")],1),t._v(" "),e("p",[t._v("The overall goal of the problem is usually to minimize the makespan.")]),t._v(" "),e("p",[t._v("A classic variant of RCPSP is the multimode RCPSP where each task can be executed in several ways (one way=one mode). A typical example is :")]),t._v(" "),e("p",[t._v("Mode n°1 'Fast mode': high resource consumption and fast\nMode n°2 'Slow mode' : low resource consumption but slow")]),t._v(" "),e("h2",{attrs:{id:"benchmarking-scikit-decide-solvers"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#benchmarking-scikit-decide-solvers"}},[t._v("#")]),t._v(" Benchmarking scikit-decide solvers")]),t._v(" "),e("p",[e("a",{attrs:{href:"https://github.com/airbus/scikit-decide/blob/master/notebooks/14_benchmarking_tuto.ipynb",target:"_blank",rel:"noopener noreferrer"}},[e("img",{attrs:{src:"https://img.shields.io/badge/see-Github-579aca?logo=github",alt:"Github"}}),e("OutboundLink")],1),t._v(" "),e("a",{attrs:{href:"https://mybinder.org/v2/gh/airbus/scikit-decide/binder?urlpath=git-pull%3Frepo%3Dhttps%253A%252F%252Fgithub.com%252Fairbus%252Fscikit-decide%26urlpath%3Dtree%252Fscikit-decide%252Fnotebooks%252F14_benchmarking_tuto.ipynb%26branch%3Dmaster",target:"_blank",rel:"noopener noreferrer"}},[e("img",{attrs:{src:"https://mybinder.org/badge_logo.svg",alt:"Binder"}}),e("OutboundLink")],1)]),t._v(" "),e("p",[t._v("This notebook demonstrates how to run and compare scikit-decide solvers compatible with a given domain.")]),t._v(" "),e("p",[t._v("This benchmark is supported by "),e("a",{attrs:{href:"https://docs.ray.io/en/latest/tune/index.html",target:"_blank",rel:"noopener noreferrer"}},[t._v("Ray Tune"),e("OutboundLink")],1),t._v(", a scalable Python library for experiment execution and hyperparameter tuning (incl. running experiments in parallel and logging results to Tensorboard).")]),t._v(" "),e("p",[t._v("Benchmarking is important since the most efficient solvers might greatly vary depending on the domain.")]),t._v(" "),e("h2",{attrs:{id:"flight-planning-domain"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#flight-planning-domain"}},[t._v("#")]),t._v(" Flight Planning Domain")]),t._v(" "),e("p",[e("a",{attrs:{href:"https://github.com/airbus/scikit-decide/blob/master/notebooks/15_flightplanning_tuto.ipynb",target:"_blank",rel:"noopener noreferrer"}},[e("img",{attrs:{src:"https://img.shields.io/badge/see-Github-579aca?logo=github",alt:"Github"}}),e("OutboundLink")],1),t._v(" "),e("a",{attrs:{href:"https://mybinder.org/v2/gh/airbus/scikit-decide/binder?urlpath=git-pull%3Frepo%3Dhttps%253A%252F%252Fgithub.com%252Fairbus%252Fscikit-decide%26urlpath%3Dtree%252Fscikit-decide%252Fnotebooks%252F15_flightplanning_tuto.ipynb%26branch%3Dmaster",target:"_blank",rel:"noopener noreferrer"}},[e("img",{attrs:{src:"https://mybinder.org/badge_logo.svg",alt:"Binder"}}),e("OutboundLink")],1)]),t._v(" "),e("p",[t._v("This notebook aims to make a short and interactive example of the Flight Planning Domain. You can find more information about it in the README file.")])])}),[],!1,null,null,null);a.default=i.exports}}]); \ No newline at end of file diff --git a/assets/js/27.96185631.js b/assets/js/27.a8517eb1.js similarity index 99% rename from assets/js/27.96185631.js rename to assets/js/27.a8517eb1.js index 4c846f256d..d6d205a5e6 100644 --- a/assets/js/27.96185631.js +++ b/assets/js/27.a8517eb1.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[27],{544:function(e,t,a){"use strict";a.r(t);var s=a(38),n=Object(s.a)({},(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("h1",{attrs:{id:"builders-domain-events"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#builders-domain-events"}},[e._v("#")]),e._v(" builders.domain.events")]),e._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[e._v("Domain specification")]),e._v(" "),a("skdecide-summary")],1),e._v(" "),a("h2",{attrs:{id:"events"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#events"}},[e._v("#")]),e._v(" Events")]),e._v(" "),a("p",[e._v("A domain must inherit this class if it handles events (controllable or not not by the agents).")]),e._v(" "),a("h3",{attrs:{id:"get-action-space"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space"}},[e._v("#")]),e._v(" get_action_space "),a("Badge",{attrs:{text:"Events",type:"tip"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"get_action_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),e._v(" "),a("p",[e._v("Get the (cached) domain action space (finite or infinite set).")]),e._v(" "),a("p",[e._v("By default, "),a("code",[e._v("Events.get_action_space()")]),e._v(" internally calls "),a("code",[e._v("Events._get_action_space_()")]),e._v(" the first time and\nautomatically caches its value to make future calls more efficient (since the action space is assumed to be\nconstant).")]),e._v(" "),a("h4",{attrs:{id:"returns"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns"}},[e._v("#")]),e._v(" Returns")]),e._v(" "),a("p",[e._v("The action space.")]),e._v(" "),a("h3",{attrs:{id:"get-applicable-actions"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions"}},[e._v("#")]),e._v(" get_applicable_actions "),a("Badge",{attrs:{text:"Events",type:"tip"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"get_applicable_actions",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"D.T_agent[Space[D.T_event]]"}}}),e._v(" "),a("p",[e._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history), or in\nthe internal one if omitted.")]),e._v(" "),a("p",[e._v("By default, "),a("code",[e._v("Events.get_applicable_actions()")]),e._v(" provides some boilerplate code and internally\ncalls "),a("code",[e._v("Events._get_applicable_actions()")]),e._v(". The boilerplate code automatically passes the "),a("code",[e._v("_memory")]),e._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),e._v(" "),a("h4",{attrs:{id:"parameters"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),a("ul",[a("li",[a("strong",[e._v("memory")]),e._v(": The memory to consider (if None, the internal memory attribute "),a("code",[e._v("_memory")]),e._v(" is used instead).")])]),e._v(" "),a("h4",{attrs:{id:"returns-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-2"}},[e._v("#")]),e._v(" Returns")]),e._v(" "),a("p",[e._v("The space of applicable actions.")]),e._v(" "),a("h3",{attrs:{id:"get-enabled-events"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events"}},[e._v("#")]),e._v(" get_enabled_events "),a("Badge",{attrs:{text:"Events",type:"tip"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"get_enabled_events",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"Space[D.T_event]"}}}),e._v(" "),a("p",[e._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory), or in the internal one if omitted.")]),e._v(" "),a("p",[e._v("By default, "),a("code",[e._v("Events.get_enabled_events()")]),e._v(" provides some boilerplate code and internally\ncalls "),a("code",[e._v("Events._get_enabled_events()")]),e._v(". The boilerplate code automatically passes the "),a("code",[e._v("_memory")]),e._v(" attribute instead of\nthe memory parameter whenever the latter is None.")]),e._v(" "),a("h4",{attrs:{id:"parameters-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-2"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),a("ul",[a("li",[a("strong",[e._v("memory")]),e._v(": The memory to consider (if None, the internal memory attribute "),a("code",[e._v("_memory")]),e._v(" is used instead).")])]),e._v(" "),a("h4",{attrs:{id:"returns-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-3"}},[e._v("#")]),e._v(" Returns")]),e._v(" "),a("p",[e._v("The space of enabled events.")]),e._v(" "),a("h3",{attrs:{id:"is-action"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-action"}},[e._v("#")]),e._v(" is_action "),a("Badge",{attrs:{text:"Events",type:"tip"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"is_action",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"}],return:"bool"}}}),e._v(" "),a("p",[e._v("Indicate whether an event is an action (i.e. a controllable event for the agents).")]),e._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[e._v("TIP")]),e._v(" "),a("p",[e._v("By default, this function is implemented using the "),a("code",[e._v("skdecide.core.Space.contains()")]),e._v(" function on the domain\naction space provided by "),a("code",[e._v("Events.get_action_space()")]),e._v(", but it can be overridden for faster implementations.")])]),e._v(" "),a("h4",{attrs:{id:"parameters-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-3"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),a("ul",[a("li",[a("strong",[e._v("event")]),e._v(": The event to consider.")])]),e._v(" "),a("h4",{attrs:{id:"returns-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-4"}},[e._v("#")]),e._v(" Returns")]),e._v(" "),a("p",[e._v("True if the event is an action (False otherwise).")]),e._v(" "),a("h3",{attrs:{id:"is-applicable-action"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action"}},[e._v("#")]),e._v(" is_applicable_action "),a("Badge",{attrs:{text:"Events",type:"tip"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"is_applicable_action",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),e._v(" "),a("p",[e._v("Indicate whether an action is applicable in the given memory (state or history), or in the internal one if\nomitted.")]),e._v(" "),a("p",[e._v("By default, "),a("code",[e._v("Events.is_applicable_action()")]),e._v(" provides some boilerplate code and internally\ncalls "),a("code",[e._v("Events._is_applicable_action()")]),e._v(". The boilerplate code automatically passes the "),a("code",[e._v("_memory")]),e._v(" attribute instead\nof the memory parameter whenever the latter is None.")]),e._v(" "),a("h4",{attrs:{id:"parameters-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-4"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),a("ul",[a("li",[a("strong",[e._v("memory")]),e._v(": The memory to consider (if None, the internal memory attribute "),a("code",[e._v("_memory")]),e._v(" is used instead).")])]),e._v(" "),a("h4",{attrs:{id:"returns-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-5"}},[e._v("#")]),e._v(" Returns")]),e._v(" "),a("p",[e._v("True if the action is applicable (False otherwise).")]),e._v(" "),a("h3",{attrs:{id:"is-enabled-event"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event"}},[e._v("#")]),e._v(" is_enabled_event "),a("Badge",{attrs:{text:"Events",type:"tip"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"is_enabled_event",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),e._v(" "),a("p",[e._v("Indicate whether an uncontrollable event is enabled in the given memory (state or history), or in the\ninternal one if omitted.")]),e._v(" "),a("p",[e._v("By default, "),a("code",[e._v("Events.is_enabled_event()")]),e._v(" provides some boilerplate code and internally\ncalls "),a("code",[e._v("Events._is_enabled_event()")]),e._v(". The boilerplate code automatically passes the "),a("code",[e._v("_memory")]),e._v(" attribute instead of\nthe memory parameter whenever the latter is None.")]),e._v(" "),a("h4",{attrs:{id:"parameters-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-5"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),a("ul",[a("li",[a("strong",[e._v("memory")]),e._v(": The memory to consider (if None, the internal memory attribute "),a("code",[e._v("_memory")]),e._v(" is used instead).")])]),e._v(" "),a("h4",{attrs:{id:"returns-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-6"}},[e._v("#")]),e._v(" Returns")]),e._v(" "),a("p",[e._v("True if the event is enabled (False otherwise).")]),e._v(" "),a("h3",{attrs:{id:"get-action-space-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-2"}},[e._v("#")]),e._v(" _get_action_space "),a("Badge",{attrs:{text:"Events",type:"tip"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"_get_action_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),e._v(" "),a("p",[e._v("Get the (cached) domain action space (finite or infinite set).")]),e._v(" "),a("p",[e._v("By default, "),a("code",[e._v("Events._get_action_space()")]),e._v(" internally calls "),a("code",[e._v("Events._get_action_space_()")]),e._v(" the first time and\nautomatically caches its value to make future calls more efficient (since the action space is assumed to be\nconstant).")]),e._v(" "),a("h4",{attrs:{id:"returns-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-7"}},[e._v("#")]),e._v(" Returns")]),e._v(" "),a("p",[e._v("The action space.")]),e._v(" "),a("h3",{attrs:{id:"get-action-space-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-3"}},[e._v("#")]),e._v(" _get_action_space_ "),a("Badge",{attrs:{text:"Events",type:"tip"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"_get_action_space_",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),e._v(" "),a("p",[e._v("Get the domain action space (finite or infinite set).")]),e._v(" "),a("p",[e._v("This is a helper function called by default from "),a("code",[e._v("Events._get_action_space()")]),e._v(", the difference being that the\nresult is not cached here.")]),e._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[e._v("TIP")]),e._v(" "),a("p",[e._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),e._v(" "),a("h4",{attrs:{id:"returns-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-8"}},[e._v("#")]),e._v(" Returns")]),e._v(" "),a("p",[e._v("The action space.")]),e._v(" "),a("h3",{attrs:{id:"get-applicable-actions-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-2"}},[e._v("#")]),e._v(" _get_applicable_actions "),a("Badge",{attrs:{text:"Events",type:"tip"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"_get_applicable_actions",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"D.T_agent[Space[D.T_event]]"}}}),e._v(" "),a("p",[e._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history), or in\nthe internal one if omitted.")]),e._v(" "),a("p",[e._v("By default, "),a("code",[e._v("Events._get_applicable_actions()")]),e._v(" provides some boilerplate code and internally\ncalls "),a("code",[e._v("Events._get_applicable_actions_from()")]),e._v(". The boilerplate code automatically passes the "),a("code",[e._v("_memory")]),e._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),e._v(" "),a("h4",{attrs:{id:"parameters-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-6"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),a("ul",[a("li",[a("strong",[e._v("memory")]),e._v(": The memory to consider (if None, the internal memory attribute "),a("code",[e._v("_memory")]),e._v(" is used instead).")])]),e._v(" "),a("h4",{attrs:{id:"returns-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-9"}},[e._v("#")]),e._v(" Returns")]),e._v(" "),a("p",[e._v("The space of applicable actions.")]),e._v(" "),a("h3",{attrs:{id:"get-applicable-actions-from"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-from"}},[e._v("#")]),e._v(" _get_applicable_actions_from "),a("Badge",{attrs:{text:"Events",type:"tip"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"_get_applicable_actions_from",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"D.T_agent[Space[D.T_event]]"}}}),e._v(" "),a("p",[e._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history).")]),e._v(" "),a("p",[e._v("This is a helper function called by default from "),a("code",[e._v("Events._get_applicable_actions()")]),e._v(", the difference being that\nthe memory parameter is mandatory here.")]),e._v(" "),a("h4",{attrs:{id:"parameters-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-7"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),a("ul",[a("li",[a("strong",[e._v("memory")]),e._v(": The memory to consider.")])]),e._v(" "),a("h4",{attrs:{id:"returns-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-10"}},[e._v("#")]),e._v(" Returns")]),e._v(" "),a("p",[e._v("The space of applicable actions.")]),e._v(" "),a("h3",{attrs:{id:"get-enabled-events-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-2"}},[e._v("#")]),e._v(" _get_enabled_events "),a("Badge",{attrs:{text:"Events",type:"tip"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"_get_enabled_events",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"Space[D.T_event]"}}}),e._v(" "),a("p",[e._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory), or in the internal one if omitted.")]),e._v(" "),a("p",[e._v("By default, "),a("code",[e._v("Events._get_enabled_events()")]),e._v(" provides some boilerplate code and internally\ncalls "),a("code",[e._v("Events._get_enabled_events_from()")]),e._v(". The boilerplate code automatically passes the "),a("code",[e._v("_memory")]),e._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),e._v(" "),a("h4",{attrs:{id:"parameters-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-8"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),a("ul",[a("li",[a("strong",[e._v("memory")]),e._v(": The memory to consider (if None, the internal memory attribute "),a("code",[e._v("_memory")]),e._v(" is used instead).")])]),e._v(" "),a("h4",{attrs:{id:"returns-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-11"}},[e._v("#")]),e._v(" Returns")]),e._v(" "),a("p",[e._v("The space of enabled events.")]),e._v(" "),a("h3",{attrs:{id:"get-enabled-events-from"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-from"}},[e._v("#")]),e._v(" _get_enabled_events_from "),a("Badge",{attrs:{text:"Events",type:"tip"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"_get_enabled_events_from",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"Space[D.T_event]"}}}),e._v(" "),a("p",[e._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory).")]),e._v(" "),a("p",[e._v("This is a helper function called by default from "),a("code",[e._v("Events._get_enabled_events()")]),e._v(", the difference being that the\nmemory parameter is mandatory here.")]),e._v(" "),a("h4",{attrs:{id:"parameters-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-9"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),a("ul",[a("li",[a("strong",[e._v("memory")]),e._v(": The memory to consider.")])]),e._v(" "),a("h4",{attrs:{id:"returns-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-12"}},[e._v("#")]),e._v(" Returns")]),e._v(" "),a("p",[e._v("The space of enabled events.")]),e._v(" "),a("h3",{attrs:{id:"is-action-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-action-2"}},[e._v("#")]),e._v(" _is_action "),a("Badge",{attrs:{text:"Events",type:"tip"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"_is_action",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"}],return:"bool"}}}),e._v(" "),a("p",[e._v("Indicate whether an event is an action (i.e. a controllable event for the agents).")]),e._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[e._v("TIP")]),e._v(" "),a("p",[e._v("By default, this function is implemented using the "),a("code",[e._v("skdecide.core.Space.contains()")]),e._v(" function on the domain\naction space provided by "),a("code",[e._v("Events._get_action_space()")]),e._v(", but it can be overridden for faster implementations.")])]),e._v(" "),a("h4",{attrs:{id:"parameters-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-10"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),a("ul",[a("li",[a("strong",[e._v("event")]),e._v(": The event to consider.")])]),e._v(" "),a("h4",{attrs:{id:"returns-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-13"}},[e._v("#")]),e._v(" Returns")]),e._v(" "),a("p",[e._v("True if the event is an action (False otherwise).")]),e._v(" "),a("h3",{attrs:{id:"is-applicable-action-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-2"}},[e._v("#")]),e._v(" _is_applicable_action "),a("Badge",{attrs:{text:"Events",type:"tip"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"_is_applicable_action",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),e._v(" "),a("p",[e._v("Indicate whether an action is applicable in the given memory (state or history), or in the internal one if\nomitted.")]),e._v(" "),a("p",[e._v("By default, "),a("code",[e._v("Events._is_applicable_action()")]),e._v(" provides some boilerplate code and internally\ncalls "),a("code",[e._v("Events._is_applicable_action_from()")]),e._v(". The boilerplate code automatically passes the "),a("code",[e._v("_memory")]),e._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),e._v(" "),a("h4",{attrs:{id:"parameters-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-11"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),a("ul",[a("li",[a("strong",[e._v("memory")]),e._v(": The memory to consider (if None, the internal memory attribute "),a("code",[e._v("_memory")]),e._v(" is used instead).")])]),e._v(" "),a("h4",{attrs:{id:"returns-14"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-14"}},[e._v("#")]),e._v(" Returns")]),e._v(" "),a("p",[e._v("True if the action is applicable (False otherwise).")]),e._v(" "),a("h3",{attrs:{id:"is-applicable-action-from"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-from"}},[e._v("#")]),e._v(" _is_applicable_action_from "),a("Badge",{attrs:{text:"Events",type:"tip"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"_is_applicable_action_from",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"bool"}}}),e._v(" "),a("p",[e._v("Indicate whether an action is applicable in the given memory (state or history).")]),e._v(" "),a("p",[e._v("This is a helper function called by default from "),a("code",[e._v("Events._is_applicable_action()")]),e._v(", the difference being that the\nmemory parameter is mandatory here.")]),e._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[e._v("TIP")]),e._v(" "),a("p",[e._v("By default, this function is implemented using the "),a("code",[e._v("skdecide.core.Space.contains()")]),e._v(" function on the space of\napplicable actions provided by "),a("code",[e._v("Events._get_applicable_actions_from()")]),e._v(", but it can be overridden for faster\nimplementations.")])]),e._v(" "),a("h4",{attrs:{id:"parameters-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-12"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),a("ul",[a("li",[a("strong",[e._v("memory")]),e._v(": The memory to consider.")])]),e._v(" "),a("h4",{attrs:{id:"returns-15"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-15"}},[e._v("#")]),e._v(" Returns")]),e._v(" "),a("p",[e._v("True if the action is applicable (False otherwise).")]),e._v(" "),a("h3",{attrs:{id:"is-enabled-event-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-2"}},[e._v("#")]),e._v(" _is_enabled_event "),a("Badge",{attrs:{text:"Events",type:"tip"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"_is_enabled_event",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),e._v(" "),a("p",[e._v("Indicate whether an uncontrollable event is enabled in the given memory (state or history), or in the\ninternal one if omitted.")]),e._v(" "),a("p",[e._v("By default, "),a("code",[e._v("Events._is_enabled_event()")]),e._v(" provides some boilerplate code and internally\ncalls "),a("code",[e._v("Events._is_enabled_event_from()")]),e._v(". The boilerplate code automatically passes the "),a("code",[e._v("_memory")]),e._v(" attribute instead\nof the memory parameter whenever the latter is None.")]),e._v(" "),a("h4",{attrs:{id:"parameters-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-13"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),a("ul",[a("li",[a("strong",[e._v("memory")]),e._v(": The memory to consider (if None, the internal memory attribute "),a("code",[e._v("_memory")]),e._v(" is used instead).")])]),e._v(" "),a("h4",{attrs:{id:"returns-16"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-16"}},[e._v("#")]),e._v(" Returns")]),e._v(" "),a("p",[e._v("True if the event is enabled (False otherwise).")]),e._v(" "),a("h3",{attrs:{id:"is-enabled-event-from"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-from"}},[e._v("#")]),e._v(" _is_enabled_event_from "),a("Badge",{attrs:{text:"Events",type:"tip"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"_is_enabled_event_from",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"bool"}}}),e._v(" "),a("p",[e._v("Indicate whether an event is enabled in the given memory (state or history).")]),e._v(" "),a("p",[e._v("This is a helper function called by default from "),a("code",[e._v("Events._is_enabled_event()")]),e._v(", the difference being that the\nmemory parameter is mandatory here.")]),e._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[e._v("TIP")]),e._v(" "),a("p",[e._v("By default, this function is implemented using the "),a("code",[e._v("skdecide.core.Space.contains()")]),e._v(" function on the space of\nenabled events provided by "),a("code",[e._v("Events._get_enabled_events_from()")]),e._v(", but it can be overridden for faster\nimplementations.")])]),e._v(" "),a("h4",{attrs:{id:"parameters-14"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-14"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),a("ul",[a("li",[a("strong",[e._v("memory")]),e._v(": The memory to consider.")])]),e._v(" "),a("h4",{attrs:{id:"returns-17"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-17"}},[e._v("#")]),e._v(" Returns")]),e._v(" "),a("p",[e._v("True if the event is enabled (False otherwise).")]),e._v(" "),a("h2",{attrs:{id:"actions"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#actions"}},[e._v("#")]),e._v(" Actions")]),e._v(" "),a("p",[e._v("A domain must inherit this class if it handles only actions (i.e. controllable events).")]),e._v(" "),a("h3",{attrs:{id:"get-action-space-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-4"}},[e._v("#")]),e._v(" get_action_space "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"get_action_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),e._v(" "),a("p",[e._v("Get the (cached) domain action space (finite or infinite set).")]),e._v(" "),a("p",[e._v("By default, "),a("code",[e._v("Events.get_action_space()")]),e._v(" internally calls "),a("code",[e._v("Events._get_action_space_()")]),e._v(" the first time and\nautomatically caches its value to make future calls more efficient (since the action space is assumed to be\nconstant).")]),e._v(" "),a("h4",{attrs:{id:"returns-18"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-18"}},[e._v("#")]),e._v(" Returns")]),e._v(" "),a("p",[e._v("The action space.")]),e._v(" "),a("h3",{attrs:{id:"get-applicable-actions-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-3"}},[e._v("#")]),e._v(" get_applicable_actions "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"get_applicable_actions",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"D.T_agent[Space[D.T_event]]"}}}),e._v(" "),a("p",[e._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history), or in\nthe internal one if omitted.")]),e._v(" "),a("p",[e._v("By default, "),a("code",[e._v("Events.get_applicable_actions()")]),e._v(" provides some boilerplate code and internally\ncalls "),a("code",[e._v("Events._get_applicable_actions()")]),e._v(". The boilerplate code automatically passes the "),a("code",[e._v("_memory")]),e._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),e._v(" "),a("h4",{attrs:{id:"parameters-15"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-15"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),a("ul",[a("li",[a("strong",[e._v("memory")]),e._v(": The memory to consider (if None, the internal memory attribute "),a("code",[e._v("_memory")]),e._v(" is used instead).")])]),e._v(" "),a("h4",{attrs:{id:"returns-19"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-19"}},[e._v("#")]),e._v(" Returns")]),e._v(" "),a("p",[e._v("The space of applicable actions.")]),e._v(" "),a("h3",{attrs:{id:"get-enabled-events-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-3"}},[e._v("#")]),e._v(" get_enabled_events "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"get_enabled_events",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"Space[D.T_event]"}}}),e._v(" "),a("p",[e._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory), or in the internal one if omitted.")]),e._v(" "),a("p",[e._v("By default, "),a("code",[e._v("Events.get_enabled_events()")]),e._v(" provides some boilerplate code and internally\ncalls "),a("code",[e._v("Events._get_enabled_events()")]),e._v(". The boilerplate code automatically passes the "),a("code",[e._v("_memory")]),e._v(" attribute instead of\nthe memory parameter whenever the latter is None.")]),e._v(" "),a("h4",{attrs:{id:"parameters-16"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-16"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),a("ul",[a("li",[a("strong",[e._v("memory")]),e._v(": The memory to consider (if None, the internal memory attribute "),a("code",[e._v("_memory")]),e._v(" is used instead).")])]),e._v(" "),a("h4",{attrs:{id:"returns-20"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-20"}},[e._v("#")]),e._v(" Returns")]),e._v(" "),a("p",[e._v("The space of enabled events.")]),e._v(" "),a("h3",{attrs:{id:"is-action-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-action-3"}},[e._v("#")]),e._v(" is_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"is_action",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"}],return:"bool"}}}),e._v(" "),a("p",[e._v("Indicate whether an event is an action (i.e. a controllable event for the agents).")]),e._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[e._v("TIP")]),e._v(" "),a("p",[e._v("By default, this function is implemented using the "),a("code",[e._v("skdecide.core.Space.contains()")]),e._v(" function on the domain\naction space provided by "),a("code",[e._v("Events.get_action_space()")]),e._v(", but it can be overridden for faster implementations.")])]),e._v(" "),a("h4",{attrs:{id:"parameters-17"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-17"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),a("ul",[a("li",[a("strong",[e._v("event")]),e._v(": The event to consider.")])]),e._v(" "),a("h4",{attrs:{id:"returns-21"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-21"}},[e._v("#")]),e._v(" Returns")]),e._v(" "),a("p",[e._v("True if the event is an action (False otherwise).")]),e._v(" "),a("h3",{attrs:{id:"is-applicable-action-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-3"}},[e._v("#")]),e._v(" is_applicable_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"is_applicable_action",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),e._v(" "),a("p",[e._v("Indicate whether an action is applicable in the given memory (state or history), or in the internal one if\nomitted.")]),e._v(" "),a("p",[e._v("By default, "),a("code",[e._v("Events.is_applicable_action()")]),e._v(" provides some boilerplate code and internally\ncalls "),a("code",[e._v("Events._is_applicable_action()")]),e._v(". The boilerplate code automatically passes the "),a("code",[e._v("_memory")]),e._v(" attribute instead\nof the memory parameter whenever the latter is None.")]),e._v(" "),a("h4",{attrs:{id:"parameters-18"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-18"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),a("ul",[a("li",[a("strong",[e._v("memory")]),e._v(": The memory to consider (if None, the internal memory attribute "),a("code",[e._v("_memory")]),e._v(" is used instead).")])]),e._v(" "),a("h4",{attrs:{id:"returns-22"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-22"}},[e._v("#")]),e._v(" Returns")]),e._v(" "),a("p",[e._v("True if the action is applicable (False otherwise).")]),e._v(" "),a("h3",{attrs:{id:"is-enabled-event-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-3"}},[e._v("#")]),e._v(" is_enabled_event "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"is_enabled_event",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),e._v(" "),a("p",[e._v("Indicate whether an uncontrollable event is enabled in the given memory (state or history), or in the\ninternal one if omitted.")]),e._v(" "),a("p",[e._v("By default, "),a("code",[e._v("Events.is_enabled_event()")]),e._v(" provides some boilerplate code and internally\ncalls "),a("code",[e._v("Events._is_enabled_event()")]),e._v(". The boilerplate code automatically passes the "),a("code",[e._v("_memory")]),e._v(" attribute instead of\nthe memory parameter whenever the latter is None.")]),e._v(" "),a("h4",{attrs:{id:"parameters-19"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-19"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),a("ul",[a("li",[a("strong",[e._v("memory")]),e._v(": The memory to consider (if None, the internal memory attribute "),a("code",[e._v("_memory")]),e._v(" is used instead).")])]),e._v(" "),a("h4",{attrs:{id:"returns-23"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-23"}},[e._v("#")]),e._v(" Returns")]),e._v(" "),a("p",[e._v("True if the event is enabled (False otherwise).")]),e._v(" "),a("h3",{attrs:{id:"get-action-space-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-5"}},[e._v("#")]),e._v(" _get_action_space "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"_get_action_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),e._v(" "),a("p",[e._v("Get the (cached) domain action space (finite or infinite set).")]),e._v(" "),a("p",[e._v("By default, "),a("code",[e._v("Events._get_action_space()")]),e._v(" internally calls "),a("code",[e._v("Events._get_action_space_()")]),e._v(" the first time and\nautomatically caches its value to make future calls more efficient (since the action space is assumed to be\nconstant).")]),e._v(" "),a("h4",{attrs:{id:"returns-24"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-24"}},[e._v("#")]),e._v(" Returns")]),e._v(" "),a("p",[e._v("The action space.")]),e._v(" "),a("h3",{attrs:{id:"get-action-space-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-6"}},[e._v("#")]),e._v(" _get_action_space_ "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"_get_action_space_",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),e._v(" "),a("p",[e._v("Get the domain action space (finite or infinite set).")]),e._v(" "),a("p",[e._v("This is a helper function called by default from "),a("code",[e._v("Events._get_action_space()")]),e._v(", the difference being that the\nresult is not cached here.")]),e._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[e._v("TIP")]),e._v(" "),a("p",[e._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),e._v(" "),a("h4",{attrs:{id:"returns-25"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-25"}},[e._v("#")]),e._v(" Returns")]),e._v(" "),a("p",[e._v("The action space.")]),e._v(" "),a("h3",{attrs:{id:"get-applicable-actions-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-4"}},[e._v("#")]),e._v(" _get_applicable_actions "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"_get_applicable_actions",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"D.T_agent[Space[D.T_event]]"}}}),e._v(" "),a("p",[e._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history), or in\nthe internal one if omitted.")]),e._v(" "),a("p",[e._v("By default, "),a("code",[e._v("Events._get_applicable_actions()")]),e._v(" provides some boilerplate code and internally\ncalls "),a("code",[e._v("Events._get_applicable_actions_from()")]),e._v(". The boilerplate code automatically passes the "),a("code",[e._v("_memory")]),e._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),e._v(" "),a("h4",{attrs:{id:"parameters-20"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-20"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),a("ul",[a("li",[a("strong",[e._v("memory")]),e._v(": The memory to consider (if None, the internal memory attribute "),a("code",[e._v("_memory")]),e._v(" is used instead).")])]),e._v(" "),a("h4",{attrs:{id:"returns-26"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-26"}},[e._v("#")]),e._v(" Returns")]),e._v(" "),a("p",[e._v("The space of applicable actions.")]),e._v(" "),a("h3",{attrs:{id:"get-applicable-actions-from-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-from-2"}},[e._v("#")]),e._v(" _get_applicable_actions_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"_get_applicable_actions_from",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"D.T_agent[Space[D.T_event]]"}}}),e._v(" "),a("p",[e._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history).")]),e._v(" "),a("p",[e._v("This is a helper function called by default from "),a("code",[e._v("Events._get_applicable_actions()")]),e._v(", the difference being that\nthe memory parameter is mandatory here.")]),e._v(" "),a("h4",{attrs:{id:"parameters-21"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-21"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),a("ul",[a("li",[a("strong",[e._v("memory")]),e._v(": The memory to consider.")])]),e._v(" "),a("h4",{attrs:{id:"returns-27"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-27"}},[e._v("#")]),e._v(" Returns")]),e._v(" "),a("p",[e._v("The space of applicable actions.")]),e._v(" "),a("h3",{attrs:{id:"get-enabled-events-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-4"}},[e._v("#")]),e._v(" _get_enabled_events "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"_get_enabled_events",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"Space[D.T_event]"}}}),e._v(" "),a("p",[e._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory), or in the internal one if omitted.")]),e._v(" "),a("p",[e._v("By default, "),a("code",[e._v("Events._get_enabled_events()")]),e._v(" provides some boilerplate code and internally\ncalls "),a("code",[e._v("Events._get_enabled_events_from()")]),e._v(". The boilerplate code automatically passes the "),a("code",[e._v("_memory")]),e._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),e._v(" "),a("h4",{attrs:{id:"parameters-22"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-22"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),a("ul",[a("li",[a("strong",[e._v("memory")]),e._v(": The memory to consider (if None, the internal memory attribute "),a("code",[e._v("_memory")]),e._v(" is used instead).")])]),e._v(" "),a("h4",{attrs:{id:"returns-28"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-28"}},[e._v("#")]),e._v(" Returns")]),e._v(" "),a("p",[e._v("The space of enabled events.")]),e._v(" "),a("h3",{attrs:{id:"get-enabled-events-from-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-from-2"}},[e._v("#")]),e._v(" _get_enabled_events_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"_get_enabled_events_from",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"Space[D.T_event]"}}}),e._v(" "),a("p",[e._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory).")]),e._v(" "),a("p",[e._v("This is a helper function called by default from "),a("code",[e._v("Events._get_enabled_events()")]),e._v(", the difference being that the\nmemory parameter is mandatory here.")]),e._v(" "),a("h4",{attrs:{id:"parameters-23"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-23"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),a("ul",[a("li",[a("strong",[e._v("memory")]),e._v(": The memory to consider.")])]),e._v(" "),a("h4",{attrs:{id:"returns-29"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-29"}},[e._v("#")]),e._v(" Returns")]),e._v(" "),a("p",[e._v("The space of enabled events.")]),e._v(" "),a("h3",{attrs:{id:"is-action-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-action-4"}},[e._v("#")]),e._v(" _is_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"_is_action",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"}],return:"bool"}}}),e._v(" "),a("p",[e._v("Indicate whether an event is an action (i.e. a controllable event for the agents).")]),e._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[e._v("TIP")]),e._v(" "),a("p",[e._v("By default, this function is implemented using the "),a("code",[e._v("skdecide.core.Space.contains()")]),e._v(" function on the domain\naction space provided by "),a("code",[e._v("Events._get_action_space()")]),e._v(", but it can be overridden for faster implementations.")])]),e._v(" "),a("h4",{attrs:{id:"parameters-24"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-24"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),a("ul",[a("li",[a("strong",[e._v("event")]),e._v(": The event to consider.")])]),e._v(" "),a("h4",{attrs:{id:"returns-30"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-30"}},[e._v("#")]),e._v(" Returns")]),e._v(" "),a("p",[e._v("True if the event is an action (False otherwise).")]),e._v(" "),a("h3",{attrs:{id:"is-applicable-action-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-4"}},[e._v("#")]),e._v(" _is_applicable_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"_is_applicable_action",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),e._v(" "),a("p",[e._v("Indicate whether an action is applicable in the given memory (state or history), or in the internal one if\nomitted.")]),e._v(" "),a("p",[e._v("By default, "),a("code",[e._v("Events._is_applicable_action()")]),e._v(" provides some boilerplate code and internally\ncalls "),a("code",[e._v("Events._is_applicable_action_from()")]),e._v(". The boilerplate code automatically passes the "),a("code",[e._v("_memory")]),e._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),e._v(" "),a("h4",{attrs:{id:"parameters-25"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-25"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),a("ul",[a("li",[a("strong",[e._v("memory")]),e._v(": The memory to consider (if None, the internal memory attribute "),a("code",[e._v("_memory")]),e._v(" is used instead).")])]),e._v(" "),a("h4",{attrs:{id:"returns-31"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-31"}},[e._v("#")]),e._v(" Returns")]),e._v(" "),a("p",[e._v("True if the action is applicable (False otherwise).")]),e._v(" "),a("h3",{attrs:{id:"is-applicable-action-from-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-from-2"}},[e._v("#")]),e._v(" _is_applicable_action_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"_is_applicable_action_from",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"bool"}}}),e._v(" "),a("p",[e._v("Indicate whether an action is applicable in the given memory (state or history).")]),e._v(" "),a("p",[e._v("This is a helper function called by default from "),a("code",[e._v("Events._is_applicable_action()")]),e._v(", the difference being that the\nmemory parameter is mandatory here.")]),e._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[e._v("TIP")]),e._v(" "),a("p",[e._v("By default, this function is implemented using the "),a("code",[e._v("skdecide.core.Space.contains()")]),e._v(" function on the space of\napplicable actions provided by "),a("code",[e._v("Events._get_applicable_actions_from()")]),e._v(", but it can be overridden for faster\nimplementations.")])]),e._v(" "),a("h4",{attrs:{id:"parameters-26"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-26"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),a("ul",[a("li",[a("strong",[e._v("memory")]),e._v(": The memory to consider.")])]),e._v(" "),a("h4",{attrs:{id:"returns-32"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-32"}},[e._v("#")]),e._v(" Returns")]),e._v(" "),a("p",[e._v("True if the action is applicable (False otherwise).")]),e._v(" "),a("h3",{attrs:{id:"is-enabled-event-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-4"}},[e._v("#")]),e._v(" _is_enabled_event "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"_is_enabled_event",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),e._v(" "),a("p",[e._v("Indicate whether an uncontrollable event is enabled in the given memory (state or history), or in the\ninternal one if omitted.")]),e._v(" "),a("p",[e._v("By default, "),a("code",[e._v("Events._is_enabled_event()")]),e._v(" provides some boilerplate code and internally\ncalls "),a("code",[e._v("Events._is_enabled_event_from()")]),e._v(". The boilerplate code automatically passes the "),a("code",[e._v("_memory")]),e._v(" attribute instead\nof the memory parameter whenever the latter is None.")]),e._v(" "),a("h4",{attrs:{id:"parameters-27"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-27"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),a("ul",[a("li",[a("strong",[e._v("memory")]),e._v(": The memory to consider (if None, the internal memory attribute "),a("code",[e._v("_memory")]),e._v(" is used instead).")])]),e._v(" "),a("h4",{attrs:{id:"returns-33"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-33"}},[e._v("#")]),e._v(" Returns")]),e._v(" "),a("p",[e._v("True if the event is enabled (False otherwise).")]),e._v(" "),a("h3",{attrs:{id:"is-enabled-event-from-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-from-2"}},[e._v("#")]),e._v(" _is_enabled_event_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"_is_enabled_event_from",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"bool"}}}),e._v(" "),a("p",[e._v("Indicate whether an event is enabled in the given memory (state or history).")]),e._v(" "),a("p",[e._v("This is a helper function called by default from "),a("code",[e._v("Events._is_enabled_event()")]),e._v(", the difference being that the\nmemory parameter is mandatory here.")]),e._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[e._v("TIP")]),e._v(" "),a("p",[e._v("By default, this function is implemented using the "),a("code",[e._v("skdecide.core.Space.contains()")]),e._v(" function on the space of\nenabled events provided by "),a("code",[e._v("Events._get_enabled_events_from()")]),e._v(", but it can be overridden for faster\nimplementations.")])]),e._v(" "),a("h4",{attrs:{id:"parameters-28"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-28"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),a("ul",[a("li",[a("strong",[e._v("memory")]),e._v(": The memory to consider.")])]),e._v(" "),a("h4",{attrs:{id:"returns-34"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-34"}},[e._v("#")]),e._v(" Returns")]),e._v(" "),a("p",[e._v("True if the event is enabled (False otherwise).")]),e._v(" "),a("h2",{attrs:{id:"unrestrictedactions"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#unrestrictedactions"}},[e._v("#")]),e._v(" UnrestrictedActions")]),e._v(" "),a("p",[e._v("A domain must inherit this class if it handles only actions (i.e. controllable events), which are always all\napplicable.")]),e._v(" "),a("h3",{attrs:{id:"get-action-space-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-7"}},[e._v("#")]),e._v(" get_action_space "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"get_action_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),e._v(" "),a("p",[e._v("Get the (cached) domain action space (finite or infinite set).")]),e._v(" "),a("p",[e._v("By default, "),a("code",[e._v("Events.get_action_space()")]),e._v(" internally calls "),a("code",[e._v("Events._get_action_space_()")]),e._v(" the first time and\nautomatically caches its value to make future calls more efficient (since the action space is assumed to be\nconstant).")]),e._v(" "),a("h4",{attrs:{id:"returns-35"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-35"}},[e._v("#")]),e._v(" Returns")]),e._v(" "),a("p",[e._v("The action space.")]),e._v(" "),a("h3",{attrs:{id:"get-applicable-actions-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-5"}},[e._v("#")]),e._v(" get_applicable_actions "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"get_applicable_actions",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"D.T_agent[Space[D.T_event]]"}}}),e._v(" "),a("p",[e._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history), or in\nthe internal one if omitted.")]),e._v(" "),a("p",[e._v("By default, "),a("code",[e._v("Events.get_applicable_actions()")]),e._v(" provides some boilerplate code and internally\ncalls "),a("code",[e._v("Events._get_applicable_actions()")]),e._v(". The boilerplate code automatically passes the "),a("code",[e._v("_memory")]),e._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),e._v(" "),a("h4",{attrs:{id:"parameters-29"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-29"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),a("ul",[a("li",[a("strong",[e._v("memory")]),e._v(": The memory to consider (if None, the internal memory attribute "),a("code",[e._v("_memory")]),e._v(" is used instead).")])]),e._v(" "),a("h4",{attrs:{id:"returns-36"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-36"}},[e._v("#")]),e._v(" Returns")]),e._v(" "),a("p",[e._v("The space of applicable actions.")]),e._v(" "),a("h3",{attrs:{id:"get-enabled-events-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-5"}},[e._v("#")]),e._v(" get_enabled_events "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"get_enabled_events",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"Space[D.T_event]"}}}),e._v(" "),a("p",[e._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory), or in the internal one if omitted.")]),e._v(" "),a("p",[e._v("By default, "),a("code",[e._v("Events.get_enabled_events()")]),e._v(" provides some boilerplate code and internally\ncalls "),a("code",[e._v("Events._get_enabled_events()")]),e._v(". The boilerplate code automatically passes the "),a("code",[e._v("_memory")]),e._v(" attribute instead of\nthe memory parameter whenever the latter is None.")]),e._v(" "),a("h4",{attrs:{id:"parameters-30"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-30"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),a("ul",[a("li",[a("strong",[e._v("memory")]),e._v(": The memory to consider (if None, the internal memory attribute "),a("code",[e._v("_memory")]),e._v(" is used instead).")])]),e._v(" "),a("h4",{attrs:{id:"returns-37"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-37"}},[e._v("#")]),e._v(" Returns")]),e._v(" "),a("p",[e._v("The space of enabled events.")]),e._v(" "),a("h3",{attrs:{id:"is-action-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-action-5"}},[e._v("#")]),e._v(" is_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"is_action",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"}],return:"bool"}}}),e._v(" "),a("p",[e._v("Indicate whether an event is an action (i.e. a controllable event for the agents).")]),e._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[e._v("TIP")]),e._v(" "),a("p",[e._v("By default, this function is implemented using the "),a("code",[e._v("skdecide.core.Space.contains()")]),e._v(" function on the domain\naction space provided by "),a("code",[e._v("Events.get_action_space()")]),e._v(", but it can be overridden for faster implementations.")])]),e._v(" "),a("h4",{attrs:{id:"parameters-31"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-31"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),a("ul",[a("li",[a("strong",[e._v("event")]),e._v(": The event to consider.")])]),e._v(" "),a("h4",{attrs:{id:"returns-38"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-38"}},[e._v("#")]),e._v(" Returns")]),e._v(" "),a("p",[e._v("True if the event is an action (False otherwise).")]),e._v(" "),a("h3",{attrs:{id:"is-applicable-action-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-5"}},[e._v("#")]),e._v(" is_applicable_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"is_applicable_action",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),e._v(" "),a("p",[e._v("Indicate whether an action is applicable in the given memory (state or history), or in the internal one if\nomitted.")]),e._v(" "),a("p",[e._v("By default, "),a("code",[e._v("Events.is_applicable_action()")]),e._v(" provides some boilerplate code and internally\ncalls "),a("code",[e._v("Events._is_applicable_action()")]),e._v(". The boilerplate code automatically passes the "),a("code",[e._v("_memory")]),e._v(" attribute instead\nof the memory parameter whenever the latter is None.")]),e._v(" "),a("h4",{attrs:{id:"parameters-32"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-32"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),a("ul",[a("li",[a("strong",[e._v("memory")]),e._v(": The memory to consider (if None, the internal memory attribute "),a("code",[e._v("_memory")]),e._v(" is used instead).")])]),e._v(" "),a("h4",{attrs:{id:"returns-39"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-39"}},[e._v("#")]),e._v(" Returns")]),e._v(" "),a("p",[e._v("True if the action is applicable (False otherwise).")]),e._v(" "),a("h3",{attrs:{id:"is-enabled-event-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-5"}},[e._v("#")]),e._v(" is_enabled_event "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"is_enabled_event",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),e._v(" "),a("p",[e._v("Indicate whether an uncontrollable event is enabled in the given memory (state or history), or in the\ninternal one if omitted.")]),e._v(" "),a("p",[e._v("By default, "),a("code",[e._v("Events.is_enabled_event()")]),e._v(" provides some boilerplate code and internally\ncalls "),a("code",[e._v("Events._is_enabled_event()")]),e._v(". The boilerplate code automatically passes the "),a("code",[e._v("_memory")]),e._v(" attribute instead of\nthe memory parameter whenever the latter is None.")]),e._v(" "),a("h4",{attrs:{id:"parameters-33"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-33"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),a("ul",[a("li",[a("strong",[e._v("memory")]),e._v(": The memory to consider (if None, the internal memory attribute "),a("code",[e._v("_memory")]),e._v(" is used instead).")])]),e._v(" "),a("h4",{attrs:{id:"returns-40"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-40"}},[e._v("#")]),e._v(" Returns")]),e._v(" "),a("p",[e._v("True if the event is enabled (False otherwise).")]),e._v(" "),a("h3",{attrs:{id:"get-action-space-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-8"}},[e._v("#")]),e._v(" _get_action_space "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"_get_action_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),e._v(" "),a("p",[e._v("Get the (cached) domain action space (finite or infinite set).")]),e._v(" "),a("p",[e._v("By default, "),a("code",[e._v("Events._get_action_space()")]),e._v(" internally calls "),a("code",[e._v("Events._get_action_space_()")]),e._v(" the first time and\nautomatically caches its value to make future calls more efficient (since the action space is assumed to be\nconstant).")]),e._v(" "),a("h4",{attrs:{id:"returns-41"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-41"}},[e._v("#")]),e._v(" Returns")]),e._v(" "),a("p",[e._v("The action space.")]),e._v(" "),a("h3",{attrs:{id:"get-action-space-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-9"}},[e._v("#")]),e._v(" _get_action_space_ "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"_get_action_space_",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),e._v(" "),a("p",[e._v("Get the domain action space (finite or infinite set).")]),e._v(" "),a("p",[e._v("This is a helper function called by default from "),a("code",[e._v("Events._get_action_space()")]),e._v(", the difference being that the\nresult is not cached here.")]),e._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[e._v("TIP")]),e._v(" "),a("p",[e._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),e._v(" "),a("h4",{attrs:{id:"returns-42"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-42"}},[e._v("#")]),e._v(" Returns")]),e._v(" "),a("p",[e._v("The action space.")]),e._v(" "),a("h3",{attrs:{id:"get-applicable-actions-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-6"}},[e._v("#")]),e._v(" _get_applicable_actions "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"_get_applicable_actions",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"D.T_agent[Space[D.T_event]]"}}}),e._v(" "),a("p",[e._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history), or in\nthe internal one if omitted.")]),e._v(" "),a("p",[e._v("By default, "),a("code",[e._v("Events._get_applicable_actions()")]),e._v(" provides some boilerplate code and internally\ncalls "),a("code",[e._v("Events._get_applicable_actions_from()")]),e._v(". The boilerplate code automatically passes the "),a("code",[e._v("_memory")]),e._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),e._v(" "),a("h4",{attrs:{id:"parameters-34"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-34"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),a("ul",[a("li",[a("strong",[e._v("memory")]),e._v(": The memory to consider (if None, the internal memory attribute "),a("code",[e._v("_memory")]),e._v(" is used instead).")])]),e._v(" "),a("h4",{attrs:{id:"returns-43"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-43"}},[e._v("#")]),e._v(" Returns")]),e._v(" "),a("p",[e._v("The space of applicable actions.")]),e._v(" "),a("h3",{attrs:{id:"get-applicable-actions-from-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-from-3"}},[e._v("#")]),e._v(" _get_applicable_actions_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"_get_applicable_actions_from",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"D.T_agent[Space[D.T_event]]"}}}),e._v(" "),a("p",[e._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history).")]),e._v(" "),a("p",[e._v("This is a helper function called by default from "),a("code",[e._v("Events._get_applicable_actions()")]),e._v(", the difference being that\nthe memory parameter is mandatory here.")]),e._v(" "),a("h4",{attrs:{id:"parameters-35"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-35"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),a("ul",[a("li",[a("strong",[e._v("memory")]),e._v(": The memory to consider.")])]),e._v(" "),a("h4",{attrs:{id:"returns-44"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-44"}},[e._v("#")]),e._v(" Returns")]),e._v(" "),a("p",[e._v("The space of applicable actions.")]),e._v(" "),a("h3",{attrs:{id:"get-enabled-events-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-6"}},[e._v("#")]),e._v(" _get_enabled_events "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"_get_enabled_events",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"Space[D.T_event]"}}}),e._v(" "),a("p",[e._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory), or in the internal one if omitted.")]),e._v(" "),a("p",[e._v("By default, "),a("code",[e._v("Events._get_enabled_events()")]),e._v(" provides some boilerplate code and internally\ncalls "),a("code",[e._v("Events._get_enabled_events_from()")]),e._v(". The boilerplate code automatically passes the "),a("code",[e._v("_memory")]),e._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),e._v(" "),a("h4",{attrs:{id:"parameters-36"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-36"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),a("ul",[a("li",[a("strong",[e._v("memory")]),e._v(": The memory to consider (if None, the internal memory attribute "),a("code",[e._v("_memory")]),e._v(" is used instead).")])]),e._v(" "),a("h4",{attrs:{id:"returns-45"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-45"}},[e._v("#")]),e._v(" Returns")]),e._v(" "),a("p",[e._v("The space of enabled events.")]),e._v(" "),a("h3",{attrs:{id:"get-enabled-events-from-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-from-3"}},[e._v("#")]),e._v(" _get_enabled_events_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"_get_enabled_events_from",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"Space[D.T_event]"}}}),e._v(" "),a("p",[e._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory).")]),e._v(" "),a("p",[e._v("This is a helper function called by default from "),a("code",[e._v("Events._get_enabled_events()")]),e._v(", the difference being that the\nmemory parameter is mandatory here.")]),e._v(" "),a("h4",{attrs:{id:"parameters-37"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-37"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),a("ul",[a("li",[a("strong",[e._v("memory")]),e._v(": The memory to consider.")])]),e._v(" "),a("h4",{attrs:{id:"returns-46"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-46"}},[e._v("#")]),e._v(" Returns")]),e._v(" "),a("p",[e._v("The space of enabled events.")]),e._v(" "),a("h3",{attrs:{id:"is-action-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-action-6"}},[e._v("#")]),e._v(" _is_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"_is_action",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"}],return:"bool"}}}),e._v(" "),a("p",[e._v("Indicate whether an event is an action (i.e. a controllable event for the agents).")]),e._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[e._v("TIP")]),e._v(" "),a("p",[e._v("By default, this function is implemented using the "),a("code",[e._v("skdecide.core.Space.contains()")]),e._v(" function on the domain\naction space provided by "),a("code",[e._v("Events._get_action_space()")]),e._v(", but it can be overridden for faster implementations.")])]),e._v(" "),a("h4",{attrs:{id:"parameters-38"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-38"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),a("ul",[a("li",[a("strong",[e._v("event")]),e._v(": The event to consider.")])]),e._v(" "),a("h4",{attrs:{id:"returns-47"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-47"}},[e._v("#")]),e._v(" Returns")]),e._v(" "),a("p",[e._v("True if the event is an action (False otherwise).")]),e._v(" "),a("h3",{attrs:{id:"is-applicable-action-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-6"}},[e._v("#")]),e._v(" _is_applicable_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"_is_applicable_action",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),e._v(" "),a("p",[e._v("Indicate whether an action is applicable in the given memory (state or history), or in the internal one if\nomitted.")]),e._v(" "),a("p",[e._v("By default, "),a("code",[e._v("Events._is_applicable_action()")]),e._v(" provides some boilerplate code and internally\ncalls "),a("code",[e._v("Events._is_applicable_action_from()")]),e._v(". The boilerplate code automatically passes the "),a("code",[e._v("_memory")]),e._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),e._v(" "),a("h4",{attrs:{id:"parameters-39"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-39"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),a("ul",[a("li",[a("strong",[e._v("memory")]),e._v(": The memory to consider (if None, the internal memory attribute "),a("code",[e._v("_memory")]),e._v(" is used instead).")])]),e._v(" "),a("h4",{attrs:{id:"returns-48"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-48"}},[e._v("#")]),e._v(" Returns")]),e._v(" "),a("p",[e._v("True if the action is applicable (False otherwise).")]),e._v(" "),a("h3",{attrs:{id:"is-applicable-action-from-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-from-3"}},[e._v("#")]),e._v(" _is_applicable_action_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"_is_applicable_action_from",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"bool"}}}),e._v(" "),a("p",[e._v("Indicate whether an action is applicable in the given memory (state or history).")]),e._v(" "),a("p",[e._v("This is a helper function called by default from "),a("code",[e._v("Events._is_applicable_action()")]),e._v(", the difference being that the\nmemory parameter is mandatory here.")]),e._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[e._v("TIP")]),e._v(" "),a("p",[e._v("By default, this function is implemented using the "),a("code",[e._v("skdecide.core.Space.contains()")]),e._v(" function on the space of\napplicable actions provided by "),a("code",[e._v("Events._get_applicable_actions_from()")]),e._v(", but it can be overridden for faster\nimplementations.")])]),e._v(" "),a("h4",{attrs:{id:"parameters-40"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-40"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),a("ul",[a("li",[a("strong",[e._v("memory")]),e._v(": The memory to consider.")])]),e._v(" "),a("h4",{attrs:{id:"returns-49"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-49"}},[e._v("#")]),e._v(" Returns")]),e._v(" "),a("p",[e._v("True if the action is applicable (False otherwise).")]),e._v(" "),a("h3",{attrs:{id:"is-enabled-event-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-6"}},[e._v("#")]),e._v(" _is_enabled_event "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"_is_enabled_event",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),e._v(" "),a("p",[e._v("Indicate whether an uncontrollable event is enabled in the given memory (state or history), or in the\ninternal one if omitted.")]),e._v(" "),a("p",[e._v("By default, "),a("code",[e._v("Events._is_enabled_event()")]),e._v(" provides some boilerplate code and internally\ncalls "),a("code",[e._v("Events._is_enabled_event_from()")]),e._v(". The boilerplate code automatically passes the "),a("code",[e._v("_memory")]),e._v(" attribute instead\nof the memory parameter whenever the latter is None.")]),e._v(" "),a("h4",{attrs:{id:"parameters-41"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-41"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),a("ul",[a("li",[a("strong",[e._v("memory")]),e._v(": The memory to consider (if None, the internal memory attribute "),a("code",[e._v("_memory")]),e._v(" is used instead).")])]),e._v(" "),a("h4",{attrs:{id:"returns-50"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-50"}},[e._v("#")]),e._v(" Returns")]),e._v(" "),a("p",[e._v("True if the event is enabled (False otherwise).")]),e._v(" "),a("h3",{attrs:{id:"is-enabled-event-from-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-from-3"}},[e._v("#")]),e._v(" _is_enabled_event_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"_is_enabled_event_from",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"bool"}}}),e._v(" "),a("p",[e._v("Indicate whether an event is enabled in the given memory (state or history).")]),e._v(" "),a("p",[e._v("This is a helper function called by default from "),a("code",[e._v("Events._is_enabled_event()")]),e._v(", the difference being that the\nmemory parameter is mandatory here.")]),e._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[e._v("TIP")]),e._v(" "),a("p",[e._v("By default, this function is implemented using the "),a("code",[e._v("skdecide.core.Space.contains()")]),e._v(" function on the space of\nenabled events provided by "),a("code",[e._v("Events._get_enabled_events_from()")]),e._v(", but it can be overridden for faster\nimplementations.")])]),e._v(" "),a("h4",{attrs:{id:"parameters-42"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-42"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),a("ul",[a("li",[a("strong",[e._v("memory")]),e._v(": The memory to consider.")])]),e._v(" "),a("h4",{attrs:{id:"returns-51"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-51"}},[e._v("#")]),e._v(" Returns")]),e._v(" "),a("p",[e._v("True if the event is enabled (False otherwise).")])],1)}),[],!1,null,null,null);t.default=n.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[27],{543:function(e,t,a){"use strict";a.r(t);var s=a(38),n=Object(s.a)({},(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("h1",{attrs:{id:"builders-domain-events"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#builders-domain-events"}},[e._v("#")]),e._v(" builders.domain.events")]),e._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[e._v("Domain specification")]),e._v(" "),a("skdecide-summary")],1),e._v(" "),a("h2",{attrs:{id:"events"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#events"}},[e._v("#")]),e._v(" Events")]),e._v(" "),a("p",[e._v("A domain must inherit this class if it handles events (controllable or not not by the agents).")]),e._v(" "),a("h3",{attrs:{id:"get-action-space"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space"}},[e._v("#")]),e._v(" get_action_space "),a("Badge",{attrs:{text:"Events",type:"tip"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"get_action_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),e._v(" "),a("p",[e._v("Get the (cached) domain action space (finite or infinite set).")]),e._v(" "),a("p",[e._v("By default, "),a("code",[e._v("Events.get_action_space()")]),e._v(" internally calls "),a("code",[e._v("Events._get_action_space_()")]),e._v(" the first time and\nautomatically caches its value to make future calls more efficient (since the action space is assumed to be\nconstant).")]),e._v(" "),a("h4",{attrs:{id:"returns"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns"}},[e._v("#")]),e._v(" Returns")]),e._v(" "),a("p",[e._v("The action space.")]),e._v(" "),a("h3",{attrs:{id:"get-applicable-actions"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions"}},[e._v("#")]),e._v(" get_applicable_actions "),a("Badge",{attrs:{text:"Events",type:"tip"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"get_applicable_actions",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"D.T_agent[Space[D.T_event]]"}}}),e._v(" "),a("p",[e._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history), or in\nthe internal one if omitted.")]),e._v(" "),a("p",[e._v("By default, "),a("code",[e._v("Events.get_applicable_actions()")]),e._v(" provides some boilerplate code and internally\ncalls "),a("code",[e._v("Events._get_applicable_actions()")]),e._v(". The boilerplate code automatically passes the "),a("code",[e._v("_memory")]),e._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),e._v(" "),a("h4",{attrs:{id:"parameters"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),a("ul",[a("li",[a("strong",[e._v("memory")]),e._v(": The memory to consider (if None, the internal memory attribute "),a("code",[e._v("_memory")]),e._v(" is used instead).")])]),e._v(" "),a("h4",{attrs:{id:"returns-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-2"}},[e._v("#")]),e._v(" Returns")]),e._v(" "),a("p",[e._v("The space of applicable actions.")]),e._v(" "),a("h3",{attrs:{id:"get-enabled-events"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events"}},[e._v("#")]),e._v(" get_enabled_events "),a("Badge",{attrs:{text:"Events",type:"tip"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"get_enabled_events",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"Space[D.T_event]"}}}),e._v(" "),a("p",[e._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory), or in the internal one if omitted.")]),e._v(" "),a("p",[e._v("By default, "),a("code",[e._v("Events.get_enabled_events()")]),e._v(" provides some boilerplate code and internally\ncalls "),a("code",[e._v("Events._get_enabled_events()")]),e._v(". The boilerplate code automatically passes the "),a("code",[e._v("_memory")]),e._v(" attribute instead of\nthe memory parameter whenever the latter is None.")]),e._v(" "),a("h4",{attrs:{id:"parameters-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-2"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),a("ul",[a("li",[a("strong",[e._v("memory")]),e._v(": The memory to consider (if None, the internal memory attribute "),a("code",[e._v("_memory")]),e._v(" is used instead).")])]),e._v(" "),a("h4",{attrs:{id:"returns-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-3"}},[e._v("#")]),e._v(" Returns")]),e._v(" "),a("p",[e._v("The space of enabled events.")]),e._v(" "),a("h3",{attrs:{id:"is-action"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-action"}},[e._v("#")]),e._v(" is_action "),a("Badge",{attrs:{text:"Events",type:"tip"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"is_action",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"}],return:"bool"}}}),e._v(" "),a("p",[e._v("Indicate whether an event is an action (i.e. a controllable event for the agents).")]),e._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[e._v("TIP")]),e._v(" "),a("p",[e._v("By default, this function is implemented using the "),a("code",[e._v("skdecide.core.Space.contains()")]),e._v(" function on the domain\naction space provided by "),a("code",[e._v("Events.get_action_space()")]),e._v(", but it can be overridden for faster implementations.")])]),e._v(" "),a("h4",{attrs:{id:"parameters-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-3"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),a("ul",[a("li",[a("strong",[e._v("event")]),e._v(": The event to consider.")])]),e._v(" "),a("h4",{attrs:{id:"returns-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-4"}},[e._v("#")]),e._v(" Returns")]),e._v(" "),a("p",[e._v("True if the event is an action (False otherwise).")]),e._v(" "),a("h3",{attrs:{id:"is-applicable-action"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action"}},[e._v("#")]),e._v(" is_applicable_action "),a("Badge",{attrs:{text:"Events",type:"tip"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"is_applicable_action",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),e._v(" "),a("p",[e._v("Indicate whether an action is applicable in the given memory (state or history), or in the internal one if\nomitted.")]),e._v(" "),a("p",[e._v("By default, "),a("code",[e._v("Events.is_applicable_action()")]),e._v(" provides some boilerplate code and internally\ncalls "),a("code",[e._v("Events._is_applicable_action()")]),e._v(". The boilerplate code automatically passes the "),a("code",[e._v("_memory")]),e._v(" attribute instead\nof the memory parameter whenever the latter is None.")]),e._v(" "),a("h4",{attrs:{id:"parameters-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-4"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),a("ul",[a("li",[a("strong",[e._v("memory")]),e._v(": The memory to consider (if None, the internal memory attribute "),a("code",[e._v("_memory")]),e._v(" is used instead).")])]),e._v(" "),a("h4",{attrs:{id:"returns-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-5"}},[e._v("#")]),e._v(" Returns")]),e._v(" "),a("p",[e._v("True if the action is applicable (False otherwise).")]),e._v(" "),a("h3",{attrs:{id:"is-enabled-event"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event"}},[e._v("#")]),e._v(" is_enabled_event "),a("Badge",{attrs:{text:"Events",type:"tip"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"is_enabled_event",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),e._v(" "),a("p",[e._v("Indicate whether an uncontrollable event is enabled in the given memory (state or history), or in the\ninternal one if omitted.")]),e._v(" "),a("p",[e._v("By default, "),a("code",[e._v("Events.is_enabled_event()")]),e._v(" provides some boilerplate code and internally\ncalls "),a("code",[e._v("Events._is_enabled_event()")]),e._v(". The boilerplate code automatically passes the "),a("code",[e._v("_memory")]),e._v(" attribute instead of\nthe memory parameter whenever the latter is None.")]),e._v(" "),a("h4",{attrs:{id:"parameters-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-5"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),a("ul",[a("li",[a("strong",[e._v("memory")]),e._v(": The memory to consider (if None, the internal memory attribute "),a("code",[e._v("_memory")]),e._v(" is used instead).")])]),e._v(" "),a("h4",{attrs:{id:"returns-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-6"}},[e._v("#")]),e._v(" Returns")]),e._v(" "),a("p",[e._v("True if the event is enabled (False otherwise).")]),e._v(" "),a("h3",{attrs:{id:"get-action-space-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-2"}},[e._v("#")]),e._v(" _get_action_space "),a("Badge",{attrs:{text:"Events",type:"tip"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"_get_action_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),e._v(" "),a("p",[e._v("Get the (cached) domain action space (finite or infinite set).")]),e._v(" "),a("p",[e._v("By default, "),a("code",[e._v("Events._get_action_space()")]),e._v(" internally calls "),a("code",[e._v("Events._get_action_space_()")]),e._v(" the first time and\nautomatically caches its value to make future calls more efficient (since the action space is assumed to be\nconstant).")]),e._v(" "),a("h4",{attrs:{id:"returns-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-7"}},[e._v("#")]),e._v(" Returns")]),e._v(" "),a("p",[e._v("The action space.")]),e._v(" "),a("h3",{attrs:{id:"get-action-space-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-3"}},[e._v("#")]),e._v(" _get_action_space_ "),a("Badge",{attrs:{text:"Events",type:"tip"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"_get_action_space_",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),e._v(" "),a("p",[e._v("Get the domain action space (finite or infinite set).")]),e._v(" "),a("p",[e._v("This is a helper function called by default from "),a("code",[e._v("Events._get_action_space()")]),e._v(", the difference being that the\nresult is not cached here.")]),e._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[e._v("TIP")]),e._v(" "),a("p",[e._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),e._v(" "),a("h4",{attrs:{id:"returns-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-8"}},[e._v("#")]),e._v(" Returns")]),e._v(" "),a("p",[e._v("The action space.")]),e._v(" "),a("h3",{attrs:{id:"get-applicable-actions-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-2"}},[e._v("#")]),e._v(" _get_applicable_actions "),a("Badge",{attrs:{text:"Events",type:"tip"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"_get_applicable_actions",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"D.T_agent[Space[D.T_event]]"}}}),e._v(" "),a("p",[e._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history), or in\nthe internal one if omitted.")]),e._v(" "),a("p",[e._v("By default, "),a("code",[e._v("Events._get_applicable_actions()")]),e._v(" provides some boilerplate code and internally\ncalls "),a("code",[e._v("Events._get_applicable_actions_from()")]),e._v(". The boilerplate code automatically passes the "),a("code",[e._v("_memory")]),e._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),e._v(" "),a("h4",{attrs:{id:"parameters-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-6"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),a("ul",[a("li",[a("strong",[e._v("memory")]),e._v(": The memory to consider (if None, the internal memory attribute "),a("code",[e._v("_memory")]),e._v(" is used instead).")])]),e._v(" "),a("h4",{attrs:{id:"returns-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-9"}},[e._v("#")]),e._v(" Returns")]),e._v(" "),a("p",[e._v("The space of applicable actions.")]),e._v(" "),a("h3",{attrs:{id:"get-applicable-actions-from"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-from"}},[e._v("#")]),e._v(" _get_applicable_actions_from "),a("Badge",{attrs:{text:"Events",type:"tip"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"_get_applicable_actions_from",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"D.T_agent[Space[D.T_event]]"}}}),e._v(" "),a("p",[e._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history).")]),e._v(" "),a("p",[e._v("This is a helper function called by default from "),a("code",[e._v("Events._get_applicable_actions()")]),e._v(", the difference being that\nthe memory parameter is mandatory here.")]),e._v(" "),a("h4",{attrs:{id:"parameters-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-7"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),a("ul",[a("li",[a("strong",[e._v("memory")]),e._v(": The memory to consider.")])]),e._v(" "),a("h4",{attrs:{id:"returns-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-10"}},[e._v("#")]),e._v(" Returns")]),e._v(" "),a("p",[e._v("The space of applicable actions.")]),e._v(" "),a("h3",{attrs:{id:"get-enabled-events-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-2"}},[e._v("#")]),e._v(" _get_enabled_events "),a("Badge",{attrs:{text:"Events",type:"tip"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"_get_enabled_events",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"Space[D.T_event]"}}}),e._v(" "),a("p",[e._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory), or in the internal one if omitted.")]),e._v(" "),a("p",[e._v("By default, "),a("code",[e._v("Events._get_enabled_events()")]),e._v(" provides some boilerplate code and internally\ncalls "),a("code",[e._v("Events._get_enabled_events_from()")]),e._v(". The boilerplate code automatically passes the "),a("code",[e._v("_memory")]),e._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),e._v(" "),a("h4",{attrs:{id:"parameters-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-8"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),a("ul",[a("li",[a("strong",[e._v("memory")]),e._v(": The memory to consider (if None, the internal memory attribute "),a("code",[e._v("_memory")]),e._v(" is used instead).")])]),e._v(" "),a("h4",{attrs:{id:"returns-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-11"}},[e._v("#")]),e._v(" Returns")]),e._v(" "),a("p",[e._v("The space of enabled events.")]),e._v(" "),a("h3",{attrs:{id:"get-enabled-events-from"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-from"}},[e._v("#")]),e._v(" _get_enabled_events_from "),a("Badge",{attrs:{text:"Events",type:"tip"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"_get_enabled_events_from",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"Space[D.T_event]"}}}),e._v(" "),a("p",[e._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory).")]),e._v(" "),a("p",[e._v("This is a helper function called by default from "),a("code",[e._v("Events._get_enabled_events()")]),e._v(", the difference being that the\nmemory parameter is mandatory here.")]),e._v(" "),a("h4",{attrs:{id:"parameters-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-9"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),a("ul",[a("li",[a("strong",[e._v("memory")]),e._v(": The memory to consider.")])]),e._v(" "),a("h4",{attrs:{id:"returns-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-12"}},[e._v("#")]),e._v(" Returns")]),e._v(" "),a("p",[e._v("The space of enabled events.")]),e._v(" "),a("h3",{attrs:{id:"is-action-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-action-2"}},[e._v("#")]),e._v(" _is_action "),a("Badge",{attrs:{text:"Events",type:"tip"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"_is_action",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"}],return:"bool"}}}),e._v(" "),a("p",[e._v("Indicate whether an event is an action (i.e. a controllable event for the agents).")]),e._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[e._v("TIP")]),e._v(" "),a("p",[e._v("By default, this function is implemented using the "),a("code",[e._v("skdecide.core.Space.contains()")]),e._v(" function on the domain\naction space provided by "),a("code",[e._v("Events._get_action_space()")]),e._v(", but it can be overridden for faster implementations.")])]),e._v(" "),a("h4",{attrs:{id:"parameters-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-10"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),a("ul",[a("li",[a("strong",[e._v("event")]),e._v(": The event to consider.")])]),e._v(" "),a("h4",{attrs:{id:"returns-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-13"}},[e._v("#")]),e._v(" Returns")]),e._v(" "),a("p",[e._v("True if the event is an action (False otherwise).")]),e._v(" "),a("h3",{attrs:{id:"is-applicable-action-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-2"}},[e._v("#")]),e._v(" _is_applicable_action "),a("Badge",{attrs:{text:"Events",type:"tip"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"_is_applicable_action",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),e._v(" "),a("p",[e._v("Indicate whether an action is applicable in the given memory (state or history), or in the internal one if\nomitted.")]),e._v(" "),a("p",[e._v("By default, "),a("code",[e._v("Events._is_applicable_action()")]),e._v(" provides some boilerplate code and internally\ncalls "),a("code",[e._v("Events._is_applicable_action_from()")]),e._v(". The boilerplate code automatically passes the "),a("code",[e._v("_memory")]),e._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),e._v(" "),a("h4",{attrs:{id:"parameters-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-11"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),a("ul",[a("li",[a("strong",[e._v("memory")]),e._v(": The memory to consider (if None, the internal memory attribute "),a("code",[e._v("_memory")]),e._v(" is used instead).")])]),e._v(" "),a("h4",{attrs:{id:"returns-14"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-14"}},[e._v("#")]),e._v(" Returns")]),e._v(" "),a("p",[e._v("True if the action is applicable (False otherwise).")]),e._v(" "),a("h3",{attrs:{id:"is-applicable-action-from"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-from"}},[e._v("#")]),e._v(" _is_applicable_action_from "),a("Badge",{attrs:{text:"Events",type:"tip"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"_is_applicable_action_from",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"bool"}}}),e._v(" "),a("p",[e._v("Indicate whether an action is applicable in the given memory (state or history).")]),e._v(" "),a("p",[e._v("This is a helper function called by default from "),a("code",[e._v("Events._is_applicable_action()")]),e._v(", the difference being that the\nmemory parameter is mandatory here.")]),e._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[e._v("TIP")]),e._v(" "),a("p",[e._v("By default, this function is implemented using the "),a("code",[e._v("skdecide.core.Space.contains()")]),e._v(" function on the space of\napplicable actions provided by "),a("code",[e._v("Events._get_applicable_actions_from()")]),e._v(", but it can be overridden for faster\nimplementations.")])]),e._v(" "),a("h4",{attrs:{id:"parameters-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-12"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),a("ul",[a("li",[a("strong",[e._v("memory")]),e._v(": The memory to consider.")])]),e._v(" "),a("h4",{attrs:{id:"returns-15"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-15"}},[e._v("#")]),e._v(" Returns")]),e._v(" "),a("p",[e._v("True if the action is applicable (False otherwise).")]),e._v(" "),a("h3",{attrs:{id:"is-enabled-event-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-2"}},[e._v("#")]),e._v(" _is_enabled_event "),a("Badge",{attrs:{text:"Events",type:"tip"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"_is_enabled_event",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),e._v(" "),a("p",[e._v("Indicate whether an uncontrollable event is enabled in the given memory (state or history), or in the\ninternal one if omitted.")]),e._v(" "),a("p",[e._v("By default, "),a("code",[e._v("Events._is_enabled_event()")]),e._v(" provides some boilerplate code and internally\ncalls "),a("code",[e._v("Events._is_enabled_event_from()")]),e._v(". The boilerplate code automatically passes the "),a("code",[e._v("_memory")]),e._v(" attribute instead\nof the memory parameter whenever the latter is None.")]),e._v(" "),a("h4",{attrs:{id:"parameters-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-13"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),a("ul",[a("li",[a("strong",[e._v("memory")]),e._v(": The memory to consider (if None, the internal memory attribute "),a("code",[e._v("_memory")]),e._v(" is used instead).")])]),e._v(" "),a("h4",{attrs:{id:"returns-16"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-16"}},[e._v("#")]),e._v(" Returns")]),e._v(" "),a("p",[e._v("True if the event is enabled (False otherwise).")]),e._v(" "),a("h3",{attrs:{id:"is-enabled-event-from"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-from"}},[e._v("#")]),e._v(" _is_enabled_event_from "),a("Badge",{attrs:{text:"Events",type:"tip"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"_is_enabled_event_from",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"bool"}}}),e._v(" "),a("p",[e._v("Indicate whether an event is enabled in the given memory (state or history).")]),e._v(" "),a("p",[e._v("This is a helper function called by default from "),a("code",[e._v("Events._is_enabled_event()")]),e._v(", the difference being that the\nmemory parameter is mandatory here.")]),e._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[e._v("TIP")]),e._v(" "),a("p",[e._v("By default, this function is implemented using the "),a("code",[e._v("skdecide.core.Space.contains()")]),e._v(" function on the space of\nenabled events provided by "),a("code",[e._v("Events._get_enabled_events_from()")]),e._v(", but it can be overridden for faster\nimplementations.")])]),e._v(" "),a("h4",{attrs:{id:"parameters-14"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-14"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),a("ul",[a("li",[a("strong",[e._v("memory")]),e._v(": The memory to consider.")])]),e._v(" "),a("h4",{attrs:{id:"returns-17"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-17"}},[e._v("#")]),e._v(" Returns")]),e._v(" "),a("p",[e._v("True if the event is enabled (False otherwise).")]),e._v(" "),a("h2",{attrs:{id:"actions"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#actions"}},[e._v("#")]),e._v(" Actions")]),e._v(" "),a("p",[e._v("A domain must inherit this class if it handles only actions (i.e. controllable events).")]),e._v(" "),a("h3",{attrs:{id:"get-action-space-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-4"}},[e._v("#")]),e._v(" get_action_space "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"get_action_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),e._v(" "),a("p",[e._v("Get the (cached) domain action space (finite or infinite set).")]),e._v(" "),a("p",[e._v("By default, "),a("code",[e._v("Events.get_action_space()")]),e._v(" internally calls "),a("code",[e._v("Events._get_action_space_()")]),e._v(" the first time and\nautomatically caches its value to make future calls more efficient (since the action space is assumed to be\nconstant).")]),e._v(" "),a("h4",{attrs:{id:"returns-18"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-18"}},[e._v("#")]),e._v(" Returns")]),e._v(" "),a("p",[e._v("The action space.")]),e._v(" "),a("h3",{attrs:{id:"get-applicable-actions-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-3"}},[e._v("#")]),e._v(" get_applicable_actions "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"get_applicable_actions",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"D.T_agent[Space[D.T_event]]"}}}),e._v(" "),a("p",[e._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history), or in\nthe internal one if omitted.")]),e._v(" "),a("p",[e._v("By default, "),a("code",[e._v("Events.get_applicable_actions()")]),e._v(" provides some boilerplate code and internally\ncalls "),a("code",[e._v("Events._get_applicable_actions()")]),e._v(". The boilerplate code automatically passes the "),a("code",[e._v("_memory")]),e._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),e._v(" "),a("h4",{attrs:{id:"parameters-15"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-15"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),a("ul",[a("li",[a("strong",[e._v("memory")]),e._v(": The memory to consider (if None, the internal memory attribute "),a("code",[e._v("_memory")]),e._v(" is used instead).")])]),e._v(" "),a("h4",{attrs:{id:"returns-19"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-19"}},[e._v("#")]),e._v(" Returns")]),e._v(" "),a("p",[e._v("The space of applicable actions.")]),e._v(" "),a("h3",{attrs:{id:"get-enabled-events-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-3"}},[e._v("#")]),e._v(" get_enabled_events "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"get_enabled_events",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"Space[D.T_event]"}}}),e._v(" "),a("p",[e._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory), or in the internal one if omitted.")]),e._v(" "),a("p",[e._v("By default, "),a("code",[e._v("Events.get_enabled_events()")]),e._v(" provides some boilerplate code and internally\ncalls "),a("code",[e._v("Events._get_enabled_events()")]),e._v(". The boilerplate code automatically passes the "),a("code",[e._v("_memory")]),e._v(" attribute instead of\nthe memory parameter whenever the latter is None.")]),e._v(" "),a("h4",{attrs:{id:"parameters-16"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-16"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),a("ul",[a("li",[a("strong",[e._v("memory")]),e._v(": The memory to consider (if None, the internal memory attribute "),a("code",[e._v("_memory")]),e._v(" is used instead).")])]),e._v(" "),a("h4",{attrs:{id:"returns-20"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-20"}},[e._v("#")]),e._v(" Returns")]),e._v(" "),a("p",[e._v("The space of enabled events.")]),e._v(" "),a("h3",{attrs:{id:"is-action-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-action-3"}},[e._v("#")]),e._v(" is_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"is_action",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"}],return:"bool"}}}),e._v(" "),a("p",[e._v("Indicate whether an event is an action (i.e. a controllable event for the agents).")]),e._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[e._v("TIP")]),e._v(" "),a("p",[e._v("By default, this function is implemented using the "),a("code",[e._v("skdecide.core.Space.contains()")]),e._v(" function on the domain\naction space provided by "),a("code",[e._v("Events.get_action_space()")]),e._v(", but it can be overridden for faster implementations.")])]),e._v(" "),a("h4",{attrs:{id:"parameters-17"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-17"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),a("ul",[a("li",[a("strong",[e._v("event")]),e._v(": The event to consider.")])]),e._v(" "),a("h4",{attrs:{id:"returns-21"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-21"}},[e._v("#")]),e._v(" Returns")]),e._v(" "),a("p",[e._v("True if the event is an action (False otherwise).")]),e._v(" "),a("h3",{attrs:{id:"is-applicable-action-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-3"}},[e._v("#")]),e._v(" is_applicable_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"is_applicable_action",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),e._v(" "),a("p",[e._v("Indicate whether an action is applicable in the given memory (state or history), or in the internal one if\nomitted.")]),e._v(" "),a("p",[e._v("By default, "),a("code",[e._v("Events.is_applicable_action()")]),e._v(" provides some boilerplate code and internally\ncalls "),a("code",[e._v("Events._is_applicable_action()")]),e._v(". The boilerplate code automatically passes the "),a("code",[e._v("_memory")]),e._v(" attribute instead\nof the memory parameter whenever the latter is None.")]),e._v(" "),a("h4",{attrs:{id:"parameters-18"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-18"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),a("ul",[a("li",[a("strong",[e._v("memory")]),e._v(": The memory to consider (if None, the internal memory attribute "),a("code",[e._v("_memory")]),e._v(" is used instead).")])]),e._v(" "),a("h4",{attrs:{id:"returns-22"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-22"}},[e._v("#")]),e._v(" Returns")]),e._v(" "),a("p",[e._v("True if the action is applicable (False otherwise).")]),e._v(" "),a("h3",{attrs:{id:"is-enabled-event-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-3"}},[e._v("#")]),e._v(" is_enabled_event "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"is_enabled_event",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),e._v(" "),a("p",[e._v("Indicate whether an uncontrollable event is enabled in the given memory (state or history), or in the\ninternal one if omitted.")]),e._v(" "),a("p",[e._v("By default, "),a("code",[e._v("Events.is_enabled_event()")]),e._v(" provides some boilerplate code and internally\ncalls "),a("code",[e._v("Events._is_enabled_event()")]),e._v(". The boilerplate code automatically passes the "),a("code",[e._v("_memory")]),e._v(" attribute instead of\nthe memory parameter whenever the latter is None.")]),e._v(" "),a("h4",{attrs:{id:"parameters-19"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-19"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),a("ul",[a("li",[a("strong",[e._v("memory")]),e._v(": The memory to consider (if None, the internal memory attribute "),a("code",[e._v("_memory")]),e._v(" is used instead).")])]),e._v(" "),a("h4",{attrs:{id:"returns-23"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-23"}},[e._v("#")]),e._v(" Returns")]),e._v(" "),a("p",[e._v("True if the event is enabled (False otherwise).")]),e._v(" "),a("h3",{attrs:{id:"get-action-space-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-5"}},[e._v("#")]),e._v(" _get_action_space "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"_get_action_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),e._v(" "),a("p",[e._v("Get the (cached) domain action space (finite or infinite set).")]),e._v(" "),a("p",[e._v("By default, "),a("code",[e._v("Events._get_action_space()")]),e._v(" internally calls "),a("code",[e._v("Events._get_action_space_()")]),e._v(" the first time and\nautomatically caches its value to make future calls more efficient (since the action space is assumed to be\nconstant).")]),e._v(" "),a("h4",{attrs:{id:"returns-24"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-24"}},[e._v("#")]),e._v(" Returns")]),e._v(" "),a("p",[e._v("The action space.")]),e._v(" "),a("h3",{attrs:{id:"get-action-space-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-6"}},[e._v("#")]),e._v(" _get_action_space_ "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"_get_action_space_",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),e._v(" "),a("p",[e._v("Get the domain action space (finite or infinite set).")]),e._v(" "),a("p",[e._v("This is a helper function called by default from "),a("code",[e._v("Events._get_action_space()")]),e._v(", the difference being that the\nresult is not cached here.")]),e._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[e._v("TIP")]),e._v(" "),a("p",[e._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),e._v(" "),a("h4",{attrs:{id:"returns-25"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-25"}},[e._v("#")]),e._v(" Returns")]),e._v(" "),a("p",[e._v("The action space.")]),e._v(" "),a("h3",{attrs:{id:"get-applicable-actions-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-4"}},[e._v("#")]),e._v(" _get_applicable_actions "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"_get_applicable_actions",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"D.T_agent[Space[D.T_event]]"}}}),e._v(" "),a("p",[e._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history), or in\nthe internal one if omitted.")]),e._v(" "),a("p",[e._v("By default, "),a("code",[e._v("Events._get_applicable_actions()")]),e._v(" provides some boilerplate code and internally\ncalls "),a("code",[e._v("Events._get_applicable_actions_from()")]),e._v(". The boilerplate code automatically passes the "),a("code",[e._v("_memory")]),e._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),e._v(" "),a("h4",{attrs:{id:"parameters-20"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-20"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),a("ul",[a("li",[a("strong",[e._v("memory")]),e._v(": The memory to consider (if None, the internal memory attribute "),a("code",[e._v("_memory")]),e._v(" is used instead).")])]),e._v(" "),a("h4",{attrs:{id:"returns-26"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-26"}},[e._v("#")]),e._v(" Returns")]),e._v(" "),a("p",[e._v("The space of applicable actions.")]),e._v(" "),a("h3",{attrs:{id:"get-applicable-actions-from-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-from-2"}},[e._v("#")]),e._v(" _get_applicable_actions_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"_get_applicable_actions_from",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"D.T_agent[Space[D.T_event]]"}}}),e._v(" "),a("p",[e._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history).")]),e._v(" "),a("p",[e._v("This is a helper function called by default from "),a("code",[e._v("Events._get_applicable_actions()")]),e._v(", the difference being that\nthe memory parameter is mandatory here.")]),e._v(" "),a("h4",{attrs:{id:"parameters-21"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-21"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),a("ul",[a("li",[a("strong",[e._v("memory")]),e._v(": The memory to consider.")])]),e._v(" "),a("h4",{attrs:{id:"returns-27"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-27"}},[e._v("#")]),e._v(" Returns")]),e._v(" "),a("p",[e._v("The space of applicable actions.")]),e._v(" "),a("h3",{attrs:{id:"get-enabled-events-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-4"}},[e._v("#")]),e._v(" _get_enabled_events "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"_get_enabled_events",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"Space[D.T_event]"}}}),e._v(" "),a("p",[e._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory), or in the internal one if omitted.")]),e._v(" "),a("p",[e._v("By default, "),a("code",[e._v("Events._get_enabled_events()")]),e._v(" provides some boilerplate code and internally\ncalls "),a("code",[e._v("Events._get_enabled_events_from()")]),e._v(". The boilerplate code automatically passes the "),a("code",[e._v("_memory")]),e._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),e._v(" "),a("h4",{attrs:{id:"parameters-22"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-22"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),a("ul",[a("li",[a("strong",[e._v("memory")]),e._v(": The memory to consider (if None, the internal memory attribute "),a("code",[e._v("_memory")]),e._v(" is used instead).")])]),e._v(" "),a("h4",{attrs:{id:"returns-28"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-28"}},[e._v("#")]),e._v(" Returns")]),e._v(" "),a("p",[e._v("The space of enabled events.")]),e._v(" "),a("h3",{attrs:{id:"get-enabled-events-from-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-from-2"}},[e._v("#")]),e._v(" _get_enabled_events_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"_get_enabled_events_from",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"Space[D.T_event]"}}}),e._v(" "),a("p",[e._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory).")]),e._v(" "),a("p",[e._v("This is a helper function called by default from "),a("code",[e._v("Events._get_enabled_events()")]),e._v(", the difference being that the\nmemory parameter is mandatory here.")]),e._v(" "),a("h4",{attrs:{id:"parameters-23"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-23"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),a("ul",[a("li",[a("strong",[e._v("memory")]),e._v(": The memory to consider.")])]),e._v(" "),a("h4",{attrs:{id:"returns-29"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-29"}},[e._v("#")]),e._v(" Returns")]),e._v(" "),a("p",[e._v("The space of enabled events.")]),e._v(" "),a("h3",{attrs:{id:"is-action-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-action-4"}},[e._v("#")]),e._v(" _is_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"_is_action",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"}],return:"bool"}}}),e._v(" "),a("p",[e._v("Indicate whether an event is an action (i.e. a controllable event for the agents).")]),e._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[e._v("TIP")]),e._v(" "),a("p",[e._v("By default, this function is implemented using the "),a("code",[e._v("skdecide.core.Space.contains()")]),e._v(" function on the domain\naction space provided by "),a("code",[e._v("Events._get_action_space()")]),e._v(", but it can be overridden for faster implementations.")])]),e._v(" "),a("h4",{attrs:{id:"parameters-24"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-24"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),a("ul",[a("li",[a("strong",[e._v("event")]),e._v(": The event to consider.")])]),e._v(" "),a("h4",{attrs:{id:"returns-30"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-30"}},[e._v("#")]),e._v(" Returns")]),e._v(" "),a("p",[e._v("True if the event is an action (False otherwise).")]),e._v(" "),a("h3",{attrs:{id:"is-applicable-action-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-4"}},[e._v("#")]),e._v(" _is_applicable_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"_is_applicable_action",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),e._v(" "),a("p",[e._v("Indicate whether an action is applicable in the given memory (state or history), or in the internal one if\nomitted.")]),e._v(" "),a("p",[e._v("By default, "),a("code",[e._v("Events._is_applicable_action()")]),e._v(" provides some boilerplate code and internally\ncalls "),a("code",[e._v("Events._is_applicable_action_from()")]),e._v(". The boilerplate code automatically passes the "),a("code",[e._v("_memory")]),e._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),e._v(" "),a("h4",{attrs:{id:"parameters-25"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-25"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),a("ul",[a("li",[a("strong",[e._v("memory")]),e._v(": The memory to consider (if None, the internal memory attribute "),a("code",[e._v("_memory")]),e._v(" is used instead).")])]),e._v(" "),a("h4",{attrs:{id:"returns-31"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-31"}},[e._v("#")]),e._v(" Returns")]),e._v(" "),a("p",[e._v("True if the action is applicable (False otherwise).")]),e._v(" "),a("h3",{attrs:{id:"is-applicable-action-from-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-from-2"}},[e._v("#")]),e._v(" _is_applicable_action_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"_is_applicable_action_from",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"bool"}}}),e._v(" "),a("p",[e._v("Indicate whether an action is applicable in the given memory (state or history).")]),e._v(" "),a("p",[e._v("This is a helper function called by default from "),a("code",[e._v("Events._is_applicable_action()")]),e._v(", the difference being that the\nmemory parameter is mandatory here.")]),e._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[e._v("TIP")]),e._v(" "),a("p",[e._v("By default, this function is implemented using the "),a("code",[e._v("skdecide.core.Space.contains()")]),e._v(" function on the space of\napplicable actions provided by "),a("code",[e._v("Events._get_applicable_actions_from()")]),e._v(", but it can be overridden for faster\nimplementations.")])]),e._v(" "),a("h4",{attrs:{id:"parameters-26"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-26"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),a("ul",[a("li",[a("strong",[e._v("memory")]),e._v(": The memory to consider.")])]),e._v(" "),a("h4",{attrs:{id:"returns-32"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-32"}},[e._v("#")]),e._v(" Returns")]),e._v(" "),a("p",[e._v("True if the action is applicable (False otherwise).")]),e._v(" "),a("h3",{attrs:{id:"is-enabled-event-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-4"}},[e._v("#")]),e._v(" _is_enabled_event "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"_is_enabled_event",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),e._v(" "),a("p",[e._v("Indicate whether an uncontrollable event is enabled in the given memory (state or history), or in the\ninternal one if omitted.")]),e._v(" "),a("p",[e._v("By default, "),a("code",[e._v("Events._is_enabled_event()")]),e._v(" provides some boilerplate code and internally\ncalls "),a("code",[e._v("Events._is_enabled_event_from()")]),e._v(". The boilerplate code automatically passes the "),a("code",[e._v("_memory")]),e._v(" attribute instead\nof the memory parameter whenever the latter is None.")]),e._v(" "),a("h4",{attrs:{id:"parameters-27"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-27"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),a("ul",[a("li",[a("strong",[e._v("memory")]),e._v(": The memory to consider (if None, the internal memory attribute "),a("code",[e._v("_memory")]),e._v(" is used instead).")])]),e._v(" "),a("h4",{attrs:{id:"returns-33"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-33"}},[e._v("#")]),e._v(" Returns")]),e._v(" "),a("p",[e._v("True if the event is enabled (False otherwise).")]),e._v(" "),a("h3",{attrs:{id:"is-enabled-event-from-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-from-2"}},[e._v("#")]),e._v(" _is_enabled_event_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"_is_enabled_event_from",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"bool"}}}),e._v(" "),a("p",[e._v("Indicate whether an event is enabled in the given memory (state or history).")]),e._v(" "),a("p",[e._v("This is a helper function called by default from "),a("code",[e._v("Events._is_enabled_event()")]),e._v(", the difference being that the\nmemory parameter is mandatory here.")]),e._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[e._v("TIP")]),e._v(" "),a("p",[e._v("By default, this function is implemented using the "),a("code",[e._v("skdecide.core.Space.contains()")]),e._v(" function on the space of\nenabled events provided by "),a("code",[e._v("Events._get_enabled_events_from()")]),e._v(", but it can be overridden for faster\nimplementations.")])]),e._v(" "),a("h4",{attrs:{id:"parameters-28"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-28"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),a("ul",[a("li",[a("strong",[e._v("memory")]),e._v(": The memory to consider.")])]),e._v(" "),a("h4",{attrs:{id:"returns-34"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-34"}},[e._v("#")]),e._v(" Returns")]),e._v(" "),a("p",[e._v("True if the event is enabled (False otherwise).")]),e._v(" "),a("h2",{attrs:{id:"unrestrictedactions"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#unrestrictedactions"}},[e._v("#")]),e._v(" UnrestrictedActions")]),e._v(" "),a("p",[e._v("A domain must inherit this class if it handles only actions (i.e. controllable events), which are always all\napplicable.")]),e._v(" "),a("h3",{attrs:{id:"get-action-space-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-7"}},[e._v("#")]),e._v(" get_action_space "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"get_action_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),e._v(" "),a("p",[e._v("Get the (cached) domain action space (finite or infinite set).")]),e._v(" "),a("p",[e._v("By default, "),a("code",[e._v("Events.get_action_space()")]),e._v(" internally calls "),a("code",[e._v("Events._get_action_space_()")]),e._v(" the first time and\nautomatically caches its value to make future calls more efficient (since the action space is assumed to be\nconstant).")]),e._v(" "),a("h4",{attrs:{id:"returns-35"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-35"}},[e._v("#")]),e._v(" Returns")]),e._v(" "),a("p",[e._v("The action space.")]),e._v(" "),a("h3",{attrs:{id:"get-applicable-actions-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-5"}},[e._v("#")]),e._v(" get_applicable_actions "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"get_applicable_actions",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"D.T_agent[Space[D.T_event]]"}}}),e._v(" "),a("p",[e._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history), or in\nthe internal one if omitted.")]),e._v(" "),a("p",[e._v("By default, "),a("code",[e._v("Events.get_applicable_actions()")]),e._v(" provides some boilerplate code and internally\ncalls "),a("code",[e._v("Events._get_applicable_actions()")]),e._v(". The boilerplate code automatically passes the "),a("code",[e._v("_memory")]),e._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),e._v(" "),a("h4",{attrs:{id:"parameters-29"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-29"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),a("ul",[a("li",[a("strong",[e._v("memory")]),e._v(": The memory to consider (if None, the internal memory attribute "),a("code",[e._v("_memory")]),e._v(" is used instead).")])]),e._v(" "),a("h4",{attrs:{id:"returns-36"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-36"}},[e._v("#")]),e._v(" Returns")]),e._v(" "),a("p",[e._v("The space of applicable actions.")]),e._v(" "),a("h3",{attrs:{id:"get-enabled-events-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-5"}},[e._v("#")]),e._v(" get_enabled_events "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"get_enabled_events",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"Space[D.T_event]"}}}),e._v(" "),a("p",[e._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory), or in the internal one if omitted.")]),e._v(" "),a("p",[e._v("By default, "),a("code",[e._v("Events.get_enabled_events()")]),e._v(" provides some boilerplate code and internally\ncalls "),a("code",[e._v("Events._get_enabled_events()")]),e._v(". The boilerplate code automatically passes the "),a("code",[e._v("_memory")]),e._v(" attribute instead of\nthe memory parameter whenever the latter is None.")]),e._v(" "),a("h4",{attrs:{id:"parameters-30"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-30"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),a("ul",[a("li",[a("strong",[e._v("memory")]),e._v(": The memory to consider (if None, the internal memory attribute "),a("code",[e._v("_memory")]),e._v(" is used instead).")])]),e._v(" "),a("h4",{attrs:{id:"returns-37"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-37"}},[e._v("#")]),e._v(" Returns")]),e._v(" "),a("p",[e._v("The space of enabled events.")]),e._v(" "),a("h3",{attrs:{id:"is-action-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-action-5"}},[e._v("#")]),e._v(" is_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"is_action",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"}],return:"bool"}}}),e._v(" "),a("p",[e._v("Indicate whether an event is an action (i.e. a controllable event for the agents).")]),e._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[e._v("TIP")]),e._v(" "),a("p",[e._v("By default, this function is implemented using the "),a("code",[e._v("skdecide.core.Space.contains()")]),e._v(" function on the domain\naction space provided by "),a("code",[e._v("Events.get_action_space()")]),e._v(", but it can be overridden for faster implementations.")])]),e._v(" "),a("h4",{attrs:{id:"parameters-31"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-31"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),a("ul",[a("li",[a("strong",[e._v("event")]),e._v(": The event to consider.")])]),e._v(" "),a("h4",{attrs:{id:"returns-38"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-38"}},[e._v("#")]),e._v(" Returns")]),e._v(" "),a("p",[e._v("True if the event is an action (False otherwise).")]),e._v(" "),a("h3",{attrs:{id:"is-applicable-action-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-5"}},[e._v("#")]),e._v(" is_applicable_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"is_applicable_action",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),e._v(" "),a("p",[e._v("Indicate whether an action is applicable in the given memory (state or history), or in the internal one if\nomitted.")]),e._v(" "),a("p",[e._v("By default, "),a("code",[e._v("Events.is_applicable_action()")]),e._v(" provides some boilerplate code and internally\ncalls "),a("code",[e._v("Events._is_applicable_action()")]),e._v(". The boilerplate code automatically passes the "),a("code",[e._v("_memory")]),e._v(" attribute instead\nof the memory parameter whenever the latter is None.")]),e._v(" "),a("h4",{attrs:{id:"parameters-32"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-32"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),a("ul",[a("li",[a("strong",[e._v("memory")]),e._v(": The memory to consider (if None, the internal memory attribute "),a("code",[e._v("_memory")]),e._v(" is used instead).")])]),e._v(" "),a("h4",{attrs:{id:"returns-39"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-39"}},[e._v("#")]),e._v(" Returns")]),e._v(" "),a("p",[e._v("True if the action is applicable (False otherwise).")]),e._v(" "),a("h3",{attrs:{id:"is-enabled-event-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-5"}},[e._v("#")]),e._v(" is_enabled_event "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"is_enabled_event",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),e._v(" "),a("p",[e._v("Indicate whether an uncontrollable event is enabled in the given memory (state or history), or in the\ninternal one if omitted.")]),e._v(" "),a("p",[e._v("By default, "),a("code",[e._v("Events.is_enabled_event()")]),e._v(" provides some boilerplate code and internally\ncalls "),a("code",[e._v("Events._is_enabled_event()")]),e._v(". The boilerplate code automatically passes the "),a("code",[e._v("_memory")]),e._v(" attribute instead of\nthe memory parameter whenever the latter is None.")]),e._v(" "),a("h4",{attrs:{id:"parameters-33"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-33"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),a("ul",[a("li",[a("strong",[e._v("memory")]),e._v(": The memory to consider (if None, the internal memory attribute "),a("code",[e._v("_memory")]),e._v(" is used instead).")])]),e._v(" "),a("h4",{attrs:{id:"returns-40"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-40"}},[e._v("#")]),e._v(" Returns")]),e._v(" "),a("p",[e._v("True if the event is enabled (False otherwise).")]),e._v(" "),a("h3",{attrs:{id:"get-action-space-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-8"}},[e._v("#")]),e._v(" _get_action_space "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"_get_action_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),e._v(" "),a("p",[e._v("Get the (cached) domain action space (finite or infinite set).")]),e._v(" "),a("p",[e._v("By default, "),a("code",[e._v("Events._get_action_space()")]),e._v(" internally calls "),a("code",[e._v("Events._get_action_space_()")]),e._v(" the first time and\nautomatically caches its value to make future calls more efficient (since the action space is assumed to be\nconstant).")]),e._v(" "),a("h4",{attrs:{id:"returns-41"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-41"}},[e._v("#")]),e._v(" Returns")]),e._v(" "),a("p",[e._v("The action space.")]),e._v(" "),a("h3",{attrs:{id:"get-action-space-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-9"}},[e._v("#")]),e._v(" _get_action_space_ "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"_get_action_space_",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),e._v(" "),a("p",[e._v("Get the domain action space (finite or infinite set).")]),e._v(" "),a("p",[e._v("This is a helper function called by default from "),a("code",[e._v("Events._get_action_space()")]),e._v(", the difference being that the\nresult is not cached here.")]),e._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[e._v("TIP")]),e._v(" "),a("p",[e._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),e._v(" "),a("h4",{attrs:{id:"returns-42"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-42"}},[e._v("#")]),e._v(" Returns")]),e._v(" "),a("p",[e._v("The action space.")]),e._v(" "),a("h3",{attrs:{id:"get-applicable-actions-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-6"}},[e._v("#")]),e._v(" _get_applicable_actions "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"_get_applicable_actions",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"D.T_agent[Space[D.T_event]]"}}}),e._v(" "),a("p",[e._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history), or in\nthe internal one if omitted.")]),e._v(" "),a("p",[e._v("By default, "),a("code",[e._v("Events._get_applicable_actions()")]),e._v(" provides some boilerplate code and internally\ncalls "),a("code",[e._v("Events._get_applicable_actions_from()")]),e._v(". The boilerplate code automatically passes the "),a("code",[e._v("_memory")]),e._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),e._v(" "),a("h4",{attrs:{id:"parameters-34"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-34"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),a("ul",[a("li",[a("strong",[e._v("memory")]),e._v(": The memory to consider (if None, the internal memory attribute "),a("code",[e._v("_memory")]),e._v(" is used instead).")])]),e._v(" "),a("h4",{attrs:{id:"returns-43"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-43"}},[e._v("#")]),e._v(" Returns")]),e._v(" "),a("p",[e._v("The space of applicable actions.")]),e._v(" "),a("h3",{attrs:{id:"get-applicable-actions-from-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-from-3"}},[e._v("#")]),e._v(" _get_applicable_actions_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"_get_applicable_actions_from",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"D.T_agent[Space[D.T_event]]"}}}),e._v(" "),a("p",[e._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history).")]),e._v(" "),a("p",[e._v("This is a helper function called by default from "),a("code",[e._v("Events._get_applicable_actions()")]),e._v(", the difference being that\nthe memory parameter is mandatory here.")]),e._v(" "),a("h4",{attrs:{id:"parameters-35"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-35"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),a("ul",[a("li",[a("strong",[e._v("memory")]),e._v(": The memory to consider.")])]),e._v(" "),a("h4",{attrs:{id:"returns-44"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-44"}},[e._v("#")]),e._v(" Returns")]),e._v(" "),a("p",[e._v("The space of applicable actions.")]),e._v(" "),a("h3",{attrs:{id:"get-enabled-events-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-6"}},[e._v("#")]),e._v(" _get_enabled_events "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"_get_enabled_events",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"Space[D.T_event]"}}}),e._v(" "),a("p",[e._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory), or in the internal one if omitted.")]),e._v(" "),a("p",[e._v("By default, "),a("code",[e._v("Events._get_enabled_events()")]),e._v(" provides some boilerplate code and internally\ncalls "),a("code",[e._v("Events._get_enabled_events_from()")]),e._v(". The boilerplate code automatically passes the "),a("code",[e._v("_memory")]),e._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),e._v(" "),a("h4",{attrs:{id:"parameters-36"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-36"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),a("ul",[a("li",[a("strong",[e._v("memory")]),e._v(": The memory to consider (if None, the internal memory attribute "),a("code",[e._v("_memory")]),e._v(" is used instead).")])]),e._v(" "),a("h4",{attrs:{id:"returns-45"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-45"}},[e._v("#")]),e._v(" Returns")]),e._v(" "),a("p",[e._v("The space of enabled events.")]),e._v(" "),a("h3",{attrs:{id:"get-enabled-events-from-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-from-3"}},[e._v("#")]),e._v(" _get_enabled_events_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"_get_enabled_events_from",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"Space[D.T_event]"}}}),e._v(" "),a("p",[e._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory).")]),e._v(" "),a("p",[e._v("This is a helper function called by default from "),a("code",[e._v("Events._get_enabled_events()")]),e._v(", the difference being that the\nmemory parameter is mandatory here.")]),e._v(" "),a("h4",{attrs:{id:"parameters-37"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-37"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),a("ul",[a("li",[a("strong",[e._v("memory")]),e._v(": The memory to consider.")])]),e._v(" "),a("h4",{attrs:{id:"returns-46"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-46"}},[e._v("#")]),e._v(" Returns")]),e._v(" "),a("p",[e._v("The space of enabled events.")]),e._v(" "),a("h3",{attrs:{id:"is-action-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-action-6"}},[e._v("#")]),e._v(" _is_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"_is_action",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"}],return:"bool"}}}),e._v(" "),a("p",[e._v("Indicate whether an event is an action (i.e. a controllable event for the agents).")]),e._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[e._v("TIP")]),e._v(" "),a("p",[e._v("By default, this function is implemented using the "),a("code",[e._v("skdecide.core.Space.contains()")]),e._v(" function on the domain\naction space provided by "),a("code",[e._v("Events._get_action_space()")]),e._v(", but it can be overridden for faster implementations.")])]),e._v(" "),a("h4",{attrs:{id:"parameters-38"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-38"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),a("ul",[a("li",[a("strong",[e._v("event")]),e._v(": The event to consider.")])]),e._v(" "),a("h4",{attrs:{id:"returns-47"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-47"}},[e._v("#")]),e._v(" Returns")]),e._v(" "),a("p",[e._v("True if the event is an action (False otherwise).")]),e._v(" "),a("h3",{attrs:{id:"is-applicable-action-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-6"}},[e._v("#")]),e._v(" _is_applicable_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"_is_applicable_action",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),e._v(" "),a("p",[e._v("Indicate whether an action is applicable in the given memory (state or history), or in the internal one if\nomitted.")]),e._v(" "),a("p",[e._v("By default, "),a("code",[e._v("Events._is_applicable_action()")]),e._v(" provides some boilerplate code and internally\ncalls "),a("code",[e._v("Events._is_applicable_action_from()")]),e._v(". The boilerplate code automatically passes the "),a("code",[e._v("_memory")]),e._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),e._v(" "),a("h4",{attrs:{id:"parameters-39"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-39"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),a("ul",[a("li",[a("strong",[e._v("memory")]),e._v(": The memory to consider (if None, the internal memory attribute "),a("code",[e._v("_memory")]),e._v(" is used instead).")])]),e._v(" "),a("h4",{attrs:{id:"returns-48"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-48"}},[e._v("#")]),e._v(" Returns")]),e._v(" "),a("p",[e._v("True if the action is applicable (False otherwise).")]),e._v(" "),a("h3",{attrs:{id:"is-applicable-action-from-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-from-3"}},[e._v("#")]),e._v(" _is_applicable_action_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"_is_applicable_action_from",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"bool"}}}),e._v(" "),a("p",[e._v("Indicate whether an action is applicable in the given memory (state or history).")]),e._v(" "),a("p",[e._v("This is a helper function called by default from "),a("code",[e._v("Events._is_applicable_action()")]),e._v(", the difference being that the\nmemory parameter is mandatory here.")]),e._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[e._v("TIP")]),e._v(" "),a("p",[e._v("By default, this function is implemented using the "),a("code",[e._v("skdecide.core.Space.contains()")]),e._v(" function on the space of\napplicable actions provided by "),a("code",[e._v("Events._get_applicable_actions_from()")]),e._v(", but it can be overridden for faster\nimplementations.")])]),e._v(" "),a("h4",{attrs:{id:"parameters-40"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-40"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),a("ul",[a("li",[a("strong",[e._v("memory")]),e._v(": The memory to consider.")])]),e._v(" "),a("h4",{attrs:{id:"returns-49"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-49"}},[e._v("#")]),e._v(" Returns")]),e._v(" "),a("p",[e._v("True if the action is applicable (False otherwise).")]),e._v(" "),a("h3",{attrs:{id:"is-enabled-event-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-6"}},[e._v("#")]),e._v(" _is_enabled_event "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"_is_enabled_event",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),e._v(" "),a("p",[e._v("Indicate whether an uncontrollable event is enabled in the given memory (state or history), or in the\ninternal one if omitted.")]),e._v(" "),a("p",[e._v("By default, "),a("code",[e._v("Events._is_enabled_event()")]),e._v(" provides some boilerplate code and internally\ncalls "),a("code",[e._v("Events._is_enabled_event_from()")]),e._v(". The boilerplate code automatically passes the "),a("code",[e._v("_memory")]),e._v(" attribute instead\nof the memory parameter whenever the latter is None.")]),e._v(" "),a("h4",{attrs:{id:"parameters-41"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-41"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),a("ul",[a("li",[a("strong",[e._v("memory")]),e._v(": The memory to consider (if None, the internal memory attribute "),a("code",[e._v("_memory")]),e._v(" is used instead).")])]),e._v(" "),a("h4",{attrs:{id:"returns-50"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-50"}},[e._v("#")]),e._v(" Returns")]),e._v(" "),a("p",[e._v("True if the event is enabled (False otherwise).")]),e._v(" "),a("h3",{attrs:{id:"is-enabled-event-from-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-from-3"}},[e._v("#")]),e._v(" _is_enabled_event_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"_is_enabled_event_from",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"bool"}}}),e._v(" "),a("p",[e._v("Indicate whether an event is enabled in the given memory (state or history).")]),e._v(" "),a("p",[e._v("This is a helper function called by default from "),a("code",[e._v("Events._is_enabled_event()")]),e._v(", the difference being that the\nmemory parameter is mandatory here.")]),e._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[e._v("TIP")]),e._v(" "),a("p",[e._v("By default, this function is implemented using the "),a("code",[e._v("skdecide.core.Space.contains()")]),e._v(" function on the space of\nenabled events provided by "),a("code",[e._v("Events._get_enabled_events_from()")]),e._v(", but it can be overridden for faster\nimplementations.")])]),e._v(" "),a("h4",{attrs:{id:"parameters-42"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-42"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),a("ul",[a("li",[a("strong",[e._v("memory")]),e._v(": The memory to consider.")])]),e._v(" "),a("h4",{attrs:{id:"returns-51"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-51"}},[e._v("#")]),e._v(" Returns")]),e._v(" "),a("p",[e._v("True if the event is enabled (False otherwise).")])],1)}),[],!1,null,null,null);t.default=n.exports}}]); \ No newline at end of file diff --git a/assets/js/29.be2b287e.js b/assets/js/29.0324e672.js similarity index 99% rename from assets/js/29.be2b287e.js rename to assets/js/29.0324e672.js index 4d6c1d956e..1b2e766e88 100644 --- a/assets/js/29.be2b287e.js +++ b/assets/js/29.0324e672.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[29],{543:function(t,e,i){"use strict";i.r(e);var a=i(38),s=Object(a.a)({},(function(){var t=this,e=t.$createElement,i=t._self._c||e;return i("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[i("h1",{attrs:{id:"builders-domain-initialization"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#builders-domain-initialization"}},[t._v("#")]),t._v(" builders.domain.initialization")]),t._v(" "),i("div",{staticClass:"custom-block tip"},[i("p",{staticClass:"custom-block-title"},[t._v("Domain specification")]),t._v(" "),i("skdecide-summary")],1),t._v(" "),i("h2",{attrs:{id:"initializable"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#initializable"}},[t._v("#")]),t._v(" Initializable")]),t._v(" "),i("p",[t._v("A domain must inherit this class if it can be initialized.")]),t._v(" "),i("h3",{attrs:{id:"reset"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#reset"}},[t._v("#")]),t._v(" reset "),i("Badge",{attrs:{text:"Initializable",type:"tip"}})],1),t._v(" "),i("skdecide-signature",{attrs:{name:"reset",sig:{params:[{name:"self"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),i("p",[t._v("Reset the state of the environment and return an initial observation.")]),t._v(" "),i("p",[t._v("By default, "),i("code",[t._v("Initializable.reset()")]),t._v(" provides some boilerplate code and internally calls "),i("code",[t._v("Initializable._reset()")]),t._v("\n(which returns an initial state). The boilerplate code automatically stores the initial state into the "),i("code",[t._v("_memory")]),t._v("\nattribute and samples a corresponding observation.")]),t._v(" "),i("h4",{attrs:{id:"returns"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#returns"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),i("p",[t._v("An initial observation.")]),t._v(" "),i("h3",{attrs:{id:"reset-2"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#reset-2"}},[t._v("#")]),t._v(" _reset "),i("Badge",{attrs:{text:"Initializable",type:"tip"}})],1),t._v(" "),i("skdecide-signature",{attrs:{name:"_reset",sig:{params:[{name:"self"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),i("p",[t._v("Reset the state of the environment and return an initial observation.")]),t._v(" "),i("p",[t._v("By default, "),i("code",[t._v("Initializable._reset()")]),t._v(" provides some boilerplate code and internally\ncalls "),i("code",[t._v("Initializable._state_reset()")]),t._v(" (which returns an initial state). The boilerplate code automatically stores\nthe initial state into the "),i("code",[t._v("_memory")]),t._v(" attribute and samples a corresponding observation.")]),t._v(" "),i("h4",{attrs:{id:"returns-2"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#returns-2"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),i("p",[t._v("An initial observation.")]),t._v(" "),i("h3",{attrs:{id:"state-reset"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#state-reset"}},[t._v("#")]),t._v(" _state_reset "),i("Badge",{attrs:{text:"Initializable",type:"tip"}})],1),t._v(" "),i("skdecide-signature",{attrs:{name:"_state_reset",sig:{params:[{name:"self"}],return:"D.T_state"}}}),t._v(" "),i("p",[t._v("Reset the state of the environment and return an initial state.")]),t._v(" "),i("p",[t._v("This is a helper function called by default from "),i("code",[t._v("Initializable._reset()")]),t._v(". It focuses on the state level, as\nopposed to the observation one for the latter.")]),t._v(" "),i("h4",{attrs:{id:"returns-3"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#returns-3"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),i("p",[t._v("An initial state.")]),t._v(" "),i("h2",{attrs:{id:"uncertaininitialized"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#uncertaininitialized"}},[t._v("#")]),t._v(" UncertainInitialized")]),t._v(" "),i("p",[t._v("A domain must inherit this class if its states are initialized according to a probability distribution known as\nwhite-box.")]),t._v(" "),i("h3",{attrs:{id:"get-initial-state-distribution"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-distribution"}},[t._v("#")]),t._v(" get_initial_state_distribution "),i("Badge",{attrs:{text:"UncertainInitialized",type:"tip"}})],1),t._v(" "),i("skdecide-signature",{attrs:{name:"get_initial_state_distribution",sig:{params:[{name:"self"}],return:"Distribution[D.T_state]"}}}),t._v(" "),i("p",[t._v("Get the (cached) probability distribution of initial states.")]),t._v(" "),i("p",[t._v("By default, "),i("code",[t._v("UncertainInitialized.get_initial_state_distribution()")]),t._v(" internally\ncalls "),i("code",[t._v("UncertainInitialized._get_initial_state_distribution_()")]),t._v(" the first time and automatically caches its value\nto make future calls more efficient (since the initial state distribution is assumed to be constant).")]),t._v(" "),i("h4",{attrs:{id:"returns-4"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#returns-4"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),i("p",[t._v("The probability distribution of initial states.")]),t._v(" "),i("h3",{attrs:{id:"reset-3"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#reset-3"}},[t._v("#")]),t._v(" reset "),i("Badge",{attrs:{text:"Initializable",type:"warn"}})],1),t._v(" "),i("skdecide-signature",{attrs:{name:"reset",sig:{params:[{name:"self"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),i("p",[t._v("Reset the state of the environment and return an initial observation.")]),t._v(" "),i("p",[t._v("By default, "),i("code",[t._v("Initializable.reset()")]),t._v(" provides some boilerplate code and internally calls "),i("code",[t._v("Initializable._reset()")]),t._v("\n(which returns an initial state). The boilerplate code automatically stores the initial state into the "),i("code",[t._v("_memory")]),t._v("\nattribute and samples a corresponding observation.")]),t._v(" "),i("h4",{attrs:{id:"returns-5"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#returns-5"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),i("p",[t._v("An initial observation.")]),t._v(" "),i("h3",{attrs:{id:"get-initial-state-distribution-2"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-distribution-2"}},[t._v("#")]),t._v(" _get_initial_state_distribution "),i("Badge",{attrs:{text:"UncertainInitialized",type:"tip"}})],1),t._v(" "),i("skdecide-signature",{attrs:{name:"_get_initial_state_distribution",sig:{params:[{name:"self"}],return:"Distribution[D.T_state]"}}}),t._v(" "),i("p",[t._v("Get the (cached) probability distribution of initial states.")]),t._v(" "),i("p",[t._v("By default, "),i("code",[t._v("UncertainInitialized._get_initial_state_distribution()")]),t._v(" internally\ncalls "),i("code",[t._v("UncertainInitialized._get_initial_state_distribution_()")]),t._v(" the first time and automatically caches its value\nto make future calls more efficient (since the initial state distribution is assumed to be constant).")]),t._v(" "),i("h4",{attrs:{id:"returns-6"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#returns-6"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),i("p",[t._v("The probability distribution of initial states.")]),t._v(" "),i("h3",{attrs:{id:"get-initial-state-distribution-3"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-distribution-3"}},[t._v("#")]),t._v(" _get_initial_state_distribution_ "),i("Badge",{attrs:{text:"UncertainInitialized",type:"tip"}})],1),t._v(" "),i("skdecide-signature",{attrs:{name:"_get_initial_state_distribution_",sig:{params:[{name:"self"}],return:"Distribution[D.T_state]"}}}),t._v(" "),i("p",[t._v("Get the probability distribution of initial states.")]),t._v(" "),i("p",[t._v("This is a helper function called by default from "),i("code",[t._v("UncertainInitialized._get_initial_state_distribution()")]),t._v(", the\ndifference being that the result is not cached here.")]),t._v(" "),i("div",{staticClass:"custom-block tip"},[i("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),i("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),i("h4",{attrs:{id:"returns-7"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#returns-7"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),i("p",[t._v("The probability distribution of initial states.")]),t._v(" "),i("h3",{attrs:{id:"reset-4"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#reset-4"}},[t._v("#")]),t._v(" _reset "),i("Badge",{attrs:{text:"Initializable",type:"warn"}})],1),t._v(" "),i("skdecide-signature",{attrs:{name:"_reset",sig:{params:[{name:"self"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),i("p",[t._v("Reset the state of the environment and return an initial observation.")]),t._v(" "),i("p",[t._v("By default, "),i("code",[t._v("Initializable._reset()")]),t._v(" provides some boilerplate code and internally\ncalls "),i("code",[t._v("Initializable._state_reset()")]),t._v(" (which returns an initial state). The boilerplate code automatically stores\nthe initial state into the "),i("code",[t._v("_memory")]),t._v(" attribute and samples a corresponding observation.")]),t._v(" "),i("h4",{attrs:{id:"returns-8"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#returns-8"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),i("p",[t._v("An initial observation.")]),t._v(" "),i("h3",{attrs:{id:"state-reset-2"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#state-reset-2"}},[t._v("#")]),t._v(" _state_reset "),i("Badge",{attrs:{text:"Initializable",type:"warn"}})],1),t._v(" "),i("skdecide-signature",{attrs:{name:"_state_reset",sig:{params:[{name:"self"}],return:"D.T_state"}}}),t._v(" "),i("p",[t._v("Reset the state of the environment and return an initial state.")]),t._v(" "),i("p",[t._v("This is a helper function called by default from "),i("code",[t._v("Initializable._reset()")]),t._v(". It focuses on the state level, as\nopposed to the observation one for the latter.")]),t._v(" "),i("h4",{attrs:{id:"returns-9"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#returns-9"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),i("p",[t._v("An initial state.")]),t._v(" "),i("h2",{attrs:{id:"deterministicinitialized"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#deterministicinitialized"}},[t._v("#")]),t._v(" DeterministicInitialized")]),t._v(" "),i("p",[t._v("A domain must inherit this class if it has a deterministic initial state known as white-box.")]),t._v(" "),i("h3",{attrs:{id:"get-initial-state"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state"}},[t._v("#")]),t._v(" get_initial_state "),i("Badge",{attrs:{text:"DeterministicInitialized",type:"tip"}})],1),t._v(" "),i("skdecide-signature",{attrs:{name:"get_initial_state",sig:{params:[{name:"self"}],return:"D.T_state"}}}),t._v(" "),i("p",[t._v("Get the (cached) initial state.")]),t._v(" "),i("p",[t._v("By default, "),i("code",[t._v("DeterministicInitialized.get_initial_state()")]),t._v(" internally\ncalls "),i("code",[t._v("DeterministicInitialized._get_initial_state_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the initial state is assumed to be constant).")]),t._v(" "),i("h4",{attrs:{id:"returns-10"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#returns-10"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),i("p",[t._v("The initial state.")]),t._v(" "),i("h3",{attrs:{id:"get-initial-state-distribution-4"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-distribution-4"}},[t._v("#")]),t._v(" get_initial_state_distribution "),i("Badge",{attrs:{text:"UncertainInitialized",type:"warn"}})],1),t._v(" "),i("skdecide-signature",{attrs:{name:"get_initial_state_distribution",sig:{params:[{name:"self"}],return:"Distribution[D.T_state]"}}}),t._v(" "),i("p",[t._v("Get the (cached) probability distribution of initial states.")]),t._v(" "),i("p",[t._v("By default, "),i("code",[t._v("UncertainInitialized.get_initial_state_distribution()")]),t._v(" internally\ncalls "),i("code",[t._v("UncertainInitialized._get_initial_state_distribution_()")]),t._v(" the first time and automatically caches its value\nto make future calls more efficient (since the initial state distribution is assumed to be constant).")]),t._v(" "),i("h4",{attrs:{id:"returns-11"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#returns-11"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),i("p",[t._v("The probability distribution of initial states.")]),t._v(" "),i("h3",{attrs:{id:"reset-5"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#reset-5"}},[t._v("#")]),t._v(" reset "),i("Badge",{attrs:{text:"Initializable",type:"warn"}})],1),t._v(" "),i("skdecide-signature",{attrs:{name:"reset",sig:{params:[{name:"self"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),i("p",[t._v("Reset the state of the environment and return an initial observation.")]),t._v(" "),i("p",[t._v("By default, "),i("code",[t._v("Initializable.reset()")]),t._v(" provides some boilerplate code and internally calls "),i("code",[t._v("Initializable._reset()")]),t._v("\n(which returns an initial state). The boilerplate code automatically stores the initial state into the "),i("code",[t._v("_memory")]),t._v("\nattribute and samples a corresponding observation.")]),t._v(" "),i("h4",{attrs:{id:"returns-12"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#returns-12"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),i("p",[t._v("An initial observation.")]),t._v(" "),i("h3",{attrs:{id:"get-initial-state-2"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-2"}},[t._v("#")]),t._v(" _get_initial_state "),i("Badge",{attrs:{text:"DeterministicInitialized",type:"tip"}})],1),t._v(" "),i("skdecide-signature",{attrs:{name:"_get_initial_state",sig:{params:[{name:"self"}],return:"D.T_state"}}}),t._v(" "),i("p",[t._v("Get the (cached) initial state.")]),t._v(" "),i("p",[t._v("By default, "),i("code",[t._v("DeterministicInitialized._get_initial_state()")]),t._v(" internally\ncalls "),i("code",[t._v("DeterministicInitialized._get_initial_state_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the initial state is assumed to be constant).")]),t._v(" "),i("h4",{attrs:{id:"returns-13"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#returns-13"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),i("p",[t._v("The initial state.")]),t._v(" "),i("h3",{attrs:{id:"get-initial-state-3"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-3"}},[t._v("#")]),t._v(" _get_initial_state_ "),i("Badge",{attrs:{text:"DeterministicInitialized",type:"tip"}})],1),t._v(" "),i("skdecide-signature",{attrs:{name:"_get_initial_state_",sig:{params:[{name:"self"}],return:"D.T_state"}}}),t._v(" "),i("p",[t._v("Get the initial state.")]),t._v(" "),i("p",[t._v("This is a helper function called by default from "),i("code",[t._v("DeterministicInitialized._get_initial_state()")]),t._v(", the difference\nbeing that the result is not cached here.")]),t._v(" "),i("h4",{attrs:{id:"returns-14"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#returns-14"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),i("p",[t._v("The initial state.")]),t._v(" "),i("h3",{attrs:{id:"get-initial-state-distribution-5"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-distribution-5"}},[t._v("#")]),t._v(" _get_initial_state_distribution "),i("Badge",{attrs:{text:"UncertainInitialized",type:"warn"}})],1),t._v(" "),i("skdecide-signature",{attrs:{name:"_get_initial_state_distribution",sig:{params:[{name:"self"}],return:"Distribution[D.T_state]"}}}),t._v(" "),i("p",[t._v("Get the (cached) probability distribution of initial states.")]),t._v(" "),i("p",[t._v("By default, "),i("code",[t._v("UncertainInitialized._get_initial_state_distribution()")]),t._v(" internally\ncalls "),i("code",[t._v("UncertainInitialized._get_initial_state_distribution_()")]),t._v(" the first time and automatically caches its value\nto make future calls more efficient (since the initial state distribution is assumed to be constant).")]),t._v(" "),i("h4",{attrs:{id:"returns-15"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#returns-15"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),i("p",[t._v("The probability distribution of initial states.")]),t._v(" "),i("h3",{attrs:{id:"get-initial-state-distribution-6"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-distribution-6"}},[t._v("#")]),t._v(" _get_initial_state_distribution_ "),i("Badge",{attrs:{text:"UncertainInitialized",type:"warn"}})],1),t._v(" "),i("skdecide-signature",{attrs:{name:"_get_initial_state_distribution_",sig:{params:[{name:"self"}],return:"Distribution[D.T_state]"}}}),t._v(" "),i("p",[t._v("Get the probability distribution of initial states.")]),t._v(" "),i("p",[t._v("This is a helper function called by default from "),i("code",[t._v("UncertainInitialized._get_initial_state_distribution()")]),t._v(", the\ndifference being that the result is not cached here.")]),t._v(" "),i("div",{staticClass:"custom-block tip"},[i("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),i("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),i("h4",{attrs:{id:"returns-16"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#returns-16"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),i("p",[t._v("The probability distribution of initial states.")]),t._v(" "),i("h3",{attrs:{id:"reset-6"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#reset-6"}},[t._v("#")]),t._v(" _reset "),i("Badge",{attrs:{text:"Initializable",type:"warn"}})],1),t._v(" "),i("skdecide-signature",{attrs:{name:"_reset",sig:{params:[{name:"self"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),i("p",[t._v("Reset the state of the environment and return an initial observation.")]),t._v(" "),i("p",[t._v("By default, "),i("code",[t._v("Initializable._reset()")]),t._v(" provides some boilerplate code and internally\ncalls "),i("code",[t._v("Initializable._state_reset()")]),t._v(" (which returns an initial state). The boilerplate code automatically stores\nthe initial state into the "),i("code",[t._v("_memory")]),t._v(" attribute and samples a corresponding observation.")]),t._v(" "),i("h4",{attrs:{id:"returns-17"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#returns-17"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),i("p",[t._v("An initial observation.")]),t._v(" "),i("h3",{attrs:{id:"state-reset-3"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#state-reset-3"}},[t._v("#")]),t._v(" _state_reset "),i("Badge",{attrs:{text:"Initializable",type:"warn"}})],1),t._v(" "),i("skdecide-signature",{attrs:{name:"_state_reset",sig:{params:[{name:"self"}],return:"D.T_state"}}}),t._v(" "),i("p",[t._v("Reset the state of the environment and return an initial state.")]),t._v(" "),i("p",[t._v("This is a helper function called by default from "),i("code",[t._v("Initializable._reset()")]),t._v(". It focuses on the state level, as\nopposed to the observation one for the latter.")]),t._v(" "),i("h4",{attrs:{id:"returns-18"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#returns-18"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),i("p",[t._v("An initial state.")])],1)}),[],!1,null,null,null);e.default=s.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[29],{544:function(t,e,i){"use strict";i.r(e);var a=i(38),s=Object(a.a)({},(function(){var t=this,e=t.$createElement,i=t._self._c||e;return i("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[i("h1",{attrs:{id:"builders-domain-initialization"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#builders-domain-initialization"}},[t._v("#")]),t._v(" builders.domain.initialization")]),t._v(" "),i("div",{staticClass:"custom-block tip"},[i("p",{staticClass:"custom-block-title"},[t._v("Domain specification")]),t._v(" "),i("skdecide-summary")],1),t._v(" "),i("h2",{attrs:{id:"initializable"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#initializable"}},[t._v("#")]),t._v(" Initializable")]),t._v(" "),i("p",[t._v("A domain must inherit this class if it can be initialized.")]),t._v(" "),i("h3",{attrs:{id:"reset"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#reset"}},[t._v("#")]),t._v(" reset "),i("Badge",{attrs:{text:"Initializable",type:"tip"}})],1),t._v(" "),i("skdecide-signature",{attrs:{name:"reset",sig:{params:[{name:"self"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),i("p",[t._v("Reset the state of the environment and return an initial observation.")]),t._v(" "),i("p",[t._v("By default, "),i("code",[t._v("Initializable.reset()")]),t._v(" provides some boilerplate code and internally calls "),i("code",[t._v("Initializable._reset()")]),t._v("\n(which returns an initial state). The boilerplate code automatically stores the initial state into the "),i("code",[t._v("_memory")]),t._v("\nattribute and samples a corresponding observation.")]),t._v(" "),i("h4",{attrs:{id:"returns"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#returns"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),i("p",[t._v("An initial observation.")]),t._v(" "),i("h3",{attrs:{id:"reset-2"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#reset-2"}},[t._v("#")]),t._v(" _reset "),i("Badge",{attrs:{text:"Initializable",type:"tip"}})],1),t._v(" "),i("skdecide-signature",{attrs:{name:"_reset",sig:{params:[{name:"self"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),i("p",[t._v("Reset the state of the environment and return an initial observation.")]),t._v(" "),i("p",[t._v("By default, "),i("code",[t._v("Initializable._reset()")]),t._v(" provides some boilerplate code and internally\ncalls "),i("code",[t._v("Initializable._state_reset()")]),t._v(" (which returns an initial state). The boilerplate code automatically stores\nthe initial state into the "),i("code",[t._v("_memory")]),t._v(" attribute and samples a corresponding observation.")]),t._v(" "),i("h4",{attrs:{id:"returns-2"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#returns-2"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),i("p",[t._v("An initial observation.")]),t._v(" "),i("h3",{attrs:{id:"state-reset"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#state-reset"}},[t._v("#")]),t._v(" _state_reset "),i("Badge",{attrs:{text:"Initializable",type:"tip"}})],1),t._v(" "),i("skdecide-signature",{attrs:{name:"_state_reset",sig:{params:[{name:"self"}],return:"D.T_state"}}}),t._v(" "),i("p",[t._v("Reset the state of the environment and return an initial state.")]),t._v(" "),i("p",[t._v("This is a helper function called by default from "),i("code",[t._v("Initializable._reset()")]),t._v(". It focuses on the state level, as\nopposed to the observation one for the latter.")]),t._v(" "),i("h4",{attrs:{id:"returns-3"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#returns-3"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),i("p",[t._v("An initial state.")]),t._v(" "),i("h2",{attrs:{id:"uncertaininitialized"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#uncertaininitialized"}},[t._v("#")]),t._v(" UncertainInitialized")]),t._v(" "),i("p",[t._v("A domain must inherit this class if its states are initialized according to a probability distribution known as\nwhite-box.")]),t._v(" "),i("h3",{attrs:{id:"get-initial-state-distribution"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-distribution"}},[t._v("#")]),t._v(" get_initial_state_distribution "),i("Badge",{attrs:{text:"UncertainInitialized",type:"tip"}})],1),t._v(" "),i("skdecide-signature",{attrs:{name:"get_initial_state_distribution",sig:{params:[{name:"self"}],return:"Distribution[D.T_state]"}}}),t._v(" "),i("p",[t._v("Get the (cached) probability distribution of initial states.")]),t._v(" "),i("p",[t._v("By default, "),i("code",[t._v("UncertainInitialized.get_initial_state_distribution()")]),t._v(" internally\ncalls "),i("code",[t._v("UncertainInitialized._get_initial_state_distribution_()")]),t._v(" the first time and automatically caches its value\nto make future calls more efficient (since the initial state distribution is assumed to be constant).")]),t._v(" "),i("h4",{attrs:{id:"returns-4"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#returns-4"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),i("p",[t._v("The probability distribution of initial states.")]),t._v(" "),i("h3",{attrs:{id:"reset-3"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#reset-3"}},[t._v("#")]),t._v(" reset "),i("Badge",{attrs:{text:"Initializable",type:"warn"}})],1),t._v(" "),i("skdecide-signature",{attrs:{name:"reset",sig:{params:[{name:"self"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),i("p",[t._v("Reset the state of the environment and return an initial observation.")]),t._v(" "),i("p",[t._v("By default, "),i("code",[t._v("Initializable.reset()")]),t._v(" provides some boilerplate code and internally calls "),i("code",[t._v("Initializable._reset()")]),t._v("\n(which returns an initial state). The boilerplate code automatically stores the initial state into the "),i("code",[t._v("_memory")]),t._v("\nattribute and samples a corresponding observation.")]),t._v(" "),i("h4",{attrs:{id:"returns-5"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#returns-5"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),i("p",[t._v("An initial observation.")]),t._v(" "),i("h3",{attrs:{id:"get-initial-state-distribution-2"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-distribution-2"}},[t._v("#")]),t._v(" _get_initial_state_distribution "),i("Badge",{attrs:{text:"UncertainInitialized",type:"tip"}})],1),t._v(" "),i("skdecide-signature",{attrs:{name:"_get_initial_state_distribution",sig:{params:[{name:"self"}],return:"Distribution[D.T_state]"}}}),t._v(" "),i("p",[t._v("Get the (cached) probability distribution of initial states.")]),t._v(" "),i("p",[t._v("By default, "),i("code",[t._v("UncertainInitialized._get_initial_state_distribution()")]),t._v(" internally\ncalls "),i("code",[t._v("UncertainInitialized._get_initial_state_distribution_()")]),t._v(" the first time and automatically caches its value\nto make future calls more efficient (since the initial state distribution is assumed to be constant).")]),t._v(" "),i("h4",{attrs:{id:"returns-6"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#returns-6"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),i("p",[t._v("The probability distribution of initial states.")]),t._v(" "),i("h3",{attrs:{id:"get-initial-state-distribution-3"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-distribution-3"}},[t._v("#")]),t._v(" _get_initial_state_distribution_ "),i("Badge",{attrs:{text:"UncertainInitialized",type:"tip"}})],1),t._v(" "),i("skdecide-signature",{attrs:{name:"_get_initial_state_distribution_",sig:{params:[{name:"self"}],return:"Distribution[D.T_state]"}}}),t._v(" "),i("p",[t._v("Get the probability distribution of initial states.")]),t._v(" "),i("p",[t._v("This is a helper function called by default from "),i("code",[t._v("UncertainInitialized._get_initial_state_distribution()")]),t._v(", the\ndifference being that the result is not cached here.")]),t._v(" "),i("div",{staticClass:"custom-block tip"},[i("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),i("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),i("h4",{attrs:{id:"returns-7"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#returns-7"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),i("p",[t._v("The probability distribution of initial states.")]),t._v(" "),i("h3",{attrs:{id:"reset-4"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#reset-4"}},[t._v("#")]),t._v(" _reset "),i("Badge",{attrs:{text:"Initializable",type:"warn"}})],1),t._v(" "),i("skdecide-signature",{attrs:{name:"_reset",sig:{params:[{name:"self"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),i("p",[t._v("Reset the state of the environment and return an initial observation.")]),t._v(" "),i("p",[t._v("By default, "),i("code",[t._v("Initializable._reset()")]),t._v(" provides some boilerplate code and internally\ncalls "),i("code",[t._v("Initializable._state_reset()")]),t._v(" (which returns an initial state). The boilerplate code automatically stores\nthe initial state into the "),i("code",[t._v("_memory")]),t._v(" attribute and samples a corresponding observation.")]),t._v(" "),i("h4",{attrs:{id:"returns-8"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#returns-8"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),i("p",[t._v("An initial observation.")]),t._v(" "),i("h3",{attrs:{id:"state-reset-2"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#state-reset-2"}},[t._v("#")]),t._v(" _state_reset "),i("Badge",{attrs:{text:"Initializable",type:"warn"}})],1),t._v(" "),i("skdecide-signature",{attrs:{name:"_state_reset",sig:{params:[{name:"self"}],return:"D.T_state"}}}),t._v(" "),i("p",[t._v("Reset the state of the environment and return an initial state.")]),t._v(" "),i("p",[t._v("This is a helper function called by default from "),i("code",[t._v("Initializable._reset()")]),t._v(". It focuses on the state level, as\nopposed to the observation one for the latter.")]),t._v(" "),i("h4",{attrs:{id:"returns-9"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#returns-9"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),i("p",[t._v("An initial state.")]),t._v(" "),i("h2",{attrs:{id:"deterministicinitialized"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#deterministicinitialized"}},[t._v("#")]),t._v(" DeterministicInitialized")]),t._v(" "),i("p",[t._v("A domain must inherit this class if it has a deterministic initial state known as white-box.")]),t._v(" "),i("h3",{attrs:{id:"get-initial-state"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state"}},[t._v("#")]),t._v(" get_initial_state "),i("Badge",{attrs:{text:"DeterministicInitialized",type:"tip"}})],1),t._v(" "),i("skdecide-signature",{attrs:{name:"get_initial_state",sig:{params:[{name:"self"}],return:"D.T_state"}}}),t._v(" "),i("p",[t._v("Get the (cached) initial state.")]),t._v(" "),i("p",[t._v("By default, "),i("code",[t._v("DeterministicInitialized.get_initial_state()")]),t._v(" internally\ncalls "),i("code",[t._v("DeterministicInitialized._get_initial_state_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the initial state is assumed to be constant).")]),t._v(" "),i("h4",{attrs:{id:"returns-10"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#returns-10"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),i("p",[t._v("The initial state.")]),t._v(" "),i("h3",{attrs:{id:"get-initial-state-distribution-4"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-distribution-4"}},[t._v("#")]),t._v(" get_initial_state_distribution "),i("Badge",{attrs:{text:"UncertainInitialized",type:"warn"}})],1),t._v(" "),i("skdecide-signature",{attrs:{name:"get_initial_state_distribution",sig:{params:[{name:"self"}],return:"Distribution[D.T_state]"}}}),t._v(" "),i("p",[t._v("Get the (cached) probability distribution of initial states.")]),t._v(" "),i("p",[t._v("By default, "),i("code",[t._v("UncertainInitialized.get_initial_state_distribution()")]),t._v(" internally\ncalls "),i("code",[t._v("UncertainInitialized._get_initial_state_distribution_()")]),t._v(" the first time and automatically caches its value\nto make future calls more efficient (since the initial state distribution is assumed to be constant).")]),t._v(" "),i("h4",{attrs:{id:"returns-11"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#returns-11"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),i("p",[t._v("The probability distribution of initial states.")]),t._v(" "),i("h3",{attrs:{id:"reset-5"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#reset-5"}},[t._v("#")]),t._v(" reset "),i("Badge",{attrs:{text:"Initializable",type:"warn"}})],1),t._v(" "),i("skdecide-signature",{attrs:{name:"reset",sig:{params:[{name:"self"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),i("p",[t._v("Reset the state of the environment and return an initial observation.")]),t._v(" "),i("p",[t._v("By default, "),i("code",[t._v("Initializable.reset()")]),t._v(" provides some boilerplate code and internally calls "),i("code",[t._v("Initializable._reset()")]),t._v("\n(which returns an initial state). The boilerplate code automatically stores the initial state into the "),i("code",[t._v("_memory")]),t._v("\nattribute and samples a corresponding observation.")]),t._v(" "),i("h4",{attrs:{id:"returns-12"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#returns-12"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),i("p",[t._v("An initial observation.")]),t._v(" "),i("h3",{attrs:{id:"get-initial-state-2"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-2"}},[t._v("#")]),t._v(" _get_initial_state "),i("Badge",{attrs:{text:"DeterministicInitialized",type:"tip"}})],1),t._v(" "),i("skdecide-signature",{attrs:{name:"_get_initial_state",sig:{params:[{name:"self"}],return:"D.T_state"}}}),t._v(" "),i("p",[t._v("Get the (cached) initial state.")]),t._v(" "),i("p",[t._v("By default, "),i("code",[t._v("DeterministicInitialized._get_initial_state()")]),t._v(" internally\ncalls "),i("code",[t._v("DeterministicInitialized._get_initial_state_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the initial state is assumed to be constant).")]),t._v(" "),i("h4",{attrs:{id:"returns-13"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#returns-13"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),i("p",[t._v("The initial state.")]),t._v(" "),i("h3",{attrs:{id:"get-initial-state-3"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-3"}},[t._v("#")]),t._v(" _get_initial_state_ "),i("Badge",{attrs:{text:"DeterministicInitialized",type:"tip"}})],1),t._v(" "),i("skdecide-signature",{attrs:{name:"_get_initial_state_",sig:{params:[{name:"self"}],return:"D.T_state"}}}),t._v(" "),i("p",[t._v("Get the initial state.")]),t._v(" "),i("p",[t._v("This is a helper function called by default from "),i("code",[t._v("DeterministicInitialized._get_initial_state()")]),t._v(", the difference\nbeing that the result is not cached here.")]),t._v(" "),i("h4",{attrs:{id:"returns-14"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#returns-14"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),i("p",[t._v("The initial state.")]),t._v(" "),i("h3",{attrs:{id:"get-initial-state-distribution-5"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-distribution-5"}},[t._v("#")]),t._v(" _get_initial_state_distribution "),i("Badge",{attrs:{text:"UncertainInitialized",type:"warn"}})],1),t._v(" "),i("skdecide-signature",{attrs:{name:"_get_initial_state_distribution",sig:{params:[{name:"self"}],return:"Distribution[D.T_state]"}}}),t._v(" "),i("p",[t._v("Get the (cached) probability distribution of initial states.")]),t._v(" "),i("p",[t._v("By default, "),i("code",[t._v("UncertainInitialized._get_initial_state_distribution()")]),t._v(" internally\ncalls "),i("code",[t._v("UncertainInitialized._get_initial_state_distribution_()")]),t._v(" the first time and automatically caches its value\nto make future calls more efficient (since the initial state distribution is assumed to be constant).")]),t._v(" "),i("h4",{attrs:{id:"returns-15"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#returns-15"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),i("p",[t._v("The probability distribution of initial states.")]),t._v(" "),i("h3",{attrs:{id:"get-initial-state-distribution-6"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-distribution-6"}},[t._v("#")]),t._v(" _get_initial_state_distribution_ "),i("Badge",{attrs:{text:"UncertainInitialized",type:"warn"}})],1),t._v(" "),i("skdecide-signature",{attrs:{name:"_get_initial_state_distribution_",sig:{params:[{name:"self"}],return:"Distribution[D.T_state]"}}}),t._v(" "),i("p",[t._v("Get the probability distribution of initial states.")]),t._v(" "),i("p",[t._v("This is a helper function called by default from "),i("code",[t._v("UncertainInitialized._get_initial_state_distribution()")]),t._v(", the\ndifference being that the result is not cached here.")]),t._v(" "),i("div",{staticClass:"custom-block tip"},[i("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),i("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),i("h4",{attrs:{id:"returns-16"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#returns-16"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),i("p",[t._v("The probability distribution of initial states.")]),t._v(" "),i("h3",{attrs:{id:"reset-6"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#reset-6"}},[t._v("#")]),t._v(" _reset "),i("Badge",{attrs:{text:"Initializable",type:"warn"}})],1),t._v(" "),i("skdecide-signature",{attrs:{name:"_reset",sig:{params:[{name:"self"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),i("p",[t._v("Reset the state of the environment and return an initial observation.")]),t._v(" "),i("p",[t._v("By default, "),i("code",[t._v("Initializable._reset()")]),t._v(" provides some boilerplate code and internally\ncalls "),i("code",[t._v("Initializable._state_reset()")]),t._v(" (which returns an initial state). The boilerplate code automatically stores\nthe initial state into the "),i("code",[t._v("_memory")]),t._v(" attribute and samples a corresponding observation.")]),t._v(" "),i("h4",{attrs:{id:"returns-17"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#returns-17"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),i("p",[t._v("An initial observation.")]),t._v(" "),i("h3",{attrs:{id:"state-reset-3"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#state-reset-3"}},[t._v("#")]),t._v(" _state_reset "),i("Badge",{attrs:{text:"Initializable",type:"warn"}})],1),t._v(" "),i("skdecide-signature",{attrs:{name:"_state_reset",sig:{params:[{name:"self"}],return:"D.T_state"}}}),t._v(" "),i("p",[t._v("Reset the state of the environment and return an initial state.")]),t._v(" "),i("p",[t._v("This is a helper function called by default from "),i("code",[t._v("Initializable._reset()")]),t._v(". It focuses on the state level, as\nopposed to the observation one for the latter.")]),t._v(" "),i("h4",{attrs:{id:"returns-18"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#returns-18"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),i("p",[t._v("An initial state.")])],1)}),[],!1,null,null,null);e.default=s.exports}}]); \ No newline at end of file diff --git a/assets/js/30.279ea1c8.js b/assets/js/30.540409b0.js similarity index 99% rename from assets/js/30.279ea1c8.js rename to assets/js/30.540409b0.js index 43fd8be15c..84047ca3c8 100644 --- a/assets/js/30.279ea1c8.js +++ b/assets/js/30.540409b0.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[30],{547:function(t,e,a){"use strict";a.r(e);var s=a(38),r=Object(s.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"builders-domain-memory"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#builders-domain-memory"}},[t._v("#")]),t._v(" builders.domain.memory")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("Domain specification")]),t._v(" "),a("skdecide-summary")],1),t._v(" "),a("h2",{attrs:{id:"history"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#history"}},[t._v("#")]),t._v(" History")]),t._v(" "),a("p",[t._v("A domain must inherit this class if its full state history must be stored to compute its dynamics (non-Markovian\ndomain).")]),t._v(" "),a("h3",{attrs:{id:"get-memory-maxlen"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-memory-maxlen"}},[t._v("#")]),t._v(" _get_memory_maxlen "),a("Badge",{attrs:{text:"History",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_memory_maxlen",sig:{params:[{name:"self"}],return:"Optional[int]"}}}),t._v(" "),a("p",[t._v("Get the memory max length (or None if unbounded).")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("This function returns always None by default because the memory length is unbounded at this level.")])]),t._v(" "),a("h4",{attrs:{id:"returns"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The memory max length (or None if unbounded).")]),t._v(" "),a("h3",{attrs:{id:"init-memory"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#init-memory"}},[t._v("#")]),t._v(" _init_memory "),a("Badge",{attrs:{text:"History",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_init_memory",sig:{params:[{name:"self"},{name:"state",default:"None",annotation:"Optional[D.T_state]"}],return:"D.T_memory[D.T_state]"}}}),t._v(" "),a("p",[t._v("Initialize memory (possibly with a state) according to its specification and return it.")]),t._v(" "),a("p",[t._v("This function is automatically called by "),a("code",[t._v("Initializable._reset()")]),t._v(" to reinitialize the internal memory whenever\nthe domain is used as an environment.")]),t._v(" "),a("h4",{attrs:{id:"parameters"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": An optional state to initialize the memory with (typically the initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-2"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The new initialized memory.")]),t._v(" "),a("h2",{attrs:{id:"finitehistory"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#finitehistory"}},[t._v("#")]),t._v(" FiniteHistory")]),t._v(" "),a("p",[t._v("A domain must inherit this class if the last N states must be stored to compute its dynamics (Markovian\ndomain of order N).")]),t._v(" "),a("p",[t._v("N is specified by the return value of the "),a("code",[t._v("FiniteHistory._get_memory_maxlen()")]),t._v(" function.")]),t._v(" "),a("h3",{attrs:{id:"get-memory-maxlen-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-memory-maxlen-2"}},[t._v("#")]),t._v(" _get_memory_maxlen "),a("Badge",{attrs:{text:"History",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_memory_maxlen",sig:{params:[{name:"self"}],return:"int"}}}),t._v(" "),a("p",[t._v("Get the (cached) memory max length.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("FiniteHistory._get_memory_maxlen()")]),t._v(" internally calls "),a("code",[t._v("FiniteHistory._get_memory_maxlen_()")]),t._v(" the first\ntime and automatically caches its value to make future calls more efficient (since the memory max length is\nassumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-3"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The memory max length.")]),t._v(" "),a("h3",{attrs:{id:"get-memory-maxlen-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-memory-maxlen-3"}},[t._v("#")]),t._v(" _get_memory_maxlen_ "),a("Badge",{attrs:{text:"FiniteHistory",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_memory_maxlen_",sig:{params:[{name:"self"}],return:"int"}}}),t._v(" "),a("p",[t._v("Get the memory max length.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("FiniteHistory._get_memory_maxlen()")]),t._v(", the difference being that\nthe result is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-4"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The memory max length.")]),t._v(" "),a("h3",{attrs:{id:"init-memory-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#init-memory-2"}},[t._v("#")]),t._v(" _init_memory "),a("Badge",{attrs:{text:"History",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_init_memory",sig:{params:[{name:"self"},{name:"state",default:"None",annotation:"Optional[D.T_state]"}],return:"D.T_memory[D.T_state]"}}}),t._v(" "),a("p",[t._v("Initialize memory (possibly with a state) according to its specification and return it.")]),t._v(" "),a("p",[t._v("This function is automatically called by "),a("code",[t._v("Initializable._reset()")]),t._v(" to reinitialize the internal memory whenever\nthe domain is used as an environment.")]),t._v(" "),a("h4",{attrs:{id:"parameters-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-2"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": An optional state to initialize the memory with (typically the initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-5"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The new initialized memory.")]),t._v(" "),a("h2",{attrs:{id:"markovian"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#markovian"}},[t._v("#")]),t._v(" Markovian")]),t._v(" "),a("p",[t._v("A domain must inherit this class if only its last state must be stored to compute its dynamics (pure Markovian\ndomain).")]),t._v(" "),a("h3",{attrs:{id:"get-memory-maxlen-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-memory-maxlen-4"}},[t._v("#")]),t._v(" _get_memory_maxlen "),a("Badge",{attrs:{text:"History",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_memory_maxlen",sig:{params:[{name:"self"}],return:"int"}}}),t._v(" "),a("p",[t._v("Get the (cached) memory max length.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("FiniteHistory._get_memory_maxlen()")]),t._v(" internally calls "),a("code",[t._v("FiniteHistory._get_memory_maxlen_()")]),t._v(" the first\ntime and automatically caches its value to make future calls more efficient (since the memory max length is\nassumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-6"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The memory max length.")]),t._v(" "),a("h3",{attrs:{id:"get-memory-maxlen-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-memory-maxlen-5"}},[t._v("#")]),t._v(" _get_memory_maxlen_ "),a("Badge",{attrs:{text:"FiniteHistory",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_memory_maxlen_",sig:{params:[{name:"self"}],return:"int"}}}),t._v(" "),a("p",[t._v("Get the memory max length.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("FiniteHistory._get_memory_maxlen()")]),t._v(", the difference being that\nthe result is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-7"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The memory max length.")]),t._v(" "),a("h3",{attrs:{id:"init-memory-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#init-memory-3"}},[t._v("#")]),t._v(" _init_memory "),a("Badge",{attrs:{text:"History",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_init_memory",sig:{params:[{name:"self"},{name:"state",default:"None",annotation:"Optional[D.T_state]"}],return:"D.T_memory[D.T_state]"}}}),t._v(" "),a("p",[t._v("Initialize memory (possibly with a state) according to its specification and return it.")]),t._v(" "),a("p",[t._v("This function is automatically called by "),a("code",[t._v("Initializable._reset()")]),t._v(" to reinitialize the internal memory whenever\nthe domain is used as an environment.")]),t._v(" "),a("h4",{attrs:{id:"parameters-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-3"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": An optional state to initialize the memory with (typically the initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-8"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The new initialized memory.")]),t._v(" "),a("h2",{attrs:{id:"memoryless"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#memoryless"}},[t._v("#")]),t._v(" Memoryless")]),t._v(" "),a("p",[t._v("A domain must inherit this class if it does not require any previous state(s) to be stored to compute its\ndynamics.")]),t._v(" "),a("p",[t._v("A dice roll simulator is an example of memoryless domain (next states are independent of previous ones).")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing domain (environment, simulator...) needs to be wrapped instead of implemented fully in\nscikit-decide (e.g. compiled ATARI games), Memoryless can be used because the domain memory (if any) would\nbe handled externally.")])]),t._v(" "),a("h3",{attrs:{id:"get-memory-maxlen-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-memory-maxlen-6"}},[t._v("#")]),t._v(" _get_memory_maxlen "),a("Badge",{attrs:{text:"History",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_memory_maxlen",sig:{params:[{name:"self"}],return:"int"}}}),t._v(" "),a("p",[t._v("Get the (cached) memory max length.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("FiniteHistory._get_memory_maxlen()")]),t._v(" internally calls "),a("code",[t._v("FiniteHistory._get_memory_maxlen_()")]),t._v(" the first\ntime and automatically caches its value to make future calls more efficient (since the memory max length is\nassumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-9"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The memory max length.")]),t._v(" "),a("h3",{attrs:{id:"get-memory-maxlen-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-memory-maxlen-7"}},[t._v("#")]),t._v(" _get_memory_maxlen_ "),a("Badge",{attrs:{text:"FiniteHistory",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_memory_maxlen_",sig:{params:[{name:"self"}],return:"int"}}}),t._v(" "),a("p",[t._v("Get the memory max length.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("FiniteHistory._get_memory_maxlen()")]),t._v(", the difference being that\nthe result is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-10"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The memory max length.")]),t._v(" "),a("h3",{attrs:{id:"init-memory-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#init-memory-4"}},[t._v("#")]),t._v(" _init_memory "),a("Badge",{attrs:{text:"History",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_init_memory",sig:{params:[{name:"self"},{name:"state",default:"None",annotation:"Optional[D.T_state]"}],return:"D.T_memory[D.T_state]"}}}),t._v(" "),a("p",[t._v("Initialize memory (possibly with a state) according to its specification and return it.")]),t._v(" "),a("p",[t._v("This function is automatically called by "),a("code",[t._v("Initializable._reset()")]),t._v(" to reinitialize the internal memory whenever\nthe domain is used as an environment.")]),t._v(" "),a("h4",{attrs:{id:"parameters-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-4"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": An optional state to initialize the memory with (typically the initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-11"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The new initialized memory.")])],1)}),[],!1,null,null,null);e.default=r.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[30],{546:function(t,e,a){"use strict";a.r(e);var s=a(38),r=Object(s.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"builders-domain-memory"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#builders-domain-memory"}},[t._v("#")]),t._v(" builders.domain.memory")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("Domain specification")]),t._v(" "),a("skdecide-summary")],1),t._v(" "),a("h2",{attrs:{id:"history"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#history"}},[t._v("#")]),t._v(" History")]),t._v(" "),a("p",[t._v("A domain must inherit this class if its full state history must be stored to compute its dynamics (non-Markovian\ndomain).")]),t._v(" "),a("h3",{attrs:{id:"get-memory-maxlen"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-memory-maxlen"}},[t._v("#")]),t._v(" _get_memory_maxlen "),a("Badge",{attrs:{text:"History",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_memory_maxlen",sig:{params:[{name:"self"}],return:"Optional[int]"}}}),t._v(" "),a("p",[t._v("Get the memory max length (or None if unbounded).")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("This function returns always None by default because the memory length is unbounded at this level.")])]),t._v(" "),a("h4",{attrs:{id:"returns"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The memory max length (or None if unbounded).")]),t._v(" "),a("h3",{attrs:{id:"init-memory"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#init-memory"}},[t._v("#")]),t._v(" _init_memory "),a("Badge",{attrs:{text:"History",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_init_memory",sig:{params:[{name:"self"},{name:"state",default:"None",annotation:"Optional[D.T_state]"}],return:"D.T_memory[D.T_state]"}}}),t._v(" "),a("p",[t._v("Initialize memory (possibly with a state) according to its specification and return it.")]),t._v(" "),a("p",[t._v("This function is automatically called by "),a("code",[t._v("Initializable._reset()")]),t._v(" to reinitialize the internal memory whenever\nthe domain is used as an environment.")]),t._v(" "),a("h4",{attrs:{id:"parameters"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": An optional state to initialize the memory with (typically the initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-2"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The new initialized memory.")]),t._v(" "),a("h2",{attrs:{id:"finitehistory"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#finitehistory"}},[t._v("#")]),t._v(" FiniteHistory")]),t._v(" "),a("p",[t._v("A domain must inherit this class if the last N states must be stored to compute its dynamics (Markovian\ndomain of order N).")]),t._v(" "),a("p",[t._v("N is specified by the return value of the "),a("code",[t._v("FiniteHistory._get_memory_maxlen()")]),t._v(" function.")]),t._v(" "),a("h3",{attrs:{id:"get-memory-maxlen-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-memory-maxlen-2"}},[t._v("#")]),t._v(" _get_memory_maxlen "),a("Badge",{attrs:{text:"History",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_memory_maxlen",sig:{params:[{name:"self"}],return:"int"}}}),t._v(" "),a("p",[t._v("Get the (cached) memory max length.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("FiniteHistory._get_memory_maxlen()")]),t._v(" internally calls "),a("code",[t._v("FiniteHistory._get_memory_maxlen_()")]),t._v(" the first\ntime and automatically caches its value to make future calls more efficient (since the memory max length is\nassumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-3"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The memory max length.")]),t._v(" "),a("h3",{attrs:{id:"get-memory-maxlen-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-memory-maxlen-3"}},[t._v("#")]),t._v(" _get_memory_maxlen_ "),a("Badge",{attrs:{text:"FiniteHistory",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_memory_maxlen_",sig:{params:[{name:"self"}],return:"int"}}}),t._v(" "),a("p",[t._v("Get the memory max length.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("FiniteHistory._get_memory_maxlen()")]),t._v(", the difference being that\nthe result is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-4"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The memory max length.")]),t._v(" "),a("h3",{attrs:{id:"init-memory-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#init-memory-2"}},[t._v("#")]),t._v(" _init_memory "),a("Badge",{attrs:{text:"History",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_init_memory",sig:{params:[{name:"self"},{name:"state",default:"None",annotation:"Optional[D.T_state]"}],return:"D.T_memory[D.T_state]"}}}),t._v(" "),a("p",[t._v("Initialize memory (possibly with a state) according to its specification and return it.")]),t._v(" "),a("p",[t._v("This function is automatically called by "),a("code",[t._v("Initializable._reset()")]),t._v(" to reinitialize the internal memory whenever\nthe domain is used as an environment.")]),t._v(" "),a("h4",{attrs:{id:"parameters-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-2"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": An optional state to initialize the memory with (typically the initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-5"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The new initialized memory.")]),t._v(" "),a("h2",{attrs:{id:"markovian"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#markovian"}},[t._v("#")]),t._v(" Markovian")]),t._v(" "),a("p",[t._v("A domain must inherit this class if only its last state must be stored to compute its dynamics (pure Markovian\ndomain).")]),t._v(" "),a("h3",{attrs:{id:"get-memory-maxlen-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-memory-maxlen-4"}},[t._v("#")]),t._v(" _get_memory_maxlen "),a("Badge",{attrs:{text:"History",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_memory_maxlen",sig:{params:[{name:"self"}],return:"int"}}}),t._v(" "),a("p",[t._v("Get the (cached) memory max length.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("FiniteHistory._get_memory_maxlen()")]),t._v(" internally calls "),a("code",[t._v("FiniteHistory._get_memory_maxlen_()")]),t._v(" the first\ntime and automatically caches its value to make future calls more efficient (since the memory max length is\nassumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-6"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The memory max length.")]),t._v(" "),a("h3",{attrs:{id:"get-memory-maxlen-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-memory-maxlen-5"}},[t._v("#")]),t._v(" _get_memory_maxlen_ "),a("Badge",{attrs:{text:"FiniteHistory",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_memory_maxlen_",sig:{params:[{name:"self"}],return:"int"}}}),t._v(" "),a("p",[t._v("Get the memory max length.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("FiniteHistory._get_memory_maxlen()")]),t._v(", the difference being that\nthe result is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-7"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The memory max length.")]),t._v(" "),a("h3",{attrs:{id:"init-memory-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#init-memory-3"}},[t._v("#")]),t._v(" _init_memory "),a("Badge",{attrs:{text:"History",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_init_memory",sig:{params:[{name:"self"},{name:"state",default:"None",annotation:"Optional[D.T_state]"}],return:"D.T_memory[D.T_state]"}}}),t._v(" "),a("p",[t._v("Initialize memory (possibly with a state) according to its specification and return it.")]),t._v(" "),a("p",[t._v("This function is automatically called by "),a("code",[t._v("Initializable._reset()")]),t._v(" to reinitialize the internal memory whenever\nthe domain is used as an environment.")]),t._v(" "),a("h4",{attrs:{id:"parameters-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-3"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": An optional state to initialize the memory with (typically the initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-8"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The new initialized memory.")]),t._v(" "),a("h2",{attrs:{id:"memoryless"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#memoryless"}},[t._v("#")]),t._v(" Memoryless")]),t._v(" "),a("p",[t._v("A domain must inherit this class if it does not require any previous state(s) to be stored to compute its\ndynamics.")]),t._v(" "),a("p",[t._v("A dice roll simulator is an example of memoryless domain (next states are independent of previous ones).")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing domain (environment, simulator...) needs to be wrapped instead of implemented fully in\nscikit-decide (e.g. compiled ATARI games), Memoryless can be used because the domain memory (if any) would\nbe handled externally.")])]),t._v(" "),a("h3",{attrs:{id:"get-memory-maxlen-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-memory-maxlen-6"}},[t._v("#")]),t._v(" _get_memory_maxlen "),a("Badge",{attrs:{text:"History",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_memory_maxlen",sig:{params:[{name:"self"}],return:"int"}}}),t._v(" "),a("p",[t._v("Get the (cached) memory max length.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("FiniteHistory._get_memory_maxlen()")]),t._v(" internally calls "),a("code",[t._v("FiniteHistory._get_memory_maxlen_()")]),t._v(" the first\ntime and automatically caches its value to make future calls more efficient (since the memory max length is\nassumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-9"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The memory max length.")]),t._v(" "),a("h3",{attrs:{id:"get-memory-maxlen-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-memory-maxlen-7"}},[t._v("#")]),t._v(" _get_memory_maxlen_ "),a("Badge",{attrs:{text:"FiniteHistory",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_memory_maxlen_",sig:{params:[{name:"self"}],return:"int"}}}),t._v(" "),a("p",[t._v("Get the memory max length.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("FiniteHistory._get_memory_maxlen()")]),t._v(", the difference being that\nthe result is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-10"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The memory max length.")]),t._v(" "),a("h3",{attrs:{id:"init-memory-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#init-memory-4"}},[t._v("#")]),t._v(" _init_memory "),a("Badge",{attrs:{text:"History",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_init_memory",sig:{params:[{name:"self"},{name:"state",default:"None",annotation:"Optional[D.T_state]"}],return:"D.T_memory[D.T_state]"}}}),t._v(" "),a("p",[t._v("Initialize memory (possibly with a state) according to its specification and return it.")]),t._v(" "),a("p",[t._v("This function is automatically called by "),a("code",[t._v("Initializable._reset()")]),t._v(" to reinitialize the internal memory whenever\nthe domain is used as an environment.")]),t._v(" "),a("h4",{attrs:{id:"parameters-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-4"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": An optional state to initialize the memory with (typically the initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-11"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The new initialized memory.")])],1)}),[],!1,null,null,null);e.default=r.exports}}]); \ No newline at end of file diff --git a/assets/js/31.ed24278d.js b/assets/js/31.3d3c89ff.js similarity index 99% rename from assets/js/31.ed24278d.js rename to assets/js/31.3d3c89ff.js index 24b12c3517..2d6ffac25c 100644 --- a/assets/js/31.ed24278d.js +++ b/assets/js/31.3d3c89ff.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[31],{546:function(t,a,e){"use strict";e.r(a);var s=e(38),r=Object(s.a)({},(function(){var t=this,a=t.$createElement,e=t._self._c||a;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"builders-domain-observability"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#builders-domain-observability"}},[t._v("#")]),t._v(" builders.domain.observability")]),t._v(" "),e("div",{staticClass:"custom-block tip"},[e("p",{staticClass:"custom-block-title"},[t._v("Domain specification")]),t._v(" "),e("skdecide-summary")],1),t._v(" "),e("h2",{attrs:{id:"partiallyobservable"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#partiallyobservable"}},[t._v("#")]),t._v(" PartiallyObservable")]),t._v(" "),e("p",[t._v("A domain must inherit this class if it is partially observable.")]),t._v(" "),e("p",[t._v('"Partially observable" means that the observation provided to the agent is computed from (but generally not equal\nto) the internal state of the domain. Additionally, according to literature, a partially observable domain must\nprovide the probability distribution of the observation given a state and action.')]),t._v(" "),e("h3",{attrs:{id:"get-observation-distribution"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-distribution"}},[t._v("#")]),t._v(" get_observation_distribution "),e("Badge",{attrs:{text:"PartiallyObservable",type:"tip"}})],1),t._v(" "),e("skdecide-signature",{attrs:{name:"get_observation_distribution",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"Distribution[D.T_agent[D.T_observation]]"}}}),t._v(" "),e("p",[t._v("Get the probability distribution of the observation given a state and action.")]),t._v(" "),e("p",[t._v("In mathematical terms (discrete case), given an action "),e("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[e("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.197ex",height:"1.02ex",viewBox:"0 -441 529 451"}},[e("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[e("g",{attrs:{"data-mml-node":"math"}},[e("g",{attrs:{"data-mml-node":"mi"}},[e("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})])])])])]),t._v(", this function represents: "),e("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[e("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.078ex",height:"2.262ex",viewBox:"0 -750 4012.7 1000"}},[e("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[e("g",{attrs:{"data-mml-node":"math"}},[e("g",{attrs:{"data-mml-node":"mi"}},[e("path",{attrs:{"data-c":"50",d:"M287 628Q287 635 230 637Q206 637 199 638T192 648Q192 649 194 659Q200 679 203 681T397 683Q587 682 600 680Q664 669 707 631T751 530Q751 453 685 389Q616 321 507 303Q500 302 402 301H307L277 182Q247 66 247 59Q247 55 248 54T255 50T272 48T305 46H336Q342 37 342 35Q342 19 335 5Q330 0 319 0Q316 0 282 1T182 2Q120 2 87 2T51 1Q33 1 33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM645 554Q645 567 643 575T634 597T609 619T560 635Q553 636 480 637Q463 637 445 637T416 636T404 636Q391 635 386 627Q384 621 367 550T332 412T314 344Q314 342 395 342H407H430Q542 342 590 392Q617 419 631 471T645 554Z"}})]),e("g",{attrs:{"data-mml-node":"mo",transform:"translate(751, 0)"}},[e("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),e("g",{attrs:{"data-mml-node":"mi",transform:"translate(1140, 0)"}},[e("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})]),e("g",{attrs:{"data-mml-node":"mo",transform:"translate(1903, 0)"}},[e("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),e("g",{attrs:{"data-mml-node":"mi",transform:"translate(2181, 0)"}},[e("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),e("g",{attrs:{"data-mml-node":"mo",transform:"translate(2650, 0)"}},[e("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),e("g",{attrs:{"data-mml-node":"mi",transform:"translate(3094.7, 0)"}},[e("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),e("g",{attrs:{"data-mml-node":"mo",transform:"translate(3623.7, 0)"}},[e("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(",\nwhere "),e("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[e("svg",{staticStyle:{"vertical-align":"-0.05ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.726ex",height:"1.643ex",viewBox:"0 -704 763 726"}},[e("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[e("g",{attrs:{"data-mml-node":"math"}},[e("g",{attrs:{"data-mml-node":"mi"}},[e("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})])])])])]),t._v(" is the random variable of the observation.")],1),t._v(" "),e("h4",{attrs:{id:"parameters"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#parameters"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),e("li",[e("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),e("h4",{attrs:{id:"returns"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#returns"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),e("p",[t._v("The probability distribution of the observation.")]),t._v(" "),e("h3",{attrs:{id:"get-observation-space"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space"}},[t._v("#")]),t._v(" get_observation_space "),e("Badge",{attrs:{text:"PartiallyObservable",type:"tip"}})],1),t._v(" "),e("skdecide-signature",{attrs:{name:"get_observation_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),e("p",[t._v("Get the (cached) observation space (finite or infinite set).")]),t._v(" "),e("p",[t._v("By default, "),e("code",[t._v("PartiallyObservable.get_observation_space()")]),t._v(" internally\ncalls "),e("code",[t._v("PartiallyObservable._get_observation_space_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the observation space is assumed to be constant).")]),t._v(" "),e("h4",{attrs:{id:"returns-2"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#returns-2"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),e("p",[t._v("The observation space.")]),t._v(" "),e("h3",{attrs:{id:"is-observation"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#is-observation"}},[t._v("#")]),t._v(" is_observation "),e("Badge",{attrs:{text:"PartiallyObservable",type:"tip"}})],1),t._v(" "),e("skdecide-signature",{attrs:{name:"is_observation",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"bool"}}}),t._v(" "),e("p",[t._v("Check that an observation indeed belongs to the domain observation space.")]),t._v(" "),e("div",{staticClass:"custom-block tip"},[e("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),e("p",[t._v("By default, this function is implemented using the "),e("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\nobservation space provided by "),e("code",[t._v("PartiallyObservable.get_observation_space()")]),t._v(", but it can be overridden for\nfaster implementations.")])]),t._v(" "),e("h4",{attrs:{id:"parameters-2"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#parameters-2"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),e("h4",{attrs:{id:"returns-3"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#returns-3"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),e("p",[t._v("True if the observation belongs to the domain observation space (False otherwise).")]),t._v(" "),e("h3",{attrs:{id:"get-observation-distribution-2"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-distribution-2"}},[t._v("#")]),t._v(" _get_observation_distribution "),e("Badge",{attrs:{text:"PartiallyObservable",type:"tip"}})],1),t._v(" "),e("skdecide-signature",{attrs:{name:"_get_observation_distribution",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"Distribution[D.T_agent[D.T_observation]]"}}}),t._v(" "),e("p",[t._v("Get the probability distribution of the observation given a state and action.")]),t._v(" "),e("p",[t._v("In mathematical terms (discrete case), given an action "),e("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[e("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.197ex",height:"1.02ex",viewBox:"0 -441 529 451"}},[e("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[e("g",{attrs:{"data-mml-node":"math"}},[e("g",{attrs:{"data-mml-node":"mi"}},[e("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})])])])])]),t._v(", this function represents: "),e("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[e("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.078ex",height:"2.262ex",viewBox:"0 -750 4012.7 1000"}},[e("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[e("g",{attrs:{"data-mml-node":"math"}},[e("g",{attrs:{"data-mml-node":"mi"}},[e("path",{attrs:{"data-c":"50",d:"M287 628Q287 635 230 637Q206 637 199 638T192 648Q192 649 194 659Q200 679 203 681T397 683Q587 682 600 680Q664 669 707 631T751 530Q751 453 685 389Q616 321 507 303Q500 302 402 301H307L277 182Q247 66 247 59Q247 55 248 54T255 50T272 48T305 46H336Q342 37 342 35Q342 19 335 5Q330 0 319 0Q316 0 282 1T182 2Q120 2 87 2T51 1Q33 1 33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM645 554Q645 567 643 575T634 597T609 619T560 635Q553 636 480 637Q463 637 445 637T416 636T404 636Q391 635 386 627Q384 621 367 550T332 412T314 344Q314 342 395 342H407H430Q542 342 590 392Q617 419 631 471T645 554Z"}})]),e("g",{attrs:{"data-mml-node":"mo",transform:"translate(751, 0)"}},[e("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),e("g",{attrs:{"data-mml-node":"mi",transform:"translate(1140, 0)"}},[e("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})]),e("g",{attrs:{"data-mml-node":"mo",transform:"translate(1903, 0)"}},[e("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),e("g",{attrs:{"data-mml-node":"mi",transform:"translate(2181, 0)"}},[e("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),e("g",{attrs:{"data-mml-node":"mo",transform:"translate(2650, 0)"}},[e("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),e("g",{attrs:{"data-mml-node":"mi",transform:"translate(3094.7, 0)"}},[e("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),e("g",{attrs:{"data-mml-node":"mo",transform:"translate(3623.7, 0)"}},[e("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(",\nwhere "),e("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[e("svg",{staticStyle:{"vertical-align":"-0.05ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.726ex",height:"1.643ex",viewBox:"0 -704 763 726"}},[e("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[e("g",{attrs:{"data-mml-node":"math"}},[e("g",{attrs:{"data-mml-node":"mi"}},[e("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})])])])])]),t._v(" is the random variable of the observation.")],1),t._v(" "),e("h4",{attrs:{id:"parameters-3"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#parameters-3"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),e("li",[e("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),e("h4",{attrs:{id:"returns-4"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#returns-4"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),e("p",[t._v("The probability distribution of the observation.")]),t._v(" "),e("h3",{attrs:{id:"get-observation-space-2"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-2"}},[t._v("#")]),t._v(" _get_observation_space "),e("Badge",{attrs:{text:"PartiallyObservable",type:"tip"}})],1),t._v(" "),e("skdecide-signature",{attrs:{name:"_get_observation_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),e("p",[t._v("Get the (cached) observation space (finite or infinite set).")]),t._v(" "),e("p",[t._v("By default, "),e("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(" internally\ncalls "),e("code",[t._v("PartiallyObservable._get_observation_space_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the observation space is assumed to be constant).")]),t._v(" "),e("h4",{attrs:{id:"returns-5"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#returns-5"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),e("p",[t._v("The observation space.")]),t._v(" "),e("h3",{attrs:{id:"get-observation-space-3"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-3"}},[t._v("#")]),t._v(" _get_observation_space_ "),e("Badge",{attrs:{text:"PartiallyObservable",type:"tip"}})],1),t._v(" "),e("skdecide-signature",{attrs:{name:"_get_observation_space_",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),e("p",[t._v("Get the observation space (finite or infinite set).")]),t._v(" "),e("p",[t._v("This is a helper function called by default from "),e("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(", the difference\nbeing that the result is not cached here.")]),t._v(" "),e("div",{staticClass:"custom-block tip"},[e("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),e("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),e("h4",{attrs:{id:"returns-6"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#returns-6"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),e("p",[t._v("The observation space.")]),t._v(" "),e("h3",{attrs:{id:"is-observation-2"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#is-observation-2"}},[t._v("#")]),t._v(" _is_observation "),e("Badge",{attrs:{text:"PartiallyObservable",type:"tip"}})],1),t._v(" "),e("skdecide-signature",{attrs:{name:"_is_observation",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"bool"}}}),t._v(" "),e("p",[t._v("Check that an observation indeed belongs to the domain observation space.")]),t._v(" "),e("div",{staticClass:"custom-block tip"},[e("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),e("p",[t._v("By default, this function is implemented using the "),e("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\nobservation space provided by "),e("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(", but it can be overridden for\nfaster implementations.")])]),t._v(" "),e("h4",{attrs:{id:"parameters-4"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#parameters-4"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),e("h4",{attrs:{id:"returns-7"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#returns-7"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),e("p",[t._v("True if the observation belongs to the domain observation space (False otherwise).")]),t._v(" "),e("h2",{attrs:{id:"transformedobservable"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#transformedobservable"}},[t._v("#")]),t._v(" TransformedObservable")]),t._v(" "),e("p",[t._v("A domain must inherit this class if it is transformed observable.")]),t._v(" "),e("p",[t._v('"Transformed observable" means that the observation provided to the agent is deterministically computed from (but\ngenerally not equal to) the internal state of the domain.')]),t._v(" "),e("h3",{attrs:{id:"get-observation"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#get-observation"}},[t._v("#")]),t._v(" get_observation "),e("Badge",{attrs:{text:"TransformedObservable",type:"tip"}})],1),t._v(" "),e("skdecide-signature",{attrs:{name:"get_observation",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),e("p",[t._v("Get the deterministic observation given a state and action.")]),t._v(" "),e("h4",{attrs:{id:"parameters-5"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#parameters-5"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),e("li",[e("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),e("h4",{attrs:{id:"returns-8"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#returns-8"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),e("p",[t._v("The probability distribution of the observation.")]),t._v(" "),e("h3",{attrs:{id:"get-observation-distribution-3"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-distribution-3"}},[t._v("#")]),t._v(" get_observation_distribution "),e("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),e("skdecide-signature",{attrs:{name:"get_observation_distribution",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"Distribution[D.T_agent[D.T_observation]]"}}}),t._v(" "),e("p",[t._v("Get the probability distribution of the observation given a state and action.")]),t._v(" "),e("p",[t._v("In mathematical terms (discrete case), given an action "),e("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[e("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.197ex",height:"1.02ex",viewBox:"0 -441 529 451"}},[e("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[e("g",{attrs:{"data-mml-node":"math"}},[e("g",{attrs:{"data-mml-node":"mi"}},[e("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})])])])])]),t._v(", this function represents: "),e("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[e("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.078ex",height:"2.262ex",viewBox:"0 -750 4012.7 1000"}},[e("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[e("g",{attrs:{"data-mml-node":"math"}},[e("g",{attrs:{"data-mml-node":"mi"}},[e("path",{attrs:{"data-c":"50",d:"M287 628Q287 635 230 637Q206 637 199 638T192 648Q192 649 194 659Q200 679 203 681T397 683Q587 682 600 680Q664 669 707 631T751 530Q751 453 685 389Q616 321 507 303Q500 302 402 301H307L277 182Q247 66 247 59Q247 55 248 54T255 50T272 48T305 46H336Q342 37 342 35Q342 19 335 5Q330 0 319 0Q316 0 282 1T182 2Q120 2 87 2T51 1Q33 1 33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM645 554Q645 567 643 575T634 597T609 619T560 635Q553 636 480 637Q463 637 445 637T416 636T404 636Q391 635 386 627Q384 621 367 550T332 412T314 344Q314 342 395 342H407H430Q542 342 590 392Q617 419 631 471T645 554Z"}})]),e("g",{attrs:{"data-mml-node":"mo",transform:"translate(751, 0)"}},[e("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),e("g",{attrs:{"data-mml-node":"mi",transform:"translate(1140, 0)"}},[e("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})]),e("g",{attrs:{"data-mml-node":"mo",transform:"translate(1903, 0)"}},[e("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),e("g",{attrs:{"data-mml-node":"mi",transform:"translate(2181, 0)"}},[e("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),e("g",{attrs:{"data-mml-node":"mo",transform:"translate(2650, 0)"}},[e("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),e("g",{attrs:{"data-mml-node":"mi",transform:"translate(3094.7, 0)"}},[e("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),e("g",{attrs:{"data-mml-node":"mo",transform:"translate(3623.7, 0)"}},[e("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(",\nwhere "),e("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[e("svg",{staticStyle:{"vertical-align":"-0.05ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.726ex",height:"1.643ex",viewBox:"0 -704 763 726"}},[e("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[e("g",{attrs:{"data-mml-node":"math"}},[e("g",{attrs:{"data-mml-node":"mi"}},[e("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})])])])])]),t._v(" is the random variable of the observation.")],1),t._v(" "),e("h4",{attrs:{id:"parameters-6"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#parameters-6"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),e("li",[e("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),e("h4",{attrs:{id:"returns-9"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#returns-9"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),e("p",[t._v("The probability distribution of the observation.")]),t._v(" "),e("h3",{attrs:{id:"get-observation-space-4"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-4"}},[t._v("#")]),t._v(" get_observation_space "),e("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),e("skdecide-signature",{attrs:{name:"get_observation_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),e("p",[t._v("Get the (cached) observation space (finite or infinite set).")]),t._v(" "),e("p",[t._v("By default, "),e("code",[t._v("PartiallyObservable.get_observation_space()")]),t._v(" internally\ncalls "),e("code",[t._v("PartiallyObservable._get_observation_space_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the observation space is assumed to be constant).")]),t._v(" "),e("h4",{attrs:{id:"returns-10"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#returns-10"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),e("p",[t._v("The observation space.")]),t._v(" "),e("h3",{attrs:{id:"is-observation-3"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#is-observation-3"}},[t._v("#")]),t._v(" is_observation "),e("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),e("skdecide-signature",{attrs:{name:"is_observation",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"bool"}}}),t._v(" "),e("p",[t._v("Check that an observation indeed belongs to the domain observation space.")]),t._v(" "),e("div",{staticClass:"custom-block tip"},[e("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),e("p",[t._v("By default, this function is implemented using the "),e("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\nobservation space provided by "),e("code",[t._v("PartiallyObservable.get_observation_space()")]),t._v(", but it can be overridden for\nfaster implementations.")])]),t._v(" "),e("h4",{attrs:{id:"parameters-7"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#parameters-7"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),e("h4",{attrs:{id:"returns-11"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#returns-11"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),e("p",[t._v("True if the observation belongs to the domain observation space (False otherwise).")]),t._v(" "),e("h3",{attrs:{id:"get-observation-2"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-2"}},[t._v("#")]),t._v(" _get_observation "),e("Badge",{attrs:{text:"TransformedObservable",type:"tip"}})],1),t._v(" "),e("skdecide-signature",{attrs:{name:"_get_observation",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),e("p",[t._v("Get the deterministic observation given a state and action.")]),t._v(" "),e("h4",{attrs:{id:"parameters-8"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#parameters-8"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),e("li",[e("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),e("h4",{attrs:{id:"returns-12"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#returns-12"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),e("p",[t._v("The probability distribution of the observation.")]),t._v(" "),e("h3",{attrs:{id:"get-observation-distribution-4"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-distribution-4"}},[t._v("#")]),t._v(" _get_observation_distribution "),e("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),e("skdecide-signature",{attrs:{name:"_get_observation_distribution",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"Distribution[D.T_agent[D.T_observation]]"}}}),t._v(" "),e("p",[t._v("Get the probability distribution of the observation given a state and action.")]),t._v(" "),e("p",[t._v("In mathematical terms (discrete case), given an action "),e("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[e("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.197ex",height:"1.02ex",viewBox:"0 -441 529 451"}},[e("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[e("g",{attrs:{"data-mml-node":"math"}},[e("g",{attrs:{"data-mml-node":"mi"}},[e("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})])])])])]),t._v(", this function represents: "),e("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[e("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.078ex",height:"2.262ex",viewBox:"0 -750 4012.7 1000"}},[e("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[e("g",{attrs:{"data-mml-node":"math"}},[e("g",{attrs:{"data-mml-node":"mi"}},[e("path",{attrs:{"data-c":"50",d:"M287 628Q287 635 230 637Q206 637 199 638T192 648Q192 649 194 659Q200 679 203 681T397 683Q587 682 600 680Q664 669 707 631T751 530Q751 453 685 389Q616 321 507 303Q500 302 402 301H307L277 182Q247 66 247 59Q247 55 248 54T255 50T272 48T305 46H336Q342 37 342 35Q342 19 335 5Q330 0 319 0Q316 0 282 1T182 2Q120 2 87 2T51 1Q33 1 33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM645 554Q645 567 643 575T634 597T609 619T560 635Q553 636 480 637Q463 637 445 637T416 636T404 636Q391 635 386 627Q384 621 367 550T332 412T314 344Q314 342 395 342H407H430Q542 342 590 392Q617 419 631 471T645 554Z"}})]),e("g",{attrs:{"data-mml-node":"mo",transform:"translate(751, 0)"}},[e("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),e("g",{attrs:{"data-mml-node":"mi",transform:"translate(1140, 0)"}},[e("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})]),e("g",{attrs:{"data-mml-node":"mo",transform:"translate(1903, 0)"}},[e("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),e("g",{attrs:{"data-mml-node":"mi",transform:"translate(2181, 0)"}},[e("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),e("g",{attrs:{"data-mml-node":"mo",transform:"translate(2650, 0)"}},[e("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),e("g",{attrs:{"data-mml-node":"mi",transform:"translate(3094.7, 0)"}},[e("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),e("g",{attrs:{"data-mml-node":"mo",transform:"translate(3623.7, 0)"}},[e("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(",\nwhere "),e("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[e("svg",{staticStyle:{"vertical-align":"-0.05ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.726ex",height:"1.643ex",viewBox:"0 -704 763 726"}},[e("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[e("g",{attrs:{"data-mml-node":"math"}},[e("g",{attrs:{"data-mml-node":"mi"}},[e("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})])])])])]),t._v(" is the random variable of the observation.")],1),t._v(" "),e("h4",{attrs:{id:"parameters-9"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#parameters-9"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),e("li",[e("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),e("h4",{attrs:{id:"returns-13"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#returns-13"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),e("p",[t._v("The probability distribution of the observation.")]),t._v(" "),e("h3",{attrs:{id:"get-observation-space-5"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-5"}},[t._v("#")]),t._v(" _get_observation_space "),e("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),e("skdecide-signature",{attrs:{name:"_get_observation_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),e("p",[t._v("Get the (cached) observation space (finite or infinite set).")]),t._v(" "),e("p",[t._v("By default, "),e("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(" internally\ncalls "),e("code",[t._v("PartiallyObservable._get_observation_space_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the observation space is assumed to be constant).")]),t._v(" "),e("h4",{attrs:{id:"returns-14"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#returns-14"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),e("p",[t._v("The observation space.")]),t._v(" "),e("h3",{attrs:{id:"get-observation-space-6"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-6"}},[t._v("#")]),t._v(" _get_observation_space_ "),e("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),e("skdecide-signature",{attrs:{name:"_get_observation_space_",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),e("p",[t._v("Get the observation space (finite or infinite set).")]),t._v(" "),e("p",[t._v("This is a helper function called by default from "),e("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(", the difference\nbeing that the result is not cached here.")]),t._v(" "),e("div",{staticClass:"custom-block tip"},[e("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),e("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),e("h4",{attrs:{id:"returns-15"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#returns-15"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),e("p",[t._v("The observation space.")]),t._v(" "),e("h3",{attrs:{id:"is-observation-4"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#is-observation-4"}},[t._v("#")]),t._v(" _is_observation "),e("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),e("skdecide-signature",{attrs:{name:"_is_observation",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"bool"}}}),t._v(" "),e("p",[t._v("Check that an observation indeed belongs to the domain observation space.")]),t._v(" "),e("div",{staticClass:"custom-block tip"},[e("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),e("p",[t._v("By default, this function is implemented using the "),e("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\nobservation space provided by "),e("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(", but it can be overridden for\nfaster implementations.")])]),t._v(" "),e("h4",{attrs:{id:"parameters-10"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#parameters-10"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),e("h4",{attrs:{id:"returns-16"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#returns-16"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),e("p",[t._v("True if the observation belongs to the domain observation space (False otherwise).")]),t._v(" "),e("h2",{attrs:{id:"fullyobservable"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#fullyobservable"}},[t._v("#")]),t._v(" FullyObservable")]),t._v(" "),e("p",[t._v("A domain must inherit this class if it is fully observable.")]),t._v(" "),e("p",[t._v('"Fully observable" means that the observation provided to the agent is equal to the internal state of the domain.')]),t._v(" "),e("div",{staticClass:"custom-block warning"},[e("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),e("p",[t._v("In the case of fully observable domains, make sure that the observation type D.T_observation is equal to the\nstate type D.T_state.")])]),t._v(" "),e("h3",{attrs:{id:"get-observation-3"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-3"}},[t._v("#")]),t._v(" get_observation "),e("Badge",{attrs:{text:"TransformedObservable",type:"warn"}})],1),t._v(" "),e("skdecide-signature",{attrs:{name:"get_observation",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),e("p",[t._v("Get the deterministic observation given a state and action.")]),t._v(" "),e("h4",{attrs:{id:"parameters-11"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#parameters-11"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),e("li",[e("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),e("h4",{attrs:{id:"returns-17"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#returns-17"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),e("p",[t._v("The probability distribution of the observation.")]),t._v(" "),e("h3",{attrs:{id:"get-observation-distribution-5"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-distribution-5"}},[t._v("#")]),t._v(" get_observation_distribution "),e("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),e("skdecide-signature",{attrs:{name:"get_observation_distribution",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"Distribution[D.T_agent[D.T_observation]]"}}}),t._v(" "),e("p",[t._v("Get the probability distribution of the observation given a state and action.")]),t._v(" "),e("p",[t._v("In mathematical terms (discrete case), given an action "),e("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[e("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.197ex",height:"1.02ex",viewBox:"0 -441 529 451"}},[e("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[e("g",{attrs:{"data-mml-node":"math"}},[e("g",{attrs:{"data-mml-node":"mi"}},[e("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})])])])])]),t._v(", this function represents: "),e("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[e("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.078ex",height:"2.262ex",viewBox:"0 -750 4012.7 1000"}},[e("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[e("g",{attrs:{"data-mml-node":"math"}},[e("g",{attrs:{"data-mml-node":"mi"}},[e("path",{attrs:{"data-c":"50",d:"M287 628Q287 635 230 637Q206 637 199 638T192 648Q192 649 194 659Q200 679 203 681T397 683Q587 682 600 680Q664 669 707 631T751 530Q751 453 685 389Q616 321 507 303Q500 302 402 301H307L277 182Q247 66 247 59Q247 55 248 54T255 50T272 48T305 46H336Q342 37 342 35Q342 19 335 5Q330 0 319 0Q316 0 282 1T182 2Q120 2 87 2T51 1Q33 1 33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM645 554Q645 567 643 575T634 597T609 619T560 635Q553 636 480 637Q463 637 445 637T416 636T404 636Q391 635 386 627Q384 621 367 550T332 412T314 344Q314 342 395 342H407H430Q542 342 590 392Q617 419 631 471T645 554Z"}})]),e("g",{attrs:{"data-mml-node":"mo",transform:"translate(751, 0)"}},[e("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),e("g",{attrs:{"data-mml-node":"mi",transform:"translate(1140, 0)"}},[e("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})]),e("g",{attrs:{"data-mml-node":"mo",transform:"translate(1903, 0)"}},[e("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),e("g",{attrs:{"data-mml-node":"mi",transform:"translate(2181, 0)"}},[e("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),e("g",{attrs:{"data-mml-node":"mo",transform:"translate(2650, 0)"}},[e("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),e("g",{attrs:{"data-mml-node":"mi",transform:"translate(3094.7, 0)"}},[e("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),e("g",{attrs:{"data-mml-node":"mo",transform:"translate(3623.7, 0)"}},[e("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(",\nwhere "),e("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[e("svg",{staticStyle:{"vertical-align":"-0.05ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.726ex",height:"1.643ex",viewBox:"0 -704 763 726"}},[e("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[e("g",{attrs:{"data-mml-node":"math"}},[e("g",{attrs:{"data-mml-node":"mi"}},[e("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})])])])])]),t._v(" is the random variable of the observation.")],1),t._v(" "),e("h4",{attrs:{id:"parameters-12"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#parameters-12"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),e("li",[e("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),e("h4",{attrs:{id:"returns-18"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#returns-18"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),e("p",[t._v("The probability distribution of the observation.")]),t._v(" "),e("h3",{attrs:{id:"get-observation-space-7"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-7"}},[t._v("#")]),t._v(" get_observation_space "),e("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),e("skdecide-signature",{attrs:{name:"get_observation_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),e("p",[t._v("Get the (cached) observation space (finite or infinite set).")]),t._v(" "),e("p",[t._v("By default, "),e("code",[t._v("PartiallyObservable.get_observation_space()")]),t._v(" internally\ncalls "),e("code",[t._v("PartiallyObservable._get_observation_space_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the observation space is assumed to be constant).")]),t._v(" "),e("h4",{attrs:{id:"returns-19"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#returns-19"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),e("p",[t._v("The observation space.")]),t._v(" "),e("h3",{attrs:{id:"is-observation-5"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#is-observation-5"}},[t._v("#")]),t._v(" is_observation "),e("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),e("skdecide-signature",{attrs:{name:"is_observation",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"bool"}}}),t._v(" "),e("p",[t._v("Check that an observation indeed belongs to the domain observation space.")]),t._v(" "),e("div",{staticClass:"custom-block tip"},[e("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),e("p",[t._v("By default, this function is implemented using the "),e("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\nobservation space provided by "),e("code",[t._v("PartiallyObservable.get_observation_space()")]),t._v(", but it can be overridden for\nfaster implementations.")])]),t._v(" "),e("h4",{attrs:{id:"parameters-13"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#parameters-13"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),e("h4",{attrs:{id:"returns-20"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#returns-20"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),e("p",[t._v("True if the observation belongs to the domain observation space (False otherwise).")]),t._v(" "),e("h3",{attrs:{id:"get-observation-4"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-4"}},[t._v("#")]),t._v(" _get_observation "),e("Badge",{attrs:{text:"TransformedObservable",type:"warn"}})],1),t._v(" "),e("skdecide-signature",{attrs:{name:"_get_observation",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),e("p",[t._v("Get the deterministic observation given a state and action.")]),t._v(" "),e("h4",{attrs:{id:"parameters-14"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#parameters-14"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),e("li",[e("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),e("h4",{attrs:{id:"returns-21"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#returns-21"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),e("p",[t._v("The probability distribution of the observation.")]),t._v(" "),e("h3",{attrs:{id:"get-observation-distribution-6"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-distribution-6"}},[t._v("#")]),t._v(" _get_observation_distribution "),e("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),e("skdecide-signature",{attrs:{name:"_get_observation_distribution",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"Distribution[D.T_agent[D.T_observation]]"}}}),t._v(" "),e("p",[t._v("Get the probability distribution of the observation given a state and action.")]),t._v(" "),e("p",[t._v("In mathematical terms (discrete case), given an action "),e("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[e("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.197ex",height:"1.02ex",viewBox:"0 -441 529 451"}},[e("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[e("g",{attrs:{"data-mml-node":"math"}},[e("g",{attrs:{"data-mml-node":"mi"}},[e("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})])])])])]),t._v(", this function represents: "),e("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[e("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.078ex",height:"2.262ex",viewBox:"0 -750 4012.7 1000"}},[e("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[e("g",{attrs:{"data-mml-node":"math"}},[e("g",{attrs:{"data-mml-node":"mi"}},[e("path",{attrs:{"data-c":"50",d:"M287 628Q287 635 230 637Q206 637 199 638T192 648Q192 649 194 659Q200 679 203 681T397 683Q587 682 600 680Q664 669 707 631T751 530Q751 453 685 389Q616 321 507 303Q500 302 402 301H307L277 182Q247 66 247 59Q247 55 248 54T255 50T272 48T305 46H336Q342 37 342 35Q342 19 335 5Q330 0 319 0Q316 0 282 1T182 2Q120 2 87 2T51 1Q33 1 33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM645 554Q645 567 643 575T634 597T609 619T560 635Q553 636 480 637Q463 637 445 637T416 636T404 636Q391 635 386 627Q384 621 367 550T332 412T314 344Q314 342 395 342H407H430Q542 342 590 392Q617 419 631 471T645 554Z"}})]),e("g",{attrs:{"data-mml-node":"mo",transform:"translate(751, 0)"}},[e("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),e("g",{attrs:{"data-mml-node":"mi",transform:"translate(1140, 0)"}},[e("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})]),e("g",{attrs:{"data-mml-node":"mo",transform:"translate(1903, 0)"}},[e("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),e("g",{attrs:{"data-mml-node":"mi",transform:"translate(2181, 0)"}},[e("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),e("g",{attrs:{"data-mml-node":"mo",transform:"translate(2650, 0)"}},[e("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),e("g",{attrs:{"data-mml-node":"mi",transform:"translate(3094.7, 0)"}},[e("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),e("g",{attrs:{"data-mml-node":"mo",transform:"translate(3623.7, 0)"}},[e("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(",\nwhere "),e("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[e("svg",{staticStyle:{"vertical-align":"-0.05ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.726ex",height:"1.643ex",viewBox:"0 -704 763 726"}},[e("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[e("g",{attrs:{"data-mml-node":"math"}},[e("g",{attrs:{"data-mml-node":"mi"}},[e("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})])])])])]),t._v(" is the random variable of the observation.")],1),t._v(" "),e("h4",{attrs:{id:"parameters-15"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#parameters-15"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),e("li",[e("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),e("h4",{attrs:{id:"returns-22"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#returns-22"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),e("p",[t._v("The probability distribution of the observation.")]),t._v(" "),e("h3",{attrs:{id:"get-observation-space-8"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-8"}},[t._v("#")]),t._v(" _get_observation_space "),e("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),e("skdecide-signature",{attrs:{name:"_get_observation_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),e("p",[t._v("Get the (cached) observation space (finite or infinite set).")]),t._v(" "),e("p",[t._v("By default, "),e("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(" internally\ncalls "),e("code",[t._v("PartiallyObservable._get_observation_space_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the observation space is assumed to be constant).")]),t._v(" "),e("h4",{attrs:{id:"returns-23"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#returns-23"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),e("p",[t._v("The observation space.")]),t._v(" "),e("h3",{attrs:{id:"get-observation-space-9"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-9"}},[t._v("#")]),t._v(" _get_observation_space_ "),e("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),e("skdecide-signature",{attrs:{name:"_get_observation_space_",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),e("p",[t._v("Get the observation space (finite or infinite set).")]),t._v(" "),e("p",[t._v("This is a helper function called by default from "),e("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(", the difference\nbeing that the result is not cached here.")]),t._v(" "),e("div",{staticClass:"custom-block tip"},[e("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),e("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),e("h4",{attrs:{id:"returns-24"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#returns-24"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),e("p",[t._v("The observation space.")]),t._v(" "),e("h3",{attrs:{id:"is-observation-6"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#is-observation-6"}},[t._v("#")]),t._v(" _is_observation "),e("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),e("skdecide-signature",{attrs:{name:"_is_observation",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"bool"}}}),t._v(" "),e("p",[t._v("Check that an observation indeed belongs to the domain observation space.")]),t._v(" "),e("div",{staticClass:"custom-block tip"},[e("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),e("p",[t._v("By default, this function is implemented using the "),e("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\nobservation space provided by "),e("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(", but it can be overridden for\nfaster implementations.")])]),t._v(" "),e("h4",{attrs:{id:"parameters-16"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#parameters-16"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),e("h4",{attrs:{id:"returns-25"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#returns-25"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),e("p",[t._v("True if the observation belongs to the domain observation space (False otherwise).")])],1)}),[],!1,null,null,null);a.default=r.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[31],{547:function(t,a,e){"use strict";e.r(a);var s=e(38),r=Object(s.a)({},(function(){var t=this,a=t.$createElement,e=t._self._c||a;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"builders-domain-observability"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#builders-domain-observability"}},[t._v("#")]),t._v(" builders.domain.observability")]),t._v(" "),e("div",{staticClass:"custom-block tip"},[e("p",{staticClass:"custom-block-title"},[t._v("Domain specification")]),t._v(" "),e("skdecide-summary")],1),t._v(" "),e("h2",{attrs:{id:"partiallyobservable"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#partiallyobservable"}},[t._v("#")]),t._v(" PartiallyObservable")]),t._v(" "),e("p",[t._v("A domain must inherit this class if it is partially observable.")]),t._v(" "),e("p",[t._v('"Partially observable" means that the observation provided to the agent is computed from (but generally not equal\nto) the internal state of the domain. Additionally, according to literature, a partially observable domain must\nprovide the probability distribution of the observation given a state and action.')]),t._v(" "),e("h3",{attrs:{id:"get-observation-distribution"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-distribution"}},[t._v("#")]),t._v(" get_observation_distribution "),e("Badge",{attrs:{text:"PartiallyObservable",type:"tip"}})],1),t._v(" "),e("skdecide-signature",{attrs:{name:"get_observation_distribution",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"Distribution[D.T_agent[D.T_observation]]"}}}),t._v(" "),e("p",[t._v("Get the probability distribution of the observation given a state and action.")]),t._v(" "),e("p",[t._v("In mathematical terms (discrete case), given an action "),e("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[e("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.197ex",height:"1.02ex",viewBox:"0 -441 529 451"}},[e("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[e("g",{attrs:{"data-mml-node":"math"}},[e("g",{attrs:{"data-mml-node":"mi"}},[e("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})])])])])]),t._v(", this function represents: "),e("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[e("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.078ex",height:"2.262ex",viewBox:"0 -750 4012.7 1000"}},[e("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[e("g",{attrs:{"data-mml-node":"math"}},[e("g",{attrs:{"data-mml-node":"mi"}},[e("path",{attrs:{"data-c":"50",d:"M287 628Q287 635 230 637Q206 637 199 638T192 648Q192 649 194 659Q200 679 203 681T397 683Q587 682 600 680Q664 669 707 631T751 530Q751 453 685 389Q616 321 507 303Q500 302 402 301H307L277 182Q247 66 247 59Q247 55 248 54T255 50T272 48T305 46H336Q342 37 342 35Q342 19 335 5Q330 0 319 0Q316 0 282 1T182 2Q120 2 87 2T51 1Q33 1 33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM645 554Q645 567 643 575T634 597T609 619T560 635Q553 636 480 637Q463 637 445 637T416 636T404 636Q391 635 386 627Q384 621 367 550T332 412T314 344Q314 342 395 342H407H430Q542 342 590 392Q617 419 631 471T645 554Z"}})]),e("g",{attrs:{"data-mml-node":"mo",transform:"translate(751, 0)"}},[e("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),e("g",{attrs:{"data-mml-node":"mi",transform:"translate(1140, 0)"}},[e("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})]),e("g",{attrs:{"data-mml-node":"mo",transform:"translate(1903, 0)"}},[e("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),e("g",{attrs:{"data-mml-node":"mi",transform:"translate(2181, 0)"}},[e("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),e("g",{attrs:{"data-mml-node":"mo",transform:"translate(2650, 0)"}},[e("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),e("g",{attrs:{"data-mml-node":"mi",transform:"translate(3094.7, 0)"}},[e("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),e("g",{attrs:{"data-mml-node":"mo",transform:"translate(3623.7, 0)"}},[e("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(",\nwhere "),e("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[e("svg",{staticStyle:{"vertical-align":"-0.05ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.726ex",height:"1.643ex",viewBox:"0 -704 763 726"}},[e("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[e("g",{attrs:{"data-mml-node":"math"}},[e("g",{attrs:{"data-mml-node":"mi"}},[e("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})])])])])]),t._v(" is the random variable of the observation.")],1),t._v(" "),e("h4",{attrs:{id:"parameters"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#parameters"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),e("li",[e("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),e("h4",{attrs:{id:"returns"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#returns"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),e("p",[t._v("The probability distribution of the observation.")]),t._v(" "),e("h3",{attrs:{id:"get-observation-space"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space"}},[t._v("#")]),t._v(" get_observation_space "),e("Badge",{attrs:{text:"PartiallyObservable",type:"tip"}})],1),t._v(" "),e("skdecide-signature",{attrs:{name:"get_observation_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),e("p",[t._v("Get the (cached) observation space (finite or infinite set).")]),t._v(" "),e("p",[t._v("By default, "),e("code",[t._v("PartiallyObservable.get_observation_space()")]),t._v(" internally\ncalls "),e("code",[t._v("PartiallyObservable._get_observation_space_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the observation space is assumed to be constant).")]),t._v(" "),e("h4",{attrs:{id:"returns-2"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#returns-2"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),e("p",[t._v("The observation space.")]),t._v(" "),e("h3",{attrs:{id:"is-observation"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#is-observation"}},[t._v("#")]),t._v(" is_observation "),e("Badge",{attrs:{text:"PartiallyObservable",type:"tip"}})],1),t._v(" "),e("skdecide-signature",{attrs:{name:"is_observation",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"bool"}}}),t._v(" "),e("p",[t._v("Check that an observation indeed belongs to the domain observation space.")]),t._v(" "),e("div",{staticClass:"custom-block tip"},[e("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),e("p",[t._v("By default, this function is implemented using the "),e("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\nobservation space provided by "),e("code",[t._v("PartiallyObservable.get_observation_space()")]),t._v(", but it can be overridden for\nfaster implementations.")])]),t._v(" "),e("h4",{attrs:{id:"parameters-2"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#parameters-2"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),e("h4",{attrs:{id:"returns-3"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#returns-3"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),e("p",[t._v("True if the observation belongs to the domain observation space (False otherwise).")]),t._v(" "),e("h3",{attrs:{id:"get-observation-distribution-2"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-distribution-2"}},[t._v("#")]),t._v(" _get_observation_distribution "),e("Badge",{attrs:{text:"PartiallyObservable",type:"tip"}})],1),t._v(" "),e("skdecide-signature",{attrs:{name:"_get_observation_distribution",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"Distribution[D.T_agent[D.T_observation]]"}}}),t._v(" "),e("p",[t._v("Get the probability distribution of the observation given a state and action.")]),t._v(" "),e("p",[t._v("In mathematical terms (discrete case), given an action "),e("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[e("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.197ex",height:"1.02ex",viewBox:"0 -441 529 451"}},[e("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[e("g",{attrs:{"data-mml-node":"math"}},[e("g",{attrs:{"data-mml-node":"mi"}},[e("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})])])])])]),t._v(", this function represents: "),e("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[e("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.078ex",height:"2.262ex",viewBox:"0 -750 4012.7 1000"}},[e("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[e("g",{attrs:{"data-mml-node":"math"}},[e("g",{attrs:{"data-mml-node":"mi"}},[e("path",{attrs:{"data-c":"50",d:"M287 628Q287 635 230 637Q206 637 199 638T192 648Q192 649 194 659Q200 679 203 681T397 683Q587 682 600 680Q664 669 707 631T751 530Q751 453 685 389Q616 321 507 303Q500 302 402 301H307L277 182Q247 66 247 59Q247 55 248 54T255 50T272 48T305 46H336Q342 37 342 35Q342 19 335 5Q330 0 319 0Q316 0 282 1T182 2Q120 2 87 2T51 1Q33 1 33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM645 554Q645 567 643 575T634 597T609 619T560 635Q553 636 480 637Q463 637 445 637T416 636T404 636Q391 635 386 627Q384 621 367 550T332 412T314 344Q314 342 395 342H407H430Q542 342 590 392Q617 419 631 471T645 554Z"}})]),e("g",{attrs:{"data-mml-node":"mo",transform:"translate(751, 0)"}},[e("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),e("g",{attrs:{"data-mml-node":"mi",transform:"translate(1140, 0)"}},[e("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})]),e("g",{attrs:{"data-mml-node":"mo",transform:"translate(1903, 0)"}},[e("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),e("g",{attrs:{"data-mml-node":"mi",transform:"translate(2181, 0)"}},[e("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),e("g",{attrs:{"data-mml-node":"mo",transform:"translate(2650, 0)"}},[e("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),e("g",{attrs:{"data-mml-node":"mi",transform:"translate(3094.7, 0)"}},[e("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),e("g",{attrs:{"data-mml-node":"mo",transform:"translate(3623.7, 0)"}},[e("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(",\nwhere "),e("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[e("svg",{staticStyle:{"vertical-align":"-0.05ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.726ex",height:"1.643ex",viewBox:"0 -704 763 726"}},[e("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[e("g",{attrs:{"data-mml-node":"math"}},[e("g",{attrs:{"data-mml-node":"mi"}},[e("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})])])])])]),t._v(" is the random variable of the observation.")],1),t._v(" "),e("h4",{attrs:{id:"parameters-3"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#parameters-3"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),e("li",[e("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),e("h4",{attrs:{id:"returns-4"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#returns-4"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),e("p",[t._v("The probability distribution of the observation.")]),t._v(" "),e("h3",{attrs:{id:"get-observation-space-2"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-2"}},[t._v("#")]),t._v(" _get_observation_space "),e("Badge",{attrs:{text:"PartiallyObservable",type:"tip"}})],1),t._v(" "),e("skdecide-signature",{attrs:{name:"_get_observation_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),e("p",[t._v("Get the (cached) observation space (finite or infinite set).")]),t._v(" "),e("p",[t._v("By default, "),e("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(" internally\ncalls "),e("code",[t._v("PartiallyObservable._get_observation_space_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the observation space is assumed to be constant).")]),t._v(" "),e("h4",{attrs:{id:"returns-5"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#returns-5"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),e("p",[t._v("The observation space.")]),t._v(" "),e("h3",{attrs:{id:"get-observation-space-3"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-3"}},[t._v("#")]),t._v(" _get_observation_space_ "),e("Badge",{attrs:{text:"PartiallyObservable",type:"tip"}})],1),t._v(" "),e("skdecide-signature",{attrs:{name:"_get_observation_space_",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),e("p",[t._v("Get the observation space (finite or infinite set).")]),t._v(" "),e("p",[t._v("This is a helper function called by default from "),e("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(", the difference\nbeing that the result is not cached here.")]),t._v(" "),e("div",{staticClass:"custom-block tip"},[e("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),e("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),e("h4",{attrs:{id:"returns-6"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#returns-6"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),e("p",[t._v("The observation space.")]),t._v(" "),e("h3",{attrs:{id:"is-observation-2"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#is-observation-2"}},[t._v("#")]),t._v(" _is_observation "),e("Badge",{attrs:{text:"PartiallyObservable",type:"tip"}})],1),t._v(" "),e("skdecide-signature",{attrs:{name:"_is_observation",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"bool"}}}),t._v(" "),e("p",[t._v("Check that an observation indeed belongs to the domain observation space.")]),t._v(" "),e("div",{staticClass:"custom-block tip"},[e("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),e("p",[t._v("By default, this function is implemented using the "),e("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\nobservation space provided by "),e("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(", but it can be overridden for\nfaster implementations.")])]),t._v(" "),e("h4",{attrs:{id:"parameters-4"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#parameters-4"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),e("h4",{attrs:{id:"returns-7"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#returns-7"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),e("p",[t._v("True if the observation belongs to the domain observation space (False otherwise).")]),t._v(" "),e("h2",{attrs:{id:"transformedobservable"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#transformedobservable"}},[t._v("#")]),t._v(" TransformedObservable")]),t._v(" "),e("p",[t._v("A domain must inherit this class if it is transformed observable.")]),t._v(" "),e("p",[t._v('"Transformed observable" means that the observation provided to the agent is deterministically computed from (but\ngenerally not equal to) the internal state of the domain.')]),t._v(" "),e("h3",{attrs:{id:"get-observation"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#get-observation"}},[t._v("#")]),t._v(" get_observation "),e("Badge",{attrs:{text:"TransformedObservable",type:"tip"}})],1),t._v(" "),e("skdecide-signature",{attrs:{name:"get_observation",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),e("p",[t._v("Get the deterministic observation given a state and action.")]),t._v(" "),e("h4",{attrs:{id:"parameters-5"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#parameters-5"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),e("li",[e("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),e("h4",{attrs:{id:"returns-8"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#returns-8"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),e("p",[t._v("The probability distribution of the observation.")]),t._v(" "),e("h3",{attrs:{id:"get-observation-distribution-3"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-distribution-3"}},[t._v("#")]),t._v(" get_observation_distribution "),e("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),e("skdecide-signature",{attrs:{name:"get_observation_distribution",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"Distribution[D.T_agent[D.T_observation]]"}}}),t._v(" "),e("p",[t._v("Get the probability distribution of the observation given a state and action.")]),t._v(" "),e("p",[t._v("In mathematical terms (discrete case), given an action "),e("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[e("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.197ex",height:"1.02ex",viewBox:"0 -441 529 451"}},[e("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[e("g",{attrs:{"data-mml-node":"math"}},[e("g",{attrs:{"data-mml-node":"mi"}},[e("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})])])])])]),t._v(", this function represents: "),e("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[e("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.078ex",height:"2.262ex",viewBox:"0 -750 4012.7 1000"}},[e("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[e("g",{attrs:{"data-mml-node":"math"}},[e("g",{attrs:{"data-mml-node":"mi"}},[e("path",{attrs:{"data-c":"50",d:"M287 628Q287 635 230 637Q206 637 199 638T192 648Q192 649 194 659Q200 679 203 681T397 683Q587 682 600 680Q664 669 707 631T751 530Q751 453 685 389Q616 321 507 303Q500 302 402 301H307L277 182Q247 66 247 59Q247 55 248 54T255 50T272 48T305 46H336Q342 37 342 35Q342 19 335 5Q330 0 319 0Q316 0 282 1T182 2Q120 2 87 2T51 1Q33 1 33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM645 554Q645 567 643 575T634 597T609 619T560 635Q553 636 480 637Q463 637 445 637T416 636T404 636Q391 635 386 627Q384 621 367 550T332 412T314 344Q314 342 395 342H407H430Q542 342 590 392Q617 419 631 471T645 554Z"}})]),e("g",{attrs:{"data-mml-node":"mo",transform:"translate(751, 0)"}},[e("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),e("g",{attrs:{"data-mml-node":"mi",transform:"translate(1140, 0)"}},[e("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})]),e("g",{attrs:{"data-mml-node":"mo",transform:"translate(1903, 0)"}},[e("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),e("g",{attrs:{"data-mml-node":"mi",transform:"translate(2181, 0)"}},[e("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),e("g",{attrs:{"data-mml-node":"mo",transform:"translate(2650, 0)"}},[e("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),e("g",{attrs:{"data-mml-node":"mi",transform:"translate(3094.7, 0)"}},[e("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),e("g",{attrs:{"data-mml-node":"mo",transform:"translate(3623.7, 0)"}},[e("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(",\nwhere "),e("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[e("svg",{staticStyle:{"vertical-align":"-0.05ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.726ex",height:"1.643ex",viewBox:"0 -704 763 726"}},[e("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[e("g",{attrs:{"data-mml-node":"math"}},[e("g",{attrs:{"data-mml-node":"mi"}},[e("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})])])])])]),t._v(" is the random variable of the observation.")],1),t._v(" "),e("h4",{attrs:{id:"parameters-6"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#parameters-6"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),e("li",[e("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),e("h4",{attrs:{id:"returns-9"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#returns-9"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),e("p",[t._v("The probability distribution of the observation.")]),t._v(" "),e("h3",{attrs:{id:"get-observation-space-4"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-4"}},[t._v("#")]),t._v(" get_observation_space "),e("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),e("skdecide-signature",{attrs:{name:"get_observation_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),e("p",[t._v("Get the (cached) observation space (finite or infinite set).")]),t._v(" "),e("p",[t._v("By default, "),e("code",[t._v("PartiallyObservable.get_observation_space()")]),t._v(" internally\ncalls "),e("code",[t._v("PartiallyObservable._get_observation_space_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the observation space is assumed to be constant).")]),t._v(" "),e("h4",{attrs:{id:"returns-10"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#returns-10"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),e("p",[t._v("The observation space.")]),t._v(" "),e("h3",{attrs:{id:"is-observation-3"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#is-observation-3"}},[t._v("#")]),t._v(" is_observation "),e("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),e("skdecide-signature",{attrs:{name:"is_observation",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"bool"}}}),t._v(" "),e("p",[t._v("Check that an observation indeed belongs to the domain observation space.")]),t._v(" "),e("div",{staticClass:"custom-block tip"},[e("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),e("p",[t._v("By default, this function is implemented using the "),e("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\nobservation space provided by "),e("code",[t._v("PartiallyObservable.get_observation_space()")]),t._v(", but it can be overridden for\nfaster implementations.")])]),t._v(" "),e("h4",{attrs:{id:"parameters-7"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#parameters-7"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),e("h4",{attrs:{id:"returns-11"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#returns-11"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),e("p",[t._v("True if the observation belongs to the domain observation space (False otherwise).")]),t._v(" "),e("h3",{attrs:{id:"get-observation-2"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-2"}},[t._v("#")]),t._v(" _get_observation "),e("Badge",{attrs:{text:"TransformedObservable",type:"tip"}})],1),t._v(" "),e("skdecide-signature",{attrs:{name:"_get_observation",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),e("p",[t._v("Get the deterministic observation given a state and action.")]),t._v(" "),e("h4",{attrs:{id:"parameters-8"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#parameters-8"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),e("li",[e("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),e("h4",{attrs:{id:"returns-12"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#returns-12"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),e("p",[t._v("The probability distribution of the observation.")]),t._v(" "),e("h3",{attrs:{id:"get-observation-distribution-4"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-distribution-4"}},[t._v("#")]),t._v(" _get_observation_distribution "),e("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),e("skdecide-signature",{attrs:{name:"_get_observation_distribution",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"Distribution[D.T_agent[D.T_observation]]"}}}),t._v(" "),e("p",[t._v("Get the probability distribution of the observation given a state and action.")]),t._v(" "),e("p",[t._v("In mathematical terms (discrete case), given an action "),e("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[e("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.197ex",height:"1.02ex",viewBox:"0 -441 529 451"}},[e("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[e("g",{attrs:{"data-mml-node":"math"}},[e("g",{attrs:{"data-mml-node":"mi"}},[e("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})])])])])]),t._v(", this function represents: "),e("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[e("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.078ex",height:"2.262ex",viewBox:"0 -750 4012.7 1000"}},[e("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[e("g",{attrs:{"data-mml-node":"math"}},[e("g",{attrs:{"data-mml-node":"mi"}},[e("path",{attrs:{"data-c":"50",d:"M287 628Q287 635 230 637Q206 637 199 638T192 648Q192 649 194 659Q200 679 203 681T397 683Q587 682 600 680Q664 669 707 631T751 530Q751 453 685 389Q616 321 507 303Q500 302 402 301H307L277 182Q247 66 247 59Q247 55 248 54T255 50T272 48T305 46H336Q342 37 342 35Q342 19 335 5Q330 0 319 0Q316 0 282 1T182 2Q120 2 87 2T51 1Q33 1 33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM645 554Q645 567 643 575T634 597T609 619T560 635Q553 636 480 637Q463 637 445 637T416 636T404 636Q391 635 386 627Q384 621 367 550T332 412T314 344Q314 342 395 342H407H430Q542 342 590 392Q617 419 631 471T645 554Z"}})]),e("g",{attrs:{"data-mml-node":"mo",transform:"translate(751, 0)"}},[e("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),e("g",{attrs:{"data-mml-node":"mi",transform:"translate(1140, 0)"}},[e("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})]),e("g",{attrs:{"data-mml-node":"mo",transform:"translate(1903, 0)"}},[e("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),e("g",{attrs:{"data-mml-node":"mi",transform:"translate(2181, 0)"}},[e("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),e("g",{attrs:{"data-mml-node":"mo",transform:"translate(2650, 0)"}},[e("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),e("g",{attrs:{"data-mml-node":"mi",transform:"translate(3094.7, 0)"}},[e("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),e("g",{attrs:{"data-mml-node":"mo",transform:"translate(3623.7, 0)"}},[e("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(",\nwhere "),e("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[e("svg",{staticStyle:{"vertical-align":"-0.05ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.726ex",height:"1.643ex",viewBox:"0 -704 763 726"}},[e("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[e("g",{attrs:{"data-mml-node":"math"}},[e("g",{attrs:{"data-mml-node":"mi"}},[e("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})])])])])]),t._v(" is the random variable of the observation.")],1),t._v(" "),e("h4",{attrs:{id:"parameters-9"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#parameters-9"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),e("li",[e("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),e("h4",{attrs:{id:"returns-13"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#returns-13"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),e("p",[t._v("The probability distribution of the observation.")]),t._v(" "),e("h3",{attrs:{id:"get-observation-space-5"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-5"}},[t._v("#")]),t._v(" _get_observation_space "),e("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),e("skdecide-signature",{attrs:{name:"_get_observation_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),e("p",[t._v("Get the (cached) observation space (finite or infinite set).")]),t._v(" "),e("p",[t._v("By default, "),e("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(" internally\ncalls "),e("code",[t._v("PartiallyObservable._get_observation_space_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the observation space is assumed to be constant).")]),t._v(" "),e("h4",{attrs:{id:"returns-14"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#returns-14"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),e("p",[t._v("The observation space.")]),t._v(" "),e("h3",{attrs:{id:"get-observation-space-6"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-6"}},[t._v("#")]),t._v(" _get_observation_space_ "),e("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),e("skdecide-signature",{attrs:{name:"_get_observation_space_",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),e("p",[t._v("Get the observation space (finite or infinite set).")]),t._v(" "),e("p",[t._v("This is a helper function called by default from "),e("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(", the difference\nbeing that the result is not cached here.")]),t._v(" "),e("div",{staticClass:"custom-block tip"},[e("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),e("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),e("h4",{attrs:{id:"returns-15"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#returns-15"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),e("p",[t._v("The observation space.")]),t._v(" "),e("h3",{attrs:{id:"is-observation-4"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#is-observation-4"}},[t._v("#")]),t._v(" _is_observation "),e("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),e("skdecide-signature",{attrs:{name:"_is_observation",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"bool"}}}),t._v(" "),e("p",[t._v("Check that an observation indeed belongs to the domain observation space.")]),t._v(" "),e("div",{staticClass:"custom-block tip"},[e("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),e("p",[t._v("By default, this function is implemented using the "),e("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\nobservation space provided by "),e("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(", but it can be overridden for\nfaster implementations.")])]),t._v(" "),e("h4",{attrs:{id:"parameters-10"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#parameters-10"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),e("h4",{attrs:{id:"returns-16"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#returns-16"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),e("p",[t._v("True if the observation belongs to the domain observation space (False otherwise).")]),t._v(" "),e("h2",{attrs:{id:"fullyobservable"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#fullyobservable"}},[t._v("#")]),t._v(" FullyObservable")]),t._v(" "),e("p",[t._v("A domain must inherit this class if it is fully observable.")]),t._v(" "),e("p",[t._v('"Fully observable" means that the observation provided to the agent is equal to the internal state of the domain.')]),t._v(" "),e("div",{staticClass:"custom-block warning"},[e("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),e("p",[t._v("In the case of fully observable domains, make sure that the observation type D.T_observation is equal to the\nstate type D.T_state.")])]),t._v(" "),e("h3",{attrs:{id:"get-observation-3"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-3"}},[t._v("#")]),t._v(" get_observation "),e("Badge",{attrs:{text:"TransformedObservable",type:"warn"}})],1),t._v(" "),e("skdecide-signature",{attrs:{name:"get_observation",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),e("p",[t._v("Get the deterministic observation given a state and action.")]),t._v(" "),e("h4",{attrs:{id:"parameters-11"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#parameters-11"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),e("li",[e("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),e("h4",{attrs:{id:"returns-17"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#returns-17"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),e("p",[t._v("The probability distribution of the observation.")]),t._v(" "),e("h3",{attrs:{id:"get-observation-distribution-5"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-distribution-5"}},[t._v("#")]),t._v(" get_observation_distribution "),e("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),e("skdecide-signature",{attrs:{name:"get_observation_distribution",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"Distribution[D.T_agent[D.T_observation]]"}}}),t._v(" "),e("p",[t._v("Get the probability distribution of the observation given a state and action.")]),t._v(" "),e("p",[t._v("In mathematical terms (discrete case), given an action "),e("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[e("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.197ex",height:"1.02ex",viewBox:"0 -441 529 451"}},[e("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[e("g",{attrs:{"data-mml-node":"math"}},[e("g",{attrs:{"data-mml-node":"mi"}},[e("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})])])])])]),t._v(", this function represents: "),e("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[e("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.078ex",height:"2.262ex",viewBox:"0 -750 4012.7 1000"}},[e("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[e("g",{attrs:{"data-mml-node":"math"}},[e("g",{attrs:{"data-mml-node":"mi"}},[e("path",{attrs:{"data-c":"50",d:"M287 628Q287 635 230 637Q206 637 199 638T192 648Q192 649 194 659Q200 679 203 681T397 683Q587 682 600 680Q664 669 707 631T751 530Q751 453 685 389Q616 321 507 303Q500 302 402 301H307L277 182Q247 66 247 59Q247 55 248 54T255 50T272 48T305 46H336Q342 37 342 35Q342 19 335 5Q330 0 319 0Q316 0 282 1T182 2Q120 2 87 2T51 1Q33 1 33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM645 554Q645 567 643 575T634 597T609 619T560 635Q553 636 480 637Q463 637 445 637T416 636T404 636Q391 635 386 627Q384 621 367 550T332 412T314 344Q314 342 395 342H407H430Q542 342 590 392Q617 419 631 471T645 554Z"}})]),e("g",{attrs:{"data-mml-node":"mo",transform:"translate(751, 0)"}},[e("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),e("g",{attrs:{"data-mml-node":"mi",transform:"translate(1140, 0)"}},[e("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})]),e("g",{attrs:{"data-mml-node":"mo",transform:"translate(1903, 0)"}},[e("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),e("g",{attrs:{"data-mml-node":"mi",transform:"translate(2181, 0)"}},[e("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),e("g",{attrs:{"data-mml-node":"mo",transform:"translate(2650, 0)"}},[e("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),e("g",{attrs:{"data-mml-node":"mi",transform:"translate(3094.7, 0)"}},[e("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),e("g",{attrs:{"data-mml-node":"mo",transform:"translate(3623.7, 0)"}},[e("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(",\nwhere "),e("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[e("svg",{staticStyle:{"vertical-align":"-0.05ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.726ex",height:"1.643ex",viewBox:"0 -704 763 726"}},[e("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[e("g",{attrs:{"data-mml-node":"math"}},[e("g",{attrs:{"data-mml-node":"mi"}},[e("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})])])])])]),t._v(" is the random variable of the observation.")],1),t._v(" "),e("h4",{attrs:{id:"parameters-12"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#parameters-12"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),e("li",[e("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),e("h4",{attrs:{id:"returns-18"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#returns-18"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),e("p",[t._v("The probability distribution of the observation.")]),t._v(" "),e("h3",{attrs:{id:"get-observation-space-7"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-7"}},[t._v("#")]),t._v(" get_observation_space "),e("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),e("skdecide-signature",{attrs:{name:"get_observation_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),e("p",[t._v("Get the (cached) observation space (finite or infinite set).")]),t._v(" "),e("p",[t._v("By default, "),e("code",[t._v("PartiallyObservable.get_observation_space()")]),t._v(" internally\ncalls "),e("code",[t._v("PartiallyObservable._get_observation_space_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the observation space is assumed to be constant).")]),t._v(" "),e("h4",{attrs:{id:"returns-19"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#returns-19"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),e("p",[t._v("The observation space.")]),t._v(" "),e("h3",{attrs:{id:"is-observation-5"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#is-observation-5"}},[t._v("#")]),t._v(" is_observation "),e("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),e("skdecide-signature",{attrs:{name:"is_observation",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"bool"}}}),t._v(" "),e("p",[t._v("Check that an observation indeed belongs to the domain observation space.")]),t._v(" "),e("div",{staticClass:"custom-block tip"},[e("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),e("p",[t._v("By default, this function is implemented using the "),e("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\nobservation space provided by "),e("code",[t._v("PartiallyObservable.get_observation_space()")]),t._v(", but it can be overridden for\nfaster implementations.")])]),t._v(" "),e("h4",{attrs:{id:"parameters-13"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#parameters-13"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),e("h4",{attrs:{id:"returns-20"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#returns-20"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),e("p",[t._v("True if the observation belongs to the domain observation space (False otherwise).")]),t._v(" "),e("h3",{attrs:{id:"get-observation-4"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-4"}},[t._v("#")]),t._v(" _get_observation "),e("Badge",{attrs:{text:"TransformedObservable",type:"warn"}})],1),t._v(" "),e("skdecide-signature",{attrs:{name:"_get_observation",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),e("p",[t._v("Get the deterministic observation given a state and action.")]),t._v(" "),e("h4",{attrs:{id:"parameters-14"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#parameters-14"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),e("li",[e("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),e("h4",{attrs:{id:"returns-21"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#returns-21"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),e("p",[t._v("The probability distribution of the observation.")]),t._v(" "),e("h3",{attrs:{id:"get-observation-distribution-6"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-distribution-6"}},[t._v("#")]),t._v(" _get_observation_distribution "),e("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),e("skdecide-signature",{attrs:{name:"_get_observation_distribution",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"Distribution[D.T_agent[D.T_observation]]"}}}),t._v(" "),e("p",[t._v("Get the probability distribution of the observation given a state and action.")]),t._v(" "),e("p",[t._v("In mathematical terms (discrete case), given an action "),e("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[e("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.197ex",height:"1.02ex",viewBox:"0 -441 529 451"}},[e("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[e("g",{attrs:{"data-mml-node":"math"}},[e("g",{attrs:{"data-mml-node":"mi"}},[e("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})])])])])]),t._v(", this function represents: "),e("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[e("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.078ex",height:"2.262ex",viewBox:"0 -750 4012.7 1000"}},[e("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[e("g",{attrs:{"data-mml-node":"math"}},[e("g",{attrs:{"data-mml-node":"mi"}},[e("path",{attrs:{"data-c":"50",d:"M287 628Q287 635 230 637Q206 637 199 638T192 648Q192 649 194 659Q200 679 203 681T397 683Q587 682 600 680Q664 669 707 631T751 530Q751 453 685 389Q616 321 507 303Q500 302 402 301H307L277 182Q247 66 247 59Q247 55 248 54T255 50T272 48T305 46H336Q342 37 342 35Q342 19 335 5Q330 0 319 0Q316 0 282 1T182 2Q120 2 87 2T51 1Q33 1 33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM645 554Q645 567 643 575T634 597T609 619T560 635Q553 636 480 637Q463 637 445 637T416 636T404 636Q391 635 386 627Q384 621 367 550T332 412T314 344Q314 342 395 342H407H430Q542 342 590 392Q617 419 631 471T645 554Z"}})]),e("g",{attrs:{"data-mml-node":"mo",transform:"translate(751, 0)"}},[e("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),e("g",{attrs:{"data-mml-node":"mi",transform:"translate(1140, 0)"}},[e("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})]),e("g",{attrs:{"data-mml-node":"mo",transform:"translate(1903, 0)"}},[e("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),e("g",{attrs:{"data-mml-node":"mi",transform:"translate(2181, 0)"}},[e("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),e("g",{attrs:{"data-mml-node":"mo",transform:"translate(2650, 0)"}},[e("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),e("g",{attrs:{"data-mml-node":"mi",transform:"translate(3094.7, 0)"}},[e("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),e("g",{attrs:{"data-mml-node":"mo",transform:"translate(3623.7, 0)"}},[e("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(",\nwhere "),e("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[e("svg",{staticStyle:{"vertical-align":"-0.05ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.726ex",height:"1.643ex",viewBox:"0 -704 763 726"}},[e("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[e("g",{attrs:{"data-mml-node":"math"}},[e("g",{attrs:{"data-mml-node":"mi"}},[e("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})])])])])]),t._v(" is the random variable of the observation.")],1),t._v(" "),e("h4",{attrs:{id:"parameters-15"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#parameters-15"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),e("li",[e("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),e("h4",{attrs:{id:"returns-22"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#returns-22"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),e("p",[t._v("The probability distribution of the observation.")]),t._v(" "),e("h3",{attrs:{id:"get-observation-space-8"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-8"}},[t._v("#")]),t._v(" _get_observation_space "),e("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),e("skdecide-signature",{attrs:{name:"_get_observation_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),e("p",[t._v("Get the (cached) observation space (finite or infinite set).")]),t._v(" "),e("p",[t._v("By default, "),e("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(" internally\ncalls "),e("code",[t._v("PartiallyObservable._get_observation_space_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the observation space is assumed to be constant).")]),t._v(" "),e("h4",{attrs:{id:"returns-23"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#returns-23"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),e("p",[t._v("The observation space.")]),t._v(" "),e("h3",{attrs:{id:"get-observation-space-9"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-9"}},[t._v("#")]),t._v(" _get_observation_space_ "),e("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),e("skdecide-signature",{attrs:{name:"_get_observation_space_",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),e("p",[t._v("Get the observation space (finite or infinite set).")]),t._v(" "),e("p",[t._v("This is a helper function called by default from "),e("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(", the difference\nbeing that the result is not cached here.")]),t._v(" "),e("div",{staticClass:"custom-block tip"},[e("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),e("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),e("h4",{attrs:{id:"returns-24"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#returns-24"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),e("p",[t._v("The observation space.")]),t._v(" "),e("h3",{attrs:{id:"is-observation-6"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#is-observation-6"}},[t._v("#")]),t._v(" _is_observation "),e("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),e("skdecide-signature",{attrs:{name:"_is_observation",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"bool"}}}),t._v(" "),e("p",[t._v("Check that an observation indeed belongs to the domain observation space.")]),t._v(" "),e("div",{staticClass:"custom-block tip"},[e("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),e("p",[t._v("By default, this function is implemented using the "),e("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\nobservation space provided by "),e("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(", but it can be overridden for\nfaster implementations.")])]),t._v(" "),e("h4",{attrs:{id:"parameters-16"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#parameters-16"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),e("h4",{attrs:{id:"returns-25"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#returns-25"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),e("p",[t._v("True if the observation belongs to the domain observation space (False otherwise).")])],1)}),[],!1,null,null,null);a.default=r.exports}}]); \ No newline at end of file diff --git a/assets/js/37.13325dbd.js b/assets/js/37.87bc5b81.js similarity index 98% rename from assets/js/37.13325dbd.js rename to assets/js/37.87bc5b81.js index f238f284df..4201a8036f 100644 --- a/assets/js/37.13325dbd.js +++ b/assets/js/37.87bc5b81.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[37],{555:function(e,s,t){"use strict";t.r(s);var r=t(38),a=Object(r.a)({},(function(){var e=this,s=e.$createElement,t=e._self._c||s;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"builders-domain-scheduling-precedence"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#builders-domain-scheduling-precedence"}},[e._v("#")]),e._v(" builders.domain.scheduling.precedence")]),e._v(" "),t("div",{staticClass:"custom-block tip"},[t("p",{staticClass:"custom-block-title"},[e._v("Domain specification")]),e._v(" "),t("skdecide-summary")],1),e._v(" "),t("h2",{attrs:{id:"withprecedence"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#withprecedence"}},[e._v("#")]),e._v(" WithPrecedence")]),e._v(" "),t("p",[e._v("A domain must inherit this class if there exist some predecence constraints between tasks.")]),e._v(" "),t("h3",{attrs:{id:"get-predecessors"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#get-predecessors"}},[e._v("#")]),e._v(" get_predecessors "),t("Badge",{attrs:{text:"WithPrecedence",type:"tip"}})],1),e._v(" "),t("skdecide-signature",{attrs:{name:"get_predecessors",sig:{params:[{name:"self"}],return:"Dict[int, List[int]]"}}}),e._v(" "),t("p",[e._v("Return the predecessors of the task. Successors are given as a list for a task given as a key.")]),e._v(" "),t("h3",{attrs:{id:"get-successors"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#get-successors"}},[e._v("#")]),e._v(" get_successors "),t("Badge",{attrs:{text:"WithPrecedence",type:"tip"}})],1),e._v(" "),t("skdecide-signature",{attrs:{name:"get_successors",sig:{params:[{name:"self"}],return:"Dict[int, List[int]]"}}}),e._v(" "),t("p",[e._v("Return the successors of the tasks. Successors are given as a list for a task given as a key.")]),e._v(" "),t("h3",{attrs:{id:"get-predecessors-2"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#get-predecessors-2"}},[e._v("#")]),e._v(" _get_predecessors "),t("Badge",{attrs:{text:"WithPrecedence",type:"tip"}})],1),e._v(" "),t("skdecide-signature",{attrs:{name:"_get_predecessors",sig:{params:[{name:"self"}],return:"Dict[int, List[int]]"}}}),e._v(" "),t("p",[e._v("Return the predecessors of the task. Successors are given as a list for a task given as a key.")]),e._v(" "),t("h3",{attrs:{id:"get-successors-2"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#get-successors-2"}},[e._v("#")]),e._v(" _get_successors "),t("Badge",{attrs:{text:"WithPrecedence",type:"tip"}})],1),e._v(" "),t("skdecide-signature",{attrs:{name:"_get_successors",sig:{params:[{name:"self"}],return:"Dict[int, List[int]]"}}}),e._v(" "),t("p",[e._v("Return the successors of the tasks. Successors are given as a list for a task given as a key.")]),e._v(" "),t("h2",{attrs:{id:"withoutprecedence"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#withoutprecedence"}},[e._v("#")]),e._v(" WithoutPrecedence")]),e._v(" "),t("p",[e._v("A domain must inherit this class if there are no predecence constraints between tasks.")]),e._v(" "),t("h3",{attrs:{id:"get-predecessors-3"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#get-predecessors-3"}},[e._v("#")]),e._v(" get_predecessors "),t("Badge",{attrs:{text:"WithPrecedence",type:"warn"}})],1),e._v(" "),t("skdecide-signature",{attrs:{name:"get_predecessors",sig:{params:[{name:"self"}],return:"Dict[int, List[int]]"}}}),e._v(" "),t("p",[e._v("Return the predecessors of the task. Successors are given as a list for a task given as a key.")]),e._v(" "),t("h3",{attrs:{id:"get-successors-3"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#get-successors-3"}},[e._v("#")]),e._v(" get_successors "),t("Badge",{attrs:{text:"WithPrecedence",type:"warn"}})],1),e._v(" "),t("skdecide-signature",{attrs:{name:"get_successors",sig:{params:[{name:"self"}],return:"Dict[int, List[int]]"}}}),e._v(" "),t("p",[e._v("Return the successors of the tasks. Successors are given as a list for a task given as a key.")]),e._v(" "),t("h3",{attrs:{id:"get-predecessors-4"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#get-predecessors-4"}},[e._v("#")]),e._v(" _get_predecessors "),t("Badge",{attrs:{text:"WithPrecedence",type:"warn"}})],1),e._v(" "),t("skdecide-signature",{attrs:{name:"_get_predecessors",sig:{params:[{name:"self"}],return:"Dict[int, List[int]]"}}}),e._v(" "),t("p",[e._v("Return the successors of the tasks. Successors are given as a list for a task given as a key.")]),e._v(" "),t("h3",{attrs:{id:"get-successors-4"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#get-successors-4"}},[e._v("#")]),e._v(" _get_successors "),t("Badge",{attrs:{text:"WithPrecedence",type:"warn"}})],1),e._v(" "),t("skdecide-signature",{attrs:{name:"_get_successors",sig:{params:[{name:"self"}],return:"Dict[int, List[int]]"}}}),e._v(" "),t("p",[e._v("Return the successors of the tasks. Successors are given as a list for a task given as a key.")])],1)}),[],!1,null,null,null);s.default=a.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[37],{554:function(e,s,t){"use strict";t.r(s);var r=t(38),a=Object(r.a)({},(function(){var e=this,s=e.$createElement,t=e._self._c||s;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"builders-domain-scheduling-precedence"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#builders-domain-scheduling-precedence"}},[e._v("#")]),e._v(" builders.domain.scheduling.precedence")]),e._v(" "),t("div",{staticClass:"custom-block tip"},[t("p",{staticClass:"custom-block-title"},[e._v("Domain specification")]),e._v(" "),t("skdecide-summary")],1),e._v(" "),t("h2",{attrs:{id:"withprecedence"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#withprecedence"}},[e._v("#")]),e._v(" WithPrecedence")]),e._v(" "),t("p",[e._v("A domain must inherit this class if there exist some predecence constraints between tasks.")]),e._v(" "),t("h3",{attrs:{id:"get-predecessors"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#get-predecessors"}},[e._v("#")]),e._v(" get_predecessors "),t("Badge",{attrs:{text:"WithPrecedence",type:"tip"}})],1),e._v(" "),t("skdecide-signature",{attrs:{name:"get_predecessors",sig:{params:[{name:"self"}],return:"Dict[int, List[int]]"}}}),e._v(" "),t("p",[e._v("Return the predecessors of the task. Successors are given as a list for a task given as a key.")]),e._v(" "),t("h3",{attrs:{id:"get-successors"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#get-successors"}},[e._v("#")]),e._v(" get_successors "),t("Badge",{attrs:{text:"WithPrecedence",type:"tip"}})],1),e._v(" "),t("skdecide-signature",{attrs:{name:"get_successors",sig:{params:[{name:"self"}],return:"Dict[int, List[int]]"}}}),e._v(" "),t("p",[e._v("Return the successors of the tasks. Successors are given as a list for a task given as a key.")]),e._v(" "),t("h3",{attrs:{id:"get-predecessors-2"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#get-predecessors-2"}},[e._v("#")]),e._v(" _get_predecessors "),t("Badge",{attrs:{text:"WithPrecedence",type:"tip"}})],1),e._v(" "),t("skdecide-signature",{attrs:{name:"_get_predecessors",sig:{params:[{name:"self"}],return:"Dict[int, List[int]]"}}}),e._v(" "),t("p",[e._v("Return the predecessors of the task. Successors are given as a list for a task given as a key.")]),e._v(" "),t("h3",{attrs:{id:"get-successors-2"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#get-successors-2"}},[e._v("#")]),e._v(" _get_successors "),t("Badge",{attrs:{text:"WithPrecedence",type:"tip"}})],1),e._v(" "),t("skdecide-signature",{attrs:{name:"_get_successors",sig:{params:[{name:"self"}],return:"Dict[int, List[int]]"}}}),e._v(" "),t("p",[e._v("Return the successors of the tasks. Successors are given as a list for a task given as a key.")]),e._v(" "),t("h2",{attrs:{id:"withoutprecedence"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#withoutprecedence"}},[e._v("#")]),e._v(" WithoutPrecedence")]),e._v(" "),t("p",[e._v("A domain must inherit this class if there are no predecence constraints between tasks.")]),e._v(" "),t("h3",{attrs:{id:"get-predecessors-3"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#get-predecessors-3"}},[e._v("#")]),e._v(" get_predecessors "),t("Badge",{attrs:{text:"WithPrecedence",type:"warn"}})],1),e._v(" "),t("skdecide-signature",{attrs:{name:"get_predecessors",sig:{params:[{name:"self"}],return:"Dict[int, List[int]]"}}}),e._v(" "),t("p",[e._v("Return the predecessors of the task. Successors are given as a list for a task given as a key.")]),e._v(" "),t("h3",{attrs:{id:"get-successors-3"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#get-successors-3"}},[e._v("#")]),e._v(" get_successors "),t("Badge",{attrs:{text:"WithPrecedence",type:"warn"}})],1),e._v(" "),t("skdecide-signature",{attrs:{name:"get_successors",sig:{params:[{name:"self"}],return:"Dict[int, List[int]]"}}}),e._v(" "),t("p",[e._v("Return the successors of the tasks. Successors are given as a list for a task given as a key.")]),e._v(" "),t("h3",{attrs:{id:"get-predecessors-4"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#get-predecessors-4"}},[e._v("#")]),e._v(" _get_predecessors "),t("Badge",{attrs:{text:"WithPrecedence",type:"warn"}})],1),e._v(" "),t("skdecide-signature",{attrs:{name:"_get_predecessors",sig:{params:[{name:"self"}],return:"Dict[int, List[int]]"}}}),e._v(" "),t("p",[e._v("Return the successors of the tasks. Successors are given as a list for a task given as a key.")]),e._v(" "),t("h3",{attrs:{id:"get-successors-4"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#get-successors-4"}},[e._v("#")]),e._v(" _get_successors "),t("Badge",{attrs:{text:"WithPrecedence",type:"warn"}})],1),e._v(" "),t("skdecide-signature",{attrs:{name:"_get_successors",sig:{params:[{name:"self"}],return:"Dict[int, List[int]]"}}}),e._v(" "),t("p",[e._v("Return the successors of the tasks. Successors are given as a list for a task given as a key.")])],1)}),[],!1,null,null,null);s.default=a.exports}}]); \ No newline at end of file diff --git a/assets/js/38.d76321e7.js b/assets/js/38.bd8643b8.js similarity index 99% rename from assets/js/38.d76321e7.js rename to assets/js/38.bd8643b8.js index b696f66a85..f21e7e176e 100644 --- a/assets/js/38.d76321e7.js +++ b/assets/js/38.bd8643b8.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[38],{553:function(e,t,a){"use strict";a.r(t);var s=a(38),r=Object(s.a)({},(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("h1",{attrs:{id:"builders-domain-scheduling-preemptivity"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#builders-domain-scheduling-preemptivity"}},[e._v("#")]),e._v(" builders.domain.scheduling.preemptivity")]),e._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[e._v("Domain specification")]),e._v(" "),a("skdecide-summary")],1),e._v(" "),a("h2",{attrs:{id:"resumetype"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#resumetype"}},[e._v("#")]),e._v(" ResumeType")]),e._v(" "),a("p",[e._v("An enumeration.")]),e._v(" "),a("h2",{attrs:{id:"withpreemptivity"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#withpreemptivity"}},[e._v("#")]),e._v(" WithPreemptivity")]),e._v(" "),a("p",[e._v("A domain must inherit this class if there exist at least 1 task that can be paused.")]),e._v(" "),a("h3",{attrs:{id:"get-task-paused-non-renewable-resource-returned"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-task-paused-non-renewable-resource-returned"}},[e._v("#")]),e._v(" get_task_paused_non_renewable_resource_returned "),a("Badge",{attrs:{text:"WithPreemptivity",type:"tip"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"get_task_paused_non_renewable_resource_returned",sig:{params:[{name:"self"}],return:"Dict[int, bool]"}}}),e._v(" "),a("p",[e._v("Return a dictionary where the key is a task id and the value is of type bool indicating\nif the non-renewable resources are consumed when the task is paused (False) or made available again (True).\nE.g. {\n2: False # if paused, non-renewable resource will be consumed\n5: True # if paused, the non-renewable resource will be available again\n}")]),e._v(" "),a("h3",{attrs:{id:"get-task-preemptivity"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-task-preemptivity"}},[e._v("#")]),e._v(" get_task_preemptivity "),a("Badge",{attrs:{text:"WithPreemptivity",type:"tip"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"get_task_preemptivity",sig:{params:[{name:"self"}],return:"Dict[int, bool]"}}}),e._v(" "),a("p",[e._v("Return a dictionary where the key is a task id and the value a boolean indicating\nif the task can be paused or stopped.\nE.g. {\n1: False\n2: True\n3: False\n4: False\n5: True\n6: False\n}")]),e._v(" "),a("h3",{attrs:{id:"get-task-resuming-type"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-task-resuming-type"}},[e._v("#")]),e._v(" get_task_resuming_type "),a("Badge",{attrs:{text:"WithPreemptivity",type:"tip"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"get_task_resuming_type",sig:{params:[{name:"self"}],return:"Dict[int, ResumeType]"}}}),e._v(" "),a("p",[e._v("Return a dictionary where the key is a task id and the value is of type ResumeType indicating\nif the task can be resumed (restarted from where it was paused with no time loss)\nor restarted (restarted from the start).\nE.g. {\n1: ResumeType.NA\n2: ResumeType.Resume\n3: ResumeType.NA\n4: ResumeType.NA\n5: ResumeType.Restart\n6: ResumeType.NA\n}")]),e._v(" "),a("h3",{attrs:{id:"get-task-paused-non-renewable-resource-returned-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-task-paused-non-renewable-resource-returned-2"}},[e._v("#")]),e._v(" _get_task_paused_non_renewable_resource_returned "),a("Badge",{attrs:{text:"WithPreemptivity",type:"tip"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"_get_task_paused_non_renewable_resource_returned",sig:{params:[{name:"self"}],return:"Dict[int, bool]"}}}),e._v(" "),a("p",[e._v("Return a dictionary where the key is a task id and the value is of type bool indicating\nif the non-renewable resources are consumed when the task is paused (False) or made available again (True).\nE.g. {\n2: False # if paused, non-renewable resource will be consumed\n5: True # if paused, the non-renewable resource will be available again\n}")]),e._v(" "),a("h3",{attrs:{id:"get-task-preemptivity-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-task-preemptivity-2"}},[e._v("#")]),e._v(" _get_task_preemptivity "),a("Badge",{attrs:{text:"WithPreemptivity",type:"tip"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"_get_task_preemptivity",sig:{params:[{name:"self"}],return:"Dict[int, bool]"}}}),e._v(" "),a("p",[e._v("Return a dictionary where the key is a task id and the value a boolean indicating\nif the task can be paused or stopped.\nE.g. {\n1: False\n2: True\n3: False\n4: False\n5: True\n6: False\n}")]),e._v(" "),a("h3",{attrs:{id:"get-task-resuming-type-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-task-resuming-type-2"}},[e._v("#")]),e._v(" _get_task_resuming_type "),a("Badge",{attrs:{text:"WithPreemptivity",type:"tip"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"_get_task_resuming_type",sig:{params:[{name:"self"}],return:"Dict[int, ResumeType]"}}}),e._v(" "),a("p",[e._v("Return a dictionary where the key is a task id and the value is of type ResumeType indicating\nif the task can be resumed (restarted from where it was paused with no time loss)\nor restarted (restarted from the start).\nE.g. {\n1: ResumeType.NA\n2: ResumeType.Resume\n3: ResumeType.NA\n4: ResumeType.NA\n5: ResumeType.Restart\n6: ResumeType.NA\n}")]),e._v(" "),a("h2",{attrs:{id:"withoutpreemptivity"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#withoutpreemptivity"}},[e._v("#")]),e._v(" WithoutPreemptivity")]),e._v(" "),a("p",[e._v("A domain must inherit this class if none of the task can be paused.")]),e._v(" "),a("h3",{attrs:{id:"get-task-paused-non-renewable-resource-returned-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-task-paused-non-renewable-resource-returned-3"}},[e._v("#")]),e._v(" get_task_paused_non_renewable_resource_returned "),a("Badge",{attrs:{text:"WithPreemptivity",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"get_task_paused_non_renewable_resource_returned",sig:{params:[{name:"self"}],return:"Dict[int, bool]"}}}),e._v(" "),a("p",[e._v("Return a dictionary where the key is a task id and the value is of type bool indicating\nif the non-renewable resources are consumed when the task is paused (False) or made available again (True).\nE.g. {\n2: False # if paused, non-renewable resource will be consumed\n5: True # if paused, the non-renewable resource will be available again\n}")]),e._v(" "),a("h3",{attrs:{id:"get-task-preemptivity-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-task-preemptivity-3"}},[e._v("#")]),e._v(" get_task_preemptivity "),a("Badge",{attrs:{text:"WithPreemptivity",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"get_task_preemptivity",sig:{params:[{name:"self"}],return:"Dict[int, bool]"}}}),e._v(" "),a("p",[e._v("Return a dictionary where the key is a task id and the value a boolean indicating\nif the task can be paused or stopped.\nE.g. {\n1: False\n2: True\n3: False\n4: False\n5: True\n6: False\n}")]),e._v(" "),a("h3",{attrs:{id:"get-task-resuming-type-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-task-resuming-type-3"}},[e._v("#")]),e._v(" get_task_resuming_type "),a("Badge",{attrs:{text:"WithPreemptivity",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"get_task_resuming_type",sig:{params:[{name:"self"}],return:"Dict[int, ResumeType]"}}}),e._v(" "),a("p",[e._v("Return a dictionary where the key is a task id and the value is of type ResumeType indicating\nif the task can be resumed (restarted from where it was paused with no time loss)\nor restarted (restarted from the start).\nE.g. {\n1: ResumeType.NA\n2: ResumeType.Resume\n3: ResumeType.NA\n4: ResumeType.NA\n5: ResumeType.Restart\n6: ResumeType.NA\n}")]),e._v(" "),a("h3",{attrs:{id:"get-task-paused-non-renewable-resource-returned-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-task-paused-non-renewable-resource-returned-4"}},[e._v("#")]),e._v(" _get_task_paused_non_renewable_resource_returned "),a("Badge",{attrs:{text:"WithPreemptivity",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"_get_task_paused_non_renewable_resource_returned",sig:{params:[{name:"self"}],return:"Dict[int, bool]"}}}),e._v(" "),a("p",[e._v("Return a dictionary where the key is a task id and the value is of type bool indicating\nif the non-renewable resources are consumed when the task is paused (False) or made available again (True).\nE.g. {\n2: False # if paused, non-renewable resource will be consumed\n5: True # if paused, the non-renewable resource will be available again\n}")]),e._v(" "),a("h3",{attrs:{id:"get-task-preemptivity-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-task-preemptivity-4"}},[e._v("#")]),e._v(" _get_task_preemptivity "),a("Badge",{attrs:{text:"WithPreemptivity",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"_get_task_preemptivity",sig:{params:[{name:"self"}],return:"Dict[int, bool]"}}}),e._v(" "),a("p",[e._v("Return a dictionary where the key is a task id and the value a boolean indicating\nif the task can be paused or stopped.\nE.g. {\n1: False\n2: True\n3: False\n4: False\n5: True\n6: False\n}")]),e._v(" "),a("h3",{attrs:{id:"get-task-resuming-type-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-task-resuming-type-4"}},[e._v("#")]),e._v(" _get_task_resuming_type "),a("Badge",{attrs:{text:"WithPreemptivity",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"_get_task_resuming_type",sig:{params:[{name:"self"}],return:"Dict[int, ResumeType]"}}}),e._v(" "),a("p",[e._v("Return a dictionary where the key is a task id and the value is of type ResumeType indicating\nif the task can be resumed (restarted from where it was paused with no time loss)\nor restarted (restarted from the start).\nE.g. {\n1: ResumeType.NA\n2: ResumeType.Resume\n3: ResumeType.NA\n4: ResumeType.NA\n5: ResumeType.Restart\n6: ResumeType.NA\n}")])],1)}),[],!1,null,null,null);t.default=r.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[38],{555:function(e,t,a){"use strict";a.r(t);var s=a(38),r=Object(s.a)({},(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("h1",{attrs:{id:"builders-domain-scheduling-preemptivity"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#builders-domain-scheduling-preemptivity"}},[e._v("#")]),e._v(" builders.domain.scheduling.preemptivity")]),e._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[e._v("Domain specification")]),e._v(" "),a("skdecide-summary")],1),e._v(" "),a("h2",{attrs:{id:"resumetype"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#resumetype"}},[e._v("#")]),e._v(" ResumeType")]),e._v(" "),a("p",[e._v("An enumeration.")]),e._v(" "),a("h2",{attrs:{id:"withpreemptivity"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#withpreemptivity"}},[e._v("#")]),e._v(" WithPreemptivity")]),e._v(" "),a("p",[e._v("A domain must inherit this class if there exist at least 1 task that can be paused.")]),e._v(" "),a("h3",{attrs:{id:"get-task-paused-non-renewable-resource-returned"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-task-paused-non-renewable-resource-returned"}},[e._v("#")]),e._v(" get_task_paused_non_renewable_resource_returned "),a("Badge",{attrs:{text:"WithPreemptivity",type:"tip"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"get_task_paused_non_renewable_resource_returned",sig:{params:[{name:"self"}],return:"Dict[int, bool]"}}}),e._v(" "),a("p",[e._v("Return a dictionary where the key is a task id and the value is of type bool indicating\nif the non-renewable resources are consumed when the task is paused (False) or made available again (True).\nE.g. {\n2: False # if paused, non-renewable resource will be consumed\n5: True # if paused, the non-renewable resource will be available again\n}")]),e._v(" "),a("h3",{attrs:{id:"get-task-preemptivity"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-task-preemptivity"}},[e._v("#")]),e._v(" get_task_preemptivity "),a("Badge",{attrs:{text:"WithPreemptivity",type:"tip"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"get_task_preemptivity",sig:{params:[{name:"self"}],return:"Dict[int, bool]"}}}),e._v(" "),a("p",[e._v("Return a dictionary where the key is a task id and the value a boolean indicating\nif the task can be paused or stopped.\nE.g. {\n1: False\n2: True\n3: False\n4: False\n5: True\n6: False\n}")]),e._v(" "),a("h3",{attrs:{id:"get-task-resuming-type"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-task-resuming-type"}},[e._v("#")]),e._v(" get_task_resuming_type "),a("Badge",{attrs:{text:"WithPreemptivity",type:"tip"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"get_task_resuming_type",sig:{params:[{name:"self"}],return:"Dict[int, ResumeType]"}}}),e._v(" "),a("p",[e._v("Return a dictionary where the key is a task id and the value is of type ResumeType indicating\nif the task can be resumed (restarted from where it was paused with no time loss)\nor restarted (restarted from the start).\nE.g. {\n1: ResumeType.NA\n2: ResumeType.Resume\n3: ResumeType.NA\n4: ResumeType.NA\n5: ResumeType.Restart\n6: ResumeType.NA\n}")]),e._v(" "),a("h3",{attrs:{id:"get-task-paused-non-renewable-resource-returned-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-task-paused-non-renewable-resource-returned-2"}},[e._v("#")]),e._v(" _get_task_paused_non_renewable_resource_returned "),a("Badge",{attrs:{text:"WithPreemptivity",type:"tip"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"_get_task_paused_non_renewable_resource_returned",sig:{params:[{name:"self"}],return:"Dict[int, bool]"}}}),e._v(" "),a("p",[e._v("Return a dictionary where the key is a task id and the value is of type bool indicating\nif the non-renewable resources are consumed when the task is paused (False) or made available again (True).\nE.g. {\n2: False # if paused, non-renewable resource will be consumed\n5: True # if paused, the non-renewable resource will be available again\n}")]),e._v(" "),a("h3",{attrs:{id:"get-task-preemptivity-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-task-preemptivity-2"}},[e._v("#")]),e._v(" _get_task_preemptivity "),a("Badge",{attrs:{text:"WithPreemptivity",type:"tip"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"_get_task_preemptivity",sig:{params:[{name:"self"}],return:"Dict[int, bool]"}}}),e._v(" "),a("p",[e._v("Return a dictionary where the key is a task id and the value a boolean indicating\nif the task can be paused or stopped.\nE.g. {\n1: False\n2: True\n3: False\n4: False\n5: True\n6: False\n}")]),e._v(" "),a("h3",{attrs:{id:"get-task-resuming-type-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-task-resuming-type-2"}},[e._v("#")]),e._v(" _get_task_resuming_type "),a("Badge",{attrs:{text:"WithPreemptivity",type:"tip"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"_get_task_resuming_type",sig:{params:[{name:"self"}],return:"Dict[int, ResumeType]"}}}),e._v(" "),a("p",[e._v("Return a dictionary where the key is a task id and the value is of type ResumeType indicating\nif the task can be resumed (restarted from where it was paused with no time loss)\nor restarted (restarted from the start).\nE.g. {\n1: ResumeType.NA\n2: ResumeType.Resume\n3: ResumeType.NA\n4: ResumeType.NA\n5: ResumeType.Restart\n6: ResumeType.NA\n}")]),e._v(" "),a("h2",{attrs:{id:"withoutpreemptivity"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#withoutpreemptivity"}},[e._v("#")]),e._v(" WithoutPreemptivity")]),e._v(" "),a("p",[e._v("A domain must inherit this class if none of the task can be paused.")]),e._v(" "),a("h3",{attrs:{id:"get-task-paused-non-renewable-resource-returned-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-task-paused-non-renewable-resource-returned-3"}},[e._v("#")]),e._v(" get_task_paused_non_renewable_resource_returned "),a("Badge",{attrs:{text:"WithPreemptivity",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"get_task_paused_non_renewable_resource_returned",sig:{params:[{name:"self"}],return:"Dict[int, bool]"}}}),e._v(" "),a("p",[e._v("Return a dictionary where the key is a task id and the value is of type bool indicating\nif the non-renewable resources are consumed when the task is paused (False) or made available again (True).\nE.g. {\n2: False # if paused, non-renewable resource will be consumed\n5: True # if paused, the non-renewable resource will be available again\n}")]),e._v(" "),a("h3",{attrs:{id:"get-task-preemptivity-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-task-preemptivity-3"}},[e._v("#")]),e._v(" get_task_preemptivity "),a("Badge",{attrs:{text:"WithPreemptivity",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"get_task_preemptivity",sig:{params:[{name:"self"}],return:"Dict[int, bool]"}}}),e._v(" "),a("p",[e._v("Return a dictionary where the key is a task id and the value a boolean indicating\nif the task can be paused or stopped.\nE.g. {\n1: False\n2: True\n3: False\n4: False\n5: True\n6: False\n}")]),e._v(" "),a("h3",{attrs:{id:"get-task-resuming-type-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-task-resuming-type-3"}},[e._v("#")]),e._v(" get_task_resuming_type "),a("Badge",{attrs:{text:"WithPreemptivity",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"get_task_resuming_type",sig:{params:[{name:"self"}],return:"Dict[int, ResumeType]"}}}),e._v(" "),a("p",[e._v("Return a dictionary where the key is a task id and the value is of type ResumeType indicating\nif the task can be resumed (restarted from where it was paused with no time loss)\nor restarted (restarted from the start).\nE.g. {\n1: ResumeType.NA\n2: ResumeType.Resume\n3: ResumeType.NA\n4: ResumeType.NA\n5: ResumeType.Restart\n6: ResumeType.NA\n}")]),e._v(" "),a("h3",{attrs:{id:"get-task-paused-non-renewable-resource-returned-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-task-paused-non-renewable-resource-returned-4"}},[e._v("#")]),e._v(" _get_task_paused_non_renewable_resource_returned "),a("Badge",{attrs:{text:"WithPreemptivity",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"_get_task_paused_non_renewable_resource_returned",sig:{params:[{name:"self"}],return:"Dict[int, bool]"}}}),e._v(" "),a("p",[e._v("Return a dictionary where the key is a task id and the value is of type bool indicating\nif the non-renewable resources are consumed when the task is paused (False) or made available again (True).\nE.g. {\n2: False # if paused, non-renewable resource will be consumed\n5: True # if paused, the non-renewable resource will be available again\n}")]),e._v(" "),a("h3",{attrs:{id:"get-task-preemptivity-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-task-preemptivity-4"}},[e._v("#")]),e._v(" _get_task_preemptivity "),a("Badge",{attrs:{text:"WithPreemptivity",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"_get_task_preemptivity",sig:{params:[{name:"self"}],return:"Dict[int, bool]"}}}),e._v(" "),a("p",[e._v("Return a dictionary where the key is a task id and the value a boolean indicating\nif the task can be paused or stopped.\nE.g. {\n1: False\n2: True\n3: False\n4: False\n5: True\n6: False\n}")]),e._v(" "),a("h3",{attrs:{id:"get-task-resuming-type-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-task-resuming-type-4"}},[e._v("#")]),e._v(" _get_task_resuming_type "),a("Badge",{attrs:{text:"WithPreemptivity",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"_get_task_resuming_type",sig:{params:[{name:"self"}],return:"Dict[int, ResumeType]"}}}),e._v(" "),a("p",[e._v("Return a dictionary where the key is a task id and the value is of type ResumeType indicating\nif the task can be resumed (restarted from where it was paused with no time loss)\nor restarted (restarted from the start).\nE.g. {\n1: ResumeType.NA\n2: ResumeType.Resume\n3: ResumeType.NA\n4: ResumeType.NA\n5: ResumeType.Restart\n6: ResumeType.NA\n}")])],1)}),[],!1,null,null,null);t.default=r.exports}}]); \ No newline at end of file diff --git a/assets/js/39.c5487bfd.js b/assets/js/39.f812636a.js similarity index 99% rename from assets/js/39.c5487bfd.js rename to assets/js/39.f812636a.js index 9310f608ca..8130687718 100644 --- a/assets/js/39.c5487bfd.js +++ b/assets/js/39.f812636a.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[39],{554:function(e,t,a){"use strict";a.r(t);var r=a(38),s=Object(r.a)({},(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("h1",{attrs:{id:"builders-domain-scheduling-resource-availability"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#builders-domain-scheduling-resource-availability"}},[e._v("#")]),e._v(" builders.domain.scheduling.resource_availability")]),e._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[e._v("Domain specification")]),e._v(" "),a("skdecide-summary")],1),e._v(" "),a("h2",{attrs:{id:"uncertainresourceavailabilitychanges"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#uncertainresourceavailabilitychanges"}},[e._v("#")]),e._v(" UncertainResourceAvailabilityChanges")]),e._v(" "),a("p",[e._v("A domain must inherit this class if the availability of its resource vary in an uncertain way over time.")]),e._v(" "),a("h3",{attrs:{id:"check-unique-resource-names"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#check-unique-resource-names"}},[e._v("#")]),e._v(" check_unique_resource_names "),a("Badge",{attrs:{text:"UncertainResourceAvailabilityChanges",type:"tip"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"check_unique_resource_names",sig:{params:[{name:"self"}],return:"bool"}}}),e._v(" "),a("p",[e._v("Return True if there are no duplicates in resource names across both resource types\nand resource units name lists.")]),e._v(" "),a("h3",{attrs:{id:"sample-quantity-resource"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample-quantity-resource"}},[e._v("#")]),e._v(" sample_quantity_resource "),a("Badge",{attrs:{text:"UncertainResourceAvailabilityChanges",type:"tip"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"sample_quantity_resource",sig:{params:[{name:"self"},{name:"resource",annotation:"str"},{name:"time",annotation:"int"},{name:"**kwargs"}],return:"int"}}}),e._v(" "),a("p",[e._v("Sample an amount of resource availability (int) for the given resource\n(either resource type or resource unit) at the given time. This number should be the sum of the number of\nresource available at time t and the number of resource of this type consumed so far).")]),e._v(" "),a("h3",{attrs:{id:"sample-quantity-resource-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample-quantity-resource-2"}},[e._v("#")]),e._v(" _sample_quantity_resource "),a("Badge",{attrs:{text:"UncertainResourceAvailabilityChanges",type:"tip"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"_sample_quantity_resource",sig:{params:[{name:"self"},{name:"resource",annotation:"str"},{name:"time",annotation:"int"},{name:"**kwargs"}],return:"int"}}}),e._v(" "),a("p",[e._v("Sample an amount of resource availability (int) for the given resource\n(either resource type or resource unit) at the given time. This number should be the sum of the number of\nresource available at time t and the number of resource of this type consumed so far).")]),e._v(" "),a("h2",{attrs:{id:"deterministicresourceavailabilitychanges"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#deterministicresourceavailabilitychanges"}},[e._v("#")]),e._v(" DeterministicResourceAvailabilityChanges")]),e._v(" "),a("p",[e._v("A domain must inherit this class if the availability of its resource vary in a deterministic way over time.")]),e._v(" "),a("h3",{attrs:{id:"check-unique-resource-names-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#check-unique-resource-names-2"}},[e._v("#")]),e._v(" check_unique_resource_names "),a("Badge",{attrs:{text:"UncertainResourceAvailabilityChanges",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"check_unique_resource_names",sig:{params:[{name:"self"}],return:"bool"}}}),e._v(" "),a("p",[e._v("Return True if there are no duplicates in resource names across both resource types\nand resource units name lists.")]),e._v(" "),a("h3",{attrs:{id:"get-quantity-resource"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-quantity-resource"}},[e._v("#")]),e._v(" get_quantity_resource "),a("Badge",{attrs:{text:"DeterministicResourceAvailabilityChanges",type:"tip"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"get_quantity_resource",sig:{params:[{name:"self"},{name:"resource",annotation:"str"},{name:"time",annotation:"int"},{name:"**kwargs"}],return:"int"}}}),e._v(" "),a("p",[e._v("Return the resource availability (int) for the given resource\n(either resource type or resource unit) at the given time.")]),e._v(" "),a("h3",{attrs:{id:"sample-quantity-resource-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample-quantity-resource-3"}},[e._v("#")]),e._v(" sample_quantity_resource "),a("Badge",{attrs:{text:"UncertainResourceAvailabilityChanges",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"sample_quantity_resource",sig:{params:[{name:"self"},{name:"resource",annotation:"str"},{name:"time",annotation:"int"},{name:"**kwargs"}],return:"int"}}}),e._v(" "),a("p",[e._v("Sample an amount of resource availability (int) for the given resource\n(either resource type or resource unit) at the given time. This number should be the sum of the number of\nresource available at time t and the number of resource of this type consumed so far).")]),e._v(" "),a("h3",{attrs:{id:"get-quantity-resource-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-quantity-resource-2"}},[e._v("#")]),e._v(" _get_quantity_resource "),a("Badge",{attrs:{text:"DeterministicResourceAvailabilityChanges",type:"tip"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"_get_quantity_resource",sig:{params:[{name:"self"},{name:"resource",annotation:"str"},{name:"time",annotation:"int"},{name:"**kwargs"}],return:"int"}}}),e._v(" "),a("p",[e._v("Return the resource availability (int) for the given resource\n(either resource type or resource unit) at the given time.")]),e._v(" "),a("h3",{attrs:{id:"sample-quantity-resource-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample-quantity-resource-4"}},[e._v("#")]),e._v(" _sample_quantity_resource "),a("Badge",{attrs:{text:"UncertainResourceAvailabilityChanges",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"_sample_quantity_resource",sig:{params:[{name:"self"},{name:"resource",annotation:"str"},{name:"time",annotation:"int"},{name:"**kwargs"}],return:"int"}}}),e._v(" "),a("p",[e._v("Sample an amount of resource availability (int) for the given resource\n(either resource type or resource unit) at the given time. This number should be the sum of the number of\nresource available at time t and the number of resource of this type consumed so far).")]),e._v(" "),a("h2",{attrs:{id:"withoutresourceavailabilitychange"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#withoutresourceavailabilitychange"}},[e._v("#")]),e._v(" WithoutResourceAvailabilityChange")]),e._v(" "),a("p",[e._v("A domain must inherit this class if the availability of its resource does not vary over time.")]),e._v(" "),a("h3",{attrs:{id:"check-unique-resource-names-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#check-unique-resource-names-3"}},[e._v("#")]),e._v(" check_unique_resource_names "),a("Badge",{attrs:{text:"UncertainResourceAvailabilityChanges",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"check_unique_resource_names",sig:{params:[{name:"self"}],return:"bool"}}}),e._v(" "),a("p",[e._v("Return True if there are no duplicates in resource names across both resource types\nand resource units name lists.")]),e._v(" "),a("h3",{attrs:{id:"get-original-quantity-resource"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-original-quantity-resource"}},[e._v("#")]),e._v(" get_original_quantity_resource "),a("Badge",{attrs:{text:"WithoutResourceAvailabilityChange",type:"tip"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"get_original_quantity_resource",sig:{params:[{name:"self"},{name:"resource",annotation:"str"},{name:"**kwargs"}],return:"int"}}}),e._v(" "),a("p",[e._v("Return the resource availability (int) for the given resource (either resource type or resource unit).")]),e._v(" "),a("h3",{attrs:{id:"get-quantity-resource-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-quantity-resource-3"}},[e._v("#")]),e._v(" get_quantity_resource "),a("Badge",{attrs:{text:"DeterministicResourceAvailabilityChanges",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"get_quantity_resource",sig:{params:[{name:"self"},{name:"resource",annotation:"str"},{name:"time",annotation:"int"},{name:"**kwargs"}],return:"int"}}}),e._v(" "),a("p",[e._v("Return the resource availability (int) for the given resource\n(either resource type or resource unit) at the given time.")]),e._v(" "),a("h3",{attrs:{id:"sample-quantity-resource-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample-quantity-resource-5"}},[e._v("#")]),e._v(" sample_quantity_resource "),a("Badge",{attrs:{text:"UncertainResourceAvailabilityChanges",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"sample_quantity_resource",sig:{params:[{name:"self"},{name:"resource",annotation:"str"},{name:"time",annotation:"int"},{name:"**kwargs"}],return:"int"}}}),e._v(" "),a("p",[e._v("Sample an amount of resource availability (int) for the given resource\n(either resource type or resource unit) at the given time. This number should be the sum of the number of\nresource available at time t and the number of resource of this type consumed so far).")]),e._v(" "),a("h3",{attrs:{id:"get-original-quantity-resource-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-original-quantity-resource-2"}},[e._v("#")]),e._v(" _get_original_quantity_resource "),a("Badge",{attrs:{text:"WithoutResourceAvailabilityChange",type:"tip"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"_get_original_quantity_resource",sig:{params:[{name:"self"},{name:"resource",annotation:"str"},{name:"**kwargs"}],return:"int"}}}),e._v(" "),a("p",[e._v("Return the resource availability (int) for the given resource (either resource type or resource unit).")]),e._v(" "),a("h3",{attrs:{id:"get-quantity-resource-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-quantity-resource-4"}},[e._v("#")]),e._v(" _get_quantity_resource "),a("Badge",{attrs:{text:"DeterministicResourceAvailabilityChanges",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"_get_quantity_resource",sig:{params:[{name:"self"},{name:"resource",annotation:"str"},{name:"time",annotation:"int"},{name:"**kwargs"}],return:"int"}}}),e._v(" "),a("p",[e._v("Return the resource availability (int) for the given resource\n(either resource type or resource unit) at the given time.")]),e._v(" "),a("h3",{attrs:{id:"sample-quantity-resource-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample-quantity-resource-6"}},[e._v("#")]),e._v(" _sample_quantity_resource "),a("Badge",{attrs:{text:"UncertainResourceAvailabilityChanges",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"_sample_quantity_resource",sig:{params:[{name:"self"},{name:"resource",annotation:"str"},{name:"time",annotation:"int"},{name:"**kwargs"}],return:"int"}}}),e._v(" "),a("p",[e._v("Sample an amount of resource availability (int) for the given resource\n(either resource type or resource unit) at the given time. This number should be the sum of the number of\nresource available at time t and the number of resource of this type consumed so far).")])],1)}),[],!1,null,null,null);t.default=s.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[39],{553:function(e,t,a){"use strict";a.r(t);var r=a(38),s=Object(r.a)({},(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("h1",{attrs:{id:"builders-domain-scheduling-resource-availability"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#builders-domain-scheduling-resource-availability"}},[e._v("#")]),e._v(" builders.domain.scheduling.resource_availability")]),e._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[e._v("Domain specification")]),e._v(" "),a("skdecide-summary")],1),e._v(" "),a("h2",{attrs:{id:"uncertainresourceavailabilitychanges"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#uncertainresourceavailabilitychanges"}},[e._v("#")]),e._v(" UncertainResourceAvailabilityChanges")]),e._v(" "),a("p",[e._v("A domain must inherit this class if the availability of its resource vary in an uncertain way over time.")]),e._v(" "),a("h3",{attrs:{id:"check-unique-resource-names"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#check-unique-resource-names"}},[e._v("#")]),e._v(" check_unique_resource_names "),a("Badge",{attrs:{text:"UncertainResourceAvailabilityChanges",type:"tip"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"check_unique_resource_names",sig:{params:[{name:"self"}],return:"bool"}}}),e._v(" "),a("p",[e._v("Return True if there are no duplicates in resource names across both resource types\nand resource units name lists.")]),e._v(" "),a("h3",{attrs:{id:"sample-quantity-resource"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample-quantity-resource"}},[e._v("#")]),e._v(" sample_quantity_resource "),a("Badge",{attrs:{text:"UncertainResourceAvailabilityChanges",type:"tip"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"sample_quantity_resource",sig:{params:[{name:"self"},{name:"resource",annotation:"str"},{name:"time",annotation:"int"},{name:"**kwargs"}],return:"int"}}}),e._v(" "),a("p",[e._v("Sample an amount of resource availability (int) for the given resource\n(either resource type or resource unit) at the given time. This number should be the sum of the number of\nresource available at time t and the number of resource of this type consumed so far).")]),e._v(" "),a("h3",{attrs:{id:"sample-quantity-resource-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample-quantity-resource-2"}},[e._v("#")]),e._v(" _sample_quantity_resource "),a("Badge",{attrs:{text:"UncertainResourceAvailabilityChanges",type:"tip"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"_sample_quantity_resource",sig:{params:[{name:"self"},{name:"resource",annotation:"str"},{name:"time",annotation:"int"},{name:"**kwargs"}],return:"int"}}}),e._v(" "),a("p",[e._v("Sample an amount of resource availability (int) for the given resource\n(either resource type or resource unit) at the given time. This number should be the sum of the number of\nresource available at time t and the number of resource of this type consumed so far).")]),e._v(" "),a("h2",{attrs:{id:"deterministicresourceavailabilitychanges"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#deterministicresourceavailabilitychanges"}},[e._v("#")]),e._v(" DeterministicResourceAvailabilityChanges")]),e._v(" "),a("p",[e._v("A domain must inherit this class if the availability of its resource vary in a deterministic way over time.")]),e._v(" "),a("h3",{attrs:{id:"check-unique-resource-names-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#check-unique-resource-names-2"}},[e._v("#")]),e._v(" check_unique_resource_names "),a("Badge",{attrs:{text:"UncertainResourceAvailabilityChanges",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"check_unique_resource_names",sig:{params:[{name:"self"}],return:"bool"}}}),e._v(" "),a("p",[e._v("Return True if there are no duplicates in resource names across both resource types\nand resource units name lists.")]),e._v(" "),a("h3",{attrs:{id:"get-quantity-resource"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-quantity-resource"}},[e._v("#")]),e._v(" get_quantity_resource "),a("Badge",{attrs:{text:"DeterministicResourceAvailabilityChanges",type:"tip"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"get_quantity_resource",sig:{params:[{name:"self"},{name:"resource",annotation:"str"},{name:"time",annotation:"int"},{name:"**kwargs"}],return:"int"}}}),e._v(" "),a("p",[e._v("Return the resource availability (int) for the given resource\n(either resource type or resource unit) at the given time.")]),e._v(" "),a("h3",{attrs:{id:"sample-quantity-resource-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample-quantity-resource-3"}},[e._v("#")]),e._v(" sample_quantity_resource "),a("Badge",{attrs:{text:"UncertainResourceAvailabilityChanges",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"sample_quantity_resource",sig:{params:[{name:"self"},{name:"resource",annotation:"str"},{name:"time",annotation:"int"},{name:"**kwargs"}],return:"int"}}}),e._v(" "),a("p",[e._v("Sample an amount of resource availability (int) for the given resource\n(either resource type or resource unit) at the given time. This number should be the sum of the number of\nresource available at time t and the number of resource of this type consumed so far).")]),e._v(" "),a("h3",{attrs:{id:"get-quantity-resource-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-quantity-resource-2"}},[e._v("#")]),e._v(" _get_quantity_resource "),a("Badge",{attrs:{text:"DeterministicResourceAvailabilityChanges",type:"tip"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"_get_quantity_resource",sig:{params:[{name:"self"},{name:"resource",annotation:"str"},{name:"time",annotation:"int"},{name:"**kwargs"}],return:"int"}}}),e._v(" "),a("p",[e._v("Return the resource availability (int) for the given resource\n(either resource type or resource unit) at the given time.")]),e._v(" "),a("h3",{attrs:{id:"sample-quantity-resource-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample-quantity-resource-4"}},[e._v("#")]),e._v(" _sample_quantity_resource "),a("Badge",{attrs:{text:"UncertainResourceAvailabilityChanges",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"_sample_quantity_resource",sig:{params:[{name:"self"},{name:"resource",annotation:"str"},{name:"time",annotation:"int"},{name:"**kwargs"}],return:"int"}}}),e._v(" "),a("p",[e._v("Sample an amount of resource availability (int) for the given resource\n(either resource type or resource unit) at the given time. This number should be the sum of the number of\nresource available at time t and the number of resource of this type consumed so far).")]),e._v(" "),a("h2",{attrs:{id:"withoutresourceavailabilitychange"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#withoutresourceavailabilitychange"}},[e._v("#")]),e._v(" WithoutResourceAvailabilityChange")]),e._v(" "),a("p",[e._v("A domain must inherit this class if the availability of its resource does not vary over time.")]),e._v(" "),a("h3",{attrs:{id:"check-unique-resource-names-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#check-unique-resource-names-3"}},[e._v("#")]),e._v(" check_unique_resource_names "),a("Badge",{attrs:{text:"UncertainResourceAvailabilityChanges",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"check_unique_resource_names",sig:{params:[{name:"self"}],return:"bool"}}}),e._v(" "),a("p",[e._v("Return True if there are no duplicates in resource names across both resource types\nand resource units name lists.")]),e._v(" "),a("h3",{attrs:{id:"get-original-quantity-resource"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-original-quantity-resource"}},[e._v("#")]),e._v(" get_original_quantity_resource "),a("Badge",{attrs:{text:"WithoutResourceAvailabilityChange",type:"tip"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"get_original_quantity_resource",sig:{params:[{name:"self"},{name:"resource",annotation:"str"},{name:"**kwargs"}],return:"int"}}}),e._v(" "),a("p",[e._v("Return the resource availability (int) for the given resource (either resource type or resource unit).")]),e._v(" "),a("h3",{attrs:{id:"get-quantity-resource-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-quantity-resource-3"}},[e._v("#")]),e._v(" get_quantity_resource "),a("Badge",{attrs:{text:"DeterministicResourceAvailabilityChanges",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"get_quantity_resource",sig:{params:[{name:"self"},{name:"resource",annotation:"str"},{name:"time",annotation:"int"},{name:"**kwargs"}],return:"int"}}}),e._v(" "),a("p",[e._v("Return the resource availability (int) for the given resource\n(either resource type or resource unit) at the given time.")]),e._v(" "),a("h3",{attrs:{id:"sample-quantity-resource-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample-quantity-resource-5"}},[e._v("#")]),e._v(" sample_quantity_resource "),a("Badge",{attrs:{text:"UncertainResourceAvailabilityChanges",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"sample_quantity_resource",sig:{params:[{name:"self"},{name:"resource",annotation:"str"},{name:"time",annotation:"int"},{name:"**kwargs"}],return:"int"}}}),e._v(" "),a("p",[e._v("Sample an amount of resource availability (int) for the given resource\n(either resource type or resource unit) at the given time. This number should be the sum of the number of\nresource available at time t and the number of resource of this type consumed so far).")]),e._v(" "),a("h3",{attrs:{id:"get-original-quantity-resource-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-original-quantity-resource-2"}},[e._v("#")]),e._v(" _get_original_quantity_resource "),a("Badge",{attrs:{text:"WithoutResourceAvailabilityChange",type:"tip"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"_get_original_quantity_resource",sig:{params:[{name:"self"},{name:"resource",annotation:"str"},{name:"**kwargs"}],return:"int"}}}),e._v(" "),a("p",[e._v("Return the resource availability (int) for the given resource (either resource type or resource unit).")]),e._v(" "),a("h3",{attrs:{id:"get-quantity-resource-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-quantity-resource-4"}},[e._v("#")]),e._v(" _get_quantity_resource "),a("Badge",{attrs:{text:"DeterministicResourceAvailabilityChanges",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"_get_quantity_resource",sig:{params:[{name:"self"},{name:"resource",annotation:"str"},{name:"time",annotation:"int"},{name:"**kwargs"}],return:"int"}}}),e._v(" "),a("p",[e._v("Return the resource availability (int) for the given resource\n(either resource type or resource unit) at the given time.")]),e._v(" "),a("h3",{attrs:{id:"sample-quantity-resource-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample-quantity-resource-6"}},[e._v("#")]),e._v(" _sample_quantity_resource "),a("Badge",{attrs:{text:"UncertainResourceAvailabilityChanges",type:"warn"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"_sample_quantity_resource",sig:{params:[{name:"self"},{name:"resource",annotation:"str"},{name:"time",annotation:"int"},{name:"**kwargs"}],return:"int"}}}),e._v(" "),a("p",[e._v("Sample an amount of resource availability (int) for the given resource\n(either resource type or resource unit) at the given time. This number should be the sum of the number of\nresource available at time t and the number of resource of this type consumed so far).")])],1)}),[],!1,null,null,null);t.default=s.exports}}]); \ No newline at end of file diff --git a/assets/js/43.c10393ba.js b/assets/js/43.0c4df3d9.js similarity index 99% rename from assets/js/43.c10393ba.js rename to assets/js/43.0c4df3d9.js index 135685f6d1..e304aa49c9 100644 --- a/assets/js/43.c10393ba.js +++ b/assets/js/43.0c4df3d9.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[43],{559:function(e,t,s){"use strict";s.r(t);var r=s(38),a=Object(r.a)({},(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[s("h1",{attrs:{id:"builders-domain-scheduling-resource-type"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#builders-domain-scheduling-resource-type"}},[e._v("#")]),e._v(" builders.domain.scheduling.resource_type")]),e._v(" "),s("div",{staticClass:"custom-block tip"},[s("p",{staticClass:"custom-block-title"},[e._v("Domain specification")]),e._v(" "),s("skdecide-summary")],1),e._v(" "),s("h2",{attrs:{id:"withresourcetypes"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#withresourcetypes"}},[e._v("#")]),e._v(" WithResourceTypes")]),e._v(" "),s("p",[e._v("A domain must inherit this class if some of its resources are resource types.")]),e._v(" "),s("h3",{attrs:{id:"get-resource-types-names"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#get-resource-types-names"}},[e._v("#")]),e._v(" get_resource_types_names "),s("Badge",{attrs:{text:"WithResourceTypes",type:"tip"}})],1),e._v(" "),s("skdecide-signature",{attrs:{name:"get_resource_types_names",sig:{params:[{name:"self"}],return:"List[str]"}}}),e._v(" "),s("p",[e._v("Return the names (string) of all resource types as a list.")]),e._v(" "),s("h3",{attrs:{id:"get-resource-types-names-2"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#get-resource-types-names-2"}},[e._v("#")]),e._v(" _get_resource_types_names "),s("Badge",{attrs:{text:"WithResourceTypes",type:"tip"}})],1),e._v(" "),s("skdecide-signature",{attrs:{name:"_get_resource_types_names",sig:{params:[{name:"self"}],return:"List[str]"}}}),e._v(" "),s("p",[e._v("Return the names (string) of all resource types as a list.")]),e._v(" "),s("h2",{attrs:{id:"withoutresourcetypes"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#withoutresourcetypes"}},[e._v("#")]),e._v(" WithoutResourceTypes")]),e._v(" "),s("p",[e._v("A domain must inherit this class if it only uses resource types.")]),e._v(" "),s("h3",{attrs:{id:"get-resource-types-names-3"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#get-resource-types-names-3"}},[e._v("#")]),e._v(" get_resource_types_names "),s("Badge",{attrs:{text:"WithResourceTypes",type:"warn"}})],1),e._v(" "),s("skdecide-signature",{attrs:{name:"get_resource_types_names",sig:{params:[{name:"self"}],return:"List[str]"}}}),e._v(" "),s("p",[e._v("Return the names (string) of all resource types as a list.")]),e._v(" "),s("h3",{attrs:{id:"get-resource-types-names-4"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#get-resource-types-names-4"}},[e._v("#")]),e._v(" _get_resource_types_names "),s("Badge",{attrs:{text:"WithResourceTypes",type:"warn"}})],1),e._v(" "),s("skdecide-signature",{attrs:{name:"_get_resource_types_names",sig:{params:[{name:"self"}],return:"List[str]"}}}),e._v(" "),s("p",[e._v("Return the names (string) of all resource types as a list.")]),e._v(" "),s("h2",{attrs:{id:"withresourceunits"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#withresourceunits"}},[e._v("#")]),e._v(" WithResourceUnits")]),e._v(" "),s("p",[e._v("A domain must inherit this class if some of its resources are resource units.")]),e._v(" "),s("h3",{attrs:{id:"get-resource-type-for-unit"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#get-resource-type-for-unit"}},[e._v("#")]),e._v(" get_resource_type_for_unit "),s("Badge",{attrs:{text:"WithResourceUnits",type:"tip"}})],1),e._v(" "),s("skdecide-signature",{attrs:{name:"get_resource_type_for_unit",sig:{params:[{name:"self"}],return:"Dict[str, str]"}}}),e._v(" "),s("p",[e._v("Return a dictionary where the key is a resource unit name and the value a resource type name.\nAn empty dictionary can be used if there are no resource unit matching a resource type.")]),e._v(" "),s("h3",{attrs:{id:"get-resource-units-names"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#get-resource-units-names"}},[e._v("#")]),e._v(" get_resource_units_names "),s("Badge",{attrs:{text:"WithResourceUnits",type:"tip"}})],1),e._v(" "),s("skdecide-signature",{attrs:{name:"get_resource_units_names",sig:{params:[{name:"self"}],return:"List[str]"}}}),e._v(" "),s("p",[e._v("Return the names (string) of all resource units as a list.")]),e._v(" "),s("h3",{attrs:{id:"get-resource-type-for-unit-2"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#get-resource-type-for-unit-2"}},[e._v("#")]),e._v(" _get_resource_type_for_unit "),s("Badge",{attrs:{text:"WithResourceUnits",type:"tip"}})],1),e._v(" "),s("skdecide-signature",{attrs:{name:"_get_resource_type_for_unit",sig:{params:[{name:"self"}],return:"Dict[str, str]"}}}),e._v(" "),s("p",[e._v("Return a dictionary where the key is a resource unit name and the value a resource type name.\nAn empty dictionary can be used if there are no resource unit matching a resource type.")]),e._v(" "),s("h3",{attrs:{id:"get-resource-units-names-2"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#get-resource-units-names-2"}},[e._v("#")]),e._v(" _get_resource_units_names "),s("Badge",{attrs:{text:"WithResourceUnits",type:"tip"}})],1),e._v(" "),s("skdecide-signature",{attrs:{name:"_get_resource_units_names",sig:{params:[{name:"self"}],return:"List[str]"}}}),e._v(" "),s("p",[e._v("Return the names (string) of all resource units as a list.")]),e._v(" "),s("h2",{attrs:{id:"singleresourceunit"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#singleresourceunit"}},[e._v("#")]),e._v(" SingleResourceUnit")]),e._v(" "),s("p",[e._v("A domain must inherit this class if there is no allocation to be done (i.e. there is a single resource).")]),e._v(" "),s("h3",{attrs:{id:"get-resource-type-for-unit-3"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#get-resource-type-for-unit-3"}},[e._v("#")]),e._v(" get_resource_type_for_unit "),s("Badge",{attrs:{text:"WithResourceUnits",type:"warn"}})],1),e._v(" "),s("skdecide-signature",{attrs:{name:"get_resource_type_for_unit",sig:{params:[{name:"self"}],return:"Dict[str, str]"}}}),e._v(" "),s("p",[e._v("Return a dictionary where the key is a resource unit name and the value a resource type name.\nAn empty dictionary can be used if there are no resource unit matching a resource type.")]),e._v(" "),s("h3",{attrs:{id:"get-resource-units-names-3"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#get-resource-units-names-3"}},[e._v("#")]),e._v(" get_resource_units_names "),s("Badge",{attrs:{text:"WithResourceUnits",type:"warn"}})],1),e._v(" "),s("skdecide-signature",{attrs:{name:"get_resource_units_names",sig:{params:[{name:"self"}],return:"List[str]"}}}),e._v(" "),s("p",[e._v("Return the names (string) of all resource units as a list.")]),e._v(" "),s("h3",{attrs:{id:"get-resource-type-for-unit-4"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#get-resource-type-for-unit-4"}},[e._v("#")]),e._v(" _get_resource_type_for_unit "),s("Badge",{attrs:{text:"WithResourceUnits",type:"warn"}})],1),e._v(" "),s("skdecide-signature",{attrs:{name:"_get_resource_type_for_unit",sig:{params:[{name:"self"}],return:"Dict[str, str]"}}}),e._v(" "),s("p",[e._v("Return a dictionary where the key is a resource unit name and the value a resource type name.\nAn empty dictionary can be used if there are no resource unit matching a resource type.")]),e._v(" "),s("h3",{attrs:{id:"get-resource-units-names-4"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#get-resource-units-names-4"}},[e._v("#")]),e._v(" _get_resource_units_names "),s("Badge",{attrs:{text:"WithResourceUnits",type:"warn"}})],1),e._v(" "),s("skdecide-signature",{attrs:{name:"_get_resource_units_names",sig:{params:[{name:"self"}],return:"List[str]"}}}),e._v(" "),s("p",[e._v("Return the names (string) of all resource units as a list.")]),e._v(" "),s("h2",{attrs:{id:"withoutresourceunit"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#withoutresourceunit"}},[e._v("#")]),e._v(" WithoutResourceUnit")]),e._v(" "),s("p",[e._v("A domain must inherit this class if it only uses resource types.")]),e._v(" "),s("h3",{attrs:{id:"get-resource-type-for-unit-5"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#get-resource-type-for-unit-5"}},[e._v("#")]),e._v(" get_resource_type_for_unit "),s("Badge",{attrs:{text:"WithResourceUnits",type:"warn"}})],1),e._v(" "),s("skdecide-signature",{attrs:{name:"get_resource_type_for_unit",sig:{params:[{name:"self"}],return:"Dict[str, str]"}}}),e._v(" "),s("p",[e._v("Return a dictionary where the key is a resource unit name and the value a resource type name.\nAn empty dictionary can be used if there are no resource unit matching a resource type.")]),e._v(" "),s("h3",{attrs:{id:"get-resource-units-names-5"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#get-resource-units-names-5"}},[e._v("#")]),e._v(" get_resource_units_names "),s("Badge",{attrs:{text:"WithResourceUnits",type:"warn"}})],1),e._v(" "),s("skdecide-signature",{attrs:{name:"get_resource_units_names",sig:{params:[{name:"self"}],return:"List[str]"}}}),e._v(" "),s("p",[e._v("Return the names (string) of all resource units as a list.")]),e._v(" "),s("h3",{attrs:{id:"get-resource-type-for-unit-6"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#get-resource-type-for-unit-6"}},[e._v("#")]),e._v(" _get_resource_type_for_unit "),s("Badge",{attrs:{text:"WithResourceUnits",type:"warn"}})],1),e._v(" "),s("skdecide-signature",{attrs:{name:"_get_resource_type_for_unit",sig:{params:[{name:"self"}],return:"Dict[str, str]"}}}),e._v(" "),s("p",[e._v("Return a dictionary where the key is a resource unit name and the value a resource type name.\nAn empty dictionary can be used if there are no resource unit matching a resource type.")]),e._v(" "),s("h3",{attrs:{id:"get-resource-units-names-6"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#get-resource-units-names-6"}},[e._v("#")]),e._v(" _get_resource_units_names "),s("Badge",{attrs:{text:"WithResourceUnits",type:"warn"}})],1),e._v(" "),s("skdecide-signature",{attrs:{name:"_get_resource_units_names",sig:{params:[{name:"self"}],return:"List[str]"}}}),e._v(" "),s("p",[e._v("Return the names (string) of all resource units as a list.")])],1)}),[],!1,null,null,null);t.default=a.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[43],{560:function(e,t,s){"use strict";s.r(t);var r=s(38),a=Object(r.a)({},(function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[s("h1",{attrs:{id:"builders-domain-scheduling-resource-type"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#builders-domain-scheduling-resource-type"}},[e._v("#")]),e._v(" builders.domain.scheduling.resource_type")]),e._v(" "),s("div",{staticClass:"custom-block tip"},[s("p",{staticClass:"custom-block-title"},[e._v("Domain specification")]),e._v(" "),s("skdecide-summary")],1),e._v(" "),s("h2",{attrs:{id:"withresourcetypes"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#withresourcetypes"}},[e._v("#")]),e._v(" WithResourceTypes")]),e._v(" "),s("p",[e._v("A domain must inherit this class if some of its resources are resource types.")]),e._v(" "),s("h3",{attrs:{id:"get-resource-types-names"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#get-resource-types-names"}},[e._v("#")]),e._v(" get_resource_types_names "),s("Badge",{attrs:{text:"WithResourceTypes",type:"tip"}})],1),e._v(" "),s("skdecide-signature",{attrs:{name:"get_resource_types_names",sig:{params:[{name:"self"}],return:"List[str]"}}}),e._v(" "),s("p",[e._v("Return the names (string) of all resource types as a list.")]),e._v(" "),s("h3",{attrs:{id:"get-resource-types-names-2"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#get-resource-types-names-2"}},[e._v("#")]),e._v(" _get_resource_types_names "),s("Badge",{attrs:{text:"WithResourceTypes",type:"tip"}})],1),e._v(" "),s("skdecide-signature",{attrs:{name:"_get_resource_types_names",sig:{params:[{name:"self"}],return:"List[str]"}}}),e._v(" "),s("p",[e._v("Return the names (string) of all resource types as a list.")]),e._v(" "),s("h2",{attrs:{id:"withoutresourcetypes"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#withoutresourcetypes"}},[e._v("#")]),e._v(" WithoutResourceTypes")]),e._v(" "),s("p",[e._v("A domain must inherit this class if it only uses resource types.")]),e._v(" "),s("h3",{attrs:{id:"get-resource-types-names-3"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#get-resource-types-names-3"}},[e._v("#")]),e._v(" get_resource_types_names "),s("Badge",{attrs:{text:"WithResourceTypes",type:"warn"}})],1),e._v(" "),s("skdecide-signature",{attrs:{name:"get_resource_types_names",sig:{params:[{name:"self"}],return:"List[str]"}}}),e._v(" "),s("p",[e._v("Return the names (string) of all resource types as a list.")]),e._v(" "),s("h3",{attrs:{id:"get-resource-types-names-4"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#get-resource-types-names-4"}},[e._v("#")]),e._v(" _get_resource_types_names "),s("Badge",{attrs:{text:"WithResourceTypes",type:"warn"}})],1),e._v(" "),s("skdecide-signature",{attrs:{name:"_get_resource_types_names",sig:{params:[{name:"self"}],return:"List[str]"}}}),e._v(" "),s("p",[e._v("Return the names (string) of all resource types as a list.")]),e._v(" "),s("h2",{attrs:{id:"withresourceunits"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#withresourceunits"}},[e._v("#")]),e._v(" WithResourceUnits")]),e._v(" "),s("p",[e._v("A domain must inherit this class if some of its resources are resource units.")]),e._v(" "),s("h3",{attrs:{id:"get-resource-type-for-unit"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#get-resource-type-for-unit"}},[e._v("#")]),e._v(" get_resource_type_for_unit "),s("Badge",{attrs:{text:"WithResourceUnits",type:"tip"}})],1),e._v(" "),s("skdecide-signature",{attrs:{name:"get_resource_type_for_unit",sig:{params:[{name:"self"}],return:"Dict[str, str]"}}}),e._v(" "),s("p",[e._v("Return a dictionary where the key is a resource unit name and the value a resource type name.\nAn empty dictionary can be used if there are no resource unit matching a resource type.")]),e._v(" "),s("h3",{attrs:{id:"get-resource-units-names"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#get-resource-units-names"}},[e._v("#")]),e._v(" get_resource_units_names "),s("Badge",{attrs:{text:"WithResourceUnits",type:"tip"}})],1),e._v(" "),s("skdecide-signature",{attrs:{name:"get_resource_units_names",sig:{params:[{name:"self"}],return:"List[str]"}}}),e._v(" "),s("p",[e._v("Return the names (string) of all resource units as a list.")]),e._v(" "),s("h3",{attrs:{id:"get-resource-type-for-unit-2"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#get-resource-type-for-unit-2"}},[e._v("#")]),e._v(" _get_resource_type_for_unit "),s("Badge",{attrs:{text:"WithResourceUnits",type:"tip"}})],1),e._v(" "),s("skdecide-signature",{attrs:{name:"_get_resource_type_for_unit",sig:{params:[{name:"self"}],return:"Dict[str, str]"}}}),e._v(" "),s("p",[e._v("Return a dictionary where the key is a resource unit name and the value a resource type name.\nAn empty dictionary can be used if there are no resource unit matching a resource type.")]),e._v(" "),s("h3",{attrs:{id:"get-resource-units-names-2"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#get-resource-units-names-2"}},[e._v("#")]),e._v(" _get_resource_units_names "),s("Badge",{attrs:{text:"WithResourceUnits",type:"tip"}})],1),e._v(" "),s("skdecide-signature",{attrs:{name:"_get_resource_units_names",sig:{params:[{name:"self"}],return:"List[str]"}}}),e._v(" "),s("p",[e._v("Return the names (string) of all resource units as a list.")]),e._v(" "),s("h2",{attrs:{id:"singleresourceunit"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#singleresourceunit"}},[e._v("#")]),e._v(" SingleResourceUnit")]),e._v(" "),s("p",[e._v("A domain must inherit this class if there is no allocation to be done (i.e. there is a single resource).")]),e._v(" "),s("h3",{attrs:{id:"get-resource-type-for-unit-3"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#get-resource-type-for-unit-3"}},[e._v("#")]),e._v(" get_resource_type_for_unit "),s("Badge",{attrs:{text:"WithResourceUnits",type:"warn"}})],1),e._v(" "),s("skdecide-signature",{attrs:{name:"get_resource_type_for_unit",sig:{params:[{name:"self"}],return:"Dict[str, str]"}}}),e._v(" "),s("p",[e._v("Return a dictionary where the key is a resource unit name and the value a resource type name.\nAn empty dictionary can be used if there are no resource unit matching a resource type.")]),e._v(" "),s("h3",{attrs:{id:"get-resource-units-names-3"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#get-resource-units-names-3"}},[e._v("#")]),e._v(" get_resource_units_names "),s("Badge",{attrs:{text:"WithResourceUnits",type:"warn"}})],1),e._v(" "),s("skdecide-signature",{attrs:{name:"get_resource_units_names",sig:{params:[{name:"self"}],return:"List[str]"}}}),e._v(" "),s("p",[e._v("Return the names (string) of all resource units as a list.")]),e._v(" "),s("h3",{attrs:{id:"get-resource-type-for-unit-4"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#get-resource-type-for-unit-4"}},[e._v("#")]),e._v(" _get_resource_type_for_unit "),s("Badge",{attrs:{text:"WithResourceUnits",type:"warn"}})],1),e._v(" "),s("skdecide-signature",{attrs:{name:"_get_resource_type_for_unit",sig:{params:[{name:"self"}],return:"Dict[str, str]"}}}),e._v(" "),s("p",[e._v("Return a dictionary where the key is a resource unit name and the value a resource type name.\nAn empty dictionary can be used if there are no resource unit matching a resource type.")]),e._v(" "),s("h3",{attrs:{id:"get-resource-units-names-4"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#get-resource-units-names-4"}},[e._v("#")]),e._v(" _get_resource_units_names "),s("Badge",{attrs:{text:"WithResourceUnits",type:"warn"}})],1),e._v(" "),s("skdecide-signature",{attrs:{name:"_get_resource_units_names",sig:{params:[{name:"self"}],return:"List[str]"}}}),e._v(" "),s("p",[e._v("Return the names (string) of all resource units as a list.")]),e._v(" "),s("h2",{attrs:{id:"withoutresourceunit"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#withoutresourceunit"}},[e._v("#")]),e._v(" WithoutResourceUnit")]),e._v(" "),s("p",[e._v("A domain must inherit this class if it only uses resource types.")]),e._v(" "),s("h3",{attrs:{id:"get-resource-type-for-unit-5"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#get-resource-type-for-unit-5"}},[e._v("#")]),e._v(" get_resource_type_for_unit "),s("Badge",{attrs:{text:"WithResourceUnits",type:"warn"}})],1),e._v(" "),s("skdecide-signature",{attrs:{name:"get_resource_type_for_unit",sig:{params:[{name:"self"}],return:"Dict[str, str]"}}}),e._v(" "),s("p",[e._v("Return a dictionary where the key is a resource unit name and the value a resource type name.\nAn empty dictionary can be used if there are no resource unit matching a resource type.")]),e._v(" "),s("h3",{attrs:{id:"get-resource-units-names-5"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#get-resource-units-names-5"}},[e._v("#")]),e._v(" get_resource_units_names "),s("Badge",{attrs:{text:"WithResourceUnits",type:"warn"}})],1),e._v(" "),s("skdecide-signature",{attrs:{name:"get_resource_units_names",sig:{params:[{name:"self"}],return:"List[str]"}}}),e._v(" "),s("p",[e._v("Return the names (string) of all resource units as a list.")]),e._v(" "),s("h3",{attrs:{id:"get-resource-type-for-unit-6"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#get-resource-type-for-unit-6"}},[e._v("#")]),e._v(" _get_resource_type_for_unit "),s("Badge",{attrs:{text:"WithResourceUnits",type:"warn"}})],1),e._v(" "),s("skdecide-signature",{attrs:{name:"_get_resource_type_for_unit",sig:{params:[{name:"self"}],return:"Dict[str, str]"}}}),e._v(" "),s("p",[e._v("Return a dictionary where the key is a resource unit name and the value a resource type name.\nAn empty dictionary can be used if there are no resource unit matching a resource type.")]),e._v(" "),s("h3",{attrs:{id:"get-resource-units-names-6"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#get-resource-units-names-6"}},[e._v("#")]),e._v(" _get_resource_units_names "),s("Badge",{attrs:{text:"WithResourceUnits",type:"warn"}})],1),e._v(" "),s("skdecide-signature",{attrs:{name:"_get_resource_units_names",sig:{params:[{name:"self"}],return:"List[str]"}}}),e._v(" "),s("p",[e._v("Return the names (string) of all resource units as a list.")])],1)}),[],!1,null,null,null);t.default=a.exports}}]); \ No newline at end of file diff --git a/assets/js/44.ca219e23.js b/assets/js/44.c049209a.js similarity index 99% rename from assets/js/44.ca219e23.js rename to assets/js/44.c049209a.js index e1d026efeb..87e0fc0bd2 100644 --- a/assets/js/44.ca219e23.js +++ b/assets/js/44.c049209a.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[44],{563:function(t,e,a){"use strict";a.r(e);var s=a(38),n=Object(s.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"builders-domain-scheduling-scheduling-domains"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#builders-domain-scheduling-scheduling-domains"}},[t._v("#")]),t._v(" builders.domain.scheduling.scheduling_domains")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("Domain specification")]),t._v(" "),a("skdecide-summary")],1),t._v(" "),a("h2",{attrs:{id:"schedulingobjectiveenum"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#schedulingobjectiveenum"}},[t._v("#")]),t._v(" SchedulingObjectiveEnum")]),t._v(" "),a("p",[t._v("Enum defining the different scheduling objectives:")]),t._v(" "),a("ul",[a("li",[t._v("MAKESPAN: makespan (to be minimize)")]),t._v(" "),a("li",[t._v("COST: cost of resources (to be minimized)")])]),t._v(" "),a("h2",{attrs:{id:"d"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#d"}},[t._v("#")]),t._v(" D")]),t._v(" "),a("p",[t._v("Base class for any scheduling statefull domain")]),t._v(" "),a("h3",{attrs:{id:"check-value"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#check-value"}},[t._v("#")]),t._v(" check_value "),a("Badge",{attrs:{text:"Rewards",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"check_value",sig:{params:[{name:"self"},{name:"value",annotation:"Value[D.T_value]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that a value is compliant with its reward specification.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("This function returns always True by default because any kind of reward should be accepted at this level.")])]),t._v(" "),a("h4",{attrs:{id:"parameters"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("value")]),t._v(": The value to check.")])]),t._v(" "),a("h4",{attrs:{id:"returns"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the value is compliant (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"get-action-space"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space"}},[t._v("#")]),t._v(" get_action_space "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_action_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) domain action space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.get_action_space()")]),t._v(" internally calls "),a("code",[t._v("Events._get_action_space_()")]),t._v(" the first time and\nautomatically caches its value to make future calls more efficient (since the action space is assumed to be\nconstant).")]),t._v(" "),a("h4",{attrs:{id:"returns-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-2"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The action space.")]),t._v(" "),a("h3",{attrs:{id:"get-applicable-actions"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions"}},[t._v("#")]),t._v(" get_applicable_actions "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_applicable_actions",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history), or in\nthe internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.get_applicable_actions()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_applicable_actions()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-2"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-3"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of applicable actions.")]),t._v(" "),a("h3",{attrs:{id:"get-enabled-events"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events"}},[t._v("#")]),t._v(" get_enabled_events "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_enabled_events",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"Space[D.T_event]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory), or in the internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.get_enabled_events()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_enabled_events()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead of\nthe memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-3"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-4"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of enabled events.")]),t._v(" "),a("h3",{attrs:{id:"get-goals"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-goals"}},[t._v("#")]),t._v(" get_goals "),a("Badge",{attrs:{text:"Goals",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_goals",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) domain goals space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Goals.get_goals()")]),t._v(" internally calls "),a("code",[t._v("Goals._get_goals_()")]),t._v(" the first time and automatically caches its\nvalue to make future calls more efficient (since the goals space is assumed to be constant).")]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Goal states are assumed to be fully observable (i.e. observation = state) so that there is never uncertainty\nabout whether the goal has been reached or not. This assumption guarantees that any policy that does not\nreach the goal with certainty incurs in infinite expected cost. - "),a("em",[t._v("Geffner, 2013: A Concise Introduction to\nModels and Methods for Automated Planning")])])]),t._v(" "),a("h4",{attrs:{id:"returns-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-5"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The goals space.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state"}},[t._v("#")]),t._v(" get_initial_state "),a("Badge",{attrs:{text:"DeterministicInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_initial_state",sig:{params:[{name:"self"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("Get the (cached) initial state.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("DeterministicInitialized.get_initial_state()")]),t._v(" internally\ncalls "),a("code",[t._v("DeterministicInitialized._get_initial_state_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the initial state is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-6"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The initial state.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-distribution"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-distribution"}},[t._v("#")]),t._v(" get_initial_state_distribution "),a("Badge",{attrs:{text:"UncertainInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_initial_state_distribution",sig:{params:[{name:"self"}],return:"Distribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("Get the (cached) probability distribution of initial states.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("UncertainInitialized.get_initial_state_distribution()")]),t._v(" internally\ncalls "),a("code",[t._v("UncertainInitialized._get_initial_state_distribution_()")]),t._v(" the first time and automatically caches its value\nto make future calls more efficient (since the initial state distribution is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-7"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of initial states.")]),t._v(" "),a("h3",{attrs:{id:"get-observation"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation"}},[t._v("#")]),t._v(" get_observation "),a("Badge",{attrs:{text:"TransformedObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_observation",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Get the deterministic observation given a state and action.")]),t._v(" "),a("h4",{attrs:{id:"parameters-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-4"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-8"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-distribution"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-distribution"}},[t._v("#")]),t._v(" get_observation_distribution "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_observation_distribution",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"Distribution[D.T_agent[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the probability distribution of the observation given a state and action.")]),t._v(" "),a("p",[t._v("In mathematical terms (discrete case), given an action "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.197ex",height:"1.02ex",viewBox:"0 -441 529 451"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})])])])])]),t._v(", this function represents: "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.078ex",height:"2.262ex",viewBox:"0 -750 4012.7 1000"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"50",d:"M287 628Q287 635 230 637Q206 637 199 638T192 648Q192 649 194 659Q200 679 203 681T397 683Q587 682 600 680Q664 669 707 631T751 530Q751 453 685 389Q616 321 507 303Q500 302 402 301H307L277 182Q247 66 247 59Q247 55 248 54T255 50T272 48T305 46H336Q342 37 342 35Q342 19 335 5Q330 0 319 0Q316 0 282 1T182 2Q120 2 87 2T51 1Q33 1 33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM645 554Q645 567 643 575T634 597T609 619T560 635Q553 636 480 637Q463 637 445 637T416 636T404 636Q391 635 386 627Q384 621 367 550T332 412T314 344Q314 342 395 342H407H430Q542 342 590 392Q617 419 631 471T645 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(751, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(1140, 0)"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1903, 0)"}},[a("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(2181, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2650, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(3094.7, 0)"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3623.7, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(",\nwhere "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.05ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.726ex",height:"1.643ex",viewBox:"0 -704 763 726"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})])])])])]),t._v(" is the random variable of the observation.")],1),t._v(" "),a("h4",{attrs:{id:"parameters-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-5"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-9"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-space"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space"}},[t._v("#")]),t._v(" get_observation_space "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_observation_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) observation space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("PartiallyObservable.get_observation_space()")]),t._v(" internally\ncalls "),a("code",[t._v("PartiallyObservable._get_observation_space_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the observation space is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-10"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The observation space.")]),t._v(" "),a("h3",{attrs:{id:"is-action"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-action"}},[t._v("#")]),t._v(" is_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_action",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an event is an action (i.e. a controllable event for the agents).")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\naction space provided by "),a("code",[t._v("Events.get_action_space()")]),t._v(", but it can be overridden for faster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-6"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("event")]),t._v(": The event to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-11"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is an action (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-applicable-action"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action"}},[t._v("#")]),t._v(" is_applicable_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_applicable_action",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an action is applicable in the given memory (state or history), or in the internal one if\nomitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.is_applicable_action()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_applicable_action()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead\nof the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-7"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-12"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the action is applicable (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-enabled-event"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event"}},[t._v("#")]),t._v(" is_enabled_event "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_enabled_event",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an uncontrollable event is enabled in the given memory (state or history), or in the\ninternal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.is_enabled_event()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_enabled_event()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead of\nthe memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-8"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-13"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is enabled (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-goal"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-goal"}},[t._v("#")]),t._v(" is_goal "),a("Badge",{attrs:{text:"Goals",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_goal",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"D.T_agent[D.T_predicate]"}}}),t._v(" "),a("p",[t._v("Indicate whether an observation belongs to the goals.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\ngoals space provided by "),a("code",[t._v("Goals.get_goals()")]),t._v(", but it can be overridden for faster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-9"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-14"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-14"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the observation is a goal (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-observation"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-observation"}},[t._v("#")]),t._v(" is_observation "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_observation",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that an observation indeed belongs to the domain observation space.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\nobservation space provided by "),a("code",[t._v("PartiallyObservable.get_observation_space()")]),t._v(", but it can be overridden for\nfaster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-10"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-15"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-15"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the observation belongs to the domain observation space (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"reset"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#reset"}},[t._v("#")]),t._v(" reset "),a("Badge",{attrs:{text:"Initializable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"reset",sig:{params:[{name:"self"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Reset the state of the environment and return an initial observation.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Initializable.reset()")]),t._v(" provides some boilerplate code and internally calls "),a("code",[t._v("Initializable._reset()")]),t._v("\n(which returns an initial state). The boilerplate code automatically stores the initial state into the "),a("code",[t._v("_memory")]),t._v("\nattribute and samples a corresponding observation.")]),t._v(" "),a("h4",{attrs:{id:"returns-16"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-16"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("An initial observation.")]),t._v(" "),a("h3",{attrs:{id:"sample"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample"}},[t._v("#")]),t._v(" sample "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"sample",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Sample one transition of the simulator's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Simulation.sample()")]),t._v(" provides some boilerplate code and internally calls "),a("code",[t._v("Simulation._sample()")]),t._v("\n(which returns a transition outcome). The boilerplate code automatically samples an observation corresponding to\nthe sampled next state.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing simulator needs to be wrapped instead of implemented fully in scikit-decide (e.g. a\nsimulator), it is recommended to overwrite "),a("code",[t._v("Simulation.sample()")]),t._v(" to call the external simulator and not use\nthe "),a("code",[t._v("Simulation._sample()")]),t._v(" helper function.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-11"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-17"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-17"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of the sampled transition.")]),t._v(" "),a("h3",{attrs:{id:"set-memory"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#set-memory"}},[t._v("#")]),t._v(" set_memory "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"set_memory",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"None"}}}),t._v(" "),a("p",[t._v("Set internal memory attribute "),a("code",[t._v("_memory")]),t._v(" to given one.")]),t._v(" "),a("p",[t._v('This can be useful to set a specific "starting point" before doing a rollout with successive '),a("code",[t._v("Environment.step()")]),t._v("\ncalls.")]),t._v(" "),a("h4",{attrs:{id:"parameters-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-12"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to set internally.")])]),t._v(" "),a("h4",{attrs:{id:"example"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#example"}},[t._v("#")]),t._v(" Example")]),t._v(" "),a("div",{staticClass:"language-python extra-class"},[a("pre",{pre:!0,attrs:{class:"language-python"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Set simulation_domain memory to my_state (assuming Markovian domain)")]),t._v("\nsimulation_domain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("set_memory"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("my_state"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Start a 100-steps rollout from here (applying my_action at every step)")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("for")]),t._v(" _ "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("in")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("range")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n simulation_domain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("step"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("my_action"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("h3",{attrs:{id:"solve-with"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#solve-with"}},[t._v("#")]),t._v(" solve_with "),a("Badge",{attrs:{text:"Domain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"solve_with",sig:{params:[{name:"solver",annotation:"Solver"},{name:"domain_factory",default:"None",annotation:"Optional[Callable[[], Domain]]"},{name:"load_path",default:"None",annotation:"Optional[str]"}],return:"Solver"}}}),t._v(" "),a("p",[t._v("Solve the domain with a new or loaded solver and return it auto-cast to the level of the domain.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Solver.check_domain()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Solver._check_domain_additional()")]),t._v(' (which returns True by default but can be overridden to define\nspecific checks in addition to the "domain requirements"). The boilerplate code automatically checks whether all\ndomain requirements are met.')]),t._v(" "),a("h4",{attrs:{id:"parameters-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-13"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("solver")]),t._v(": The solver.")]),t._v(" "),a("li",[a("strong",[t._v("domain_factory")]),t._v(": A callable with no argument returning the domain to solve (factory is the domain class if None).")]),t._v(" "),a("li",[a("strong",[t._v("load_path")]),t._v(": The path to restore the solver state from (if None, the solving process will be launched instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-18"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-18"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The new solver (auto-cast to the level of the domain).")]),t._v(" "),a("h3",{attrs:{id:"step"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#step"}},[t._v("#")]),t._v(" step "),a("Badge",{attrs:{text:"Environment",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"step",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Run one step of the environment's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Environment.step()")]),t._v(" provides some boilerplate code and internally calls "),a("code",[t._v("Environment._step()")]),t._v(" (which\nreturns a transition outcome). The boilerplate code automatically stores next state into the "),a("code",[t._v("_memory")]),t._v(" attribute\nand samples a corresponding observation.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing environment needs to be wrapped instead of implemented fully in scikit-decide (e.g. compiled\nATARI games), it is recommended to overwrite "),a("code",[t._v("Environment.step()")]),t._v(" to call the external environment and not\nuse the "),a("code",[t._v("Environment._step()")]),t._v(" helper function.")])]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Before calling "),a("code",[t._v("Environment.step()")]),t._v(" the first time or when the end of an episode is\nreached, "),a("code",[t._v("Initializable.reset()")]),t._v(" must be called to reset the environment's state.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-14"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-14"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the current memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-19"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-19"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of this step.")]),t._v(" "),a("h3",{attrs:{id:"check-value-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#check-value-2"}},[t._v("#")]),t._v(" _check_value "),a("Badge",{attrs:{text:"Rewards",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_check_value",sig:{params:[{name:"self"},{name:"value",annotation:"Value[D.T_value]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that a value is compliant with its reward specification.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("This function returns always True by default because any kind of reward should be accepted at this level.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-15"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-15"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("value")]),t._v(": The value to check.")])]),t._v(" "),a("h4",{attrs:{id:"returns-20"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-20"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the value is compliant (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"get-action-space-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-2"}},[t._v("#")]),t._v(" _get_action_space "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_action_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) domain action space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._get_action_space()")]),t._v(" internally calls "),a("code",[t._v("Events._get_action_space_()")]),t._v(" the first time and\nautomatically caches its value to make future calls more efficient (since the action space is assumed to be\nconstant).")]),t._v(" "),a("h4",{attrs:{id:"returns-21"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-21"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The action space.")]),t._v(" "),a("h3",{attrs:{id:"get-action-space-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-3"}},[t._v("#")]),t._v(" _get_action_space_ "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_action_space_",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the domain action space (finite or infinite set).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._get_action_space()")]),t._v(", the difference being that the\nresult is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-22"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-22"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The action space.")]),t._v(" "),a("h3",{attrs:{id:"get-applicable-actions-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-2"}},[t._v("#")]),t._v(" _get_applicable_actions "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_applicable_actions",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history), or in\nthe internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._get_applicable_actions()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_applicable_actions_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-16"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-16"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-23"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-23"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of applicable actions.")]),t._v(" "),a("h3",{attrs:{id:"get-applicable-actions-from"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-from"}},[t._v("#")]),t._v(" _get_applicable_actions_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_applicable_actions_from",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._get_applicable_actions()")]),t._v(", the difference being that\nthe memory parameter is mandatory here.")]),t._v(" "),a("h4",{attrs:{id:"parameters-17"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-17"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-24"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-24"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of applicable actions.")]),t._v(" "),a("h3",{attrs:{id:"get-enabled-events-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-2"}},[t._v("#")]),t._v(" _get_enabled_events "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_enabled_events",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"Space[D.T_event]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory), or in the internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._get_enabled_events()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_enabled_events_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-18"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-18"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-25"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-25"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of enabled events.")]),t._v(" "),a("h3",{attrs:{id:"get-enabled-events-from"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-from"}},[t._v("#")]),t._v(" _get_enabled_events_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_enabled_events_from",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"Space[D.T_event]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._get_enabled_events()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("h4",{attrs:{id:"parameters-19"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-19"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-26"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-26"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of enabled events.")]),t._v(" "),a("h3",{attrs:{id:"get-goals-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-goals-2"}},[t._v("#")]),t._v(" _get_goals "),a("Badge",{attrs:{text:"Goals",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_goals",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) domain goals space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Goals._get_goals()")]),t._v(" internally calls "),a("code",[t._v("Goals._get_goals_()")]),t._v(" the first time and automatically caches\nits value to make future calls more efficient (since the goals space is assumed to be constant).")]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Goal states are assumed to be fully observable (i.e. observation = state) so that there is never uncertainty\nabout whether the goal has been reached or not. This assumption guarantees that any policy that does not\nreach the goal with certainty incurs in infinite expected cost. - "),a("em",[t._v("Geffner, 2013: A Concise Introduction to\nModels and Methods for Automated Planning")])])]),t._v(" "),a("h4",{attrs:{id:"returns-27"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-27"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The goals space.")]),t._v(" "),a("h3",{attrs:{id:"get-goals-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-goals-3"}},[t._v("#")]),t._v(" _get_goals_ "),a("Badge",{attrs:{text:"Goals",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_goals_",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the domain goals space (finite or infinite set).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Goals._get_goals()")]),t._v(", the difference being that the result is\nnot cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-28"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-28"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The goals space.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-2"}},[t._v("#")]),t._v(" _get_initial_state "),a("Badge",{attrs:{text:"DeterministicInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_initial_state",sig:{params:[{name:"self"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("Get the (cached) initial state.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("DeterministicInitialized._get_initial_state()")]),t._v(" internally\ncalls "),a("code",[t._v("DeterministicInitialized._get_initial_state_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the initial state is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-29"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-29"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The initial state.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-3"}},[t._v("#")]),t._v(" _get_initial_state_ "),a("Badge",{attrs:{text:"DeterministicInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_initial_state_",sig:{params:[{name:"self"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("Get the initial state.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("DeterministicInitialized._get_initial_state()")]),t._v(", the difference\nbeing that the result is not cached here.")]),t._v(" "),a("h4",{attrs:{id:"returns-30"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-30"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The initial state.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-distribution-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-distribution-2"}},[t._v("#")]),t._v(" _get_initial_state_distribution "),a("Badge",{attrs:{text:"UncertainInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_initial_state_distribution",sig:{params:[{name:"self"}],return:"Distribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("Get the (cached) probability distribution of initial states.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("UncertainInitialized._get_initial_state_distribution()")]),t._v(" internally\ncalls "),a("code",[t._v("UncertainInitialized._get_initial_state_distribution_()")]),t._v(" the first time and automatically caches its value\nto make future calls more efficient (since the initial state distribution is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-31"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-31"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of initial states.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-distribution-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-distribution-3"}},[t._v("#")]),t._v(" _get_initial_state_distribution_ "),a("Badge",{attrs:{text:"UncertainInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_initial_state_distribution_",sig:{params:[{name:"self"}],return:"Distribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("Get the probability distribution of initial states.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("UncertainInitialized._get_initial_state_distribution()")]),t._v(", the\ndifference being that the result is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-32"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-32"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of initial states.")]),t._v(" "),a("h3",{attrs:{id:"get-memory-maxlen"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-memory-maxlen"}},[t._v("#")]),t._v(" _get_memory_maxlen "),a("Badge",{attrs:{text:"History",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_memory_maxlen",sig:{params:[{name:"self"}],return:"int"}}}),t._v(" "),a("p",[t._v("Get the (cached) memory max length.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("FiniteHistory._get_memory_maxlen()")]),t._v(" internally calls "),a("code",[t._v("FiniteHistory._get_memory_maxlen_()")]),t._v(" the first\ntime and automatically caches its value to make future calls more efficient (since the memory max length is\nassumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-33"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-33"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The memory max length.")]),t._v(" "),a("h3",{attrs:{id:"get-memory-maxlen-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-memory-maxlen-2"}},[t._v("#")]),t._v(" _get_memory_maxlen_ "),a("Badge",{attrs:{text:"FiniteHistory",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_memory_maxlen_",sig:{params:[{name:"self"}],return:"int"}}}),t._v(" "),a("p",[t._v("Get the memory max length.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("FiniteHistory._get_memory_maxlen()")]),t._v(", the difference being that\nthe result is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-34"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-34"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The memory max length.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-2"}},[t._v("#")]),t._v(" _get_observation "),a("Badge",{attrs:{text:"TransformedObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Get the deterministic observation given a state and action.")]),t._v(" "),a("h4",{attrs:{id:"parameters-20"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-20"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-35"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-35"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-distribution-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-distribution-2"}},[t._v("#")]),t._v(" _get_observation_distribution "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation_distribution",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"Distribution[D.T_agent[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the probability distribution of the observation given a state and action.")]),t._v(" "),a("p",[t._v("In mathematical terms (discrete case), given an action "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.197ex",height:"1.02ex",viewBox:"0 -441 529 451"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})])])])])]),t._v(", this function represents: "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.078ex",height:"2.262ex",viewBox:"0 -750 4012.7 1000"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"50",d:"M287 628Q287 635 230 637Q206 637 199 638T192 648Q192 649 194 659Q200 679 203 681T397 683Q587 682 600 680Q664 669 707 631T751 530Q751 453 685 389Q616 321 507 303Q500 302 402 301H307L277 182Q247 66 247 59Q247 55 248 54T255 50T272 48T305 46H336Q342 37 342 35Q342 19 335 5Q330 0 319 0Q316 0 282 1T182 2Q120 2 87 2T51 1Q33 1 33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM645 554Q645 567 643 575T634 597T609 619T560 635Q553 636 480 637Q463 637 445 637T416 636T404 636Q391 635 386 627Q384 621 367 550T332 412T314 344Q314 342 395 342H407H430Q542 342 590 392Q617 419 631 471T645 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(751, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(1140, 0)"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1903, 0)"}},[a("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(2181, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2650, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(3094.7, 0)"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3623.7, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(",\nwhere "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.05ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.726ex",height:"1.643ex",viewBox:"0 -704 763 726"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})])])])])]),t._v(" is the random variable of the observation.")],1),t._v(" "),a("h4",{attrs:{id:"parameters-21"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-21"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-36"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-36"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-space-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-2"}},[t._v("#")]),t._v(" _get_observation_space "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) observation space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(" internally\ncalls "),a("code",[t._v("PartiallyObservable._get_observation_space_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the observation space is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-37"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-37"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The observation space.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-space-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-3"}},[t._v("#")]),t._v(" _get_observation_space_ "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation_space_",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the observation space (finite or infinite set).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(", the difference\nbeing that the result is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-38"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-38"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The observation space.")]),t._v(" "),a("h3",{attrs:{id:"init-memory"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#init-memory"}},[t._v("#")]),t._v(" _init_memory "),a("Badge",{attrs:{text:"History",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_init_memory",sig:{params:[{name:"self"},{name:"state",default:"None",annotation:"Optional[D.T_state]"}],return:"D.T_memory[D.T_state]"}}}),t._v(" "),a("p",[t._v("Initialize memory (possibly with a state) according to its specification and return it.")]),t._v(" "),a("p",[t._v("This function is automatically called by "),a("code",[t._v("Initializable._reset()")]),t._v(" to reinitialize the internal memory whenever\nthe domain is used as an environment.")]),t._v(" "),a("h4",{attrs:{id:"parameters-22"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-22"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": An optional state to initialize the memory with (typically the initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-39"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-39"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The new initialized memory.")]),t._v(" "),a("h3",{attrs:{id:"is-action-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-action-2"}},[t._v("#")]),t._v(" _is_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_action",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an event is an action (i.e. a controllable event for the agents).")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\naction space provided by "),a("code",[t._v("Events._get_action_space()")]),t._v(", but it can be overridden for faster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-23"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-23"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("event")]),t._v(": The event to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-40"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-40"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is an action (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-applicable-action-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-2"}},[t._v("#")]),t._v(" _is_applicable_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_applicable_action",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an action is applicable in the given memory (state or history), or in the internal one if\nomitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._is_applicable_action()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_applicable_action_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-24"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-24"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-41"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-41"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the action is applicable (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-applicable-action-from"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-from"}},[t._v("#")]),t._v(" _is_applicable_action_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_applicable_action_from",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an action is applicable in the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._is_applicable_action()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the space of\napplicable actions provided by "),a("code",[t._v("Events._get_applicable_actions_from()")]),t._v(", but it can be overridden for faster\nimplementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-25"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-25"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-42"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-42"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the action is applicable (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-enabled-event-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-2"}},[t._v("#")]),t._v(" _is_enabled_event "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_enabled_event",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an uncontrollable event is enabled in the given memory (state or history), or in the\ninternal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._is_enabled_event()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_enabled_event_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead\nof the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-26"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-26"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-43"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-43"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is enabled (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-enabled-event-from"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-from"}},[t._v("#")]),t._v(" _is_enabled_event_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_enabled_event_from",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an event is enabled in the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._is_enabled_event()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the space of\nenabled events provided by "),a("code",[t._v("Events._get_enabled_events_from()")]),t._v(", but it can be overridden for faster\nimplementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-27"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-27"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-44"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-44"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is enabled (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-goal-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-goal-2"}},[t._v("#")]),t._v(" _is_goal "),a("Badge",{attrs:{text:"Goals",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_goal",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"D.T_agent[D.T_predicate]"}}}),t._v(" "),a("p",[t._v("Indicate whether an observation belongs to the goals.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\ngoals space provided by "),a("code",[t._v("Goals._get_goals()")]),t._v(", but it can be overridden for faster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-28"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-28"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-45"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-45"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the observation is a goal (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-observation-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-observation-2"}},[t._v("#")]),t._v(" _is_observation "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_observation",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that an observation indeed belongs to the domain observation space.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\nobservation space provided by "),a("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(", but it can be overridden for\nfaster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-29"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-29"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-46"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-46"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the observation belongs to the domain observation space (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"reset-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#reset-2"}},[t._v("#")]),t._v(" _reset "),a("Badge",{attrs:{text:"Initializable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_reset",sig:{params:[{name:"self"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Reset the state of the environment and return an initial observation.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Initializable._reset()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Initializable._state_reset()")]),t._v(" (which returns an initial state). The boilerplate code automatically stores\nthe initial state into the "),a("code",[t._v("_memory")]),t._v(" attribute and samples a corresponding observation.")]),t._v(" "),a("h4",{attrs:{id:"returns-47"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-47"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("An initial observation.")]),t._v(" "),a("h3",{attrs:{id:"sample-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample-2"}},[t._v("#")]),t._v(" _sample "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_sample",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Sample one transition of the simulator's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Simulation._sample()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Simulation._state_sample()")]),t._v(" (which returns a transition outcome). The boilerplate code automatically\nsamples an observation corresponding to the sampled next state.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing simulator needs to be wrapped instead of implemented fully in scikit-decide (e.g. a\nsimulator), it is recommended to overwrite "),a("code",[t._v("Simulation._sample()")]),t._v(" to call the external simulator and not use\nthe "),a("code",[t._v("Simulation._state_sample()")]),t._v(" helper function.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-30"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-30"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-48"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-48"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of the sampled transition.")]),t._v(" "),a("h3",{attrs:{id:"set-memory-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#set-memory-2"}},[t._v("#")]),t._v(" _set_memory "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_set_memory",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"None"}}}),t._v(" "),a("p",[t._v("Set internal memory attribute "),a("code",[t._v("_memory")]),t._v(" to given one.")]),t._v(" "),a("p",[t._v('This can be useful to set a specific "starting point" before doing a rollout with\nsuccessive '),a("code",[t._v("Environment._step()")]),t._v(" calls.")]),t._v(" "),a("h4",{attrs:{id:"parameters-31"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-31"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to set internally.")])]),t._v(" "),a("h4",{attrs:{id:"example-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#example-2"}},[t._v("#")]),t._v(" Example")]),t._v(" "),a("div",{staticClass:"language-python extra-class"},[a("pre",{pre:!0,attrs:{class:"language-python"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Set simulation_domain memory to my_state (assuming Markovian domain)")]),t._v("\nsimulation_domain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("_set_memory"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("my_state"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Start a 100-steps rollout from here (applying my_action at every step)")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("for")]),t._v(" _ "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("in")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("range")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n simulation_domain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("_step"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("my_action"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("h3",{attrs:{id:"state-reset"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#state-reset"}},[t._v("#")]),t._v(" _state_reset "),a("Badge",{attrs:{text:"Initializable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_state_reset",sig:{params:[{name:"self"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("Reset the state of the environment and return an initial state.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Initializable._reset()")]),t._v(". It focuses on the state level, as\nopposed to the observation one for the latter.")]),t._v(" "),a("h4",{attrs:{id:"returns-49"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-49"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("An initial state.")]),t._v(" "),a("h3",{attrs:{id:"state-sample"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#state-sample"}},[t._v("#")]),t._v(" _state_sample "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_state_sample",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"TransitionOutcome[D.T_state, D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Compute one sample of the transition's dynamics.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Simulation._sample()")]),t._v(". It focuses on the state level, as\nopposed to the observation one for the latter.")]),t._v(" "),a("h4",{attrs:{id:"parameters-32"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-32"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-50"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-50"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The transition outcome of the sampled transition.")]),t._v(" "),a("h3",{attrs:{id:"state-step"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#state-step"}},[t._v("#")]),t._v(" _state_step "),a("Badge",{attrs:{text:"Environment",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_state_step",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"TransitionOutcome[D.T_state, D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Compute one step of the transition's dynamics.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Environment._step()")]),t._v(". It focuses on the state level, as opposed\nto the observation one for the latter.")]),t._v(" "),a("h4",{attrs:{id:"parameters-33"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-33"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the current memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-51"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-51"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The transition outcome of this step.")]),t._v(" "),a("h3",{attrs:{id:"step-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#step-2"}},[t._v("#")]),t._v(" _step "),a("Badge",{attrs:{text:"Environment",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_step",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Run one step of the environment's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Environment._step()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Environment._state_step()")]),t._v(" (which returns a transition outcome). The boilerplate code automatically stores\nnext state into the "),a("code",[t._v("_memory")]),t._v(" attribute and samples a corresponding observation.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing environment needs to be wrapped instead of implemented fully in scikit-decide (e.g. compiled\nATARI games), it is recommended to overwrite "),a("code",[t._v("Environment._step()")]),t._v(" to call the external environment and not\nuse the "),a("code",[t._v("Environment._state_step()")]),t._v(" helper function.")])]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Before calling "),a("code",[t._v("Environment._step()")]),t._v(" the first time or when the end of an episode is\nreached, "),a("code",[t._v("Initializable._reset()")]),t._v(" must be called to reset the environment's state.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-34"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-34"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the current memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-52"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-52"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of this step.")]),t._v(" "),a("h2",{attrs:{id:"schedulingdomain"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#schedulingdomain"}},[t._v("#")]),t._v(" SchedulingDomain")]),t._v(" "),a("p",[t._v("This is the highest level scheduling domain class (inheriting top-level class for each mandatory\ndomain characteristic).\nThis is where the implementation of the statefull scheduling domain is implemented,\nletting to the user the possibility\nto the user to define the scheduling problem without having to think of a statefull version.")]),t._v(" "),a("h3",{attrs:{id:"add-to-current-conditions"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#add-to-current-conditions"}},[t._v("#")]),t._v(" add_to_current_conditions "),a("Badge",{attrs:{text:"WithConditionalTasks",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"add_to_current_conditions",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"state"}]}}}),t._v(" "),a("p",[t._v("Samples completion conditions for a given task and add these conditions to the list of conditions in the\ngiven state. This function should be called when a task complete.")]),t._v(" "),a("h3",{attrs:{id:"all-tasks-possible"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#all-tasks-possible"}},[t._v("#")]),t._v(" all_tasks_possible "),a("Badge",{attrs:{text:"MixedRenewable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"all_tasks_possible",sig:{params:[{name:"self"},{name:"state",annotation:"State"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Return a True is for each task there is at least one mode in which the task can be executed, given the\nresource configuration in the state provided as argument. Returns False otherwise.\nIf this function returns False, the scheduling problem is unsolvable from this state.\nThis is to cope with the use of non-renable resources that may lead to state from which a\ntask will not be possible anymore.")]),t._v(" "),a("h3",{attrs:{id:"check-if-action-can-be-started"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#check-if-action-can-be-started"}},[t._v("#")]),t._v(" check_if_action_can_be_started "),a("Badge",{attrs:{text:"SchedulingDomain",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"check_if_action_can_be_started",sig:{params:[{name:"self"},{name:"state",annotation:"State"},{name:"action",annotation:"SchedulingAction"}],return:"Tuple[bool, Dict[str, int]]"}}}),t._v(" "),a("p",[t._v("Check if a start or resume action can be applied. It returns a boolean and a dictionary of resources to use.")]),t._v(" "),a("h3",{attrs:{id:"check-unique-resource-names"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#check-unique-resource-names"}},[t._v("#")]),t._v(" check_unique_resource_names "),a("Badge",{attrs:{text:"UncertainResourceAvailabilityChanges",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"check_unique_resource_names",sig:{params:[{name:"self"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Return True if there are no duplicates in resource names across both resource types\nand resource units name lists.")]),t._v(" "),a("h3",{attrs:{id:"check-value-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#check-value-3"}},[t._v("#")]),t._v(" check_value "),a("Badge",{attrs:{text:"Rewards",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"check_value",sig:{params:[{name:"self"},{name:"value",annotation:"Value[D.T_value]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that a value is compliant with its reward specification.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("This function returns always True by default because any kind of reward should be accepted at this level.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-35"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-35"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("value")]),t._v(": The value to check.")])]),t._v(" "),a("h4",{attrs:{id:"returns-53"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-53"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the value is compliant (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"find-one-ressource-to-do-one-task"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#find-one-ressource-to-do-one-task"}},[t._v("#")]),t._v(" find_one_ressource_to_do_one_task "),a("Badge",{attrs:{text:"WithResourceSkills",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"find_one_ressource_to_do_one_task",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"mode",annotation:"int"}],return:"List[str]"}}}),t._v(" "),a("p",[t._v("For the common case when it is possible to do the task by one resource unit.\nFor general case, it might just return no possible ressource unit.")]),t._v(" "),a("h3",{attrs:{id:"get-action-space-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-4"}},[t._v("#")]),t._v(" get_action_space "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_action_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) domain action space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.get_action_space()")]),t._v(" internally calls "),a("code",[t._v("Events._get_action_space_()")]),t._v(" the first time and\nautomatically caches its value to make future calls more efficient (since the action space is assumed to be\nconstant).")]),t._v(" "),a("h4",{attrs:{id:"returns-54"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-54"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The action space.")]),t._v(" "),a("h3",{attrs:{id:"get-all-condition-items"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-all-condition-items"}},[t._v("#")]),t._v(" get_all_condition_items "),a("Badge",{attrs:{text:"WithConditionalTasks",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_all_condition_items",sig:{params:[{name:"self"}],return:"Enum"}}}),t._v(" "),a("p",[t._v("Return an Enum with all the elements that can be used to define a condition.")]),t._v(" "),a("p",[t._v("Example:\nreturn\nConditionElementsExample(Enum):\nOK = 0\nNC_PART_1_OPERATION_1 = 1\nNC_PART_1_OPERATION_2 = 2\nNC_PART_2_OPERATION_1 = 3\nNC_PART_2_OPERATION_2 = 4\nHARDWARE_ISSUE_MACHINE_A = 5\nHARDWARE_ISSUE_MACHINE_B = 6")]),t._v(" "),a("h3",{attrs:{id:"get-all-resources-skills"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-all-resources-skills"}},[t._v("#")]),t._v(" get_all_resources_skills "),a("Badge",{attrs:{text:"WithResourceSkills",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_all_resources_skills",sig:{params:[{name:"self"}],return:"Dict[str, Dict[str, Any]]"}}}),t._v(" "),a("p",[t._v("Return a nested dictionary where the first key is the name of a resource type or resource unit\nand the second key is the name of a skill. The value defines the details of the skill.\nE.g. {unit: {skill: (detail of skill)}}")]),t._v(" "),a("h3",{attrs:{id:"get-all-tasks-skills"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-all-tasks-skills"}},[t._v("#")]),t._v(" get_all_tasks_skills "),a("Badge",{attrs:{text:"WithResourceSkills",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_all_tasks_skills",sig:{params:[{name:"self"}],return:"Dict[int, Dict[int, Dict[str, Any]]]"}}}),t._v(" "),a("p",[t._v("Return a nested dictionary where the first key is the name of a task\nand the second key is the name of a skill. The value defines the details of the skill.\nE.g. {task: {skill: (detail of skill)}}")]),t._v(" "),a("h3",{attrs:{id:"get-all-unconditional-tasks"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-all-unconditional-tasks"}},[t._v("#")]),t._v(" get_all_unconditional_tasks "),a("Badge",{attrs:{text:"WithConditionalTasks",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_all_unconditional_tasks",sig:{params:[{name:"self"}],return:"Set[int]"}}}),t._v(" "),a("p",[t._v("Returns the set of all task ids for which there are no conditions. These tasks are to be considered at\nthe start of a project (i.e. in the initial state).")]),t._v(" "),a("h3",{attrs:{id:"get-applicable-actions-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-3"}},[t._v("#")]),t._v(" get_applicable_actions "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_applicable_actions",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history), or in\nthe internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.get_applicable_actions()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_applicable_actions()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-36"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-36"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-55"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-55"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of applicable actions.")]),t._v(" "),a("h3",{attrs:{id:"get-available-tasks"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-available-tasks"}},[t._v("#")]),t._v(" get_available_tasks "),a("Badge",{attrs:{text:"WithConditionalTasks",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_available_tasks",sig:{params:[{name:"self"},{name:"state"}],return:"Set[int]"}}}),t._v(" "),a("p",[t._v("Returns the set of all task ids that can be considered under the conditions defined in the given state.\nNote that the set will contains all ids for all tasks in the domain that meet the conditions, that is tasks\nthat are remaining, or that have been completed, paused or started / resumed.")]),t._v(" "),a("h3",{attrs:{id:"get-enabled-events-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-3"}},[t._v("#")]),t._v(" get_enabled_events "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_enabled_events",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"Space[D.T_event]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory), or in the internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.get_enabled_events()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_enabled_events()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead of\nthe memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-37"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-37"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-56"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-56"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of enabled events.")]),t._v(" "),a("h3",{attrs:{id:"get-goals-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-goals-4"}},[t._v("#")]),t._v(" get_goals "),a("Badge",{attrs:{text:"Goals",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_goals",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) domain goals space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Goals.get_goals()")]),t._v(" internally calls "),a("code",[t._v("Goals._get_goals_()")]),t._v(" the first time and automatically caches its\nvalue to make future calls more efficient (since the goals space is assumed to be constant).")]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Goal states are assumed to be fully observable (i.e. observation = state) so that there is never uncertainty\nabout whether the goal has been reached or not. This assumption guarantees that any policy that does not\nreach the goal with certainty incurs in infinite expected cost. - "),a("em",[t._v("Geffner, 2013: A Concise Introduction to\nModels and Methods for Automated Planning")])])]),t._v(" "),a("h4",{attrs:{id:"returns-57"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-57"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The goals space.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-4"}},[t._v("#")]),t._v(" get_initial_state "),a("Badge",{attrs:{text:"DeterministicInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_initial_state",sig:{params:[{name:"self"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("Get the (cached) initial state.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("DeterministicInitialized.get_initial_state()")]),t._v(" internally\ncalls "),a("code",[t._v("DeterministicInitialized._get_initial_state_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the initial state is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-58"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-58"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The initial state.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-distribution-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-distribution-4"}},[t._v("#")]),t._v(" get_initial_state_distribution "),a("Badge",{attrs:{text:"UncertainInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_initial_state_distribution",sig:{params:[{name:"self"}],return:"Distribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("Get the (cached) probability distribution of initial states.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("UncertainInitialized.get_initial_state_distribution()")]),t._v(" internally\ncalls "),a("code",[t._v("UncertainInitialized._get_initial_state_distribution_()")]),t._v(" the first time and automatically caches its value\nto make future calls more efficient (since the initial state distribution is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-59"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-59"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of initial states.")]),t._v(" "),a("h3",{attrs:{id:"get-max-horizon"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-max-horizon"}},[t._v("#")]),t._v(" get_max_horizon "),a("Badge",{attrs:{text:"SchedulingDomain",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_max_horizon",sig:{params:[{name:"self"}],return:"int"}}}),t._v(" "),a("p",[t._v("Return the maximum time horizon (int)")]),t._v(" "),a("h3",{attrs:{id:"get-mode-costs"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-mode-costs"}},[t._v("#")]),t._v(" get_mode_costs "),a("Badge",{attrs:{text:"WithModeCosts",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_mode_costs",sig:{params:[{name:"self"}],return:"Dict[int, Dict[int, float]]"}}}),t._v(" "),a("p",[t._v("Return a nested dictionary where the first key is the id of a task (int), the second key the id of a mode\nand the value indicates the cost of execution the task in the mode.")]),t._v(" "),a("h3",{attrs:{id:"get-objectives"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-objectives"}},[t._v("#")]),t._v(" get_objectives "),a("Badge",{attrs:{text:"SchedulingDomain",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_objectives",sig:{params:[{name:"self"}],return:"List[SchedulingObjectiveEnum]"}}}),t._v(" "),a("p",[t._v("Return the objectives to consider as a list. The items should be of SchedulingObjectiveEnum type.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-3"}},[t._v("#")]),t._v(" get_observation "),a("Badge",{attrs:{text:"TransformedObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_observation",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Get the deterministic observation given a state and action.")]),t._v(" "),a("h4",{attrs:{id:"parameters-38"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-38"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-60"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-60"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-distribution-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-distribution-3"}},[t._v("#")]),t._v(" get_observation_distribution "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_observation_distribution",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"Distribution[D.T_agent[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the probability distribution of the observation given a state and action.")]),t._v(" "),a("p",[t._v("In mathematical terms (discrete case), given an action "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.197ex",height:"1.02ex",viewBox:"0 -441 529 451"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})])])])])]),t._v(", this function represents: "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.078ex",height:"2.262ex",viewBox:"0 -750 4012.7 1000"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"50",d:"M287 628Q287 635 230 637Q206 637 199 638T192 648Q192 649 194 659Q200 679 203 681T397 683Q587 682 600 680Q664 669 707 631T751 530Q751 453 685 389Q616 321 507 303Q500 302 402 301H307L277 182Q247 66 247 59Q247 55 248 54T255 50T272 48T305 46H336Q342 37 342 35Q342 19 335 5Q330 0 319 0Q316 0 282 1T182 2Q120 2 87 2T51 1Q33 1 33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM645 554Q645 567 643 575T634 597T609 619T560 635Q553 636 480 637Q463 637 445 637T416 636T404 636Q391 635 386 627Q384 621 367 550T332 412T314 344Q314 342 395 342H407H430Q542 342 590 392Q617 419 631 471T645 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(751, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(1140, 0)"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1903, 0)"}},[a("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(2181, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2650, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(3094.7, 0)"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3623.7, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(",\nwhere "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.05ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.726ex",height:"1.643ex",viewBox:"0 -704 763 726"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})])])])])]),t._v(" is the random variable of the observation.")],1),t._v(" "),a("h4",{attrs:{id:"parameters-39"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-39"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-61"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-61"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-space-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-4"}},[t._v("#")]),t._v(" get_observation_space "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_observation_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) observation space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("PartiallyObservable.get_observation_space()")]),t._v(" internally\ncalls "),a("code",[t._v("PartiallyObservable._get_observation_space_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the observation space is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-62"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-62"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The observation space.")]),t._v(" "),a("h3",{attrs:{id:"get-preallocations"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-preallocations"}},[t._v("#")]),t._v(" get_preallocations "),a("Badge",{attrs:{text:"WithPreallocations",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_preallocations",sig:{params:[{name:"self"}],return:"Dict[int, List[str]]"}}}),t._v(" "),a("p",[t._v("Return a dictionary where the key is the id of a task (int)\nand the value indicates the pre-allocated resources for this task (as a list of str)")]),t._v(" "),a("h3",{attrs:{id:"get-predecessors"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-predecessors"}},[t._v("#")]),t._v(" get_predecessors "),a("Badge",{attrs:{text:"WithPrecedence",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_predecessors",sig:{params:[{name:"self"}],return:"Dict[int, List[int]]"}}}),t._v(" "),a("p",[t._v("Return the predecessors of the task. Successors are given as a list for a task given as a key.")]),t._v(" "),a("h3",{attrs:{id:"get-resource-cost-per-time-unit"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-resource-cost-per-time-unit"}},[t._v("#")]),t._v(" get_resource_cost_per_time_unit "),a("Badge",{attrs:{text:"WithResourceCosts",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_resource_cost_per_time_unit",sig:{params:[{name:"self"}],return:"Dict[str, float]"}}}),t._v(" "),a("p",[t._v("Return a dictionary where the key is the name of a resource (str)\nand the value indicates the cost of using this resource per time unit.")]),t._v(" "),a("h3",{attrs:{id:"get-resource-renewability"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-resource-renewability"}},[t._v("#")]),t._v(" get_resource_renewability "),a("Badge",{attrs:{text:"MixedRenewable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_resource_renewability",sig:{params:[{name:"self"}],return:"Dict[str, bool]"}}}),t._v(" "),a("p",[t._v("Return a dictionary where the key is a resource name (string)\nand the value whether this resource is renewable (True) or not (False).")]),t._v(" "),a("h3",{attrs:{id:"get-resource-type-for-unit"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-resource-type-for-unit"}},[t._v("#")]),t._v(" get_resource_type_for_unit "),a("Badge",{attrs:{text:"WithResourceUnits",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_resource_type_for_unit",sig:{params:[{name:"self"}],return:"Dict[str, str]"}}}),t._v(" "),a("p",[t._v("Return a dictionary where the key is a resource unit name and the value a resource type name.\nAn empty dictionary can be used if there are no resource unit matching a resource type.")]),t._v(" "),a("h3",{attrs:{id:"get-resource-types-names"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-resource-types-names"}},[t._v("#")]),t._v(" get_resource_types_names "),a("Badge",{attrs:{text:"WithResourceTypes",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_resource_types_names",sig:{params:[{name:"self"}],return:"List[str]"}}}),t._v(" "),a("p",[t._v("Return the names (string) of all resource types as a list.")]),t._v(" "),a("h3",{attrs:{id:"get-resource-units-names"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-resource-units-names"}},[t._v("#")]),t._v(" get_resource_units_names "),a("Badge",{attrs:{text:"WithResourceUnits",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_resource_units_names",sig:{params:[{name:"self"}],return:"List[str]"}}}),t._v(" "),a("p",[t._v("Return the names (string) of all resource units as a list.")]),t._v(" "),a("h3",{attrs:{id:"get-skills-names"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-skills-names"}},[t._v("#")]),t._v(" get_skills_names "),a("Badge",{attrs:{text:"WithResourceSkills",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_skills_names",sig:{params:[{name:"self"}],return:"Set[str]"}}}),t._v(" "),a("p",[t._v("Return a list of all skill names as a list of str. Skill names are defined in the 2 dictionaries returned\nby the get_all_resources_skills and get_all_tasks_skills functions.")]),t._v(" "),a("h3",{attrs:{id:"get-skills-of-resource"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-skills-of-resource"}},[t._v("#")]),t._v(" get_skills_of_resource "),a("Badge",{attrs:{text:"WithResourceSkills",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_skills_of_resource",sig:{params:[{name:"self"},{name:"resource",annotation:"str"}],return:"Dict[str, Any]"}}}),t._v(" "),a("p",[t._v("Return the skills of a given resource")]),t._v(" "),a("h3",{attrs:{id:"get-skills-of-task"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-skills-of-task"}},[t._v("#")]),t._v(" get_skills_of_task "),a("Badge",{attrs:{text:"WithResourceSkills",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_skills_of_task",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"mode",annotation:"int"}],return:"Dict[str, Any]"}}}),t._v(" "),a("p",[t._v("Return the skill requirements for a given task")]),t._v(" "),a("h3",{attrs:{id:"get-successors"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-successors"}},[t._v("#")]),t._v(" get_successors "),a("Badge",{attrs:{text:"WithPrecedence",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_successors",sig:{params:[{name:"self"}],return:"Dict[int, List[int]]"}}}),t._v(" "),a("p",[t._v("Return the successors of the tasks. Successors are given as a list for a task given as a key.")]),t._v(" "),a("h3",{attrs:{id:"get-task-existence-conditions"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-task-existence-conditions"}},[t._v("#")]),t._v(" get_task_existence_conditions "),a("Badge",{attrs:{text:"WithConditionalTasks",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_task_existence_conditions",sig:{params:[{name:"self"}],return:"Dict[int, List[int]]"}}}),t._v(" "),a("p",[t._v("Return a dictionary where the key is a task id and the value a list of conditions to be respected (True)\nfor the task to be part of the schedule. If a task has no entry in the dictionary,\nthere is no conditions for that task.")]),t._v(" "),a("p",[t._v("Example:\nreturn\n{\n20: [get_all_condition_items().NC_PART_1_OPERATION_1],\n21: [get_all_condition_items().HARDWARE_ISSUE_MACHINE_A]\n22: [get_all_condition_items().NC_PART_1_OPERATION_1, get_all_condition_items().NC_PART_1_OPERATION_2]\n}e")]),t._v(" "),a("h3",{attrs:{id:"get-task-on-completion-added-conditions"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-task-on-completion-added-conditions"}},[t._v("#")]),t._v(" get_task_on_completion_added_conditions "),a("Badge",{attrs:{text:"WithConditionalTasks",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_task_on_completion_added_conditions",sig:{params:[{name:"self"}],return:"Dict[int, List[Distribution]]"}}}),t._v(" "),a("p",[t._v("Return a dict of list. The key of the dict is the task id and each list is composed of a list of tuples.\nEach tuple contains the probability (first item in tuple) that the conditionElement (second item in tuple)\nis True. The probabilities in the inner list should sum up to 1. The dictionary should only contains the keys\nof tasks that can create conditions.")]),t._v(" "),a("p",[t._v("Example:\nreturn\n{\n12:\n[\nDiscreteDistribution([(ConditionElementsExample.NC_PART_1_OPERATION_1, 0.1), (ConditionElementsExample.OK, 0.9)]),\nDiscreteDistribution([(ConditionElementsExample.HARDWARE_ISSUE_MACHINE_A, 0.05), ('paper', 0.1), (ConditionElementsExample.OK, 0.95)])\n]\n}")]),t._v(" "),a("h3",{attrs:{id:"get-task-paused-non-renewable-resource-returned"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-task-paused-non-renewable-resource-returned"}},[t._v("#")]),t._v(" get_task_paused_non_renewable_resource_returned "),a("Badge",{attrs:{text:"WithPreemptivity",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_task_paused_non_renewable_resource_returned",sig:{params:[{name:"self"}],return:"Dict[int, bool]"}}}),t._v(" "),a("p",[t._v("Return a dictionary where the key is a task id and the value is of type bool indicating\nif the non-renewable resources are consumed when the task is paused (False) or made available again (True).\nE.g. {\n2: False # if paused, non-renewable resource will be consumed\n5: True # if paused, the non-renewable resource will be available again\n}")]),t._v(" "),a("h3",{attrs:{id:"get-task-preemptivity"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-task-preemptivity"}},[t._v("#")]),t._v(" get_task_preemptivity "),a("Badge",{attrs:{text:"WithPreemptivity",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_task_preemptivity",sig:{params:[{name:"self"}],return:"Dict[int, bool]"}}}),t._v(" "),a("p",[t._v("Return a dictionary where the key is a task id and the value a boolean indicating\nif the task can be paused or stopped.\nE.g. {\n1: False\n2: True\n3: False\n4: False\n5: True\n6: False\n}")]),t._v(" "),a("h3",{attrs:{id:"get-task-progress"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-task-progress"}},[t._v("#")]),t._v(" get_task_progress "),a("Badge",{attrs:{text:"CustomTaskProgress",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_task_progress",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"t_from",annotation:"int"},{name:"t_to",annotation:"int"},{name:"mode",annotation:"Optional[int]"},{name:"sampled_duration",default:"None",annotation:"Optional[int]"}],return:"float"}}}),t._v(" "),a("h4",{attrs:{id:"returns-63"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-63"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The task progress (float) between t_from and t_to.")]),t._v(" "),a("h3",{attrs:{id:"get-task-resuming-type"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-task-resuming-type"}},[t._v("#")]),t._v(" get_task_resuming_type "),a("Badge",{attrs:{text:"WithPreemptivity",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_task_resuming_type",sig:{params:[{name:"self"}],return:"Dict[int, ResumeType]"}}}),t._v(" "),a("p",[t._v("Return a dictionary where the key is a task id and the value is of type ResumeType indicating\nif the task can be resumed (restarted from where it was paused with no time loss)\nor restarted (restarted from the start).\nE.g. {\n1: ResumeType.NA\n2: ResumeType.Resume\n3: ResumeType.NA\n4: ResumeType.NA\n5: ResumeType.Restart\n6: ResumeType.NA\n}")]),t._v(" "),a("h3",{attrs:{id:"get-time-lags"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-time-lags"}},[t._v("#")]),t._v(" get_time_lags "),a("Badge",{attrs:{text:"WithTimeLag",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_time_lags",sig:{params:[{name:"self"}],return:"Dict[int, Dict[int, TimeLag]]"}}}),t._v(" "),a("p",[t._v("Return nested dictionaries where the first key is the id of a task (int)\nand the second key is the id of another task (int).\nThe value is a TimeLag object containing the MINIMUM and MAXIMUM time (int) that needs to separate the end\nof the first task to the start of the second task.")]),t._v(" "),a("p",[t._v("e.g.\n{\n12:{\n15: TimeLag(5, 10),\n16: TimeLag(5, 20),\n17: MinimumOnlyTimeLag(5),\n18: MaximumOnlyTimeLag(15),\n}\n}")]),t._v(" "),a("h4",{attrs:{id:"returns-64"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-64"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("A dictionary of TimeLag objects.")]),t._v(" "),a("h3",{attrs:{id:"get-time-window"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-time-window"}},[t._v("#")]),t._v(" get_time_window "),a("Badge",{attrs:{text:"WithTimeWindow",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_time_window",sig:{params:[{name:"self"}],return:"Dict[int, TimeWindow]"}}}),t._v(" "),a("p",[t._v("Return a dictionary where the key is the id of a task (int)\nand the value is a TimeWindow object.\nNote that the max time horizon needs to be provided to the TimeWindow constructors\ne.g.\n{\n1: TimeWindow(10, 15, 20, 30, self.get_max_horizon())\n2: EmptyTimeWindow(self.get_max_horizon())\n3: EndTimeWindow(20, 25, self.get_max_horizon())\n4: EndBeforeOnlyTimeWindow(40, self.get_max_horizon())\n}")]),t._v(" "),a("h4",{attrs:{id:"returns-65"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-65"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("A dictionary of TimeWindow objects.")]),t._v(" "),a("h3",{attrs:{id:"get-variable-resource-consumption"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-variable-resource-consumption"}},[t._v("#")]),t._v(" get_variable_resource_consumption "),a("Badge",{attrs:{text:"VariableResourceConsumption",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_variable_resource_consumption",sig:{params:[{name:"self"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Return true if the domain has variable resource consumption,\nfalse if the consumption of resource does not vary in time for any of the tasks")]),t._v(" "),a("h3",{attrs:{id:"initialize-domain"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#initialize-domain"}},[t._v("#")]),t._v(" initialize_domain "),a("Badge",{attrs:{text:"SchedulingDomain",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"initialize_domain",sig:{params:[{name:"self"}]}}}),t._v(" "),a("p",[t._v("Initialize a scheduling domain. This function needs to be called when instantiating a scheduling domain.")]),t._v(" "),a("h3",{attrs:{id:"is-action-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-action-3"}},[t._v("#")]),t._v(" is_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_action",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an event is an action (i.e. a controllable event for the agents).")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\naction space provided by "),a("code",[t._v("Events.get_action_space()")]),t._v(", but it can be overridden for faster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-40"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-40"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("event")]),t._v(": The event to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-66"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-66"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is an action (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-applicable-action-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-3"}},[t._v("#")]),t._v(" is_applicable_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_applicable_action",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an action is applicable in the given memory (state or history), or in the internal one if\nomitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.is_applicable_action()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_applicable_action()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead\nof the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-41"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-41"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-67"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-67"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the action is applicable (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-enabled-event-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-3"}},[t._v("#")]),t._v(" is_enabled_event "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_enabled_event",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an uncontrollable event is enabled in the given memory (state or history), or in the\ninternal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.is_enabled_event()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_enabled_event()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead of\nthe memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-42"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-42"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-68"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-68"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is enabled (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-goal-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-goal-3"}},[t._v("#")]),t._v(" is_goal "),a("Badge",{attrs:{text:"Goals",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_goal",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"D.T_agent[D.T_predicate]"}}}),t._v(" "),a("p",[t._v("Indicate whether an observation belongs to the goals.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\ngoals space provided by "),a("code",[t._v("Goals.get_goals()")]),t._v(", but it can be overridden for faster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-43"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-43"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-69"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-69"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the observation is a goal (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-observation-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-observation-3"}},[t._v("#")]),t._v(" is_observation "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_observation",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that an observation indeed belongs to the domain observation space.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\nobservation space provided by "),a("code",[t._v("PartiallyObservable.get_observation_space()")]),t._v(", but it can be overridden for\nfaster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-44"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-44"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-70"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-70"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the observation belongs to the domain observation space (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"reset-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#reset-3"}},[t._v("#")]),t._v(" reset "),a("Badge",{attrs:{text:"Initializable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"reset",sig:{params:[{name:"self"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Reset the state of the environment and return an initial observation.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Initializable.reset()")]),t._v(" provides some boilerplate code and internally calls "),a("code",[t._v("Initializable._reset()")]),t._v("\n(which returns an initial state). The boilerplate code automatically stores the initial state into the "),a("code",[t._v("_memory")]),t._v("\nattribute and samples a corresponding observation.")]),t._v(" "),a("h4",{attrs:{id:"returns-71"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-71"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("An initial observation.")]),t._v(" "),a("h3",{attrs:{id:"sample-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample-3"}},[t._v("#")]),t._v(" sample "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"sample",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Sample one transition of the simulator's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Simulation.sample()")]),t._v(" provides some boilerplate code and internally calls "),a("code",[t._v("Simulation._sample()")]),t._v("\n(which returns a transition outcome). The boilerplate code automatically samples an observation corresponding to\nthe sampled next state.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing simulator needs to be wrapped instead of implemented fully in scikit-decide (e.g. a\nsimulator), it is recommended to overwrite "),a("code",[t._v("Simulation.sample()")]),t._v(" to call the external simulator and not use\nthe "),a("code",[t._v("Simulation._sample()")]),t._v(" helper function.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-45"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-45"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-72"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-72"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of the sampled transition.")]),t._v(" "),a("h3",{attrs:{id:"sample-completion-conditions"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample-completion-conditions"}},[t._v("#")]),t._v(" sample_completion_conditions "),a("Badge",{attrs:{text:"WithConditionalTasks",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"sample_completion_conditions",sig:{params:[{name:"self"},{name:"task",annotation:"int"}],return:"List[int]"}}}),t._v(" "),a("p",[t._v("Samples the condition distributions associated with the given task and return a list of sampled\nconditions.")]),t._v(" "),a("h3",{attrs:{id:"sample-quantity-resource"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample-quantity-resource"}},[t._v("#")]),t._v(" sample_quantity_resource "),a("Badge",{attrs:{text:"UncertainResourceAvailabilityChanges",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"sample_quantity_resource",sig:{params:[{name:"self"},{name:"resource",annotation:"str"},{name:"time",annotation:"int"},{name:"**kwargs"}],return:"int"}}}),t._v(" "),a("p",[t._v("Sample an amount of resource availability (int) for the given resource\n(either resource type or resource unit) at the given time. This number should be the sum of the number of\nresource available at time t and the number of resource of this type consumed so far).")]),t._v(" "),a("h3",{attrs:{id:"sample-task-duration"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample-task-duration"}},[t._v("#")]),t._v(" sample_task_duration "),a("Badge",{attrs:{text:"SimulatedTaskDuration",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"sample_task_duration",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"mode",default:"1",annotation:"Optional[int]"},{name:"progress_from",default:"0.0",annotation:"Optional[float]"}],return:"int"}}}),t._v(" "),a("p",[t._v("Sample, store and return task duration for the given task in the given mode.")]),t._v(" "),a("h3",{attrs:{id:"set-inplace-environment"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#set-inplace-environment"}},[t._v("#")]),t._v(" set_inplace_environment "),a("Badge",{attrs:{text:"SchedulingDomain",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"set_inplace_environment",sig:{params:[{name:"self"},{name:"inplace_environment",annotation:"bool"}]}}}),t._v(" "),a("p",[t._v("Activate or not the fact that the simulator modifies the given state inplace or create a copy before.\nThe inplace version is several times faster but will lead to bugs in graph search solver.")]),t._v(" "),a("h3",{attrs:{id:"set-memory-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#set-memory-3"}},[t._v("#")]),t._v(" set_memory "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"set_memory",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"None"}}}),t._v(" "),a("p",[t._v("Set internal memory attribute "),a("code",[t._v("_memory")]),t._v(" to given one.")]),t._v(" "),a("p",[t._v('This can be useful to set a specific "starting point" before doing a rollout with successive '),a("code",[t._v("Environment.step()")]),t._v("\ncalls.")]),t._v(" "),a("h4",{attrs:{id:"parameters-46"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-46"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to set internally.")])]),t._v(" "),a("h4",{attrs:{id:"example-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#example-3"}},[t._v("#")]),t._v(" Example")]),t._v(" "),a("div",{staticClass:"language-python extra-class"},[a("pre",{pre:!0,attrs:{class:"language-python"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Set simulation_domain memory to my_state (assuming Markovian domain)")]),t._v("\nsimulation_domain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("set_memory"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("my_state"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Start a 100-steps rollout from here (applying my_action at every step)")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("for")]),t._v(" _ "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("in")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("range")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n simulation_domain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("step"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("my_action"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("h3",{attrs:{id:"solve-with-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#solve-with-2"}},[t._v("#")]),t._v(" solve_with "),a("Badge",{attrs:{text:"Domain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"solve_with",sig:{params:[{name:"solver",annotation:"Solver"},{name:"domain_factory",default:"None",annotation:"Optional[Callable[[], Domain]]"},{name:"load_path",default:"None",annotation:"Optional[str]"}],return:"Solver"}}}),t._v(" "),a("p",[t._v("Solve the domain with a new or loaded solver and return it auto-cast to the level of the domain.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Solver.check_domain()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Solver._check_domain_additional()")]),t._v(' (which returns True by default but can be overridden to define\nspecific checks in addition to the "domain requirements"). The boilerplate code automatically checks whether all\ndomain requirements are met.')]),t._v(" "),a("h4",{attrs:{id:"parameters-47"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-47"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("solver")]),t._v(": The solver.")]),t._v(" "),a("li",[a("strong",[t._v("domain_factory")]),t._v(": A callable with no argument returning the domain to solve (factory is the domain class if None).")]),t._v(" "),a("li",[a("strong",[t._v("load_path")]),t._v(": The path to restore the solver state from (if None, the solving process will be launched instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-73"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-73"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The new solver (auto-cast to the level of the domain).")]),t._v(" "),a("h3",{attrs:{id:"step-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#step-3"}},[t._v("#")]),t._v(" step "),a("Badge",{attrs:{text:"Environment",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"step",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Run one step of the environment's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Environment.step()")]),t._v(" provides some boilerplate code and internally calls "),a("code",[t._v("Environment._step()")]),t._v(" (which\nreturns a transition outcome). The boilerplate code automatically stores next state into the "),a("code",[t._v("_memory")]),t._v(" attribute\nand samples a corresponding observation.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing environment needs to be wrapped instead of implemented fully in scikit-decide (e.g. compiled\nATARI games), it is recommended to overwrite "),a("code",[t._v("Environment.step()")]),t._v(" to call the external environment and not\nuse the "),a("code",[t._v("Environment._step()")]),t._v(" helper function.")])]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Before calling "),a("code",[t._v("Environment.step()")]),t._v(" the first time or when the end of an episode is\nreached, "),a("code",[t._v("Initializable.reset()")]),t._v(" must be called to reset the environment's state.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-48"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-48"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the current memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-74"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-74"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of this step.")]),t._v(" "),a("h3",{attrs:{id:"update-complete-dummy-tasks"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-complete-dummy-tasks"}},[t._v("#")]),t._v(" update_complete_dummy_tasks "),a("Badge",{attrs:{text:"SchedulingDomain",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_complete_dummy_tasks",sig:{params:[{name:"self"},{name:"state",annotation:"State"},{name:"action",annotation:"SchedulingAction"}]}}}),t._v(" "),a("p",[t._v("Update the status of newly started tasks whose duration is 0 from ongoing to complete.")]),t._v(" "),a("h3",{attrs:{id:"update-complete-dummy-tasks-simulation"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-complete-dummy-tasks-simulation"}},[t._v("#")]),t._v(" update_complete_dummy_tasks_simulation "),a("Badge",{attrs:{text:"SchedulingDomain",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_complete_dummy_tasks_simulation",sig:{params:[{name:"self"},{name:"state",annotation:"State"},{name:"action",annotation:"SchedulingAction"}]}}}),t._v(" "),a("p",[t._v("In a simulated scheduling environment, update the status of newly started tasks whose duration is 0\nfrom ongoing to complete.")]),t._v(" "),a("h3",{attrs:{id:"update-complete-dummy-tasks-uncertain"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-complete-dummy-tasks-uncertain"}},[t._v("#")]),t._v(" update_complete_dummy_tasks_uncertain "),a("Badge",{attrs:{text:"SchedulingDomain",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_complete_dummy_tasks_uncertain",sig:{params:[{name:"self"},{name:"states",annotation:"DiscreteDistribution[State]"},{name:"action",annotation:"SchedulingAction"}]}}}),t._v(" "),a("p",[t._v("In an uncertain scheduling environment, update the status of newly started tasks whose duration is 0\nfrom ongoing to complete.")]),t._v(" "),a("h3",{attrs:{id:"update-complete-tasks"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-complete-tasks"}},[t._v("#")]),t._v(" update_complete_tasks "),a("Badge",{attrs:{text:"SchedulingDomain",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_complete_tasks",sig:{params:[{name:"self"},{name:"state",annotation:"State"}]}}}),t._v(" "),a("p",[t._v("Update the status of newly completed tasks in the state from ongoing to complete\nand update resource availability. This function will also log in task_details the time it was complete")]),t._v(" "),a("h3",{attrs:{id:"update-complete-tasks-simulation"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-complete-tasks-simulation"}},[t._v("#")]),t._v(" update_complete_tasks_simulation "),a("Badge",{attrs:{text:"SchedulingDomain",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_complete_tasks_simulation",sig:{params:[{name:"self"},{name:"state",annotation:"State"}]}}}),t._v(" "),a("p",[t._v("In a simulated scheduling environment, update the status of newly completed tasks in the state from ongoing to complete\nand update resource availability. This function will also log in task_details the time it was complete")]),t._v(" "),a("h3",{attrs:{id:"update-complete-tasks-uncertain"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-complete-tasks-uncertain"}},[t._v("#")]),t._v(" update_complete_tasks_uncertain "),a("Badge",{attrs:{text:"SchedulingDomain",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_complete_tasks_uncertain",sig:{params:[{name:"self"},{name:"states",annotation:"DiscreteDistribution[State]"}]}}}),t._v(" "),a("p",[t._v("In an uncertain scheduling environment, update the status of newly completed tasks in the state from ongoing\nto complete, update resource availability and update on-completion conditions.\nThis function will also log in task_details the time it was complete.")]),t._v(" "),a("h3",{attrs:{id:"update-conditional-tasks"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-conditional-tasks"}},[t._v("#")]),t._v(" update_conditional_tasks "),a("Badge",{attrs:{text:"SchedulingDomain",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_conditional_tasks",sig:{params:[{name:"self"},{name:"state",annotation:"State"},{name:"action",annotation:"SchedulingAction"}]}}}),t._v(" "),a("p",[t._v("Update remaining tasks by checking conditions and potentially adding conditional tasks.")]),t._v(" "),a("h3",{attrs:{id:"update-conditional-tasks-simulation"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-conditional-tasks-simulation"}},[t._v("#")]),t._v(" update_conditional_tasks_simulation "),a("Badge",{attrs:{text:"SchedulingDomain",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_conditional_tasks_simulation",sig:{params:[{name:"self"},{name:"state",annotation:"State"},{name:"action",annotation:"SchedulingAction"}]}}}),t._v(" "),a("p",[t._v("In a simulated scheduling environment, update remaining tasks by checking conditions and potentially\nadding conditional tasks.")]),t._v(" "),a("h3",{attrs:{id:"update-conditional-tasks-uncertain"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-conditional-tasks-uncertain"}},[t._v("#")]),t._v(" update_conditional_tasks_uncertain "),a("Badge",{attrs:{text:"SchedulingDomain",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_conditional_tasks_uncertain",sig:{params:[{name:"self"},{name:"states",annotation:"DiscreteDistribution[State]"},{name:"action",annotation:"SchedulingAction"}]}}}),t._v(" "),a("p",[t._v("Update remaining tasks by checking conditions and potentially adding conditional tasks.")]),t._v(" "),a("h3",{attrs:{id:"update-pause-tasks"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-pause-tasks"}},[t._v("#")]),t._v(" update_pause_tasks "),a("Badge",{attrs:{text:"SchedulingDomain",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_pause_tasks",sig:{params:[{name:"self"},{name:"state",annotation:"State"},{name:"action",annotation:"SchedulingAction"}]}}}),t._v(" "),a("p",[t._v("Update the status of a task from ongoing to paused if specified in the action\nand update resource availability. This function will also log in task_details the time it was paused.")]),t._v(" "),a("h3",{attrs:{id:"update-pause-tasks-simulation"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-pause-tasks-simulation"}},[t._v("#")]),t._v(" update_pause_tasks_simulation "),a("Badge",{attrs:{text:"SchedulingDomain",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_pause_tasks_simulation",sig:{params:[{name:"self"},{name:"state",annotation:"State"},{name:"action",annotation:"SchedulingAction"}]}}}),t._v(" "),a("p",[t._v("In a simulation scheduling environment, update the status of a task from ongoing to paused if\nspecified in the action and update resource availability. This function will also log in task_details\nthe time it was paused.")]),t._v(" "),a("h3",{attrs:{id:"update-pause-tasks-uncertain"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-pause-tasks-uncertain"}},[t._v("#")]),t._v(" update_pause_tasks_uncertain "),a("Badge",{attrs:{text:"SchedulingDomain",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_pause_tasks_uncertain",sig:{params:[{name:"self"},{name:"state",annotation:"State"},{name:"action",annotation:"SchedulingAction"}]}}}),t._v(" "),a("p",[t._v("In an uncertain scheduling environment, update the status of a task from ongoing to paused if\nspecified in the action and update resource availability. This function will also log in task_details\nthe time it was paused.")]),t._v(" "),a("h3",{attrs:{id:"update-progress"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-progress"}},[t._v("#")]),t._v(" update_progress "),a("Badge",{attrs:{text:"SchedulingDomain",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_progress",sig:{params:[{name:"self"},{name:"state",annotation:"State"}]}}}),t._v(" "),a("p",[t._v("Update the progress of all ongoing tasks in the state.")]),t._v(" "),a("h3",{attrs:{id:"update-progress-simulation"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-progress-simulation"}},[t._v("#")]),t._v(" update_progress_simulation "),a("Badge",{attrs:{text:"SchedulingDomain",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_progress_simulation",sig:{params:[{name:"self"},{name:"state",annotation:"State"}]}}}),t._v(" "),a("p",[t._v("In a simulation scheduling environment, update the progress of all ongoing tasks in the state.")]),t._v(" "),a("h3",{attrs:{id:"update-progress-uncertain"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-progress-uncertain"}},[t._v("#")]),t._v(" update_progress_uncertain "),a("Badge",{attrs:{text:"SchedulingDomain",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_progress_uncertain",sig:{params:[{name:"self"},{name:"states",annotation:"DiscreteDistribution[State]"}]}}}),t._v(" "),a("p",[t._v("In an uncertain scheduling environment, update the progress of all ongoing tasks in the state.")]),t._v(" "),a("h3",{attrs:{id:"update-resource-availability"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-resource-availability"}},[t._v("#")]),t._v(" update_resource_availability "),a("Badge",{attrs:{text:"SchedulingDomain",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_resource_availability",sig:{params:[{name:"self"},{name:"state",annotation:"State"},{name:"action",annotation:"SchedulingAction"}]}}}),t._v(" "),a("p",[t._v("Update resource availability for next time step. This should be called after update_time().")]),t._v(" "),a("h3",{attrs:{id:"update-resource-availability-simulation"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-resource-availability-simulation"}},[t._v("#")]),t._v(" update_resource_availability_simulation "),a("Badge",{attrs:{text:"SchedulingDomain",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_resource_availability_simulation",sig:{params:[{name:"self"},{name:"state",annotation:"State"},{name:"action",annotation:"SchedulingAction"}]}}}),t._v(" "),a("p",[t._v("In a simulated scheduling environment, update resource availability for next time step.\nThis should be called after update_time().")]),t._v(" "),a("h3",{attrs:{id:"update-resource-availability-uncertain"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-resource-availability-uncertain"}},[t._v("#")]),t._v(" update_resource_availability_uncertain "),a("Badge",{attrs:{text:"SchedulingDomain",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_resource_availability_uncertain",sig:{params:[{name:"self"},{name:"states",annotation:"DiscreteDistribution[State]"},{name:"action",annotation:"SchedulingAction"}]}}}),t._v(" "),a("p",[t._v("Update resource availability for next time step. This should be called after update_time().")]),t._v(" "),a("h3",{attrs:{id:"update-resume-tasks"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-resume-tasks"}},[t._v("#")]),t._v(" update_resume_tasks "),a("Badge",{attrs:{text:"SchedulingDomain",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_resume_tasks",sig:{params:[{name:"self"},{name:"state",annotation:"State"},{name:"action",annotation:"SchedulingAction"}]}}}),t._v(" "),a("p",[t._v("Update the status of a task from paused to ongoing if specified in the action\nand update resource availability. This function will also log in task_details the time it was resumed")]),t._v(" "),a("h3",{attrs:{id:"update-resume-tasks-simulation"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-resume-tasks-simulation"}},[t._v("#")]),t._v(" update_resume_tasks_simulation "),a("Badge",{attrs:{text:"SchedulingDomain",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_resume_tasks_simulation",sig:{params:[{name:"self"},{name:"state",annotation:"State"},{name:"action",annotation:"SchedulingAction"}]}}}),t._v(" "),a("p",[t._v("In a simulationn scheduling environment, update the status of a task from paused to ongoing if specified\nin the action and update resource availability. This function will also log in task_details the time it was\nresumed.")]),t._v(" "),a("h3",{attrs:{id:"update-resume-tasks-uncertain"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-resume-tasks-uncertain"}},[t._v("#")]),t._v(" update_resume_tasks_uncertain "),a("Badge",{attrs:{text:"SchedulingDomain",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_resume_tasks_uncertain",sig:{params:[{name:"self"},{name:"state",annotation:"State"},{name:"action",annotation:"SchedulingAction"}]}}}),t._v(" "),a("p",[t._v("In an uncertain scheduling environment, update the status of a task from paused to ongoing if specified\nin the action and update resource availability. This function will also log in task_details the time it was\nresumed.")]),t._v(" "),a("h3",{attrs:{id:"update-start-tasks"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-start-tasks"}},[t._v("#")]),t._v(" update_start_tasks "),a("Badge",{attrs:{text:"SchedulingDomain",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_start_tasks",sig:{params:[{name:"self"},{name:"state",annotation:"State"},{name:"action",annotation:"SchedulingAction"}]}}}),t._v(" "),a("p",[t._v("Update the status of a task from remaining to ongoing if specified in the action\nand update resource availability. This function will also log in task_details the time it was started.")]),t._v(" "),a("h3",{attrs:{id:"update-start-tasks-simulation"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-start-tasks-simulation"}},[t._v("#")]),t._v(" update_start_tasks_simulation "),a("Badge",{attrs:{text:"SchedulingDomain",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_start_tasks_simulation",sig:{params:[{name:"self"},{name:"state",annotation:"State"},{name:"action",annotation:"SchedulingAction"}]}}}),t._v(" "),a("p",[t._v("In a simulated scheduling environment, update the status of a task from remaining to ongoing if\nspecified in the action and update resource availability. This function will also log in task_details the\ntime it was started.")]),t._v(" "),a("h3",{attrs:{id:"update-start-tasks-uncertain"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-start-tasks-uncertain"}},[t._v("#")]),t._v(" update_start_tasks_uncertain "),a("Badge",{attrs:{text:"SchedulingDomain",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_start_tasks_uncertain",sig:{params:[{name:"self"},{name:"state",annotation:"State"},{name:"action",annotation:"SchedulingAction"}]}}}),t._v(" "),a("p",[t._v("In an uncertain scheduling environment, update the status of a task from remaining to ongoing\nif specified in the action and update resource availability.\nThis function returns a DsicreteDistribution of State.\nThis function will also log in task_details the time it was started.")]),t._v(" "),a("h3",{attrs:{id:"update-time"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-time"}},[t._v("#")]),t._v(" update_time "),a("Badge",{attrs:{text:"SchedulingDomain",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_time",sig:{params:[{name:"self"},{name:"state",annotation:"State"},{name:"action",annotation:"SchedulingAction"}]}}}),t._v(" "),a("p",[t._v("Update the time of the state if the time_progress attribute of the given EnumerableAction is True.")]),t._v(" "),a("h3",{attrs:{id:"update-time-simulation"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-time-simulation"}},[t._v("#")]),t._v(" update_time_simulation "),a("Badge",{attrs:{text:"SchedulingDomain",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_time_simulation",sig:{params:[{name:"self"},{name:"state",annotation:"State"},{name:"action",annotation:"SchedulingAction"}]}}}),t._v(" "),a("p",[t._v("In a simulated scheduling environment, update the time of the state if the time_progress attribute of the\ngiven EnumerableAction is True.")]),t._v(" "),a("h3",{attrs:{id:"update-time-uncertain"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-time-uncertain"}},[t._v("#")]),t._v(" update_time_uncertain "),a("Badge",{attrs:{text:"SchedulingDomain",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_time_uncertain",sig:{params:[{name:"self"},{name:"states",annotation:"DiscreteDistribution[State]"},{name:"action",annotation:"SchedulingAction"}]}}}),t._v(" "),a("p",[t._v("Update the time of the state if the time_progress attribute of the given EnumerableAction is True.")]),t._v(" "),a("h3",{attrs:{id:"add-to-current-conditions-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#add-to-current-conditions-2"}},[t._v("#")]),t._v(" _add_to_current_conditions "),a("Badge",{attrs:{text:"WithConditionalTasks",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_add_to_current_conditions",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"state"}]}}}),t._v(" "),a("p",[t._v("Samples completion conditions for a given task and add these conditions to the list of conditions in the\ngiven state. This function should be called when a task complete.")]),t._v(" "),a("h3",{attrs:{id:"check-value-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#check-value-4"}},[t._v("#")]),t._v(" _check_value "),a("Badge",{attrs:{text:"Rewards",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_check_value",sig:{params:[{name:"self"},{name:"value",annotation:"Value[D.T_value]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that a value is compliant with its reward specification.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("This function returns always True by default because any kind of reward should be accepted at this level.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-49"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-49"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("value")]),t._v(": The value to check.")])]),t._v(" "),a("h4",{attrs:{id:"returns-75"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-75"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the value is compliant (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"get-action-space-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-5"}},[t._v("#")]),t._v(" _get_action_space "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_action_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) domain action space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._get_action_space()")]),t._v(" internally calls "),a("code",[t._v("Events._get_action_space_()")]),t._v(" the first time and\nautomatically caches its value to make future calls more efficient (since the action space is assumed to be\nconstant).")]),t._v(" "),a("h4",{attrs:{id:"returns-76"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-76"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The action space.")]),t._v(" "),a("h3",{attrs:{id:"get-action-space-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-6"}},[t._v("#")]),t._v(" _get_action_space_ "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_action_space_",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("To be implemented if needed one day.")]),t._v(" "),a("h3",{attrs:{id:"get-all-resources-skills-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-all-resources-skills-2"}},[t._v("#")]),t._v(" _get_all_resources_skills "),a("Badge",{attrs:{text:"WithResourceSkills",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_all_resources_skills",sig:{params:[{name:"self"}],return:"Dict[str, Dict[str, Any]]"}}}),t._v(" "),a("p",[t._v("Return a nested dictionary where the first key is the name of a resource type or resource unit\nand the second key is the name of a skill. The value defines the details of the skill.\nE.g. {unit: {skill: (detail of skill)}}")]),t._v(" "),a("h3",{attrs:{id:"get-all-tasks-skills-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-all-tasks-skills-2"}},[t._v("#")]),t._v(" _get_all_tasks_skills "),a("Badge",{attrs:{text:"WithResourceSkills",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_all_tasks_skills",sig:{params:[{name:"self"}],return:"Dict[int, Dict[int, Dict[str, Any]]]"}}}),t._v(" "),a("p",[t._v("Return a nested dictionary where the first key is the name of a task\nand the second key is the name of a skill. The value defines the details of the skill.\nE.g. {task: {skill: (detail of skill)}}")]),t._v(" "),a("h3",{attrs:{id:"get-all-unconditional-tasks-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-all-unconditional-tasks-2"}},[t._v("#")]),t._v(" _get_all_unconditional_tasks "),a("Badge",{attrs:{text:"WithConditionalTasks",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_all_unconditional_tasks",sig:{params:[{name:"self"}],return:"Set[int]"}}}),t._v(" "),a("p",[t._v("Returns the set of all task ids for which there are no conditions. These tasks are to be considered at\nthe start of a project (i.e. in the initial state).")]),t._v(" "),a("h3",{attrs:{id:"get-applicable-actions-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-4"}},[t._v("#")]),t._v(" _get_applicable_actions "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_applicable_actions",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history), or in\nthe internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._get_applicable_actions()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_applicable_actions_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-50"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-50"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-77"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-77"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of applicable actions.")]),t._v(" "),a("h3",{attrs:{id:"get-applicable-actions-from-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-from-2"}},[t._v("#")]),t._v(" _get_applicable_actions_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_applicable_actions_from",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Returns the action space from a state.\nTODO : think about a way to avoid the instaceof usage.")]),t._v(" "),a("h3",{attrs:{id:"get-available-tasks-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-available-tasks-2"}},[t._v("#")]),t._v(" _get_available_tasks "),a("Badge",{attrs:{text:"WithConditionalTasks",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_available_tasks",sig:{params:[{name:"self"},{name:"state"}],return:"Set[int]"}}}),t._v(" "),a("p",[t._v("Returns the set of all task ids that can be considered under the conditions defined in the given state.\nNote that the set will contains all ids for all tasks in the domain that meet the conditions, that is tasks\nthat are remaining, or that have been completed, paused or started / resumed.")]),t._v(" "),a("h3",{attrs:{id:"get-enabled-events-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-4"}},[t._v("#")]),t._v(" _get_enabled_events "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_enabled_events",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"Space[D.T_event]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory), or in the internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._get_enabled_events()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_enabled_events_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-51"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-51"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-78"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-78"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of enabled events.")]),t._v(" "),a("h3",{attrs:{id:"get-enabled-events-from-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-from-2"}},[t._v("#")]),t._v(" _get_enabled_events_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_enabled_events_from",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"Space[D.T_event]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._get_enabled_events()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("h4",{attrs:{id:"parameters-52"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-52"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-79"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-79"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of enabled events.")]),t._v(" "),a("h3",{attrs:{id:"get-goals-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-goals-5"}},[t._v("#")]),t._v(" _get_goals "),a("Badge",{attrs:{text:"Goals",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_goals",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) domain goals space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Goals._get_goals()")]),t._v(" internally calls "),a("code",[t._v("Goals._get_goals_()")]),t._v(" the first time and automatically caches\nits value to make future calls more efficient (since the goals space is assumed to be constant).")]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Goal states are assumed to be fully observable (i.e. observation = state) so that there is never uncertainty\nabout whether the goal has been reached or not. This assumption guarantees that any policy that does not\nreach the goal with certainty incurs in infinite expected cost. - "),a("em",[t._v("Geffner, 2013: A Concise Introduction to\nModels and Methods for Automated Planning")])])]),t._v(" "),a("h4",{attrs:{id:"returns-80"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-80"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The goals space.")]),t._v(" "),a("h3",{attrs:{id:"get-goals-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-goals-6"}},[t._v("#")]),t._v(" _get_goals_ "),a("Badge",{attrs:{text:"Goals",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_goals_",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the domain goals space (finite or infinite set).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Goals._get_goals()")]),t._v(", the difference being that the result is\nnot cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-81"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-81"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The goals space.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-5"}},[t._v("#")]),t._v(" _get_initial_state "),a("Badge",{attrs:{text:"DeterministicInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_initial_state",sig:{params:[{name:"self"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("Get the (cached) initial state.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("DeterministicInitialized._get_initial_state()")]),t._v(" internally\ncalls "),a("code",[t._v("DeterministicInitialized._get_initial_state_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the initial state is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-82"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-82"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The initial state.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-6"}},[t._v("#")]),t._v(" _get_initial_state_ "),a("Badge",{attrs:{text:"DeterministicInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_initial_state_",sig:{params:[{name:"self"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("Create and return an empty initial state")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-distribution-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-distribution-5"}},[t._v("#")]),t._v(" _get_initial_state_distribution "),a("Badge",{attrs:{text:"UncertainInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_initial_state_distribution",sig:{params:[{name:"self"}],return:"Distribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("Get the (cached) probability distribution of initial states.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("UncertainInitialized._get_initial_state_distribution()")]),t._v(" internally\ncalls "),a("code",[t._v("UncertainInitialized._get_initial_state_distribution_()")]),t._v(" the first time and automatically caches its value\nto make future calls more efficient (since the initial state distribution is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-83"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-83"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of initial states.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-distribution-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-distribution-6"}},[t._v("#")]),t._v(" _get_initial_state_distribution_ "),a("Badge",{attrs:{text:"UncertainInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_initial_state_distribution_",sig:{params:[{name:"self"}],return:"Distribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("Get the probability distribution of initial states.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("UncertainInitialized._get_initial_state_distribution()")]),t._v(", the\ndifference being that the result is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-84"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-84"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of initial states.")]),t._v(" "),a("h3",{attrs:{id:"get-max-horizon-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-max-horizon-2"}},[t._v("#")]),t._v(" _get_max_horizon "),a("Badge",{attrs:{text:"SchedulingDomain",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_max_horizon",sig:{params:[{name:"self"}],return:"int"}}}),t._v(" "),a("p",[t._v("Return the maximum time horizon (int)")]),t._v(" "),a("h3",{attrs:{id:"get-memory-maxlen-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-memory-maxlen-3"}},[t._v("#")]),t._v(" _get_memory_maxlen "),a("Badge",{attrs:{text:"History",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_memory_maxlen",sig:{params:[{name:"self"}],return:"int"}}}),t._v(" "),a("p",[t._v("Get the (cached) memory max length.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("FiniteHistory._get_memory_maxlen()")]),t._v(" internally calls "),a("code",[t._v("FiniteHistory._get_memory_maxlen_()")]),t._v(" the first\ntime and automatically caches its value to make future calls more efficient (since the memory max length is\nassumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-85"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-85"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The memory max length.")]),t._v(" "),a("h3",{attrs:{id:"get-memory-maxlen-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-memory-maxlen-4"}},[t._v("#")]),t._v(" _get_memory_maxlen_ "),a("Badge",{attrs:{text:"FiniteHistory",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_memory_maxlen_",sig:{params:[{name:"self"}],return:"int"}}}),t._v(" "),a("p",[t._v("Get the memory max length.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("FiniteHistory._get_memory_maxlen()")]),t._v(", the difference being that\nthe result is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-86"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-86"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The memory max length.")]),t._v(" "),a("h3",{attrs:{id:"get-mode-costs-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-mode-costs-2"}},[t._v("#")]),t._v(" _get_mode_costs "),a("Badge",{attrs:{text:"WithModeCosts",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_mode_costs",sig:{params:[{name:"self"}],return:"Dict[int, Dict[int, float]]"}}}),t._v(" "),a("p",[t._v("Return a nested dictionary where the first key is the id of a task (int), the second key the id of a mode\nand the value indicates the cost of execution the task in the mode.")]),t._v(" "),a("h3",{attrs:{id:"get-next-state"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-next-state"}},[t._v("#")]),t._v(" _get_next_state "),a("Badge",{attrs:{text:"SchedulingDomain",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_next_state",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("This function will be used if the domain is defined with DeterministicTransitions. This function will be ignored\nif the domain is defined as having UncertainTransitions or Simulation.")]),t._v(" "),a("h3",{attrs:{id:"get-next-state-distribution"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-next-state-distribution"}},[t._v("#")]),t._v(" _get_next_state_distribution "),a("Badge",{attrs:{text:"SchedulingDomain",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_next_state_distribution",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"Distribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("This function will be used if the domain is defined with UncertainTransitions. This function will be ignored\nif the domain is defined as a Simulation. This function may also be used by uncertainty-specialised solvers\non deterministic domains.")]),t._v(" "),a("h3",{attrs:{id:"get-objectives-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-objectives-2"}},[t._v("#")]),t._v(" _get_objectives "),a("Badge",{attrs:{text:"SchedulingDomain",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_objectives",sig:{params:[{name:"self"}],return:"List[SchedulingObjectiveEnum]"}}}),t._v(" "),a("p",[t._v("Return the objectives to consider as a list. The items should be of SchedulingObjectiveEnum type.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-4"}},[t._v("#")]),t._v(" _get_observation "),a("Badge",{attrs:{text:"TransformedObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Get the deterministic observation given a state and action.")]),t._v(" "),a("h4",{attrs:{id:"parameters-53"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-53"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-87"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-87"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-distribution-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-distribution-4"}},[t._v("#")]),t._v(" _get_observation_distribution "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation_distribution",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"Distribution[D.T_agent[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the probability distribution of the observation given a state and action.")]),t._v(" "),a("p",[t._v("In mathematical terms (discrete case), given an action "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.197ex",height:"1.02ex",viewBox:"0 -441 529 451"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})])])])])]),t._v(", this function represents: "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.078ex",height:"2.262ex",viewBox:"0 -750 4012.7 1000"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"50",d:"M287 628Q287 635 230 637Q206 637 199 638T192 648Q192 649 194 659Q200 679 203 681T397 683Q587 682 600 680Q664 669 707 631T751 530Q751 453 685 389Q616 321 507 303Q500 302 402 301H307L277 182Q247 66 247 59Q247 55 248 54T255 50T272 48T305 46H336Q342 37 342 35Q342 19 335 5Q330 0 319 0Q316 0 282 1T182 2Q120 2 87 2T51 1Q33 1 33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM645 554Q645 567 643 575T634 597T609 619T560 635Q553 636 480 637Q463 637 445 637T416 636T404 636Q391 635 386 627Q384 621 367 550T332 412T314 344Q314 342 395 342H407H430Q542 342 590 392Q617 419 631 471T645 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(751, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(1140, 0)"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1903, 0)"}},[a("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(2181, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2650, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(3094.7, 0)"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3623.7, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(",\nwhere "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.05ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.726ex",height:"1.643ex",viewBox:"0 -704 763 726"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})])])])])]),t._v(" is the random variable of the observation.")],1),t._v(" "),a("h4",{attrs:{id:"parameters-54"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-54"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-88"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-88"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-space-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-5"}},[t._v("#")]),t._v(" _get_observation_space "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) observation space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(" internally\ncalls "),a("code",[t._v("PartiallyObservable._get_observation_space_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the observation space is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-89"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-89"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The observation space.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-space-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-6"}},[t._v("#")]),t._v(" _get_observation_space_ "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation_space_",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("To be implemented if needed one day.")]),t._v(" "),a("h3",{attrs:{id:"get-preallocations-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-preallocations-2"}},[t._v("#")]),t._v(" _get_preallocations "),a("Badge",{attrs:{text:"WithPreallocations",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_preallocations",sig:{params:[{name:"self"}],return:"Dict[int, List[str]]"}}}),t._v(" "),a("p",[t._v("Return a dictionary where the key is the id of a task (int)\nand the value indicates the pre-allocated resources for this task (as a list of str)")]),t._v(" "),a("h3",{attrs:{id:"get-predecessors-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-predecessors-2"}},[t._v("#")]),t._v(" _get_predecessors "),a("Badge",{attrs:{text:"WithPrecedence",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_predecessors",sig:{params:[{name:"self"}],return:"Dict[int, List[int]]"}}}),t._v(" "),a("p",[t._v("Return the predecessors of the task. Successors are given as a list for a task given as a key.")]),t._v(" "),a("h3",{attrs:{id:"get-resource-cost-per-time-unit-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-resource-cost-per-time-unit-2"}},[t._v("#")]),t._v(" _get_resource_cost_per_time_unit "),a("Badge",{attrs:{text:"WithResourceCosts",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_resource_cost_per_time_unit",sig:{params:[{name:"self"}],return:"Dict[str, float]"}}}),t._v(" "),a("p",[t._v("Return a dictionary where the key is the name of a resource (str)\nand the value indicates the cost of using this resource per time unit.")]),t._v(" "),a("h3",{attrs:{id:"get-resource-renewability-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-resource-renewability-2"}},[t._v("#")]),t._v(" _get_resource_renewability "),a("Badge",{attrs:{text:"MixedRenewable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_resource_renewability",sig:{params:[{name:"self"}],return:"Dict[str, bool]"}}}),t._v(" "),a("p",[t._v("Return a dictionary where the key is a resource name (string)\nand the value whether this resource is renewable (True) or not (False).")]),t._v(" "),a("h3",{attrs:{id:"get-resource-type-for-unit-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-resource-type-for-unit-2"}},[t._v("#")]),t._v(" _get_resource_type_for_unit "),a("Badge",{attrs:{text:"WithResourceUnits",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_resource_type_for_unit",sig:{params:[{name:"self"}],return:"Dict[str, str]"}}}),t._v(" "),a("p",[t._v("Return a dictionary where the key is a resource unit name and the value a resource type name.\nAn empty dictionary can be used if there are no resource unit matching a resource type.")]),t._v(" "),a("h3",{attrs:{id:"get-resource-types-names-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-resource-types-names-2"}},[t._v("#")]),t._v(" _get_resource_types_names "),a("Badge",{attrs:{text:"WithResourceTypes",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_resource_types_names",sig:{params:[{name:"self"}],return:"List[str]"}}}),t._v(" "),a("p",[t._v("Return the names (string) of all resource types as a list.")]),t._v(" "),a("h3",{attrs:{id:"get-resource-units-names-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-resource-units-names-2"}},[t._v("#")]),t._v(" _get_resource_units_names "),a("Badge",{attrs:{text:"WithResourceUnits",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_resource_units_names",sig:{params:[{name:"self"}],return:"List[str]"}}}),t._v(" "),a("p",[t._v("Return the names (string) of all resource units as a list.")]),t._v(" "),a("h3",{attrs:{id:"get-successors-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-successors-2"}},[t._v("#")]),t._v(" _get_successors "),a("Badge",{attrs:{text:"WithPrecedence",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_successors",sig:{params:[{name:"self"}],return:"Dict[int, List[int]]"}}}),t._v(" "),a("p",[t._v("Return the successors of the tasks. Successors are given as a list for a task given as a key.")]),t._v(" "),a("h3",{attrs:{id:"get-task-existence-conditions-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-task-existence-conditions-2"}},[t._v("#")]),t._v(" _get_task_existence_conditions "),a("Badge",{attrs:{text:"WithConditionalTasks",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_task_existence_conditions",sig:{params:[{name:"self"}],return:"Dict[int, List[int]]"}}}),t._v(" "),a("p",[t._v("Return a dictionary where the key is a task id and the value a list of conditions to be respected (True)\nfor the task to be part of the schedule. If a task has no entry in the dictionary,\nthere is no conditions for that task.")]),t._v(" "),a("p",[t._v("Example:\nreturn\n{\n20: [get_all_condition_items().NC_PART_1_OPERATION_1],\n21: [get_all_condition_items().HARDWARE_ISSUE_MACHINE_A]\n22: [get_all_condition_items().NC_PART_1_OPERATION_1, get_all_condition_items().NC_PART_1_OPERATION_2]\n}e")]),t._v(" "),a("h3",{attrs:{id:"get-task-paused-non-renewable-resource-returned-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-task-paused-non-renewable-resource-returned-2"}},[t._v("#")]),t._v(" _get_task_paused_non_renewable_resource_returned "),a("Badge",{attrs:{text:"WithPreemptivity",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_task_paused_non_renewable_resource_returned",sig:{params:[{name:"self"}],return:"Dict[int, bool]"}}}),t._v(" "),a("p",[t._v("Return a dictionary where the key is a task id and the value is of type bool indicating\nif the non-renewable resources are consumed when the task is paused (False) or made available again (True).\nE.g. {\n2: False # if paused, non-renewable resource will be consumed\n5: True # if paused, the non-renewable resource will be available again\n}")]),t._v(" "),a("h3",{attrs:{id:"get-task-preemptivity-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-task-preemptivity-2"}},[t._v("#")]),t._v(" _get_task_preemptivity "),a("Badge",{attrs:{text:"WithPreemptivity",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_task_preemptivity",sig:{params:[{name:"self"}],return:"Dict[int, bool]"}}}),t._v(" "),a("p",[t._v("Return a dictionary where the key is a task id and the value a boolean indicating\nif the task can be paused or stopped.\nE.g. {\n1: False\n2: True\n3: False\n4: False\n5: True\n6: False\n}")]),t._v(" "),a("h3",{attrs:{id:"get-task-progress-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-task-progress-2"}},[t._v("#")]),t._v(" _get_task_progress "),a("Badge",{attrs:{text:"CustomTaskProgress",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_task_progress",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"t_from",annotation:"int"},{name:"t_to",annotation:"int"},{name:"mode",annotation:"Optional[int]"},{name:"sampled_duration",default:"None",annotation:"Optional[int]"}],return:"float"}}}),t._v(" "),a("h4",{attrs:{id:"returns-90"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-90"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The task progress (float) between t_from and t_to.")]),t._v(" "),a("h3",{attrs:{id:"get-task-resuming-type-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-task-resuming-type-2"}},[t._v("#")]),t._v(" _get_task_resuming_type "),a("Badge",{attrs:{text:"WithPreemptivity",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_task_resuming_type",sig:{params:[{name:"self"}],return:"Dict[int, ResumeType]"}}}),t._v(" "),a("p",[t._v("Return a dictionary where the key is a task id and the value is of type ResumeType indicating\nif the task can be resumed (restarted from where it was paused with no time loss)\nor restarted (restarted from the start).\nE.g. {\n1: ResumeType.NA\n2: ResumeType.Resume\n3: ResumeType.NA\n4: ResumeType.NA\n5: ResumeType.Restart\n6: ResumeType.NA\n}")]),t._v(" "),a("h3",{attrs:{id:"get-tasks-ids"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-tasks-ids"}},[t._v("#")]),t._v(" _get_tasks_ids "),a("Badge",{attrs:{text:"MultiMode",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_tasks_ids",sig:{params:[{name:"self"}],return:"Union[Set[int], Dict[int, Any], List[int]]"}}}),t._v(" "),a("p",[t._v("Return a set or dict of int = id of tasks")]),t._v(" "),a("h3",{attrs:{id:"get-tasks-modes"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-tasks-modes"}},[t._v("#")]),t._v(" _get_tasks_modes "),a("Badge",{attrs:{text:"MultiMode",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_tasks_modes",sig:{params:[{name:"self"}],return:"Dict[int, Dict[int, ModeConsumption]]"}}}),t._v(" "),a("p",[t._v("Return a nested dictionary where the first key is a task id and the second key is a mode id.\nThe value is a Mode object defining the resource consumption.\nIf the domain is an instance of VariableResourceConsumption, VaryingModeConsumption objects should be used.\nIf this is not the case (i.e. the domain is an instance of ConstantResourceConsumption),\nthen ConstantModeConsumption should be used.")]),t._v(" "),a("p",[t._v("E.g. with constant resource consumption\n{\n12: {\n1: ConstantModeConsumption({'rt_1': 2, 'rt_2': 0, 'ru_1': 1}),\n2: ConstantModeConsumption({'rt_1': 0, 'rt_2': 3, 'ru_1': 1}),\n}\n}")]),t._v(" "),a("p",[t._v("E.g. with time varying resource consumption\n{\n12: {\n1: VaryingModeConsumption({'rt_1': [2,2,2,2,3], 'rt_2': [0,0,0,0,0], 'ru_1': [1,1,1,1,1]}),\n2: VaryingModeConsumption({'rt_1': [1,1,1,1,2,2,2], 'rt_2': [0,0,0,0,0,0,0], 'ru_1': [1,1,1,1,1,1,1]}),\n}\n}")]),t._v(" "),a("h3",{attrs:{id:"get-time-lags-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-time-lags-2"}},[t._v("#")]),t._v(" _get_time_lags "),a("Badge",{attrs:{text:"WithTimeLag",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_time_lags",sig:{params:[{name:"self"}],return:"Dict[int, Dict[int, TimeLag]]"}}}),t._v(" "),a("p",[t._v("Return nested dictionaries where the first key is the id of a task (int)\nand the second key is the id of another task (int).\nThe value is a TimeLag object containing the MINIMUM and MAXIMUM time (int) that needs to separate the end\nof the first task to the start of the second task.")]),t._v(" "),a("p",[t._v("e.g.\n{\n12:{\n15: TimeLag(5, 10),\n16: TimeLag(5, 20),\n17: MinimumOnlyTimeLag(5),\n18: MaximumOnlyTimeLag(15),\n}\n}")]),t._v(" "),a("h4",{attrs:{id:"returns-91"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-91"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("A dictionary of TimeLag objects.")]),t._v(" "),a("h3",{attrs:{id:"get-time-window-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-time-window-2"}},[t._v("#")]),t._v(" _get_time_window "),a("Badge",{attrs:{text:"WithTimeWindow",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_time_window",sig:{params:[{name:"self"}],return:"Dict[int, TimeWindow]"}}}),t._v(" "),a("p",[t._v("Return a dictionary where the key is the id of a task (int)\nand the value is a TimeWindow object.\nNote that the max time horizon needs to be provided to the TimeWindow constructors\ne.g.\n{\n1: TimeWindow(10, 15, 20, 30, self.get_max_horizon())\n2: EmptyTimeWindow(self.get_max_horizon())\n3: EndTimeWindow(20, 25, self.get_max_horizon())\n4: EndBeforeOnlyTimeWindow(40, self.get_max_horizon())\n}")]),t._v(" "),a("h4",{attrs:{id:"returns-92"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-92"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("A dictionary of TimeWindow objects.")]),t._v(" "),a("h3",{attrs:{id:"get-variable-resource-consumption-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-variable-resource-consumption-2"}},[t._v("#")]),t._v(" _get_variable_resource_consumption "),a("Badge",{attrs:{text:"VariableResourceConsumption",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_variable_resource_consumption",sig:{params:[{name:"self"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Return true if the domain has variable resource consumption,\nfalse if the consumption of resource does not vary in time for any of the tasks")]),t._v(" "),a("h3",{attrs:{id:"init-memory-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#init-memory-2"}},[t._v("#")]),t._v(" _init_memory "),a("Badge",{attrs:{text:"History",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_init_memory",sig:{params:[{name:"self"},{name:"state",default:"None",annotation:"Optional[D.T_state]"}],return:"D.T_memory[D.T_state]"}}}),t._v(" "),a("p",[t._v("Initialize memory (possibly with a state) according to its specification and return it.")]),t._v(" "),a("p",[t._v("This function is automatically called by "),a("code",[t._v("Initializable._reset()")]),t._v(" to reinitialize the internal memory whenever\nthe domain is used as an environment.")]),t._v(" "),a("h4",{attrs:{id:"parameters-55"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-55"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": An optional state to initialize the memory with (typically the initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-93"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-93"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The new initialized memory.")]),t._v(" "),a("h3",{attrs:{id:"is-action-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-action-4"}},[t._v("#")]),t._v(" _is_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_action",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an event is an action (i.e. a controllable event for the agents).")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\naction space provided by "),a("code",[t._v("Events._get_action_space()")]),t._v(", but it can be overridden for faster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-56"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-56"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("event")]),t._v(": The event to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-94"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-94"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is an action (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-applicable-action-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-4"}},[t._v("#")]),t._v(" _is_applicable_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_applicable_action",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an action is applicable in the given memory (state or history), or in the internal one if\nomitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._is_applicable_action()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_applicable_action_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-57"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-57"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-95"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-95"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the action is applicable (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-applicable-action-from-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-from-2"}},[t._v("#")]),t._v(" _is_applicable_action_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_applicable_action_from",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an action is applicable in the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._is_applicable_action()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the space of\napplicable actions provided by "),a("code",[t._v("Events._get_applicable_actions_from()")]),t._v(", but it can be overridden for faster\nimplementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-58"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-58"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-96"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-96"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the action is applicable (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-enabled-event-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-4"}},[t._v("#")]),t._v(" _is_enabled_event "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_enabled_event",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an uncontrollable event is enabled in the given memory (state or history), or in the\ninternal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._is_enabled_event()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_enabled_event_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead\nof the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-59"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-59"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-97"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-97"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is enabled (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-enabled-event-from-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-from-2"}},[t._v("#")]),t._v(" _is_enabled_event_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_enabled_event_from",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an event is enabled in the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._is_enabled_event()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the space of\nenabled events provided by "),a("code",[t._v("Events._get_enabled_events_from()")]),t._v(", but it can be overridden for faster\nimplementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-60"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-60"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-98"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-98"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is enabled (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-goal-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-goal-4"}},[t._v("#")]),t._v(" _is_goal "),a("Badge",{attrs:{text:"Goals",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_goal",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"D.T_agent[D.T_predicate]"}}}),t._v(" "),a("p",[t._v("Indicate whether an observation belongs to the goals.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\ngoals space provided by "),a("code",[t._v("Goals._get_goals()")]),t._v(", but it can be overridden for faster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-61"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-61"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-99"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-99"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the observation is a goal (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-observation-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-observation-4"}},[t._v("#")]),t._v(" _is_observation "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_observation",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that an observation indeed belongs to the domain observation space.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\nobservation space provided by "),a("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(", but it can be overridden for\nfaster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-62"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-62"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-100"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-100"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the observation belongs to the domain observation space (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"reset-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#reset-4"}},[t._v("#")]),t._v(" _reset "),a("Badge",{attrs:{text:"Initializable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_reset",sig:{params:[{name:"self"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Reset the state of the environment and return an initial observation.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Initializable._reset()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Initializable._state_reset()")]),t._v(" (which returns an initial state). The boilerplate code automatically stores\nthe initial state into the "),a("code",[t._v("_memory")]),t._v(" attribute and samples a corresponding observation.")]),t._v(" "),a("h4",{attrs:{id:"returns-101"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-101"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("An initial observation.")]),t._v(" "),a("h3",{attrs:{id:"sample-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample-4"}},[t._v("#")]),t._v(" _sample "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_sample",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Sample one transition of the simulator's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Simulation._sample()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Simulation._state_sample()")]),t._v(" (which returns a transition outcome). The boilerplate code automatically\nsamples an observation corresponding to the sampled next state.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing simulator needs to be wrapped instead of implemented fully in scikit-decide (e.g. a\nsimulator), it is recommended to overwrite "),a("code",[t._v("Simulation._sample()")]),t._v(" to call the external simulator and not use\nthe "),a("code",[t._v("Simulation._state_sample()")]),t._v(" helper function.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-63"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-63"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-102"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-102"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of the sampled transition.")]),t._v(" "),a("h3",{attrs:{id:"sample-completion-conditions-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample-completion-conditions-2"}},[t._v("#")]),t._v(" _sample_completion_conditions "),a("Badge",{attrs:{text:"WithConditionalTasks",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_sample_completion_conditions",sig:{params:[{name:"self"},{name:"task",annotation:"int"}],return:"List[int]"}}}),t._v(" "),a("p",[t._v("Samples the condition distributions associated with the given task and return a list of sampled\nconditions.")]),t._v(" "),a("h3",{attrs:{id:"sample-quantity-resource-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample-quantity-resource-2"}},[t._v("#")]),t._v(" _sample_quantity_resource "),a("Badge",{attrs:{text:"UncertainResourceAvailabilityChanges",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_sample_quantity_resource",sig:{params:[{name:"self"},{name:"resource",annotation:"str"},{name:"time",annotation:"int"},{name:"**kwargs"}],return:"int"}}}),t._v(" "),a("p",[t._v("Sample an amount of resource availability (int) for the given resource\n(either resource type or resource unit) at the given time. This number should be the sum of the number of\nresource available at time t and the number of resource of this type consumed so far).")]),t._v(" "),a("h3",{attrs:{id:"sample-task-duration-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample-task-duration-2"}},[t._v("#")]),t._v(" _sample_task_duration "),a("Badge",{attrs:{text:"SimulatedTaskDuration",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_sample_task_duration",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"mode",default:"1",annotation:"Optional[int]"},{name:"progress_from",default:"0.0",annotation:"Optional[float]"}],return:"int"}}}),t._v(" "),a("p",[t._v("Return a task duration for the given task in the given mode.")]),t._v(" "),a("h3",{attrs:{id:"set-memory-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#set-memory-4"}},[t._v("#")]),t._v(" _set_memory "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_set_memory",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"None"}}}),t._v(" "),a("p",[t._v("Set internal memory attribute "),a("code",[t._v("_memory")]),t._v(" to given one.")]),t._v(" "),a("p",[t._v('This can be useful to set a specific "starting point" before doing a rollout with\nsuccessive '),a("code",[t._v("Environment._step()")]),t._v(" calls.")]),t._v(" "),a("h4",{attrs:{id:"parameters-64"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-64"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to set internally.")])]),t._v(" "),a("h4",{attrs:{id:"example-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#example-4"}},[t._v("#")]),t._v(" Example")]),t._v(" "),a("div",{staticClass:"language-python extra-class"},[a("pre",{pre:!0,attrs:{class:"language-python"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Set simulation_domain memory to my_state (assuming Markovian domain)")]),t._v("\nsimulation_domain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("_set_memory"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("my_state"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Start a 100-steps rollout from here (applying my_action at every step)")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("for")]),t._v(" _ "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("in")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("range")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n simulation_domain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("_step"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("my_action"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("h3",{attrs:{id:"state-reset-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#state-reset-2"}},[t._v("#")]),t._v(" _state_reset "),a("Badge",{attrs:{text:"Initializable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_state_reset",sig:{params:[{name:"self"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("Reset the state of the environment and return an initial state.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Initializable._reset()")]),t._v(". It focuses on the state level, as\nopposed to the observation one for the latter.")]),t._v(" "),a("h4",{attrs:{id:"returns-103"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-103"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("An initial state.")]),t._v(" "),a("h3",{attrs:{id:"state-sample-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#state-sample-2"}},[t._v("#")]),t._v(" _state_sample "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_state_sample",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"TransitionOutcome[D.T_state, D.T_agent[Value[D.T_value]], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("This function will be used if the domain is defined as a Simulation (i.e. transitions are defined by call to\na simulation). This function may also be used by simulation-based solvers on non-Simulation domains.")]),t._v(" "),a("h3",{attrs:{id:"state-step-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#state-step-2"}},[t._v("#")]),t._v(" _state_step "),a("Badge",{attrs:{text:"Environment",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_state_step",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"TransitionOutcome[D.T_state, D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Compute one step of the transition's dynamics.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Environment._step()")]),t._v(". It focuses on the state level, as opposed\nto the observation one for the latter.")]),t._v(" "),a("h4",{attrs:{id:"parameters-65"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-65"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the current memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-104"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-104"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The transition outcome of this step.")]),t._v(" "),a("h3",{attrs:{id:"step-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#step-4"}},[t._v("#")]),t._v(" _step "),a("Badge",{attrs:{text:"Environment",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_step",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Run one step of the environment's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Environment._step()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Environment._state_step()")]),t._v(" (which returns a transition outcome). The boilerplate code automatically stores\nnext state into the "),a("code",[t._v("_memory")]),t._v(" attribute and samples a corresponding observation.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing environment needs to be wrapped instead of implemented fully in scikit-decide (e.g. compiled\nATARI games), it is recommended to overwrite "),a("code",[t._v("Environment._step()")]),t._v(" to call the external environment and not\nuse the "),a("code",[t._v("Environment._state_step()")]),t._v(" helper function.")])]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Before calling "),a("code",[t._v("Environment._step()")]),t._v(" the first time or when the end of an episode is\nreached, "),a("code",[t._v("Initializable._reset()")]),t._v(" must be called to reset the environment's state.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-66"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-66"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the current memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-105"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-105"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of this step.")]),t._v(" "),a("h2",{attrs:{id:"d-det"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#d-det"}},[t._v("#")]),t._v(" D_det")]),t._v(" "),a("p",[t._v("Base class for deterministic scheduling problems")]),t._v(" "),a("h3",{attrs:{id:"check-value-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#check-value-5"}},[t._v("#")]),t._v(" check_value "),a("Badge",{attrs:{text:"Rewards",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"check_value",sig:{params:[{name:"self"},{name:"value",annotation:"Value[D.T_value]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that a value is compliant with its reward specification.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("This function returns always True by default because any kind of reward should be accepted at this level.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-67"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-67"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("value")]),t._v(": The value to check.")])]),t._v(" "),a("h4",{attrs:{id:"returns-106"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-106"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the value is compliant (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"get-action-space-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-7"}},[t._v("#")]),t._v(" get_action_space "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_action_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) domain action space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.get_action_space()")]),t._v(" internally calls "),a("code",[t._v("Events._get_action_space_()")]),t._v(" the first time and\nautomatically caches its value to make future calls more efficient (since the action space is assumed to be\nconstant).")]),t._v(" "),a("h4",{attrs:{id:"returns-107"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-107"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The action space.")]),t._v(" "),a("h3",{attrs:{id:"get-applicable-actions-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-5"}},[t._v("#")]),t._v(" get_applicable_actions "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_applicable_actions",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history), or in\nthe internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.get_applicable_actions()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_applicable_actions()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-68"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-68"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-108"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-108"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of applicable actions.")]),t._v(" "),a("h3",{attrs:{id:"get-enabled-events-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-5"}},[t._v("#")]),t._v(" get_enabled_events "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_enabled_events",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"Space[D.T_event]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory), or in the internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.get_enabled_events()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_enabled_events()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead of\nthe memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-69"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-69"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-109"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-109"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of enabled events.")]),t._v(" "),a("h3",{attrs:{id:"get-goals-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-goals-7"}},[t._v("#")]),t._v(" get_goals "),a("Badge",{attrs:{text:"Goals",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_goals",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) domain goals space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Goals.get_goals()")]),t._v(" internally calls "),a("code",[t._v("Goals._get_goals_()")]),t._v(" the first time and automatically caches its\nvalue to make future calls more efficient (since the goals space is assumed to be constant).")]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Goal states are assumed to be fully observable (i.e. observation = state) so that there is never uncertainty\nabout whether the goal has been reached or not. This assumption guarantees that any policy that does not\nreach the goal with certainty incurs in infinite expected cost. - "),a("em",[t._v("Geffner, 2013: A Concise Introduction to\nModels and Methods for Automated Planning")])])]),t._v(" "),a("h4",{attrs:{id:"returns-110"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-110"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The goals space.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-7"}},[t._v("#")]),t._v(" get_initial_state "),a("Badge",{attrs:{text:"DeterministicInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_initial_state",sig:{params:[{name:"self"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("Get the (cached) initial state.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("DeterministicInitialized.get_initial_state()")]),t._v(" internally\ncalls "),a("code",[t._v("DeterministicInitialized._get_initial_state_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the initial state is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-111"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-111"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The initial state.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-distribution-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-distribution-7"}},[t._v("#")]),t._v(" get_initial_state_distribution "),a("Badge",{attrs:{text:"UncertainInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_initial_state_distribution",sig:{params:[{name:"self"}],return:"Distribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("Get the (cached) probability distribution of initial states.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("UncertainInitialized.get_initial_state_distribution()")]),t._v(" internally\ncalls "),a("code",[t._v("UncertainInitialized._get_initial_state_distribution_()")]),t._v(" the first time and automatically caches its value\nto make future calls more efficient (since the initial state distribution is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-112"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-112"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of initial states.")]),t._v(" "),a("h3",{attrs:{id:"get-next-state-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-next-state-2"}},[t._v("#")]),t._v(" get_next_state "),a("Badge",{attrs:{text:"DeterministicTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_next_state",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("Get the next state given a memory and action.")]),t._v(" "),a("h4",{attrs:{id:"parameters-70"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-70"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-113"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-113"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The deterministic next state.")]),t._v(" "),a("h3",{attrs:{id:"get-next-state-distribution-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-next-state-distribution-2"}},[t._v("#")]),t._v(" get_next_state_distribution "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_next_state_distribution",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"DiscreteDistribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("Get the discrete probability distribution of next state given a memory and action.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("In the Markovian case (memory only holds last state "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.061ex",height:"1.023ex",viewBox:"0 -442 469 452"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})])])])])]),t._v("), given an action "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.197ex",height:"1.02ex",viewBox:"0 -441 529 451"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})])])])])]),t._v(", this function can\nbe mathematically represented by "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.292ex",height:"2.283ex",viewBox:"0 -759 4107.1 1009"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"50",d:"M287 628Q287 635 230 637Q206 637 199 638T192 648Q192 649 194 659Q200 679 203 681T397 683Q587 682 600 680Q664 669 707 631T751 530Q751 453 685 389Q616 321 507 303Q500 302 402 301H307L277 182Q247 66 247 59Q247 55 248 54T255 50T272 48T305 46H336Q342 37 342 35Q342 19 335 5Q330 0 319 0Q316 0 282 1T182 2Q120 2 87 2T51 1Q33 1 33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM645 554Q645 567 643 575T634 597T609 619T560 635Q553 636 480 637Q463 637 445 637T416 636T404 636Q391 635 386 627Q384 621 367 550T332 412T314 344Q314 342 395 342H407H430Q542 342 590 392Q617 419 631 471T645 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(751, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"msup",transform:"translate(1140, 0)"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"53",d:"M308 24Q367 24 416 76T466 197Q466 260 414 284Q308 311 278 321T236 341Q176 383 176 462Q176 523 208 573T273 648Q302 673 343 688T407 704H418H425Q521 704 564 640Q565 640 577 653T603 682T623 704Q624 704 627 704T632 705Q645 705 645 698T617 577T585 459T569 456Q549 456 549 465Q549 471 550 475Q550 478 551 494T553 520Q553 554 544 579T526 616T501 641Q465 662 419 662Q362 662 313 616T263 510Q263 480 278 458T319 427Q323 425 389 408T456 390Q490 379 522 342T554 242Q554 216 546 186Q541 164 528 137T492 78T426 18T332 -20Q320 -22 298 -22Q199 -22 144 33L134 44L106 13Q83 -14 78 -18T65 -22Q52 -22 52 -14Q52 -11 110 221Q112 227 130 227H143Q149 221 149 216Q149 214 148 207T144 186T142 153Q144 114 160 87T203 47T255 29T308 24Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(613, 363) scale(0.707)"}},[a("path",{attrs:{"data-c":"2032",d:"M79 43Q73 43 52 49T30 61Q30 68 85 293T146 528Q161 560 198 560Q218 560 240 545T262 501Q262 496 260 486Q259 479 173 263T84 45T79 43Z"}})])]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1997.5, 0)"}},[a("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(2275.5, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2744.5, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(3189.1, 0)"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3718.1, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(", where "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.05ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.94ex",height:"1.767ex",viewBox:"0 -759 857.5 781"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"msup"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"53",d:"M308 24Q367 24 416 76T466 197Q466 260 414 284Q308 311 278 321T236 341Q176 383 176 462Q176 523 208 573T273 648Q302 673 343 688T407 704H418H425Q521 704 564 640Q565 640 577 653T603 682T623 704Q624 704 627 704T632 705Q645 705 645 698T617 577T585 459T569 456Q549 456 549 465Q549 471 550 475Q550 478 551 494T553 520Q553 554 544 579T526 616T501 641Q465 662 419 662Q362 662 313 616T263 510Q263 480 278 458T319 427Q323 425 389 408T456 390Q490 379 522 342T554 242Q554 216 546 186Q541 164 528 137T492 78T426 18T332 -20Q320 -22 298 -22Q199 -22 144 33L134 44L106 13Q83 -14 78 -18T65 -22Q52 -22 52 -14Q52 -11 110 221Q112 227 130 227H143Q149 221 149 216Q149 214 148 207T144 186T142 153Q144 114 160 87T203 47T255 29T308 24Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(613, 363) scale(0.707)"}},[a("path",{attrs:{"data-c":"2032",d:"M79 43Q73 43 52 49T30 61Q30 68 85 293T146 528Q161 560 198 560Q218 560 240 545T262 501Q262 496 260 486Q259 479 173 263T84 45T79 43Z"}})])])])])])]),t._v(" is the next state random variable.")],1)]),t._v(" "),a("h4",{attrs:{id:"parameters-71"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-71"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-114"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-114"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The discrete probability distribution of next state.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-5"}},[t._v("#")]),t._v(" get_observation "),a("Badge",{attrs:{text:"TransformedObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_observation",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Get the deterministic observation given a state and action.")]),t._v(" "),a("h4",{attrs:{id:"parameters-72"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-72"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-115"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-115"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-distribution-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-distribution-5"}},[t._v("#")]),t._v(" get_observation_distribution "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_observation_distribution",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"Distribution[D.T_agent[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the probability distribution of the observation given a state and action.")]),t._v(" "),a("p",[t._v("In mathematical terms (discrete case), given an action "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.197ex",height:"1.02ex",viewBox:"0 -441 529 451"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})])])])])]),t._v(", this function represents: "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.078ex",height:"2.262ex",viewBox:"0 -750 4012.7 1000"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"50",d:"M287 628Q287 635 230 637Q206 637 199 638T192 648Q192 649 194 659Q200 679 203 681T397 683Q587 682 600 680Q664 669 707 631T751 530Q751 453 685 389Q616 321 507 303Q500 302 402 301H307L277 182Q247 66 247 59Q247 55 248 54T255 50T272 48T305 46H336Q342 37 342 35Q342 19 335 5Q330 0 319 0Q316 0 282 1T182 2Q120 2 87 2T51 1Q33 1 33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM645 554Q645 567 643 575T634 597T609 619T560 635Q553 636 480 637Q463 637 445 637T416 636T404 636Q391 635 386 627Q384 621 367 550T332 412T314 344Q314 342 395 342H407H430Q542 342 590 392Q617 419 631 471T645 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(751, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(1140, 0)"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1903, 0)"}},[a("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(2181, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2650, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(3094.7, 0)"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3623.7, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(",\nwhere "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.05ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.726ex",height:"1.643ex",viewBox:"0 -704 763 726"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})])])])])]),t._v(" is the random variable of the observation.")],1),t._v(" "),a("h4",{attrs:{id:"parameters-73"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-73"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-116"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-116"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-space-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-7"}},[t._v("#")]),t._v(" get_observation_space "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_observation_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) observation space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("PartiallyObservable.get_observation_space()")]),t._v(" internally\ncalls "),a("code",[t._v("PartiallyObservable._get_observation_space_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the observation space is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-117"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-117"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The observation space.")]),t._v(" "),a("h3",{attrs:{id:"get-transition-value"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-transition-value"}},[t._v("#")]),t._v(" get_transition_value "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_transition_value",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"},{name:"next_state",default:"None",annotation:"Optional[D.T_state]"}],return:"D.T_agent[Value[D.T_value]]"}}}),t._v(" "),a("p",[t._v("Get the value (reward or cost) of a transition.")]),t._v(" "),a("p",[t._v("The transition to consider is defined by the function parameters.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("If this function never depends on the next_state parameter for its computation, it is recommended to\nindicate it by overriding "),a("code",[t._v("UncertainTransitions._is_transition_value_dependent_on_next_state_()")]),t._v(" to return\nFalse. This information can then be exploited by solvers to avoid computing next state to evaluate a\ntransition value (more efficient).")])]),t._v(" "),a("h4",{attrs:{id:"parameters-74"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-74"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")]),t._v(" "),a("li",[a("strong",[t._v("next_state")]),t._v(": The next state in which the transition ends (if needed for the computation).")])]),t._v(" "),a("h4",{attrs:{id:"returns-118"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-118"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The transition value (reward or cost).")]),t._v(" "),a("h3",{attrs:{id:"is-action-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-action-5"}},[t._v("#")]),t._v(" is_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_action",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an event is an action (i.e. a controllable event for the agents).")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\naction space provided by "),a("code",[t._v("Events.get_action_space()")]),t._v(", but it can be overridden for faster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-75"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-75"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("event")]),t._v(": The event to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-119"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-119"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is an action (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-applicable-action-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-5"}},[t._v("#")]),t._v(" is_applicable_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_applicable_action",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an action is applicable in the given memory (state or history), or in the internal one if\nomitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.is_applicable_action()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_applicable_action()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead\nof the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-76"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-76"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-120"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-120"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the action is applicable (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-enabled-event-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-5"}},[t._v("#")]),t._v(" is_enabled_event "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_enabled_event",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an uncontrollable event is enabled in the given memory (state or history), or in the\ninternal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.is_enabled_event()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_enabled_event()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead of\nthe memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-77"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-77"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-121"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-121"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is enabled (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-goal-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-goal-5"}},[t._v("#")]),t._v(" is_goal "),a("Badge",{attrs:{text:"Goals",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_goal",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"D.T_agent[D.T_predicate]"}}}),t._v(" "),a("p",[t._v("Indicate whether an observation belongs to the goals.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\ngoals space provided by "),a("code",[t._v("Goals.get_goals()")]),t._v(", but it can be overridden for faster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-78"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-78"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-122"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-122"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the observation is a goal (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-observation-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-observation-5"}},[t._v("#")]),t._v(" is_observation "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_observation",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that an observation indeed belongs to the domain observation space.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\nobservation space provided by "),a("code",[t._v("PartiallyObservable.get_observation_space()")]),t._v(", but it can be overridden for\nfaster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-79"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-79"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-123"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-123"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the observation belongs to the domain observation space (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-terminal"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-terminal"}},[t._v("#")]),t._v(" is_terminal "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_terminal",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"}],return:"D.T_agent[D.T_predicate]"}}}),t._v(" "),a("p",[t._v("Indicate whether a state is terminal.")]),t._v(" "),a("p",[t._v("A terminal state is a state with no outgoing transition (except to itself with value 0).")]),t._v(" "),a("h4",{attrs:{id:"parameters-80"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-80"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-124"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-124"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the state is terminal (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-transition-value-dependent-on-next-state"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-transition-value-dependent-on-next-state"}},[t._v("#")]),t._v(" is_transition_value_dependent_on_next_state "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_transition_value_dependent_on_next_state",sig:{params:[{name:"self"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether get_transition_value() requires the next_state parameter for its computation (cached).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("UncertainTransitions.is_transition_value_dependent_on_next_state()")]),t._v(" internally\ncalls "),a("code",[t._v("UncertainTransitions._is_transition_value_dependent_on_next_state_()")]),t._v(" the first time and automatically\ncaches its value to make future calls more efficient (since the returned value is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-125"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-125"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the transition value computation depends on next_state (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"reset-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#reset-5"}},[t._v("#")]),t._v(" reset "),a("Badge",{attrs:{text:"Initializable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"reset",sig:{params:[{name:"self"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Reset the state of the environment and return an initial observation.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Initializable.reset()")]),t._v(" provides some boilerplate code and internally calls "),a("code",[t._v("Initializable._reset()")]),t._v("\n(which returns an initial state). The boilerplate code automatically stores the initial state into the "),a("code",[t._v("_memory")]),t._v("\nattribute and samples a corresponding observation.")]),t._v(" "),a("h4",{attrs:{id:"returns-126"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-126"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("An initial observation.")]),t._v(" "),a("h3",{attrs:{id:"sample-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample-5"}},[t._v("#")]),t._v(" sample "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"sample",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Sample one transition of the simulator's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Simulation.sample()")]),t._v(" provides some boilerplate code and internally calls "),a("code",[t._v("Simulation._sample()")]),t._v("\n(which returns a transition outcome). The boilerplate code automatically samples an observation corresponding to\nthe sampled next state.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing simulator needs to be wrapped instead of implemented fully in scikit-decide (e.g. a\nsimulator), it is recommended to overwrite "),a("code",[t._v("Simulation.sample()")]),t._v(" to call the external simulator and not use\nthe "),a("code",[t._v("Simulation._sample()")]),t._v(" helper function.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-81"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-81"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-127"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-127"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of the sampled transition.")]),t._v(" "),a("h3",{attrs:{id:"set-memory-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#set-memory-5"}},[t._v("#")]),t._v(" set_memory "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"set_memory",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"None"}}}),t._v(" "),a("p",[t._v("Set internal memory attribute "),a("code",[t._v("_memory")]),t._v(" to given one.")]),t._v(" "),a("p",[t._v('This can be useful to set a specific "starting point" before doing a rollout with successive '),a("code",[t._v("Environment.step()")]),t._v("\ncalls.")]),t._v(" "),a("h4",{attrs:{id:"parameters-82"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-82"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to set internally.")])]),t._v(" "),a("h4",{attrs:{id:"example-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#example-5"}},[t._v("#")]),t._v(" Example")]),t._v(" "),a("div",{staticClass:"language-python extra-class"},[a("pre",{pre:!0,attrs:{class:"language-python"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Set simulation_domain memory to my_state (assuming Markovian domain)")]),t._v("\nsimulation_domain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("set_memory"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("my_state"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Start a 100-steps rollout from here (applying my_action at every step)")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("for")]),t._v(" _ "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("in")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("range")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n simulation_domain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("step"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("my_action"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("h3",{attrs:{id:"solve-with-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#solve-with-3"}},[t._v("#")]),t._v(" solve_with "),a("Badge",{attrs:{text:"Domain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"solve_with",sig:{params:[{name:"solver",annotation:"Solver"},{name:"domain_factory",default:"None",annotation:"Optional[Callable[[], Domain]]"},{name:"load_path",default:"None",annotation:"Optional[str]"}],return:"Solver"}}}),t._v(" "),a("p",[t._v("Solve the domain with a new or loaded solver and return it auto-cast to the level of the domain.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Solver.check_domain()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Solver._check_domain_additional()")]),t._v(' (which returns True by default but can be overridden to define\nspecific checks in addition to the "domain requirements"). The boilerplate code automatically checks whether all\ndomain requirements are met.')]),t._v(" "),a("h4",{attrs:{id:"parameters-83"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-83"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("solver")]),t._v(": The solver.")]),t._v(" "),a("li",[a("strong",[t._v("domain_factory")]),t._v(": A callable with no argument returning the domain to solve (factory is the domain class if None).")]),t._v(" "),a("li",[a("strong",[t._v("load_path")]),t._v(": The path to restore the solver state from (if None, the solving process will be launched instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-128"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-128"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The new solver (auto-cast to the level of the domain).")]),t._v(" "),a("h3",{attrs:{id:"step-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#step-5"}},[t._v("#")]),t._v(" step "),a("Badge",{attrs:{text:"Environment",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"step",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Run one step of the environment's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Environment.step()")]),t._v(" provides some boilerplate code and internally calls "),a("code",[t._v("Environment._step()")]),t._v(" (which\nreturns a transition outcome). The boilerplate code automatically stores next state into the "),a("code",[t._v("_memory")]),t._v(" attribute\nand samples a corresponding observation.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing environment needs to be wrapped instead of implemented fully in scikit-decide (e.g. compiled\nATARI games), it is recommended to overwrite "),a("code",[t._v("Environment.step()")]),t._v(" to call the external environment and not\nuse the "),a("code",[t._v("Environment._step()")]),t._v(" helper function.")])]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Before calling "),a("code",[t._v("Environment.step()")]),t._v(" the first time or when the end of an episode is\nreached, "),a("code",[t._v("Initializable.reset()")]),t._v(" must be called to reset the environment's state.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-84"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-84"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the current memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-129"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-129"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of this step.")]),t._v(" "),a("h3",{attrs:{id:"check-value-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#check-value-6"}},[t._v("#")]),t._v(" _check_value "),a("Badge",{attrs:{text:"Rewards",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_check_value",sig:{params:[{name:"self"},{name:"value",annotation:"Value[D.T_value]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that a value is compliant with its reward specification.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("This function returns always True by default because any kind of reward should be accepted at this level.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-85"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-85"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("value")]),t._v(": The value to check.")])]),t._v(" "),a("h4",{attrs:{id:"returns-130"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-130"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the value is compliant (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"get-action-space-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-8"}},[t._v("#")]),t._v(" _get_action_space "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_action_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) domain action space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._get_action_space()")]),t._v(" internally calls "),a("code",[t._v("Events._get_action_space_()")]),t._v(" the first time and\nautomatically caches its value to make future calls more efficient (since the action space is assumed to be\nconstant).")]),t._v(" "),a("h4",{attrs:{id:"returns-131"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-131"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The action space.")]),t._v(" "),a("h3",{attrs:{id:"get-action-space-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-9"}},[t._v("#")]),t._v(" _get_action_space_ "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_action_space_",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the domain action space (finite or infinite set).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._get_action_space()")]),t._v(", the difference being that the\nresult is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-132"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-132"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The action space.")]),t._v(" "),a("h3",{attrs:{id:"get-applicable-actions-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-6"}},[t._v("#")]),t._v(" _get_applicable_actions "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_applicable_actions",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history), or in\nthe internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._get_applicable_actions()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_applicable_actions_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-86"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-86"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-133"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-133"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of applicable actions.")]),t._v(" "),a("h3",{attrs:{id:"get-applicable-actions-from-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-from-3"}},[t._v("#")]),t._v(" _get_applicable_actions_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_applicable_actions_from",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._get_applicable_actions()")]),t._v(", the difference being that\nthe memory parameter is mandatory here.")]),t._v(" "),a("h4",{attrs:{id:"parameters-87"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-87"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-134"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-134"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of applicable actions.")]),t._v(" "),a("h3",{attrs:{id:"get-enabled-events-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-6"}},[t._v("#")]),t._v(" _get_enabled_events "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_enabled_events",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"Space[D.T_event]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory), or in the internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._get_enabled_events()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_enabled_events_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-88"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-88"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-135"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-135"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of enabled events.")]),t._v(" "),a("h3",{attrs:{id:"get-enabled-events-from-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-from-3"}},[t._v("#")]),t._v(" _get_enabled_events_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_enabled_events_from",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"Space[D.T_event]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._get_enabled_events()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("h4",{attrs:{id:"parameters-89"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-89"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-136"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-136"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of enabled events.")]),t._v(" "),a("h3",{attrs:{id:"get-goals-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-goals-8"}},[t._v("#")]),t._v(" _get_goals "),a("Badge",{attrs:{text:"Goals",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_goals",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) domain goals space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Goals._get_goals()")]),t._v(" internally calls "),a("code",[t._v("Goals._get_goals_()")]),t._v(" the first time and automatically caches\nits value to make future calls more efficient (since the goals space is assumed to be constant).")]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Goal states are assumed to be fully observable (i.e. observation = state) so that there is never uncertainty\nabout whether the goal has been reached or not. This assumption guarantees that any policy that does not\nreach the goal with certainty incurs in infinite expected cost. - "),a("em",[t._v("Geffner, 2013: A Concise Introduction to\nModels and Methods for Automated Planning")])])]),t._v(" "),a("h4",{attrs:{id:"returns-137"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-137"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The goals space.")]),t._v(" "),a("h3",{attrs:{id:"get-goals-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-goals-9"}},[t._v("#")]),t._v(" _get_goals_ "),a("Badge",{attrs:{text:"Goals",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_goals_",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the domain goals space (finite or infinite set).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Goals._get_goals()")]),t._v(", the difference being that the result is\nnot cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-138"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-138"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The goals space.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-8"}},[t._v("#")]),t._v(" _get_initial_state "),a("Badge",{attrs:{text:"DeterministicInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_initial_state",sig:{params:[{name:"self"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("Get the (cached) initial state.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("DeterministicInitialized._get_initial_state()")]),t._v(" internally\ncalls "),a("code",[t._v("DeterministicInitialized._get_initial_state_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the initial state is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-139"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-139"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The initial state.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-9"}},[t._v("#")]),t._v(" _get_initial_state_ "),a("Badge",{attrs:{text:"DeterministicInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_initial_state_",sig:{params:[{name:"self"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("Get the initial state.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("DeterministicInitialized._get_initial_state()")]),t._v(", the difference\nbeing that the result is not cached here.")]),t._v(" "),a("h4",{attrs:{id:"returns-140"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-140"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The initial state.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-distribution-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-distribution-8"}},[t._v("#")]),t._v(" _get_initial_state_distribution "),a("Badge",{attrs:{text:"UncertainInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_initial_state_distribution",sig:{params:[{name:"self"}],return:"Distribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("Get the (cached) probability distribution of initial states.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("UncertainInitialized._get_initial_state_distribution()")]),t._v(" internally\ncalls "),a("code",[t._v("UncertainInitialized._get_initial_state_distribution_()")]),t._v(" the first time and automatically caches its value\nto make future calls more efficient (since the initial state distribution is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-141"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-141"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of initial states.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-distribution-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-distribution-9"}},[t._v("#")]),t._v(" _get_initial_state_distribution_ "),a("Badge",{attrs:{text:"UncertainInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_initial_state_distribution_",sig:{params:[{name:"self"}],return:"Distribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("Get the probability distribution of initial states.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("UncertainInitialized._get_initial_state_distribution()")]),t._v(", the\ndifference being that the result is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-142"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-142"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of initial states.")]),t._v(" "),a("h3",{attrs:{id:"get-memory-maxlen-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-memory-maxlen-5"}},[t._v("#")]),t._v(" _get_memory_maxlen "),a("Badge",{attrs:{text:"History",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_memory_maxlen",sig:{params:[{name:"self"}],return:"int"}}}),t._v(" "),a("p",[t._v("Get the (cached) memory max length.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("FiniteHistory._get_memory_maxlen()")]),t._v(" internally calls "),a("code",[t._v("FiniteHistory._get_memory_maxlen_()")]),t._v(" the first\ntime and automatically caches its value to make future calls more efficient (since the memory max length is\nassumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-143"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-143"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The memory max length.")]),t._v(" "),a("h3",{attrs:{id:"get-memory-maxlen-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-memory-maxlen-6"}},[t._v("#")]),t._v(" _get_memory_maxlen_ "),a("Badge",{attrs:{text:"FiniteHistory",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_memory_maxlen_",sig:{params:[{name:"self"}],return:"int"}}}),t._v(" "),a("p",[t._v("Get the memory max length.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("FiniteHistory._get_memory_maxlen()")]),t._v(", the difference being that\nthe result is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-144"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-144"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The memory max length.")]),t._v(" "),a("h3",{attrs:{id:"get-next-state-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-next-state-3"}},[t._v("#")]),t._v(" _get_next_state "),a("Badge",{attrs:{text:"DeterministicTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_next_state",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("Get the next state given a memory and action.")]),t._v(" "),a("h4",{attrs:{id:"parameters-90"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-90"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-145"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-145"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The deterministic next state.")]),t._v(" "),a("h3",{attrs:{id:"get-next-state-distribution-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-next-state-distribution-3"}},[t._v("#")]),t._v(" _get_next_state_distribution "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_next_state_distribution",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"SingleValueDistribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("Get the discrete probability distribution of next state given a memory and action.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("In the Markovian case (memory only holds last state "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.061ex",height:"1.023ex",viewBox:"0 -442 469 452"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})])])])])]),t._v("), given an action "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.197ex",height:"1.02ex",viewBox:"0 -441 529 451"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})])])])])]),t._v(", this function can\nbe mathematically represented by "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.292ex",height:"2.283ex",viewBox:"0 -759 4107.1 1009"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"50",d:"M287 628Q287 635 230 637Q206 637 199 638T192 648Q192 649 194 659Q200 679 203 681T397 683Q587 682 600 680Q664 669 707 631T751 530Q751 453 685 389Q616 321 507 303Q500 302 402 301H307L277 182Q247 66 247 59Q247 55 248 54T255 50T272 48T305 46H336Q342 37 342 35Q342 19 335 5Q330 0 319 0Q316 0 282 1T182 2Q120 2 87 2T51 1Q33 1 33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM645 554Q645 567 643 575T634 597T609 619T560 635Q553 636 480 637Q463 637 445 637T416 636T404 636Q391 635 386 627Q384 621 367 550T332 412T314 344Q314 342 395 342H407H430Q542 342 590 392Q617 419 631 471T645 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(751, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"msup",transform:"translate(1140, 0)"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"53",d:"M308 24Q367 24 416 76T466 197Q466 260 414 284Q308 311 278 321T236 341Q176 383 176 462Q176 523 208 573T273 648Q302 673 343 688T407 704H418H425Q521 704 564 640Q565 640 577 653T603 682T623 704Q624 704 627 704T632 705Q645 705 645 698T617 577T585 459T569 456Q549 456 549 465Q549 471 550 475Q550 478 551 494T553 520Q553 554 544 579T526 616T501 641Q465 662 419 662Q362 662 313 616T263 510Q263 480 278 458T319 427Q323 425 389 408T456 390Q490 379 522 342T554 242Q554 216 546 186Q541 164 528 137T492 78T426 18T332 -20Q320 -22 298 -22Q199 -22 144 33L134 44L106 13Q83 -14 78 -18T65 -22Q52 -22 52 -14Q52 -11 110 221Q112 227 130 227H143Q149 221 149 216Q149 214 148 207T144 186T142 153Q144 114 160 87T203 47T255 29T308 24Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(613, 363) scale(0.707)"}},[a("path",{attrs:{"data-c":"2032",d:"M79 43Q73 43 52 49T30 61Q30 68 85 293T146 528Q161 560 198 560Q218 560 240 545T262 501Q262 496 260 486Q259 479 173 263T84 45T79 43Z"}})])]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1997.5, 0)"}},[a("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(2275.5, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2744.5, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(3189.1, 0)"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3718.1, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(", where "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.05ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.94ex",height:"1.767ex",viewBox:"0 -759 857.5 781"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"msup"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"53",d:"M308 24Q367 24 416 76T466 197Q466 260 414 284Q308 311 278 321T236 341Q176 383 176 462Q176 523 208 573T273 648Q302 673 343 688T407 704H418H425Q521 704 564 640Q565 640 577 653T603 682T623 704Q624 704 627 704T632 705Q645 705 645 698T617 577T585 459T569 456Q549 456 549 465Q549 471 550 475Q550 478 551 494T553 520Q553 554 544 579T526 616T501 641Q465 662 419 662Q362 662 313 616T263 510Q263 480 278 458T319 427Q323 425 389 408T456 390Q490 379 522 342T554 242Q554 216 546 186Q541 164 528 137T492 78T426 18T332 -20Q320 -22 298 -22Q199 -22 144 33L134 44L106 13Q83 -14 78 -18T65 -22Q52 -22 52 -14Q52 -11 110 221Q112 227 130 227H143Q149 221 149 216Q149 214 148 207T144 186T142 153Q144 114 160 87T203 47T255 29T308 24Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(613, 363) scale(0.707)"}},[a("path",{attrs:{"data-c":"2032",d:"M79 43Q73 43 52 49T30 61Q30 68 85 293T146 528Q161 560 198 560Q218 560 240 545T262 501Q262 496 260 486Q259 479 173 263T84 45T79 43Z"}})])])])])])]),t._v(" is the next state random variable.")],1)]),t._v(" "),a("h4",{attrs:{id:"parameters-91"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-91"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-146"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-146"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The discrete probability distribution of next state.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-6"}},[t._v("#")]),t._v(" _get_observation "),a("Badge",{attrs:{text:"TransformedObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Get the deterministic observation given a state and action.")]),t._v(" "),a("h4",{attrs:{id:"parameters-92"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-92"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-147"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-147"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-distribution-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-distribution-6"}},[t._v("#")]),t._v(" _get_observation_distribution "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation_distribution",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"Distribution[D.T_agent[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the probability distribution of the observation given a state and action.")]),t._v(" "),a("p",[t._v("In mathematical terms (discrete case), given an action "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.197ex",height:"1.02ex",viewBox:"0 -441 529 451"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})])])])])]),t._v(", this function represents: "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.078ex",height:"2.262ex",viewBox:"0 -750 4012.7 1000"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"50",d:"M287 628Q287 635 230 637Q206 637 199 638T192 648Q192 649 194 659Q200 679 203 681T397 683Q587 682 600 680Q664 669 707 631T751 530Q751 453 685 389Q616 321 507 303Q500 302 402 301H307L277 182Q247 66 247 59Q247 55 248 54T255 50T272 48T305 46H336Q342 37 342 35Q342 19 335 5Q330 0 319 0Q316 0 282 1T182 2Q120 2 87 2T51 1Q33 1 33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM645 554Q645 567 643 575T634 597T609 619T560 635Q553 636 480 637Q463 637 445 637T416 636T404 636Q391 635 386 627Q384 621 367 550T332 412T314 344Q314 342 395 342H407H430Q542 342 590 392Q617 419 631 471T645 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(751, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(1140, 0)"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1903, 0)"}},[a("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(2181, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2650, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(3094.7, 0)"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3623.7, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(",\nwhere "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.05ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.726ex",height:"1.643ex",viewBox:"0 -704 763 726"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})])])])])]),t._v(" is the random variable of the observation.")],1),t._v(" "),a("h4",{attrs:{id:"parameters-93"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-93"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-148"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-148"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-space-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-8"}},[t._v("#")]),t._v(" _get_observation_space "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) observation space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(" internally\ncalls "),a("code",[t._v("PartiallyObservable._get_observation_space_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the observation space is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-149"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-149"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The observation space.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-space-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-9"}},[t._v("#")]),t._v(" _get_observation_space_ "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation_space_",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the observation space (finite or infinite set).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(", the difference\nbeing that the result is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-150"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-150"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The observation space.")]),t._v(" "),a("h3",{attrs:{id:"get-transition-value-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-transition-value-2"}},[t._v("#")]),t._v(" _get_transition_value "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_transition_value",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"},{name:"next_state",default:"None",annotation:"Optional[D.T_state]"}],return:"D.T_agent[Value[D.T_value]]"}}}),t._v(" "),a("p",[t._v("Get the value (reward or cost) of a transition.")]),t._v(" "),a("p",[t._v("The transition to consider is defined by the function parameters.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("If this function never depends on the next_state parameter for its computation, it is recommended to\nindicate it by overriding "),a("code",[t._v("UncertainTransitions._is_transition_value_dependent_on_next_state_()")]),t._v(" to return\nFalse. This information can then be exploited by solvers to avoid computing next state to evaluate a\ntransition value (more efficient).")])]),t._v(" "),a("h4",{attrs:{id:"parameters-94"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-94"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")]),t._v(" "),a("li",[a("strong",[t._v("next_state")]),t._v(": The next state in which the transition ends (if needed for the computation).")])]),t._v(" "),a("h4",{attrs:{id:"returns-151"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-151"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The transition value (reward or cost).")]),t._v(" "),a("h3",{attrs:{id:"init-memory-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#init-memory-3"}},[t._v("#")]),t._v(" _init_memory "),a("Badge",{attrs:{text:"History",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_init_memory",sig:{params:[{name:"self"},{name:"state",default:"None",annotation:"Optional[D.T_state]"}],return:"D.T_memory[D.T_state]"}}}),t._v(" "),a("p",[t._v("Initialize memory (possibly with a state) according to its specification and return it.")]),t._v(" "),a("p",[t._v("This function is automatically called by "),a("code",[t._v("Initializable._reset()")]),t._v(" to reinitialize the internal memory whenever\nthe domain is used as an environment.")]),t._v(" "),a("h4",{attrs:{id:"parameters-95"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-95"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": An optional state to initialize the memory with (typically the initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-152"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-152"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The new initialized memory.")]),t._v(" "),a("h3",{attrs:{id:"is-action-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-action-6"}},[t._v("#")]),t._v(" _is_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_action",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an event is an action (i.e. a controllable event for the agents).")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\naction space provided by "),a("code",[t._v("Events._get_action_space()")]),t._v(", but it can be overridden for faster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-96"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-96"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("event")]),t._v(": The event to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-153"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-153"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is an action (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-applicable-action-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-6"}},[t._v("#")]),t._v(" _is_applicable_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_applicable_action",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an action is applicable in the given memory (state or history), or in the internal one if\nomitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._is_applicable_action()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_applicable_action_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-97"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-97"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-154"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-154"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the action is applicable (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-applicable-action-from-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-from-3"}},[t._v("#")]),t._v(" _is_applicable_action_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_applicable_action_from",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an action is applicable in the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._is_applicable_action()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the space of\napplicable actions provided by "),a("code",[t._v("Events._get_applicable_actions_from()")]),t._v(", but it can be overridden for faster\nimplementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-98"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-98"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-155"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-155"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the action is applicable (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-enabled-event-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-6"}},[t._v("#")]),t._v(" _is_enabled_event "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_enabled_event",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an uncontrollable event is enabled in the given memory (state or history), or in the\ninternal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._is_enabled_event()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_enabled_event_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead\nof the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-99"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-99"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-156"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-156"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is enabled (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-enabled-event-from-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-from-3"}},[t._v("#")]),t._v(" _is_enabled_event_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_enabled_event_from",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an event is enabled in the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._is_enabled_event()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the space of\nenabled events provided by "),a("code",[t._v("Events._get_enabled_events_from()")]),t._v(", but it can be overridden for faster\nimplementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-100"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-100"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-157"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-157"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is enabled (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-goal-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-goal-6"}},[t._v("#")]),t._v(" _is_goal "),a("Badge",{attrs:{text:"Goals",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_goal",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"D.T_agent[D.T_predicate]"}}}),t._v(" "),a("p",[t._v("Indicate whether an observation belongs to the goals.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\ngoals space provided by "),a("code",[t._v("Goals._get_goals()")]),t._v(", but it can be overridden for faster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-101"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-101"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-158"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-158"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the observation is a goal (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-observation-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-observation-6"}},[t._v("#")]),t._v(" _is_observation "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_observation",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that an observation indeed belongs to the domain observation space.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\nobservation space provided by "),a("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(", but it can be overridden for\nfaster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-102"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-102"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-159"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-159"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the observation belongs to the domain observation space (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-terminal-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-terminal-2"}},[t._v("#")]),t._v(" _is_terminal "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_terminal",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"}],return:"D.T_agent[D.T_predicate]"}}}),t._v(" "),a("p",[t._v("Indicate whether a state is terminal.")]),t._v(" "),a("p",[t._v("A terminal state is a state with no outgoing transition (except to itself with value 0).")]),t._v(" "),a("h4",{attrs:{id:"parameters-103"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-103"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-160"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-160"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the state is terminal (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-transition-value-dependent-on-next-state-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-transition-value-dependent-on-next-state-2"}},[t._v("#")]),t._v(" _is_transition_value_dependent_on_next_state "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_transition_value_dependent_on_next_state",sig:{params:[{name:"self"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether _get_transition_value() requires the next_state parameter for its computation (cached).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("UncertainTransitions._is_transition_value_dependent_on_next_state()")]),t._v(" internally\ncalls "),a("code",[t._v("UncertainTransitions._is_transition_value_dependent_on_next_state_()")]),t._v(" the first time and automatically\ncaches its value to make future calls more efficient (since the returned value is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-161"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-161"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the transition value computation depends on next_state (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-transition-value-dependent-on-next-state-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-transition-value-dependent-on-next-state-3"}},[t._v("#")]),t._v(" _is_transition_value_dependent_on_next_state_ "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_transition_value_dependent_on_next_state_",sig:{params:[{name:"self"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether _get_transition_value() requires the next_state parameter for its computation.")]),t._v(" "),a("p",[t._v("This is a helper function called by default\nfrom "),a("code",[t._v("UncertainTransitions._is_transition_value_dependent_on_next_state()")]),t._v(", the difference being that the result\nis not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-162"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-162"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the transition value computation depends on next_state (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"reset-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#reset-6"}},[t._v("#")]),t._v(" _reset "),a("Badge",{attrs:{text:"Initializable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_reset",sig:{params:[{name:"self"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Reset the state of the environment and return an initial observation.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Initializable._reset()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Initializable._state_reset()")]),t._v(" (which returns an initial state). The boilerplate code automatically stores\nthe initial state into the "),a("code",[t._v("_memory")]),t._v(" attribute and samples a corresponding observation.")]),t._v(" "),a("h4",{attrs:{id:"returns-163"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-163"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("An initial observation.")]),t._v(" "),a("h3",{attrs:{id:"sample-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample-6"}},[t._v("#")]),t._v(" _sample "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_sample",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Sample one transition of the simulator's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Simulation._sample()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Simulation._state_sample()")]),t._v(" (which returns a transition outcome). The boilerplate code automatically\nsamples an observation corresponding to the sampled next state.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing simulator needs to be wrapped instead of implemented fully in scikit-decide (e.g. a\nsimulator), it is recommended to overwrite "),a("code",[t._v("Simulation._sample()")]),t._v(" to call the external simulator and not use\nthe "),a("code",[t._v("Simulation._state_sample()")]),t._v(" helper function.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-104"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-104"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-164"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-164"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of the sampled transition.")]),t._v(" "),a("h3",{attrs:{id:"set-memory-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#set-memory-6"}},[t._v("#")]),t._v(" _set_memory "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_set_memory",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"None"}}}),t._v(" "),a("p",[t._v("Set internal memory attribute "),a("code",[t._v("_memory")]),t._v(" to given one.")]),t._v(" "),a("p",[t._v('This can be useful to set a specific "starting point" before doing a rollout with\nsuccessive '),a("code",[t._v("Environment._step()")]),t._v(" calls.")]),t._v(" "),a("h4",{attrs:{id:"parameters-105"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-105"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to set internally.")])]),t._v(" "),a("h4",{attrs:{id:"example-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#example-6"}},[t._v("#")]),t._v(" Example")]),t._v(" "),a("div",{staticClass:"language-python extra-class"},[a("pre",{pre:!0,attrs:{class:"language-python"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Set simulation_domain memory to my_state (assuming Markovian domain)")]),t._v("\nsimulation_domain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("_set_memory"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("my_state"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Start a 100-steps rollout from here (applying my_action at every step)")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("for")]),t._v(" _ "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("in")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("range")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n simulation_domain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("_step"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("my_action"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("h3",{attrs:{id:"state-reset-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#state-reset-3"}},[t._v("#")]),t._v(" _state_reset "),a("Badge",{attrs:{text:"Initializable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_state_reset",sig:{params:[{name:"self"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("Reset the state of the environment and return an initial state.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Initializable._reset()")]),t._v(". It focuses on the state level, as\nopposed to the observation one for the latter.")]),t._v(" "),a("h4",{attrs:{id:"returns-165"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-165"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("An initial state.")]),t._v(" "),a("h3",{attrs:{id:"state-sample-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#state-sample-3"}},[t._v("#")]),t._v(" _state_sample "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_state_sample",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"TransitionOutcome[D.T_state, D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Compute one sample of the transition's dynamics.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Simulation._sample()")]),t._v(". It focuses on the state level, as\nopposed to the observation one for the latter.")]),t._v(" "),a("h4",{attrs:{id:"parameters-106"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-106"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-166"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-166"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The transition outcome of the sampled transition.")]),t._v(" "),a("h3",{attrs:{id:"state-step-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#state-step-3"}},[t._v("#")]),t._v(" _state_step "),a("Badge",{attrs:{text:"Environment",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_state_step",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"TransitionOutcome[D.T_state, D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Compute one step of the transition's dynamics.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Environment._step()")]),t._v(". It focuses on the state level, as opposed\nto the observation one for the latter.")]),t._v(" "),a("h4",{attrs:{id:"parameters-107"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-107"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the current memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-167"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-167"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The transition outcome of this step.")]),t._v(" "),a("h3",{attrs:{id:"step-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#step-6"}},[t._v("#")]),t._v(" _step "),a("Badge",{attrs:{text:"Environment",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_step",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Run one step of the environment's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Environment._step()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Environment._state_step()")]),t._v(" (which returns a transition outcome). The boilerplate code automatically stores\nnext state into the "),a("code",[t._v("_memory")]),t._v(" attribute and samples a corresponding observation.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing environment needs to be wrapped instead of implemented fully in scikit-decide (e.g. compiled\nATARI games), it is recommended to overwrite "),a("code",[t._v("Environment._step()")]),t._v(" to call the external environment and not\nuse the "),a("code",[t._v("Environment._state_step()")]),t._v(" helper function.")])]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Before calling "),a("code",[t._v("Environment._step()")]),t._v(" the first time or when the end of an episode is\nreached, "),a("code",[t._v("Initializable._reset()")]),t._v(" must be called to reset the environment's state.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-108"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-108"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the current memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-168"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-168"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of this step.")]),t._v(" "),a("h2",{attrs:{id:"d-uncertain"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#d-uncertain"}},[t._v("#")]),t._v(" D_uncertain")]),t._v(" "),a("p",[t._v("Base class for uncertain scheduling problems where we can compute distributions")]),t._v(" "),a("h3",{attrs:{id:"check-value-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#check-value-7"}},[t._v("#")]),t._v(" check_value "),a("Badge",{attrs:{text:"Rewards",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"check_value",sig:{params:[{name:"self"},{name:"value",annotation:"Value[D.T_value]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that a value is compliant with its reward specification.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("This function returns always True by default because any kind of reward should be accepted at this level.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-109"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-109"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("value")]),t._v(": The value to check.")])]),t._v(" "),a("h4",{attrs:{id:"returns-169"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-169"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the value is compliant (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"get-action-space-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-10"}},[t._v("#")]),t._v(" get_action_space "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_action_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) domain action space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.get_action_space()")]),t._v(" internally calls "),a("code",[t._v("Events._get_action_space_()")]),t._v(" the first time and\nautomatically caches its value to make future calls more efficient (since the action space is assumed to be\nconstant).")]),t._v(" "),a("h4",{attrs:{id:"returns-170"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-170"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The action space.")]),t._v(" "),a("h3",{attrs:{id:"get-applicable-actions-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-7"}},[t._v("#")]),t._v(" get_applicable_actions "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_applicable_actions",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history), or in\nthe internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.get_applicable_actions()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_applicable_actions()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-110"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-110"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-171"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-171"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of applicable actions.")]),t._v(" "),a("h3",{attrs:{id:"get-enabled-events-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-7"}},[t._v("#")]),t._v(" get_enabled_events "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_enabled_events",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"Space[D.T_event]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory), or in the internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.get_enabled_events()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_enabled_events()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead of\nthe memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-111"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-111"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-172"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-172"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of enabled events.")]),t._v(" "),a("h3",{attrs:{id:"get-goals-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-goals-10"}},[t._v("#")]),t._v(" get_goals "),a("Badge",{attrs:{text:"Goals",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_goals",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) domain goals space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Goals.get_goals()")]),t._v(" internally calls "),a("code",[t._v("Goals._get_goals_()")]),t._v(" the first time and automatically caches its\nvalue to make future calls more efficient (since the goals space is assumed to be constant).")]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Goal states are assumed to be fully observable (i.e. observation = state) so that there is never uncertainty\nabout whether the goal has been reached or not. This assumption guarantees that any policy that does not\nreach the goal with certainty incurs in infinite expected cost. - "),a("em",[t._v("Geffner, 2013: A Concise Introduction to\nModels and Methods for Automated Planning")])])]),t._v(" "),a("h4",{attrs:{id:"returns-173"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-173"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The goals space.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-10"}},[t._v("#")]),t._v(" get_initial_state "),a("Badge",{attrs:{text:"DeterministicInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_initial_state",sig:{params:[{name:"self"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("Get the (cached) initial state.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("DeterministicInitialized.get_initial_state()")]),t._v(" internally\ncalls "),a("code",[t._v("DeterministicInitialized._get_initial_state_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the initial state is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-174"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-174"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The initial state.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-distribution-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-distribution-10"}},[t._v("#")]),t._v(" get_initial_state_distribution "),a("Badge",{attrs:{text:"UncertainInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_initial_state_distribution",sig:{params:[{name:"self"}],return:"Distribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("Get the (cached) probability distribution of initial states.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("UncertainInitialized.get_initial_state_distribution()")]),t._v(" internally\ncalls "),a("code",[t._v("UncertainInitialized._get_initial_state_distribution_()")]),t._v(" the first time and automatically caches its value\nto make future calls more efficient (since the initial state distribution is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-175"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-175"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of initial states.")]),t._v(" "),a("h3",{attrs:{id:"get-next-state-distribution-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-next-state-distribution-4"}},[t._v("#")]),t._v(" get_next_state_distribution "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_next_state_distribution",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"Distribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("Get the probability distribution of next state given a memory and action.")]),t._v(" "),a("h4",{attrs:{id:"parameters-112"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-112"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-176"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-176"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of next state.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-7"}},[t._v("#")]),t._v(" get_observation "),a("Badge",{attrs:{text:"TransformedObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_observation",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Get the deterministic observation given a state and action.")]),t._v(" "),a("h4",{attrs:{id:"parameters-113"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-113"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-177"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-177"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-distribution-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-distribution-7"}},[t._v("#")]),t._v(" get_observation_distribution "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_observation_distribution",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"Distribution[D.T_agent[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the probability distribution of the observation given a state and action.")]),t._v(" "),a("p",[t._v("In mathematical terms (discrete case), given an action "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.197ex",height:"1.02ex",viewBox:"0 -441 529 451"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})])])])])]),t._v(", this function represents: "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.078ex",height:"2.262ex",viewBox:"0 -750 4012.7 1000"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"50",d:"M287 628Q287 635 230 637Q206 637 199 638T192 648Q192 649 194 659Q200 679 203 681T397 683Q587 682 600 680Q664 669 707 631T751 530Q751 453 685 389Q616 321 507 303Q500 302 402 301H307L277 182Q247 66 247 59Q247 55 248 54T255 50T272 48T305 46H336Q342 37 342 35Q342 19 335 5Q330 0 319 0Q316 0 282 1T182 2Q120 2 87 2T51 1Q33 1 33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM645 554Q645 567 643 575T634 597T609 619T560 635Q553 636 480 637Q463 637 445 637T416 636T404 636Q391 635 386 627Q384 621 367 550T332 412T314 344Q314 342 395 342H407H430Q542 342 590 392Q617 419 631 471T645 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(751, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(1140, 0)"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1903, 0)"}},[a("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(2181, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2650, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(3094.7, 0)"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3623.7, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(",\nwhere "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.05ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.726ex",height:"1.643ex",viewBox:"0 -704 763 726"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})])])])])]),t._v(" is the random variable of the observation.")],1),t._v(" "),a("h4",{attrs:{id:"parameters-114"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-114"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-178"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-178"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-space-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-10"}},[t._v("#")]),t._v(" get_observation_space "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_observation_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) observation space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("PartiallyObservable.get_observation_space()")]),t._v(" internally\ncalls "),a("code",[t._v("PartiallyObservable._get_observation_space_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the observation space is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-179"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-179"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The observation space.")]),t._v(" "),a("h3",{attrs:{id:"get-transition-value-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-transition-value-3"}},[t._v("#")]),t._v(" get_transition_value "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_transition_value",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"},{name:"next_state",default:"None",annotation:"Optional[D.T_state]"}],return:"D.T_agent[Value[D.T_value]]"}}}),t._v(" "),a("p",[t._v("Get the value (reward or cost) of a transition.")]),t._v(" "),a("p",[t._v("The transition to consider is defined by the function parameters.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("If this function never depends on the next_state parameter for its computation, it is recommended to\nindicate it by overriding "),a("code",[t._v("UncertainTransitions._is_transition_value_dependent_on_next_state_()")]),t._v(" to return\nFalse. This information can then be exploited by solvers to avoid computing next state to evaluate a\ntransition value (more efficient).")])]),t._v(" "),a("h4",{attrs:{id:"parameters-115"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-115"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")]),t._v(" "),a("li",[a("strong",[t._v("next_state")]),t._v(": The next state in which the transition ends (if needed for the computation).")])]),t._v(" "),a("h4",{attrs:{id:"returns-180"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-180"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The transition value (reward or cost).")]),t._v(" "),a("h3",{attrs:{id:"is-action-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-action-7"}},[t._v("#")]),t._v(" is_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_action",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an event is an action (i.e. a controllable event for the agents).")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\naction space provided by "),a("code",[t._v("Events.get_action_space()")]),t._v(", but it can be overridden for faster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-116"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-116"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("event")]),t._v(": The event to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-181"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-181"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is an action (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-applicable-action-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-7"}},[t._v("#")]),t._v(" is_applicable_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_applicable_action",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an action is applicable in the given memory (state or history), or in the internal one if\nomitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.is_applicable_action()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_applicable_action()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead\nof the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-117"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-117"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-182"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-182"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the action is applicable (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-enabled-event-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-7"}},[t._v("#")]),t._v(" is_enabled_event "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_enabled_event",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an uncontrollable event is enabled in the given memory (state or history), or in the\ninternal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.is_enabled_event()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_enabled_event()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead of\nthe memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-118"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-118"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-183"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-183"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is enabled (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-goal-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-goal-7"}},[t._v("#")]),t._v(" is_goal "),a("Badge",{attrs:{text:"Goals",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_goal",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"D.T_agent[D.T_predicate]"}}}),t._v(" "),a("p",[t._v("Indicate whether an observation belongs to the goals.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\ngoals space provided by "),a("code",[t._v("Goals.get_goals()")]),t._v(", but it can be overridden for faster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-119"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-119"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-184"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-184"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the observation is a goal (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-observation-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-observation-7"}},[t._v("#")]),t._v(" is_observation "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_observation",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that an observation indeed belongs to the domain observation space.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\nobservation space provided by "),a("code",[t._v("PartiallyObservable.get_observation_space()")]),t._v(", but it can be overridden for\nfaster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-120"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-120"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-185"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-185"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the observation belongs to the domain observation space (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-terminal-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-terminal-3"}},[t._v("#")]),t._v(" is_terminal "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_terminal",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"}],return:"D.T_agent[D.T_predicate]"}}}),t._v(" "),a("p",[t._v("Indicate whether a state is terminal.")]),t._v(" "),a("p",[t._v("A terminal state is a state with no outgoing transition (except to itself with value 0).")]),t._v(" "),a("h4",{attrs:{id:"parameters-121"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-121"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-186"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-186"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the state is terminal (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-transition-value-dependent-on-next-state-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-transition-value-dependent-on-next-state-4"}},[t._v("#")]),t._v(" is_transition_value_dependent_on_next_state "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_transition_value_dependent_on_next_state",sig:{params:[{name:"self"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether get_transition_value() requires the next_state parameter for its computation (cached).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("UncertainTransitions.is_transition_value_dependent_on_next_state()")]),t._v(" internally\ncalls "),a("code",[t._v("UncertainTransitions._is_transition_value_dependent_on_next_state_()")]),t._v(" the first time and automatically\ncaches its value to make future calls more efficient (since the returned value is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-187"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-187"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the transition value computation depends on next_state (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"reset-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#reset-7"}},[t._v("#")]),t._v(" reset "),a("Badge",{attrs:{text:"Initializable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"reset",sig:{params:[{name:"self"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Reset the state of the environment and return an initial observation.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Initializable.reset()")]),t._v(" provides some boilerplate code and internally calls "),a("code",[t._v("Initializable._reset()")]),t._v("\n(which returns an initial state). The boilerplate code automatically stores the initial state into the "),a("code",[t._v("_memory")]),t._v("\nattribute and samples a corresponding observation.")]),t._v(" "),a("h4",{attrs:{id:"returns-188"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-188"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("An initial observation.")]),t._v(" "),a("h3",{attrs:{id:"sample-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample-7"}},[t._v("#")]),t._v(" sample "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"sample",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Sample one transition of the simulator's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Simulation.sample()")]),t._v(" provides some boilerplate code and internally calls "),a("code",[t._v("Simulation._sample()")]),t._v("\n(which returns a transition outcome). The boilerplate code automatically samples an observation corresponding to\nthe sampled next state.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing simulator needs to be wrapped instead of implemented fully in scikit-decide (e.g. a\nsimulator), it is recommended to overwrite "),a("code",[t._v("Simulation.sample()")]),t._v(" to call the external simulator and not use\nthe "),a("code",[t._v("Simulation._sample()")]),t._v(" helper function.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-122"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-122"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-189"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-189"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of the sampled transition.")]),t._v(" "),a("h3",{attrs:{id:"set-memory-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#set-memory-7"}},[t._v("#")]),t._v(" set_memory "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"set_memory",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"None"}}}),t._v(" "),a("p",[t._v("Set internal memory attribute "),a("code",[t._v("_memory")]),t._v(" to given one.")]),t._v(" "),a("p",[t._v('This can be useful to set a specific "starting point" before doing a rollout with successive '),a("code",[t._v("Environment.step()")]),t._v("\ncalls.")]),t._v(" "),a("h4",{attrs:{id:"parameters-123"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-123"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to set internally.")])]),t._v(" "),a("h4",{attrs:{id:"example-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#example-7"}},[t._v("#")]),t._v(" Example")]),t._v(" "),a("div",{staticClass:"language-python extra-class"},[a("pre",{pre:!0,attrs:{class:"language-python"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Set simulation_domain memory to my_state (assuming Markovian domain)")]),t._v("\nsimulation_domain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("set_memory"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("my_state"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Start a 100-steps rollout from here (applying my_action at every step)")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("for")]),t._v(" _ "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("in")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("range")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n simulation_domain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("step"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("my_action"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("h3",{attrs:{id:"solve-with-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#solve-with-4"}},[t._v("#")]),t._v(" solve_with "),a("Badge",{attrs:{text:"Domain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"solve_with",sig:{params:[{name:"solver",annotation:"Solver"},{name:"domain_factory",default:"None",annotation:"Optional[Callable[[], Domain]]"},{name:"load_path",default:"None",annotation:"Optional[str]"}],return:"Solver"}}}),t._v(" "),a("p",[t._v("Solve the domain with a new or loaded solver and return it auto-cast to the level of the domain.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Solver.check_domain()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Solver._check_domain_additional()")]),t._v(' (which returns True by default but can be overridden to define\nspecific checks in addition to the "domain requirements"). The boilerplate code automatically checks whether all\ndomain requirements are met.')]),t._v(" "),a("h4",{attrs:{id:"parameters-124"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-124"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("solver")]),t._v(": The solver.")]),t._v(" "),a("li",[a("strong",[t._v("domain_factory")]),t._v(": A callable with no argument returning the domain to solve (factory is the domain class if None).")]),t._v(" "),a("li",[a("strong",[t._v("load_path")]),t._v(": The path to restore the solver state from (if None, the solving process will be launched instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-190"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-190"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The new solver (auto-cast to the level of the domain).")]),t._v(" "),a("h3",{attrs:{id:"step-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#step-7"}},[t._v("#")]),t._v(" step "),a("Badge",{attrs:{text:"Environment",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"step",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Run one step of the environment's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Environment.step()")]),t._v(" provides some boilerplate code and internally calls "),a("code",[t._v("Environment._step()")]),t._v(" (which\nreturns a transition outcome). The boilerplate code automatically stores next state into the "),a("code",[t._v("_memory")]),t._v(" attribute\nand samples a corresponding observation.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing environment needs to be wrapped instead of implemented fully in scikit-decide (e.g. compiled\nATARI games), it is recommended to overwrite "),a("code",[t._v("Environment.step()")]),t._v(" to call the external environment and not\nuse the "),a("code",[t._v("Environment._step()")]),t._v(" helper function.")])]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Before calling "),a("code",[t._v("Environment.step()")]),t._v(" the first time or when the end of an episode is\nreached, "),a("code",[t._v("Initializable.reset()")]),t._v(" must be called to reset the environment's state.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-125"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-125"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the current memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-191"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-191"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of this step.")]),t._v(" "),a("h3",{attrs:{id:"check-value-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#check-value-8"}},[t._v("#")]),t._v(" _check_value "),a("Badge",{attrs:{text:"Rewards",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_check_value",sig:{params:[{name:"self"},{name:"value",annotation:"Value[D.T_value]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that a value is compliant with its reward specification.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("This function returns always True by default because any kind of reward should be accepted at this level.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-126"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-126"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("value")]),t._v(": The value to check.")])]),t._v(" "),a("h4",{attrs:{id:"returns-192"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-192"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the value is compliant (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"get-action-space-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-11"}},[t._v("#")]),t._v(" _get_action_space "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_action_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) domain action space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._get_action_space()")]),t._v(" internally calls "),a("code",[t._v("Events._get_action_space_()")]),t._v(" the first time and\nautomatically caches its value to make future calls more efficient (since the action space is assumed to be\nconstant).")]),t._v(" "),a("h4",{attrs:{id:"returns-193"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-193"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The action space.")]),t._v(" "),a("h3",{attrs:{id:"get-action-space-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-12"}},[t._v("#")]),t._v(" _get_action_space_ "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_action_space_",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the domain action space (finite or infinite set).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._get_action_space()")]),t._v(", the difference being that the\nresult is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-194"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-194"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The action space.")]),t._v(" "),a("h3",{attrs:{id:"get-applicable-actions-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-8"}},[t._v("#")]),t._v(" _get_applicable_actions "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_applicable_actions",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history), or in\nthe internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._get_applicable_actions()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_applicable_actions_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-127"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-127"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-195"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-195"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of applicable actions.")]),t._v(" "),a("h3",{attrs:{id:"get-applicable-actions-from-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-from-4"}},[t._v("#")]),t._v(" _get_applicable_actions_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_applicable_actions_from",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._get_applicable_actions()")]),t._v(", the difference being that\nthe memory parameter is mandatory here.")]),t._v(" "),a("h4",{attrs:{id:"parameters-128"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-128"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-196"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-196"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of applicable actions.")]),t._v(" "),a("h3",{attrs:{id:"get-enabled-events-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-8"}},[t._v("#")]),t._v(" _get_enabled_events "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_enabled_events",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"Space[D.T_event]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory), or in the internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._get_enabled_events()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_enabled_events_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-129"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-129"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-197"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-197"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of enabled events.")]),t._v(" "),a("h3",{attrs:{id:"get-enabled-events-from-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-from-4"}},[t._v("#")]),t._v(" _get_enabled_events_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_enabled_events_from",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"Space[D.T_event]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._get_enabled_events()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("h4",{attrs:{id:"parameters-130"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-130"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-198"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-198"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of enabled events.")]),t._v(" "),a("h3",{attrs:{id:"get-goals-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-goals-11"}},[t._v("#")]),t._v(" _get_goals "),a("Badge",{attrs:{text:"Goals",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_goals",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) domain goals space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Goals._get_goals()")]),t._v(" internally calls "),a("code",[t._v("Goals._get_goals_()")]),t._v(" the first time and automatically caches\nits value to make future calls more efficient (since the goals space is assumed to be constant).")]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Goal states are assumed to be fully observable (i.e. observation = state) so that there is never uncertainty\nabout whether the goal has been reached or not. This assumption guarantees that any policy that does not\nreach the goal with certainty incurs in infinite expected cost. - "),a("em",[t._v("Geffner, 2013: A Concise Introduction to\nModels and Methods for Automated Planning")])])]),t._v(" "),a("h4",{attrs:{id:"returns-199"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-199"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The goals space.")]),t._v(" "),a("h3",{attrs:{id:"get-goals-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-goals-12"}},[t._v("#")]),t._v(" _get_goals_ "),a("Badge",{attrs:{text:"Goals",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_goals_",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the domain goals space (finite or infinite set).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Goals._get_goals()")]),t._v(", the difference being that the result is\nnot cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-200"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-200"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The goals space.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-11"}},[t._v("#")]),t._v(" _get_initial_state "),a("Badge",{attrs:{text:"DeterministicInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_initial_state",sig:{params:[{name:"self"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("Get the (cached) initial state.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("DeterministicInitialized._get_initial_state()")]),t._v(" internally\ncalls "),a("code",[t._v("DeterministicInitialized._get_initial_state_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the initial state is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-201"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-201"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The initial state.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-12"}},[t._v("#")]),t._v(" _get_initial_state_ "),a("Badge",{attrs:{text:"DeterministicInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_initial_state_",sig:{params:[{name:"self"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("Get the initial state.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("DeterministicInitialized._get_initial_state()")]),t._v(", the difference\nbeing that the result is not cached here.")]),t._v(" "),a("h4",{attrs:{id:"returns-202"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-202"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The initial state.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-distribution-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-distribution-11"}},[t._v("#")]),t._v(" _get_initial_state_distribution "),a("Badge",{attrs:{text:"UncertainInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_initial_state_distribution",sig:{params:[{name:"self"}],return:"Distribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("Get the (cached) probability distribution of initial states.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("UncertainInitialized._get_initial_state_distribution()")]),t._v(" internally\ncalls "),a("code",[t._v("UncertainInitialized._get_initial_state_distribution_()")]),t._v(" the first time and automatically caches its value\nto make future calls more efficient (since the initial state distribution is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-203"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-203"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of initial states.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-distribution-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-distribution-12"}},[t._v("#")]),t._v(" _get_initial_state_distribution_ "),a("Badge",{attrs:{text:"UncertainInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_initial_state_distribution_",sig:{params:[{name:"self"}],return:"Distribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("Get the probability distribution of initial states.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("UncertainInitialized._get_initial_state_distribution()")]),t._v(", the\ndifference being that the result is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-204"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-204"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of initial states.")]),t._v(" "),a("h3",{attrs:{id:"get-memory-maxlen-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-memory-maxlen-7"}},[t._v("#")]),t._v(" _get_memory_maxlen "),a("Badge",{attrs:{text:"History",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_memory_maxlen",sig:{params:[{name:"self"}],return:"int"}}}),t._v(" "),a("p",[t._v("Get the (cached) memory max length.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("FiniteHistory._get_memory_maxlen()")]),t._v(" internally calls "),a("code",[t._v("FiniteHistory._get_memory_maxlen_()")]),t._v(" the first\ntime and automatically caches its value to make future calls more efficient (since the memory max length is\nassumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-205"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-205"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The memory max length.")]),t._v(" "),a("h3",{attrs:{id:"get-memory-maxlen-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-memory-maxlen-8"}},[t._v("#")]),t._v(" _get_memory_maxlen_ "),a("Badge",{attrs:{text:"FiniteHistory",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_memory_maxlen_",sig:{params:[{name:"self"}],return:"int"}}}),t._v(" "),a("p",[t._v("Get the memory max length.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("FiniteHistory._get_memory_maxlen()")]),t._v(", the difference being that\nthe result is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-206"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-206"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The memory max length.")]),t._v(" "),a("h3",{attrs:{id:"get-next-state-distribution-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-next-state-distribution-5"}},[t._v("#")]),t._v(" _get_next_state_distribution "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_next_state_distribution",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"Distribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("Get the probability distribution of next state given a memory and action.")]),t._v(" "),a("h4",{attrs:{id:"parameters-131"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-131"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-207"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-207"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of next state.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-8"}},[t._v("#")]),t._v(" _get_observation "),a("Badge",{attrs:{text:"TransformedObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Get the deterministic observation given a state and action.")]),t._v(" "),a("h4",{attrs:{id:"parameters-132"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-132"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-208"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-208"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-distribution-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-distribution-8"}},[t._v("#")]),t._v(" _get_observation_distribution "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation_distribution",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"Distribution[D.T_agent[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the probability distribution of the observation given a state and action.")]),t._v(" "),a("p",[t._v("In mathematical terms (discrete case), given an action "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.197ex",height:"1.02ex",viewBox:"0 -441 529 451"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})])])])])]),t._v(", this function represents: "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.078ex",height:"2.262ex",viewBox:"0 -750 4012.7 1000"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"50",d:"M287 628Q287 635 230 637Q206 637 199 638T192 648Q192 649 194 659Q200 679 203 681T397 683Q587 682 600 680Q664 669 707 631T751 530Q751 453 685 389Q616 321 507 303Q500 302 402 301H307L277 182Q247 66 247 59Q247 55 248 54T255 50T272 48T305 46H336Q342 37 342 35Q342 19 335 5Q330 0 319 0Q316 0 282 1T182 2Q120 2 87 2T51 1Q33 1 33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM645 554Q645 567 643 575T634 597T609 619T560 635Q553 636 480 637Q463 637 445 637T416 636T404 636Q391 635 386 627Q384 621 367 550T332 412T314 344Q314 342 395 342H407H430Q542 342 590 392Q617 419 631 471T645 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(751, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(1140, 0)"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1903, 0)"}},[a("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(2181, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2650, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(3094.7, 0)"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3623.7, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(",\nwhere "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.05ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.726ex",height:"1.643ex",viewBox:"0 -704 763 726"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})])])])])]),t._v(" is the random variable of the observation.")],1),t._v(" "),a("h4",{attrs:{id:"parameters-133"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-133"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-209"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-209"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-space-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-11"}},[t._v("#")]),t._v(" _get_observation_space "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) observation space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(" internally\ncalls "),a("code",[t._v("PartiallyObservable._get_observation_space_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the observation space is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-210"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-210"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The observation space.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-space-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-12"}},[t._v("#")]),t._v(" _get_observation_space_ "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation_space_",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the observation space (finite or infinite set).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(", the difference\nbeing that the result is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-211"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-211"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The observation space.")]),t._v(" "),a("h3",{attrs:{id:"get-transition-value-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-transition-value-4"}},[t._v("#")]),t._v(" _get_transition_value "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_transition_value",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"},{name:"next_state",default:"None",annotation:"Optional[D.T_state]"}],return:"D.T_agent[Value[D.T_value]]"}}}),t._v(" "),a("p",[t._v("Get the value (reward or cost) of a transition.")]),t._v(" "),a("p",[t._v("The transition to consider is defined by the function parameters.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("If this function never depends on the next_state parameter for its computation, it is recommended to\nindicate it by overriding "),a("code",[t._v("UncertainTransitions._is_transition_value_dependent_on_next_state_()")]),t._v(" to return\nFalse. This information can then be exploited by solvers to avoid computing next state to evaluate a\ntransition value (more efficient).")])]),t._v(" "),a("h4",{attrs:{id:"parameters-134"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-134"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")]),t._v(" "),a("li",[a("strong",[t._v("next_state")]),t._v(": The next state in which the transition ends (if needed for the computation).")])]),t._v(" "),a("h4",{attrs:{id:"returns-212"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-212"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The transition value (reward or cost).")]),t._v(" "),a("h3",{attrs:{id:"init-memory-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#init-memory-4"}},[t._v("#")]),t._v(" _init_memory "),a("Badge",{attrs:{text:"History",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_init_memory",sig:{params:[{name:"self"},{name:"state",default:"None",annotation:"Optional[D.T_state]"}],return:"D.T_memory[D.T_state]"}}}),t._v(" "),a("p",[t._v("Initialize memory (possibly with a state) according to its specification and return it.")]),t._v(" "),a("p",[t._v("This function is automatically called by "),a("code",[t._v("Initializable._reset()")]),t._v(" to reinitialize the internal memory whenever\nthe domain is used as an environment.")]),t._v(" "),a("h4",{attrs:{id:"parameters-135"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-135"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": An optional state to initialize the memory with (typically the initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-213"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-213"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The new initialized memory.")]),t._v(" "),a("h3",{attrs:{id:"is-action-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-action-8"}},[t._v("#")]),t._v(" _is_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_action",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an event is an action (i.e. a controllable event for the agents).")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\naction space provided by "),a("code",[t._v("Events._get_action_space()")]),t._v(", but it can be overridden for faster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-136"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-136"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("event")]),t._v(": The event to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-214"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-214"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is an action (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-applicable-action-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-8"}},[t._v("#")]),t._v(" _is_applicable_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_applicable_action",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an action is applicable in the given memory (state or history), or in the internal one if\nomitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._is_applicable_action()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_applicable_action_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-137"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-137"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-215"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-215"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the action is applicable (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-applicable-action-from-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-from-4"}},[t._v("#")]),t._v(" _is_applicable_action_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_applicable_action_from",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an action is applicable in the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._is_applicable_action()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the space of\napplicable actions provided by "),a("code",[t._v("Events._get_applicable_actions_from()")]),t._v(", but it can be overridden for faster\nimplementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-138"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-138"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-216"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-216"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the action is applicable (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-enabled-event-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-8"}},[t._v("#")]),t._v(" _is_enabled_event "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_enabled_event",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an uncontrollable event is enabled in the given memory (state or history), or in the\ninternal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._is_enabled_event()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_enabled_event_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead\nof the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-139"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-139"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-217"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-217"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is enabled (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-enabled-event-from-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-from-4"}},[t._v("#")]),t._v(" _is_enabled_event_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_enabled_event_from",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an event is enabled in the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._is_enabled_event()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the space of\nenabled events provided by "),a("code",[t._v("Events._get_enabled_events_from()")]),t._v(", but it can be overridden for faster\nimplementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-140"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-140"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-218"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-218"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is enabled (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-goal-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-goal-8"}},[t._v("#")]),t._v(" _is_goal "),a("Badge",{attrs:{text:"Goals",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_goal",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"D.T_agent[D.T_predicate]"}}}),t._v(" "),a("p",[t._v("Indicate whether an observation belongs to the goals.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\ngoals space provided by "),a("code",[t._v("Goals._get_goals()")]),t._v(", but it can be overridden for faster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-141"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-141"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-219"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-219"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the observation is a goal (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-observation-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-observation-8"}},[t._v("#")]),t._v(" _is_observation "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_observation",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that an observation indeed belongs to the domain observation space.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\nobservation space provided by "),a("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(", but it can be overridden for\nfaster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-142"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-142"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-220"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-220"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the observation belongs to the domain observation space (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-terminal-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-terminal-4"}},[t._v("#")]),t._v(" _is_terminal "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_terminal",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"}],return:"D.T_agent[D.T_predicate]"}}}),t._v(" "),a("p",[t._v("Indicate whether a state is terminal.")]),t._v(" "),a("p",[t._v("A terminal state is a state with no outgoing transition (except to itself with value 0).")]),t._v(" "),a("h4",{attrs:{id:"parameters-143"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-143"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-221"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-221"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the state is terminal (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-transition-value-dependent-on-next-state-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-transition-value-dependent-on-next-state-5"}},[t._v("#")]),t._v(" _is_transition_value_dependent_on_next_state "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_transition_value_dependent_on_next_state",sig:{params:[{name:"self"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether _get_transition_value() requires the next_state parameter for its computation (cached).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("UncertainTransitions._is_transition_value_dependent_on_next_state()")]),t._v(" internally\ncalls "),a("code",[t._v("UncertainTransitions._is_transition_value_dependent_on_next_state_()")]),t._v(" the first time and automatically\ncaches its value to make future calls more efficient (since the returned value is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-222"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-222"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the transition value computation depends on next_state (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-transition-value-dependent-on-next-state-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-transition-value-dependent-on-next-state-6"}},[t._v("#")]),t._v(" _is_transition_value_dependent_on_next_state_ "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_transition_value_dependent_on_next_state_",sig:{params:[{name:"self"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether _get_transition_value() requires the next_state parameter for its computation.")]),t._v(" "),a("p",[t._v("This is a helper function called by default\nfrom "),a("code",[t._v("UncertainTransitions._is_transition_value_dependent_on_next_state()")]),t._v(", the difference being that the result\nis not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-223"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-223"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the transition value computation depends on next_state (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"reset-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#reset-8"}},[t._v("#")]),t._v(" _reset "),a("Badge",{attrs:{text:"Initializable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_reset",sig:{params:[{name:"self"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Reset the state of the environment and return an initial observation.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Initializable._reset()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Initializable._state_reset()")]),t._v(" (which returns an initial state). The boilerplate code automatically stores\nthe initial state into the "),a("code",[t._v("_memory")]),t._v(" attribute and samples a corresponding observation.")]),t._v(" "),a("h4",{attrs:{id:"returns-224"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-224"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("An initial observation.")]),t._v(" "),a("h3",{attrs:{id:"sample-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample-8"}},[t._v("#")]),t._v(" _sample "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_sample",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Sample one transition of the simulator's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Simulation._sample()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Simulation._state_sample()")]),t._v(" (which returns a transition outcome). The boilerplate code automatically\nsamples an observation corresponding to the sampled next state.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing simulator needs to be wrapped instead of implemented fully in scikit-decide (e.g. a\nsimulator), it is recommended to overwrite "),a("code",[t._v("Simulation._sample()")]),t._v(" to call the external simulator and not use\nthe "),a("code",[t._v("Simulation._state_sample()")]),t._v(" helper function.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-144"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-144"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-225"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-225"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of the sampled transition.")]),t._v(" "),a("h3",{attrs:{id:"set-memory-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#set-memory-8"}},[t._v("#")]),t._v(" _set_memory "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_set_memory",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"None"}}}),t._v(" "),a("p",[t._v("Set internal memory attribute "),a("code",[t._v("_memory")]),t._v(" to given one.")]),t._v(" "),a("p",[t._v('This can be useful to set a specific "starting point" before doing a rollout with\nsuccessive '),a("code",[t._v("Environment._step()")]),t._v(" calls.")]),t._v(" "),a("h4",{attrs:{id:"parameters-145"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-145"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to set internally.")])]),t._v(" "),a("h4",{attrs:{id:"example-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#example-8"}},[t._v("#")]),t._v(" Example")]),t._v(" "),a("div",{staticClass:"language-python extra-class"},[a("pre",{pre:!0,attrs:{class:"language-python"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Set simulation_domain memory to my_state (assuming Markovian domain)")]),t._v("\nsimulation_domain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("_set_memory"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("my_state"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Start a 100-steps rollout from here (applying my_action at every step)")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("for")]),t._v(" _ "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("in")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("range")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n simulation_domain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("_step"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("my_action"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("h3",{attrs:{id:"state-reset-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#state-reset-4"}},[t._v("#")]),t._v(" _state_reset "),a("Badge",{attrs:{text:"Initializable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_state_reset",sig:{params:[{name:"self"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("Reset the state of the environment and return an initial state.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Initializable._reset()")]),t._v(". It focuses on the state level, as\nopposed to the observation one for the latter.")]),t._v(" "),a("h4",{attrs:{id:"returns-226"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-226"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("An initial state.")]),t._v(" "),a("h3",{attrs:{id:"state-sample-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#state-sample-4"}},[t._v("#")]),t._v(" _state_sample "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_state_sample",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"TransitionOutcome[D.T_state, D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Compute one sample of the transition's dynamics.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Simulation._sample()")]),t._v(". It focuses on the state level, as\nopposed to the observation one for the latter.")]),t._v(" "),a("h4",{attrs:{id:"parameters-146"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-146"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-227"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-227"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The transition outcome of the sampled transition.")]),t._v(" "),a("h3",{attrs:{id:"state-step-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#state-step-4"}},[t._v("#")]),t._v(" _state_step "),a("Badge",{attrs:{text:"Environment",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_state_step",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"TransitionOutcome[D.T_state, D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Compute one step of the transition's dynamics.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Environment._step()")]),t._v(". It focuses on the state level, as opposed\nto the observation one for the latter.")]),t._v(" "),a("h4",{attrs:{id:"parameters-147"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-147"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the current memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-228"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-228"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The transition outcome of this step.")]),t._v(" "),a("h3",{attrs:{id:"step-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#step-8"}},[t._v("#")]),t._v(" _step "),a("Badge",{attrs:{text:"Environment",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_step",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Run one step of the environment's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Environment._step()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Environment._state_step()")]),t._v(" (which returns a transition outcome). The boilerplate code automatically stores\nnext state into the "),a("code",[t._v("_memory")]),t._v(" attribute and samples a corresponding observation.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing environment needs to be wrapped instead of implemented fully in scikit-decide (e.g. compiled\nATARI games), it is recommended to overwrite "),a("code",[t._v("Environment._step()")]),t._v(" to call the external environment and not\nuse the "),a("code",[t._v("Environment._state_step()")]),t._v(" helper function.")])]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Before calling "),a("code",[t._v("Environment._step()")]),t._v(" the first time or when the end of an episode is\nreached, "),a("code",[t._v("Initializable._reset()")]),t._v(" must be called to reset the environment's state.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-148"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-148"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the current memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-229"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-229"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of this step.")]),t._v(" "),a("h2",{attrs:{id:"uncertainschedulingdomain"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#uncertainschedulingdomain"}},[t._v("#")]),t._v(" UncertainSchedulingDomain")]),t._v(" "),a("p",[t._v("This is the highest level scheduling domain class (inheriting top-level class for each mandatory\ndomain characteristic).")]),t._v(" "),a("h3",{attrs:{id:"add-to-current-conditions-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#add-to-current-conditions-3"}},[t._v("#")]),t._v(" add_to_current_conditions "),a("Badge",{attrs:{text:"WithConditionalTasks",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"add_to_current_conditions",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"state"}]}}}),t._v(" "),a("p",[t._v("Samples completion conditions for a given task and add these conditions to the list of conditions in the\ngiven state. This function should be called when a task complete.")]),t._v(" "),a("h3",{attrs:{id:"all-tasks-possible-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#all-tasks-possible-2"}},[t._v("#")]),t._v(" all_tasks_possible "),a("Badge",{attrs:{text:"MixedRenewable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"all_tasks_possible",sig:{params:[{name:"self"},{name:"state",annotation:"State"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Return a True is for each task there is at least one mode in which the task can be executed, given the\nresource configuration in the state provided as argument. Returns False otherwise.\nIf this function returns False, the scheduling problem is unsolvable from this state.\nThis is to cope with the use of non-renable resources that may lead to state from which a\ntask will not be possible anymore.")]),t._v(" "),a("h3",{attrs:{id:"check-if-action-can-be-started-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#check-if-action-can-be-started-2"}},[t._v("#")]),t._v(" check_if_action_can_be_started "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"check_if_action_can_be_started",sig:{params:[{name:"self"},{name:"state",annotation:"State"},{name:"action",annotation:"SchedulingAction"}],return:"Tuple[bool, Dict[str, int]]"}}}),t._v(" "),a("p",[t._v("Check if a start or resume action can be applied. It returns a boolean and a dictionary of resources to use.")]),t._v(" "),a("h3",{attrs:{id:"check-unique-resource-names-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#check-unique-resource-names-2"}},[t._v("#")]),t._v(" check_unique_resource_names "),a("Badge",{attrs:{text:"UncertainResourceAvailabilityChanges",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"check_unique_resource_names",sig:{params:[{name:"self"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Return True if there are no duplicates in resource names across both resource types\nand resource units name lists.")]),t._v(" "),a("h3",{attrs:{id:"check-value-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#check-value-9"}},[t._v("#")]),t._v(" check_value "),a("Badge",{attrs:{text:"Rewards",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"check_value",sig:{params:[{name:"self"},{name:"value",annotation:"Value[D.T_value]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that a value is compliant with its reward specification.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("This function returns always True by default because any kind of reward should be accepted at this level.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-149"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-149"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("value")]),t._v(": The value to check.")])]),t._v(" "),a("h4",{attrs:{id:"returns-230"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-230"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the value is compliant (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"find-one-ressource-to-do-one-task-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#find-one-ressource-to-do-one-task-2"}},[t._v("#")]),t._v(" find_one_ressource_to_do_one_task "),a("Badge",{attrs:{text:"WithResourceSkills",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"find_one_ressource_to_do_one_task",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"mode",annotation:"int"}],return:"List[str]"}}}),t._v(" "),a("p",[t._v("For the common case when it is possible to do the task by one resource unit.\nFor general case, it might just return no possible ressource unit.")]),t._v(" "),a("h3",{attrs:{id:"get-action-space-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-13"}},[t._v("#")]),t._v(" get_action_space "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_action_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) domain action space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.get_action_space()")]),t._v(" internally calls "),a("code",[t._v("Events._get_action_space_()")]),t._v(" the first time and\nautomatically caches its value to make future calls more efficient (since the action space is assumed to be\nconstant).")]),t._v(" "),a("h4",{attrs:{id:"returns-231"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-231"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The action space.")]),t._v(" "),a("h3",{attrs:{id:"get-all-condition-items-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-all-condition-items-2"}},[t._v("#")]),t._v(" get_all_condition_items "),a("Badge",{attrs:{text:"WithConditionalTasks",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_all_condition_items",sig:{params:[{name:"self"}],return:"Enum"}}}),t._v(" "),a("p",[t._v("Return an Enum with all the elements that can be used to define a condition.")]),t._v(" "),a("p",[t._v("Example:\nreturn\nConditionElementsExample(Enum):\nOK = 0\nNC_PART_1_OPERATION_1 = 1\nNC_PART_1_OPERATION_2 = 2\nNC_PART_2_OPERATION_1 = 3\nNC_PART_2_OPERATION_2 = 4\nHARDWARE_ISSUE_MACHINE_A = 5\nHARDWARE_ISSUE_MACHINE_B = 6")]),t._v(" "),a("h3",{attrs:{id:"get-all-resources-skills-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-all-resources-skills-3"}},[t._v("#")]),t._v(" get_all_resources_skills "),a("Badge",{attrs:{text:"WithResourceSkills",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_all_resources_skills",sig:{params:[{name:"self"}],return:"Dict[str, Dict[str, Any]]"}}}),t._v(" "),a("p",[t._v("Return a nested dictionary where the first key is the name of a resource type or resource unit\nand the second key is the name of a skill. The value defines the details of the skill.\nE.g. {unit: {skill: (detail of skill)}}")]),t._v(" "),a("h3",{attrs:{id:"get-all-tasks-skills-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-all-tasks-skills-3"}},[t._v("#")]),t._v(" get_all_tasks_skills "),a("Badge",{attrs:{text:"WithResourceSkills",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_all_tasks_skills",sig:{params:[{name:"self"}],return:"Dict[int, Dict[int, Dict[str, Any]]]"}}}),t._v(" "),a("p",[t._v("Return a nested dictionary where the first key is the name of a task\nand the second key is the name of a skill. The value defines the details of the skill.\nE.g. {task: {skill: (detail of skill)}}")]),t._v(" "),a("h3",{attrs:{id:"get-all-unconditional-tasks-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-all-unconditional-tasks-3"}},[t._v("#")]),t._v(" get_all_unconditional_tasks "),a("Badge",{attrs:{text:"WithConditionalTasks",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_all_unconditional_tasks",sig:{params:[{name:"self"}],return:"Set[int]"}}}),t._v(" "),a("p",[t._v("Returns the set of all task ids for which there are no conditions. These tasks are to be considered at\nthe start of a project (i.e. in the initial state).")]),t._v(" "),a("h3",{attrs:{id:"get-applicable-actions-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-9"}},[t._v("#")]),t._v(" get_applicable_actions "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_applicable_actions",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history), or in\nthe internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.get_applicable_actions()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_applicable_actions()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-150"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-150"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-232"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-232"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of applicable actions.")]),t._v(" "),a("h3",{attrs:{id:"get-available-tasks-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-available-tasks-3"}},[t._v("#")]),t._v(" get_available_tasks "),a("Badge",{attrs:{text:"WithConditionalTasks",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_available_tasks",sig:{params:[{name:"self"},{name:"state"}],return:"Set[int]"}}}),t._v(" "),a("p",[t._v("Returns the set of all task ids that can be considered under the conditions defined in the given state.\nNote that the set will contains all ids for all tasks in the domain that meet the conditions, that is tasks\nthat are remaining, or that have been completed, paused or started / resumed.")]),t._v(" "),a("h3",{attrs:{id:"get-enabled-events-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-9"}},[t._v("#")]),t._v(" get_enabled_events "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_enabled_events",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"Space[D.T_event]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory), or in the internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.get_enabled_events()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_enabled_events()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead of\nthe memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-151"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-151"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-233"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-233"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of enabled events.")]),t._v(" "),a("h3",{attrs:{id:"get-goals-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-goals-13"}},[t._v("#")]),t._v(" get_goals "),a("Badge",{attrs:{text:"Goals",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_goals",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) domain goals space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Goals.get_goals()")]),t._v(" internally calls "),a("code",[t._v("Goals._get_goals_()")]),t._v(" the first time and automatically caches its\nvalue to make future calls more efficient (since the goals space is assumed to be constant).")]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Goal states are assumed to be fully observable (i.e. observation = state) so that there is never uncertainty\nabout whether the goal has been reached or not. This assumption guarantees that any policy that does not\nreach the goal with certainty incurs in infinite expected cost. - "),a("em",[t._v("Geffner, 2013: A Concise Introduction to\nModels and Methods for Automated Planning")])])]),t._v(" "),a("h4",{attrs:{id:"returns-234"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-234"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The goals space.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-13"}},[t._v("#")]),t._v(" get_initial_state "),a("Badge",{attrs:{text:"DeterministicInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_initial_state",sig:{params:[{name:"self"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("Get the (cached) initial state.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("DeterministicInitialized.get_initial_state()")]),t._v(" internally\ncalls "),a("code",[t._v("DeterministicInitialized._get_initial_state_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the initial state is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-235"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-235"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The initial state.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-distribution-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-distribution-13"}},[t._v("#")]),t._v(" get_initial_state_distribution "),a("Badge",{attrs:{text:"UncertainInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_initial_state_distribution",sig:{params:[{name:"self"}],return:"Distribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("Get the (cached) probability distribution of initial states.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("UncertainInitialized.get_initial_state_distribution()")]),t._v(" internally\ncalls "),a("code",[t._v("UncertainInitialized._get_initial_state_distribution_()")]),t._v(" the first time and automatically caches its value\nto make future calls more efficient (since the initial state distribution is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-236"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-236"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of initial states.")]),t._v(" "),a("h3",{attrs:{id:"get-max-horizon-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-max-horizon-3"}},[t._v("#")]),t._v(" get_max_horizon "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_max_horizon",sig:{params:[{name:"self"}],return:"int"}}}),t._v(" "),a("p",[t._v("Return the maximum time horizon (int)")]),t._v(" "),a("h3",{attrs:{id:"get-mode-costs-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-mode-costs-3"}},[t._v("#")]),t._v(" get_mode_costs "),a("Badge",{attrs:{text:"WithModeCosts",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_mode_costs",sig:{params:[{name:"self"}],return:"Dict[int, Dict[int, float]]"}}}),t._v(" "),a("p",[t._v("Return a nested dictionary where the first key is the id of a task (int), the second key the id of a mode\nand the value indicates the cost of execution the task in the mode.")]),t._v(" "),a("h3",{attrs:{id:"get-next-state-distribution-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-next-state-distribution-6"}},[t._v("#")]),t._v(" get_next_state_distribution "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_next_state_distribution",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"Distribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("Get the probability distribution of next state given a memory and action.")]),t._v(" "),a("h4",{attrs:{id:"parameters-152"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-152"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-237"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-237"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of next state.")]),t._v(" "),a("h3",{attrs:{id:"get-objectives-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-objectives-3"}},[t._v("#")]),t._v(" get_objectives "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_objectives",sig:{params:[{name:"self"}],return:"List[SchedulingObjectiveEnum]"}}}),t._v(" "),a("p",[t._v("Return the objectives to consider as a list. The items should be of SchedulingObjectiveEnum type.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-9"}},[t._v("#")]),t._v(" get_observation "),a("Badge",{attrs:{text:"TransformedObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_observation",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Get the deterministic observation given a state and action.")]),t._v(" "),a("h4",{attrs:{id:"parameters-153"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-153"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-238"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-238"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-distribution-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-distribution-9"}},[t._v("#")]),t._v(" get_observation_distribution "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_observation_distribution",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"Distribution[D.T_agent[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the probability distribution of the observation given a state and action.")]),t._v(" "),a("p",[t._v("In mathematical terms (discrete case), given an action "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.197ex",height:"1.02ex",viewBox:"0 -441 529 451"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})])])])])]),t._v(", this function represents: "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.078ex",height:"2.262ex",viewBox:"0 -750 4012.7 1000"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"50",d:"M287 628Q287 635 230 637Q206 637 199 638T192 648Q192 649 194 659Q200 679 203 681T397 683Q587 682 600 680Q664 669 707 631T751 530Q751 453 685 389Q616 321 507 303Q500 302 402 301H307L277 182Q247 66 247 59Q247 55 248 54T255 50T272 48T305 46H336Q342 37 342 35Q342 19 335 5Q330 0 319 0Q316 0 282 1T182 2Q120 2 87 2T51 1Q33 1 33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM645 554Q645 567 643 575T634 597T609 619T560 635Q553 636 480 637Q463 637 445 637T416 636T404 636Q391 635 386 627Q384 621 367 550T332 412T314 344Q314 342 395 342H407H430Q542 342 590 392Q617 419 631 471T645 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(751, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(1140, 0)"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1903, 0)"}},[a("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(2181, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2650, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(3094.7, 0)"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3623.7, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(",\nwhere "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.05ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.726ex",height:"1.643ex",viewBox:"0 -704 763 726"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})])])])])]),t._v(" is the random variable of the observation.")],1),t._v(" "),a("h4",{attrs:{id:"parameters-154"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-154"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-239"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-239"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-space-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-13"}},[t._v("#")]),t._v(" get_observation_space "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_observation_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) observation space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("PartiallyObservable.get_observation_space()")]),t._v(" internally\ncalls "),a("code",[t._v("PartiallyObservable._get_observation_space_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the observation space is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-240"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-240"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The observation space.")]),t._v(" "),a("h3",{attrs:{id:"get-preallocations-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-preallocations-3"}},[t._v("#")]),t._v(" get_preallocations "),a("Badge",{attrs:{text:"WithPreallocations",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_preallocations",sig:{params:[{name:"self"}],return:"Dict[int, List[str]]"}}}),t._v(" "),a("p",[t._v("Return a dictionary where the key is the id of a task (int)\nand the value indicates the pre-allocated resources for this task (as a list of str)")]),t._v(" "),a("h3",{attrs:{id:"get-predecessors-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-predecessors-3"}},[t._v("#")]),t._v(" get_predecessors "),a("Badge",{attrs:{text:"WithPrecedence",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_predecessors",sig:{params:[{name:"self"}],return:"Dict[int, List[int]]"}}}),t._v(" "),a("p",[t._v("Return the predecessors of the task. Successors are given as a list for a task given as a key.")]),t._v(" "),a("h3",{attrs:{id:"get-resource-cost-per-time-unit-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-resource-cost-per-time-unit-3"}},[t._v("#")]),t._v(" get_resource_cost_per_time_unit "),a("Badge",{attrs:{text:"WithResourceCosts",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_resource_cost_per_time_unit",sig:{params:[{name:"self"}],return:"Dict[str, float]"}}}),t._v(" "),a("p",[t._v("Return a dictionary where the key is the name of a resource (str)\nand the value indicates the cost of using this resource per time unit.")]),t._v(" "),a("h3",{attrs:{id:"get-resource-renewability-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-resource-renewability-3"}},[t._v("#")]),t._v(" get_resource_renewability "),a("Badge",{attrs:{text:"MixedRenewable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_resource_renewability",sig:{params:[{name:"self"}],return:"Dict[str, bool]"}}}),t._v(" "),a("p",[t._v("Return a dictionary where the key is a resource name (string)\nand the value whether this resource is renewable (True) or not (False).")]),t._v(" "),a("h3",{attrs:{id:"get-resource-type-for-unit-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-resource-type-for-unit-3"}},[t._v("#")]),t._v(" get_resource_type_for_unit "),a("Badge",{attrs:{text:"WithResourceUnits",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_resource_type_for_unit",sig:{params:[{name:"self"}],return:"Dict[str, str]"}}}),t._v(" "),a("p",[t._v("Return a dictionary where the key is a resource unit name and the value a resource type name.\nAn empty dictionary can be used if there are no resource unit matching a resource type.")]),t._v(" "),a("h3",{attrs:{id:"get-resource-types-names-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-resource-types-names-3"}},[t._v("#")]),t._v(" get_resource_types_names "),a("Badge",{attrs:{text:"WithResourceTypes",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_resource_types_names",sig:{params:[{name:"self"}],return:"List[str]"}}}),t._v(" "),a("p",[t._v("Return the names (string) of all resource types as a list.")]),t._v(" "),a("h3",{attrs:{id:"get-resource-units-names-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-resource-units-names-3"}},[t._v("#")]),t._v(" get_resource_units_names "),a("Badge",{attrs:{text:"WithResourceUnits",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_resource_units_names",sig:{params:[{name:"self"}],return:"List[str]"}}}),t._v(" "),a("p",[t._v("Return the names (string) of all resource units as a list.")]),t._v(" "),a("h3",{attrs:{id:"get-skills-names-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-skills-names-2"}},[t._v("#")]),t._v(" get_skills_names "),a("Badge",{attrs:{text:"WithResourceSkills",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_skills_names",sig:{params:[{name:"self"}],return:"Set[str]"}}}),t._v(" "),a("p",[t._v("Return a list of all skill names as a list of str. Skill names are defined in the 2 dictionaries returned\nby the get_all_resources_skills and get_all_tasks_skills functions.")]),t._v(" "),a("h3",{attrs:{id:"get-skills-of-resource-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-skills-of-resource-2"}},[t._v("#")]),t._v(" get_skills_of_resource "),a("Badge",{attrs:{text:"WithResourceSkills",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_skills_of_resource",sig:{params:[{name:"self"},{name:"resource",annotation:"str"}],return:"Dict[str, Any]"}}}),t._v(" "),a("p",[t._v("Return the skills of a given resource")]),t._v(" "),a("h3",{attrs:{id:"get-skills-of-task-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-skills-of-task-2"}},[t._v("#")]),t._v(" get_skills_of_task "),a("Badge",{attrs:{text:"WithResourceSkills",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_skills_of_task",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"mode",annotation:"int"}],return:"Dict[str, Any]"}}}),t._v(" "),a("p",[t._v("Return the skill requirements for a given task")]),t._v(" "),a("h3",{attrs:{id:"get-successors-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-successors-3"}},[t._v("#")]),t._v(" get_successors "),a("Badge",{attrs:{text:"WithPrecedence",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_successors",sig:{params:[{name:"self"}],return:"Dict[int, List[int]]"}}}),t._v(" "),a("p",[t._v("Return the successors of the tasks. Successors are given as a list for a task given as a key.")]),t._v(" "),a("h3",{attrs:{id:"get-task-existence-conditions-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-task-existence-conditions-3"}},[t._v("#")]),t._v(" get_task_existence_conditions "),a("Badge",{attrs:{text:"WithConditionalTasks",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_task_existence_conditions",sig:{params:[{name:"self"}],return:"Dict[int, List[int]]"}}}),t._v(" "),a("p",[t._v("Return a dictionary where the key is a task id and the value a list of conditions to be respected (True)\nfor the task to be part of the schedule. If a task has no entry in the dictionary,\nthere is no conditions for that task.")]),t._v(" "),a("p",[t._v("Example:\nreturn\n{\n20: [get_all_condition_items().NC_PART_1_OPERATION_1],\n21: [get_all_condition_items().HARDWARE_ISSUE_MACHINE_A]\n22: [get_all_condition_items().NC_PART_1_OPERATION_1, get_all_condition_items().NC_PART_1_OPERATION_2]\n}e")]),t._v(" "),a("h3",{attrs:{id:"get-task-on-completion-added-conditions-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-task-on-completion-added-conditions-2"}},[t._v("#")]),t._v(" get_task_on_completion_added_conditions "),a("Badge",{attrs:{text:"WithConditionalTasks",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_task_on_completion_added_conditions",sig:{params:[{name:"self"}],return:"Dict[int, List[Distribution]]"}}}),t._v(" "),a("p",[t._v("Return a dict of list. The key of the dict is the task id and each list is composed of a list of tuples.\nEach tuple contains the probability (first item in tuple) that the conditionElement (second item in tuple)\nis True. The probabilities in the inner list should sum up to 1. The dictionary should only contains the keys\nof tasks that can create conditions.")]),t._v(" "),a("p",[t._v("Example:\nreturn\n{\n12:\n[\nDiscreteDistribution([(ConditionElementsExample.NC_PART_1_OPERATION_1, 0.1), (ConditionElementsExample.OK, 0.9)]),\nDiscreteDistribution([(ConditionElementsExample.HARDWARE_ISSUE_MACHINE_A, 0.05), ('paper', 0.1), (ConditionElementsExample.OK, 0.95)])\n]\n}")]),t._v(" "),a("h3",{attrs:{id:"get-task-paused-non-renewable-resource-returned-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-task-paused-non-renewable-resource-returned-3"}},[t._v("#")]),t._v(" get_task_paused_non_renewable_resource_returned "),a("Badge",{attrs:{text:"WithPreemptivity",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_task_paused_non_renewable_resource_returned",sig:{params:[{name:"self"}],return:"Dict[int, bool]"}}}),t._v(" "),a("p",[t._v("Return a dictionary where the key is a task id and the value is of type bool indicating\nif the non-renewable resources are consumed when the task is paused (False) or made available again (True).\nE.g. {\n2: False # if paused, non-renewable resource will be consumed\n5: True # if paused, the non-renewable resource will be available again\n}")]),t._v(" "),a("h3",{attrs:{id:"get-task-preemptivity-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-task-preemptivity-3"}},[t._v("#")]),t._v(" get_task_preemptivity "),a("Badge",{attrs:{text:"WithPreemptivity",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_task_preemptivity",sig:{params:[{name:"self"}],return:"Dict[int, bool]"}}}),t._v(" "),a("p",[t._v("Return a dictionary where the key is a task id and the value a boolean indicating\nif the task can be paused or stopped.\nE.g. {\n1: False\n2: True\n3: False\n4: False\n5: True\n6: False\n}")]),t._v(" "),a("h3",{attrs:{id:"get-task-progress-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-task-progress-3"}},[t._v("#")]),t._v(" get_task_progress "),a("Badge",{attrs:{text:"CustomTaskProgress",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_task_progress",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"t_from",annotation:"int"},{name:"t_to",annotation:"int"},{name:"mode",annotation:"Optional[int]"},{name:"sampled_duration",default:"None",annotation:"Optional[int]"}],return:"float"}}}),t._v(" "),a("h4",{attrs:{id:"returns-241"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-241"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The task progress (float) between t_from and t_to.")]),t._v(" "),a("h3",{attrs:{id:"get-task-resuming-type-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-task-resuming-type-3"}},[t._v("#")]),t._v(" get_task_resuming_type "),a("Badge",{attrs:{text:"WithPreemptivity",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_task_resuming_type",sig:{params:[{name:"self"}],return:"Dict[int, ResumeType]"}}}),t._v(" "),a("p",[t._v("Return a dictionary where the key is a task id and the value is of type ResumeType indicating\nif the task can be resumed (restarted from where it was paused with no time loss)\nor restarted (restarted from the start).\nE.g. {\n1: ResumeType.NA\n2: ResumeType.Resume\n3: ResumeType.NA\n4: ResumeType.NA\n5: ResumeType.Restart\n6: ResumeType.NA\n}")]),t._v(" "),a("h3",{attrs:{id:"get-time-lags-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-time-lags-3"}},[t._v("#")]),t._v(" get_time_lags "),a("Badge",{attrs:{text:"WithTimeLag",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_time_lags",sig:{params:[{name:"self"}],return:"Dict[int, Dict[int, TimeLag]]"}}}),t._v(" "),a("p",[t._v("Return nested dictionaries where the first key is the id of a task (int)\nand the second key is the id of another task (int).\nThe value is a TimeLag object containing the MINIMUM and MAXIMUM time (int) that needs to separate the end\nof the first task to the start of the second task.")]),t._v(" "),a("p",[t._v("e.g.\n{\n12:{\n15: TimeLag(5, 10),\n16: TimeLag(5, 20),\n17: MinimumOnlyTimeLag(5),\n18: MaximumOnlyTimeLag(15),\n}\n}")]),t._v(" "),a("h4",{attrs:{id:"returns-242"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-242"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("A dictionary of TimeLag objects.")]),t._v(" "),a("h3",{attrs:{id:"get-time-window-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-time-window-3"}},[t._v("#")]),t._v(" get_time_window "),a("Badge",{attrs:{text:"WithTimeWindow",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_time_window",sig:{params:[{name:"self"}],return:"Dict[int, TimeWindow]"}}}),t._v(" "),a("p",[t._v("Return a dictionary where the key is the id of a task (int)\nand the value is a TimeWindow object.\nNote that the max time horizon needs to be provided to the TimeWindow constructors\ne.g.\n{\n1: TimeWindow(10, 15, 20, 30, self.get_max_horizon())\n2: EmptyTimeWindow(self.get_max_horizon())\n3: EndTimeWindow(20, 25, self.get_max_horizon())\n4: EndBeforeOnlyTimeWindow(40, self.get_max_horizon())\n}")]),t._v(" "),a("h4",{attrs:{id:"returns-243"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-243"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("A dictionary of TimeWindow objects.")]),t._v(" "),a("h3",{attrs:{id:"get-transition-value-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-transition-value-5"}},[t._v("#")]),t._v(" get_transition_value "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_transition_value",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"},{name:"next_state",default:"None",annotation:"Optional[D.T_state]"}],return:"D.T_agent[Value[D.T_value]]"}}}),t._v(" "),a("p",[t._v("Get the value (reward or cost) of a transition.")]),t._v(" "),a("p",[t._v("The transition to consider is defined by the function parameters.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("If this function never depends on the next_state parameter for its computation, it is recommended to\nindicate it by overriding "),a("code",[t._v("UncertainTransitions._is_transition_value_dependent_on_next_state_()")]),t._v(" to return\nFalse. This information can then be exploited by solvers to avoid computing next state to evaluate a\ntransition value (more efficient).")])]),t._v(" "),a("h4",{attrs:{id:"parameters-155"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-155"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")]),t._v(" "),a("li",[a("strong",[t._v("next_state")]),t._v(": The next state in which the transition ends (if needed for the computation).")])]),t._v(" "),a("h4",{attrs:{id:"returns-244"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-244"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The transition value (reward or cost).")]),t._v(" "),a("h3",{attrs:{id:"get-variable-resource-consumption-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-variable-resource-consumption-3"}},[t._v("#")]),t._v(" get_variable_resource_consumption "),a("Badge",{attrs:{text:"VariableResourceConsumption",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_variable_resource_consumption",sig:{params:[{name:"self"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Return true if the domain has variable resource consumption,\nfalse if the consumption of resource does not vary in time for any of the tasks")]),t._v(" "),a("h3",{attrs:{id:"initialize-domain-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#initialize-domain-2"}},[t._v("#")]),t._v(" initialize_domain "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"initialize_domain",sig:{params:[{name:"self"}]}}}),t._v(" "),a("p",[t._v("Initialize a scheduling domain. This function needs to be called when instantiating a scheduling domain.")]),t._v(" "),a("h3",{attrs:{id:"is-action-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-action-9"}},[t._v("#")]),t._v(" is_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_action",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an event is an action (i.e. a controllable event for the agents).")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\naction space provided by "),a("code",[t._v("Events.get_action_space()")]),t._v(", but it can be overridden for faster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-156"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-156"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("event")]),t._v(": The event to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-245"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-245"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is an action (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-applicable-action-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-9"}},[t._v("#")]),t._v(" is_applicable_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_applicable_action",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an action is applicable in the given memory (state or history), or in the internal one if\nomitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.is_applicable_action()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_applicable_action()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead\nof the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-157"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-157"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-246"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-246"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the action is applicable (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-enabled-event-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-9"}},[t._v("#")]),t._v(" is_enabled_event "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_enabled_event",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an uncontrollable event is enabled in the given memory (state or history), or in the\ninternal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.is_enabled_event()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_enabled_event()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead of\nthe memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-158"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-158"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-247"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-247"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is enabled (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-goal-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-goal-9"}},[t._v("#")]),t._v(" is_goal "),a("Badge",{attrs:{text:"Goals",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_goal",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"D.T_agent[D.T_predicate]"}}}),t._v(" "),a("p",[t._v("Indicate whether an observation belongs to the goals.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\ngoals space provided by "),a("code",[t._v("Goals.get_goals()")]),t._v(", but it can be overridden for faster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-159"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-159"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-248"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-248"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the observation is a goal (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-observation-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-observation-9"}},[t._v("#")]),t._v(" is_observation "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_observation",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that an observation indeed belongs to the domain observation space.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\nobservation space provided by "),a("code",[t._v("PartiallyObservable.get_observation_space()")]),t._v(", but it can be overridden for\nfaster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-160"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-160"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-249"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-249"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the observation belongs to the domain observation space (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-terminal-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-terminal-5"}},[t._v("#")]),t._v(" is_terminal "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_terminal",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"}],return:"D.T_agent[D.T_predicate]"}}}),t._v(" "),a("p",[t._v("Indicate whether a state is terminal.")]),t._v(" "),a("p",[t._v("A terminal state is a state with no outgoing transition (except to itself with value 0).")]),t._v(" "),a("h4",{attrs:{id:"parameters-161"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-161"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-250"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-250"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the state is terminal (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-transition-value-dependent-on-next-state-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-transition-value-dependent-on-next-state-7"}},[t._v("#")]),t._v(" is_transition_value_dependent_on_next_state "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_transition_value_dependent_on_next_state",sig:{params:[{name:"self"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether get_transition_value() requires the next_state parameter for its computation (cached).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("UncertainTransitions.is_transition_value_dependent_on_next_state()")]),t._v(" internally\ncalls "),a("code",[t._v("UncertainTransitions._is_transition_value_dependent_on_next_state_()")]),t._v(" the first time and automatically\ncaches its value to make future calls more efficient (since the returned value is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-251"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-251"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the transition value computation depends on next_state (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"reset-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#reset-9"}},[t._v("#")]),t._v(" reset "),a("Badge",{attrs:{text:"Initializable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"reset",sig:{params:[{name:"self"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Reset the state of the environment and return an initial observation.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Initializable.reset()")]),t._v(" provides some boilerplate code and internally calls "),a("code",[t._v("Initializable._reset()")]),t._v("\n(which returns an initial state). The boilerplate code automatically stores the initial state into the "),a("code",[t._v("_memory")]),t._v("\nattribute and samples a corresponding observation.")]),t._v(" "),a("h4",{attrs:{id:"returns-252"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-252"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("An initial observation.")]),t._v(" "),a("h3",{attrs:{id:"sample-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample-9"}},[t._v("#")]),t._v(" sample "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"sample",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Sample one transition of the simulator's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Simulation.sample()")]),t._v(" provides some boilerplate code and internally calls "),a("code",[t._v("Simulation._sample()")]),t._v("\n(which returns a transition outcome). The boilerplate code automatically samples an observation corresponding to\nthe sampled next state.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing simulator needs to be wrapped instead of implemented fully in scikit-decide (e.g. a\nsimulator), it is recommended to overwrite "),a("code",[t._v("Simulation.sample()")]),t._v(" to call the external simulator and not use\nthe "),a("code",[t._v("Simulation._sample()")]),t._v(" helper function.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-162"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-162"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-253"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-253"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of the sampled transition.")]),t._v(" "),a("h3",{attrs:{id:"sample-completion-conditions-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample-completion-conditions-3"}},[t._v("#")]),t._v(" sample_completion_conditions "),a("Badge",{attrs:{text:"WithConditionalTasks",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"sample_completion_conditions",sig:{params:[{name:"self"},{name:"task",annotation:"int"}],return:"List[int]"}}}),t._v(" "),a("p",[t._v("Samples the condition distributions associated with the given task and return a list of sampled\nconditions.")]),t._v(" "),a("h3",{attrs:{id:"sample-quantity-resource-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample-quantity-resource-3"}},[t._v("#")]),t._v(" sample_quantity_resource "),a("Badge",{attrs:{text:"UncertainResourceAvailabilityChanges",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"sample_quantity_resource",sig:{params:[{name:"self"},{name:"resource",annotation:"str"},{name:"time",annotation:"int"},{name:"**kwargs"}],return:"int"}}}),t._v(" "),a("p",[t._v("Sample an amount of resource availability (int) for the given resource\n(either resource type or resource unit) at the given time. This number should be the sum of the number of\nresource available at time t and the number of resource of this type consumed so far).")]),t._v(" "),a("h3",{attrs:{id:"sample-task-duration-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample-task-duration-3"}},[t._v("#")]),t._v(" sample_task_duration "),a("Badge",{attrs:{text:"SimulatedTaskDuration",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"sample_task_duration",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"mode",default:"1",annotation:"Optional[int]"},{name:"progress_from",default:"0.0",annotation:"Optional[float]"}],return:"int"}}}),t._v(" "),a("p",[t._v("Sample, store and return task duration for the given task in the given mode.")]),t._v(" "),a("h3",{attrs:{id:"set-inplace-environment-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#set-inplace-environment-2"}},[t._v("#")]),t._v(" set_inplace_environment "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"set_inplace_environment",sig:{params:[{name:"self"},{name:"inplace_environment",annotation:"bool"}]}}}),t._v(" "),a("p",[t._v("Activate or not the fact that the simulator modifies the given state inplace or create a copy before.\nThe inplace version is several times faster but will lead to bugs in graph search solver.")]),t._v(" "),a("h3",{attrs:{id:"set-memory-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#set-memory-9"}},[t._v("#")]),t._v(" set_memory "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"set_memory",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"None"}}}),t._v(" "),a("p",[t._v("Set internal memory attribute "),a("code",[t._v("_memory")]),t._v(" to given one.")]),t._v(" "),a("p",[t._v('This can be useful to set a specific "starting point" before doing a rollout with successive '),a("code",[t._v("Environment.step()")]),t._v("\ncalls.")]),t._v(" "),a("h4",{attrs:{id:"parameters-163"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-163"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to set internally.")])]),t._v(" "),a("h4",{attrs:{id:"example-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#example-9"}},[t._v("#")]),t._v(" Example")]),t._v(" "),a("div",{staticClass:"language-python extra-class"},[a("pre",{pre:!0,attrs:{class:"language-python"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Set simulation_domain memory to my_state (assuming Markovian domain)")]),t._v("\nsimulation_domain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("set_memory"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("my_state"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Start a 100-steps rollout from here (applying my_action at every step)")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("for")]),t._v(" _ "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("in")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("range")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n simulation_domain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("step"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("my_action"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("h3",{attrs:{id:"solve-with-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#solve-with-5"}},[t._v("#")]),t._v(" solve_with "),a("Badge",{attrs:{text:"Domain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"solve_with",sig:{params:[{name:"solver",annotation:"Solver"},{name:"domain_factory",default:"None",annotation:"Optional[Callable[[], Domain]]"},{name:"load_path",default:"None",annotation:"Optional[str]"}],return:"Solver"}}}),t._v(" "),a("p",[t._v("Solve the domain with a new or loaded solver and return it auto-cast to the level of the domain.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Solver.check_domain()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Solver._check_domain_additional()")]),t._v(' (which returns True by default but can be overridden to define\nspecific checks in addition to the "domain requirements"). The boilerplate code automatically checks whether all\ndomain requirements are met.')]),t._v(" "),a("h4",{attrs:{id:"parameters-164"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-164"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("solver")]),t._v(": The solver.")]),t._v(" "),a("li",[a("strong",[t._v("domain_factory")]),t._v(": A callable with no argument returning the domain to solve (factory is the domain class if None).")]),t._v(" "),a("li",[a("strong",[t._v("load_path")]),t._v(": The path to restore the solver state from (if None, the solving process will be launched instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-254"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-254"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The new solver (auto-cast to the level of the domain).")]),t._v(" "),a("h3",{attrs:{id:"step-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#step-9"}},[t._v("#")]),t._v(" step "),a("Badge",{attrs:{text:"Environment",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"step",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Run one step of the environment's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Environment.step()")]),t._v(" provides some boilerplate code and internally calls "),a("code",[t._v("Environment._step()")]),t._v(" (which\nreturns a transition outcome). The boilerplate code automatically stores next state into the "),a("code",[t._v("_memory")]),t._v(" attribute\nand samples a corresponding observation.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing environment needs to be wrapped instead of implemented fully in scikit-decide (e.g. compiled\nATARI games), it is recommended to overwrite "),a("code",[t._v("Environment.step()")]),t._v(" to call the external environment and not\nuse the "),a("code",[t._v("Environment._step()")]),t._v(" helper function.")])]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Before calling "),a("code",[t._v("Environment.step()")]),t._v(" the first time or when the end of an episode is\nreached, "),a("code",[t._v("Initializable.reset()")]),t._v(" must be called to reset the environment's state.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-165"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-165"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the current memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-255"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-255"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of this step.")]),t._v(" "),a("h3",{attrs:{id:"update-complete-dummy-tasks-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-complete-dummy-tasks-2"}},[t._v("#")]),t._v(" update_complete_dummy_tasks "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_complete_dummy_tasks",sig:{params:[{name:"self"},{name:"state",annotation:"State"},{name:"action",annotation:"SchedulingAction"}]}}}),t._v(" "),a("p",[t._v("Update the status of newly started tasks whose duration is 0 from ongoing to complete.")]),t._v(" "),a("h3",{attrs:{id:"update-complete-dummy-tasks-simulation-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-complete-dummy-tasks-simulation-2"}},[t._v("#")]),t._v(" update_complete_dummy_tasks_simulation "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_complete_dummy_tasks_simulation",sig:{params:[{name:"self"},{name:"state",annotation:"State"},{name:"action",annotation:"SchedulingAction"}]}}}),t._v(" "),a("p",[t._v("In a simulated scheduling environment, update the status of newly started tasks whose duration is 0\nfrom ongoing to complete.")]),t._v(" "),a("h3",{attrs:{id:"update-complete-dummy-tasks-uncertain-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-complete-dummy-tasks-uncertain-2"}},[t._v("#")]),t._v(" update_complete_dummy_tasks_uncertain "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_complete_dummy_tasks_uncertain",sig:{params:[{name:"self"},{name:"states",annotation:"DiscreteDistribution[State]"},{name:"action",annotation:"SchedulingAction"}]}}}),t._v(" "),a("p",[t._v("In an uncertain scheduling environment, update the status of newly started tasks whose duration is 0\nfrom ongoing to complete.")]),t._v(" "),a("h3",{attrs:{id:"update-complete-tasks-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-complete-tasks-2"}},[t._v("#")]),t._v(" update_complete_tasks "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_complete_tasks",sig:{params:[{name:"self"},{name:"state",annotation:"State"}]}}}),t._v(" "),a("p",[t._v("Update the status of newly completed tasks in the state from ongoing to complete\nand update resource availability. This function will also log in task_details the time it was complete")]),t._v(" "),a("h3",{attrs:{id:"update-complete-tasks-simulation-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-complete-tasks-simulation-2"}},[t._v("#")]),t._v(" update_complete_tasks_simulation "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_complete_tasks_simulation",sig:{params:[{name:"self"},{name:"state",annotation:"State"}]}}}),t._v(" "),a("p",[t._v("In a simulated scheduling environment, update the status of newly completed tasks in the state from ongoing to complete\nand update resource availability. This function will also log in task_details the time it was complete")]),t._v(" "),a("h3",{attrs:{id:"update-complete-tasks-uncertain-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-complete-tasks-uncertain-2"}},[t._v("#")]),t._v(" update_complete_tasks_uncertain "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_complete_tasks_uncertain",sig:{params:[{name:"self"},{name:"states",annotation:"DiscreteDistribution[State]"}]}}}),t._v(" "),a("p",[t._v("In an uncertain scheduling environment, update the status of newly completed tasks in the state from ongoing\nto complete, update resource availability and update on-completion conditions.\nThis function will also log in task_details the time it was complete.")]),t._v(" "),a("h3",{attrs:{id:"update-conditional-tasks-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-conditional-tasks-2"}},[t._v("#")]),t._v(" update_conditional_tasks "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_conditional_tasks",sig:{params:[{name:"self"},{name:"state",annotation:"State"},{name:"action",annotation:"SchedulingAction"}]}}}),t._v(" "),a("p",[t._v("Update remaining tasks by checking conditions and potentially adding conditional tasks.")]),t._v(" "),a("h3",{attrs:{id:"update-conditional-tasks-simulation-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-conditional-tasks-simulation-2"}},[t._v("#")]),t._v(" update_conditional_tasks_simulation "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_conditional_tasks_simulation",sig:{params:[{name:"self"},{name:"state",annotation:"State"},{name:"action",annotation:"SchedulingAction"}]}}}),t._v(" "),a("p",[t._v("In a simulated scheduling environment, update remaining tasks by checking conditions and potentially\nadding conditional tasks.")]),t._v(" "),a("h3",{attrs:{id:"update-conditional-tasks-uncertain-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-conditional-tasks-uncertain-2"}},[t._v("#")]),t._v(" update_conditional_tasks_uncertain "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_conditional_tasks_uncertain",sig:{params:[{name:"self"},{name:"states",annotation:"DiscreteDistribution[State]"},{name:"action",annotation:"SchedulingAction"}]}}}),t._v(" "),a("p",[t._v("Update remaining tasks by checking conditions and potentially adding conditional tasks.")]),t._v(" "),a("h3",{attrs:{id:"update-pause-tasks-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-pause-tasks-2"}},[t._v("#")]),t._v(" update_pause_tasks "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_pause_tasks",sig:{params:[{name:"self"},{name:"state",annotation:"State"},{name:"action",annotation:"SchedulingAction"}]}}}),t._v(" "),a("p",[t._v("Update the status of a task from ongoing to paused if specified in the action\nand update resource availability. This function will also log in task_details the time it was paused.")]),t._v(" "),a("h3",{attrs:{id:"update-pause-tasks-simulation-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-pause-tasks-simulation-2"}},[t._v("#")]),t._v(" update_pause_tasks_simulation "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_pause_tasks_simulation",sig:{params:[{name:"self"},{name:"state",annotation:"State"},{name:"action",annotation:"SchedulingAction"}]}}}),t._v(" "),a("p",[t._v("In a simulation scheduling environment, update the status of a task from ongoing to paused if\nspecified in the action and update resource availability. This function will also log in task_details\nthe time it was paused.")]),t._v(" "),a("h3",{attrs:{id:"update-pause-tasks-uncertain-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-pause-tasks-uncertain-2"}},[t._v("#")]),t._v(" update_pause_tasks_uncertain "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_pause_tasks_uncertain",sig:{params:[{name:"self"},{name:"state",annotation:"State"},{name:"action",annotation:"SchedulingAction"}]}}}),t._v(" "),a("p",[t._v("In an uncertain scheduling environment, update the status of a task from ongoing to paused if\nspecified in the action and update resource availability. This function will also log in task_details\nthe time it was paused.")]),t._v(" "),a("h3",{attrs:{id:"update-progress-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-progress-2"}},[t._v("#")]),t._v(" update_progress "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_progress",sig:{params:[{name:"self"},{name:"state",annotation:"State"}]}}}),t._v(" "),a("p",[t._v("Update the progress of all ongoing tasks in the state.")]),t._v(" "),a("h3",{attrs:{id:"update-progress-simulation-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-progress-simulation-2"}},[t._v("#")]),t._v(" update_progress_simulation "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_progress_simulation",sig:{params:[{name:"self"},{name:"state",annotation:"State"}]}}}),t._v(" "),a("p",[t._v("In a simulation scheduling environment, update the progress of all ongoing tasks in the state.")]),t._v(" "),a("h3",{attrs:{id:"update-progress-uncertain-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-progress-uncertain-2"}},[t._v("#")]),t._v(" update_progress_uncertain "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_progress_uncertain",sig:{params:[{name:"self"},{name:"states",annotation:"DiscreteDistribution[State]"}]}}}),t._v(" "),a("p",[t._v("In an uncertain scheduling environment, update the progress of all ongoing tasks in the state.")]),t._v(" "),a("h3",{attrs:{id:"update-resource-availability-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-resource-availability-2"}},[t._v("#")]),t._v(" update_resource_availability "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_resource_availability",sig:{params:[{name:"self"},{name:"state",annotation:"State"},{name:"action",annotation:"SchedulingAction"}]}}}),t._v(" "),a("p",[t._v("Update resource availability for next time step. This should be called after update_time().")]),t._v(" "),a("h3",{attrs:{id:"update-resource-availability-simulation-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-resource-availability-simulation-2"}},[t._v("#")]),t._v(" update_resource_availability_simulation "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_resource_availability_simulation",sig:{params:[{name:"self"},{name:"state",annotation:"State"},{name:"action",annotation:"SchedulingAction"}]}}}),t._v(" "),a("p",[t._v("In a simulated scheduling environment, update resource availability for next time step.\nThis should be called after update_time().")]),t._v(" "),a("h3",{attrs:{id:"update-resource-availability-uncertain-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-resource-availability-uncertain-2"}},[t._v("#")]),t._v(" update_resource_availability_uncertain "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_resource_availability_uncertain",sig:{params:[{name:"self"},{name:"states",annotation:"DiscreteDistribution[State]"},{name:"action",annotation:"SchedulingAction"}]}}}),t._v(" "),a("p",[t._v("Update resource availability for next time step. This should be called after update_time().")]),t._v(" "),a("h3",{attrs:{id:"update-resume-tasks-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-resume-tasks-2"}},[t._v("#")]),t._v(" update_resume_tasks "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_resume_tasks",sig:{params:[{name:"self"},{name:"state",annotation:"State"},{name:"action",annotation:"SchedulingAction"}]}}}),t._v(" "),a("p",[t._v("Update the status of a task from paused to ongoing if specified in the action\nand update resource availability. This function will also log in task_details the time it was resumed")]),t._v(" "),a("h3",{attrs:{id:"update-resume-tasks-simulation-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-resume-tasks-simulation-2"}},[t._v("#")]),t._v(" update_resume_tasks_simulation "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_resume_tasks_simulation",sig:{params:[{name:"self"},{name:"state",annotation:"State"},{name:"action",annotation:"SchedulingAction"}]}}}),t._v(" "),a("p",[t._v("In a simulationn scheduling environment, update the status of a task from paused to ongoing if specified\nin the action and update resource availability. This function will also log in task_details the time it was\nresumed.")]),t._v(" "),a("h3",{attrs:{id:"update-resume-tasks-uncertain-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-resume-tasks-uncertain-2"}},[t._v("#")]),t._v(" update_resume_tasks_uncertain "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_resume_tasks_uncertain",sig:{params:[{name:"self"},{name:"state",annotation:"State"},{name:"action",annotation:"SchedulingAction"}]}}}),t._v(" "),a("p",[t._v("In an uncertain scheduling environment, update the status of a task from paused to ongoing if specified\nin the action and update resource availability. This function will also log in task_details the time it was\nresumed.")]),t._v(" "),a("h3",{attrs:{id:"update-start-tasks-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-start-tasks-2"}},[t._v("#")]),t._v(" update_start_tasks "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_start_tasks",sig:{params:[{name:"self"},{name:"state",annotation:"State"},{name:"action",annotation:"SchedulingAction"}]}}}),t._v(" "),a("p",[t._v("Update the status of a task from remaining to ongoing if specified in the action\nand update resource availability. This function will also log in task_details the time it was started.")]),t._v(" "),a("h3",{attrs:{id:"update-start-tasks-simulation-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-start-tasks-simulation-2"}},[t._v("#")]),t._v(" update_start_tasks_simulation "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_start_tasks_simulation",sig:{params:[{name:"self"},{name:"state",annotation:"State"},{name:"action",annotation:"SchedulingAction"}]}}}),t._v(" "),a("p",[t._v("In a simulated scheduling environment, update the status of a task from remaining to ongoing if\nspecified in the action and update resource availability. This function will also log in task_details the\ntime it was started.")]),t._v(" "),a("h3",{attrs:{id:"update-start-tasks-uncertain-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-start-tasks-uncertain-2"}},[t._v("#")]),t._v(" update_start_tasks_uncertain "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_start_tasks_uncertain",sig:{params:[{name:"self"},{name:"state",annotation:"State"},{name:"action",annotation:"SchedulingAction"}]}}}),t._v(" "),a("p",[t._v("In an uncertain scheduling environment, update the status of a task from remaining to ongoing\nif specified in the action and update resource availability.\nThis function returns a DsicreteDistribution of State.\nThis function will also log in task_details the time it was started.")]),t._v(" "),a("h3",{attrs:{id:"update-time-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-time-2"}},[t._v("#")]),t._v(" update_time "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_time",sig:{params:[{name:"self"},{name:"state",annotation:"State"},{name:"action",annotation:"SchedulingAction"}]}}}),t._v(" "),a("p",[t._v("Update the time of the state if the time_progress attribute of the given EnumerableAction is True.")]),t._v(" "),a("h3",{attrs:{id:"update-time-simulation-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-time-simulation-2"}},[t._v("#")]),t._v(" update_time_simulation "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_time_simulation",sig:{params:[{name:"self"},{name:"state",annotation:"State"},{name:"action",annotation:"SchedulingAction"}]}}}),t._v(" "),a("p",[t._v("In a simulated scheduling environment, update the time of the state if the time_progress attribute of the\ngiven EnumerableAction is True.")]),t._v(" "),a("h3",{attrs:{id:"update-time-uncertain-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-time-uncertain-2"}},[t._v("#")]),t._v(" update_time_uncertain "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_time_uncertain",sig:{params:[{name:"self"},{name:"states",annotation:"DiscreteDistribution[State]"},{name:"action",annotation:"SchedulingAction"}]}}}),t._v(" "),a("p",[t._v("Update the time of the state if the time_progress attribute of the given EnumerableAction is True.")]),t._v(" "),a("h3",{attrs:{id:"add-to-current-conditions-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#add-to-current-conditions-4"}},[t._v("#")]),t._v(" _add_to_current_conditions "),a("Badge",{attrs:{text:"WithConditionalTasks",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_add_to_current_conditions",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"state"}]}}}),t._v(" "),a("p",[t._v("Samples completion conditions for a given task and add these conditions to the list of conditions in the\ngiven state. This function should be called when a task complete.")]),t._v(" "),a("h3",{attrs:{id:"check-value-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#check-value-10"}},[t._v("#")]),t._v(" _check_value "),a("Badge",{attrs:{text:"Rewards",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_check_value",sig:{params:[{name:"self"},{name:"value",annotation:"Value[D.T_value]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that a value is compliant with its reward specification.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("This function returns always True by default because any kind of reward should be accepted at this level.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-166"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-166"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("value")]),t._v(": The value to check.")])]),t._v(" "),a("h4",{attrs:{id:"returns-256"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-256"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the value is compliant (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"get-action-space-14"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-14"}},[t._v("#")]),t._v(" _get_action_space "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_action_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) domain action space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._get_action_space()")]),t._v(" internally calls "),a("code",[t._v("Events._get_action_space_()")]),t._v(" the first time and\nautomatically caches its value to make future calls more efficient (since the action space is assumed to be\nconstant).")]),t._v(" "),a("h4",{attrs:{id:"returns-257"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-257"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The action space.")]),t._v(" "),a("h3",{attrs:{id:"get-action-space-15"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-15"}},[t._v("#")]),t._v(" _get_action_space_ "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_action_space_",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("To be implemented if needed one day.")]),t._v(" "),a("h3",{attrs:{id:"get-all-resources-skills-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-all-resources-skills-4"}},[t._v("#")]),t._v(" _get_all_resources_skills "),a("Badge",{attrs:{text:"WithResourceSkills",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_all_resources_skills",sig:{params:[{name:"self"}],return:"Dict[str, Dict[str, Any]]"}}}),t._v(" "),a("p",[t._v("Return a nested dictionary where the first key is the name of a resource type or resource unit\nand the second key is the name of a skill. The value defines the details of the skill.\nE.g. {unit: {skill: (detail of skill)}}")]),t._v(" "),a("h3",{attrs:{id:"get-all-tasks-skills-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-all-tasks-skills-4"}},[t._v("#")]),t._v(" _get_all_tasks_skills "),a("Badge",{attrs:{text:"WithResourceSkills",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_all_tasks_skills",sig:{params:[{name:"self"}],return:"Dict[int, Dict[int, Dict[str, Any]]]"}}}),t._v(" "),a("p",[t._v("Return a nested dictionary where the first key is the name of a task\nand the second key is the name of a skill. The value defines the details of the skill.\nE.g. {task: {skill: (detail of skill)}}")]),t._v(" "),a("h3",{attrs:{id:"get-all-unconditional-tasks-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-all-unconditional-tasks-4"}},[t._v("#")]),t._v(" _get_all_unconditional_tasks "),a("Badge",{attrs:{text:"WithConditionalTasks",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_all_unconditional_tasks",sig:{params:[{name:"self"}],return:"Set[int]"}}}),t._v(" "),a("p",[t._v("Returns the set of all task ids for which there are no conditions. These tasks are to be considered at\nthe start of a project (i.e. in the initial state).")]),t._v(" "),a("h3",{attrs:{id:"get-applicable-actions-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-10"}},[t._v("#")]),t._v(" _get_applicable_actions "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_applicable_actions",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history), or in\nthe internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._get_applicable_actions()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_applicable_actions_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-167"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-167"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-258"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-258"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of applicable actions.")]),t._v(" "),a("h3",{attrs:{id:"get-applicable-actions-from-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-from-5"}},[t._v("#")]),t._v(" _get_applicable_actions_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_applicable_actions_from",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Returns the action space from a state.\nTODO : think about a way to avoid the instaceof usage.")]),t._v(" "),a("h3",{attrs:{id:"get-available-tasks-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-available-tasks-4"}},[t._v("#")]),t._v(" _get_available_tasks "),a("Badge",{attrs:{text:"WithConditionalTasks",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_available_tasks",sig:{params:[{name:"self"},{name:"state"}],return:"Set[int]"}}}),t._v(" "),a("p",[t._v("Returns the set of all task ids that can be considered under the conditions defined in the given state.\nNote that the set will contains all ids for all tasks in the domain that meet the conditions, that is tasks\nthat are remaining, or that have been completed, paused or started / resumed.")]),t._v(" "),a("h3",{attrs:{id:"get-enabled-events-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-10"}},[t._v("#")]),t._v(" _get_enabled_events "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_enabled_events",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"Space[D.T_event]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory), or in the internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._get_enabled_events()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_enabled_events_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-168"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-168"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-259"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-259"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of enabled events.")]),t._v(" "),a("h3",{attrs:{id:"get-enabled-events-from-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-from-5"}},[t._v("#")]),t._v(" _get_enabled_events_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_enabled_events_from",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"Space[D.T_event]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._get_enabled_events()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("h4",{attrs:{id:"parameters-169"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-169"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-260"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-260"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of enabled events.")]),t._v(" "),a("h3",{attrs:{id:"get-goals-14"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-goals-14"}},[t._v("#")]),t._v(" _get_goals "),a("Badge",{attrs:{text:"Goals",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_goals",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) domain goals space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Goals._get_goals()")]),t._v(" internally calls "),a("code",[t._v("Goals._get_goals_()")]),t._v(" the first time and automatically caches\nits value to make future calls more efficient (since the goals space is assumed to be constant).")]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Goal states are assumed to be fully observable (i.e. observation = state) so that there is never uncertainty\nabout whether the goal has been reached or not. This assumption guarantees that any policy that does not\nreach the goal with certainty incurs in infinite expected cost. - "),a("em",[t._v("Geffner, 2013: A Concise Introduction to\nModels and Methods for Automated Planning")])])]),t._v(" "),a("h4",{attrs:{id:"returns-261"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-261"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The goals space.")]),t._v(" "),a("h3",{attrs:{id:"get-goals-15"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-goals-15"}},[t._v("#")]),t._v(" _get_goals_ "),a("Badge",{attrs:{text:"Goals",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_goals_",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the domain goals space (finite or infinite set).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Goals._get_goals()")]),t._v(", the difference being that the result is\nnot cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-262"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-262"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The goals space.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-14"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-14"}},[t._v("#")]),t._v(" _get_initial_state "),a("Badge",{attrs:{text:"DeterministicInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_initial_state",sig:{params:[{name:"self"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("Get the (cached) initial state.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("DeterministicInitialized._get_initial_state()")]),t._v(" internally\ncalls "),a("code",[t._v("DeterministicInitialized._get_initial_state_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the initial state is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-263"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-263"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The initial state.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-15"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-15"}},[t._v("#")]),t._v(" _get_initial_state_ "),a("Badge",{attrs:{text:"DeterministicInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_initial_state_",sig:{params:[{name:"self"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("Create and return an empty initial state")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-distribution-14"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-distribution-14"}},[t._v("#")]),t._v(" _get_initial_state_distribution "),a("Badge",{attrs:{text:"UncertainInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_initial_state_distribution",sig:{params:[{name:"self"}],return:"Distribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("Get the (cached) probability distribution of initial states.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("UncertainInitialized._get_initial_state_distribution()")]),t._v(" internally\ncalls "),a("code",[t._v("UncertainInitialized._get_initial_state_distribution_()")]),t._v(" the first time and automatically caches its value\nto make future calls more efficient (since the initial state distribution is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-264"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-264"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of initial states.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-distribution-15"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-distribution-15"}},[t._v("#")]),t._v(" _get_initial_state_distribution_ "),a("Badge",{attrs:{text:"UncertainInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_initial_state_distribution_",sig:{params:[{name:"self"}],return:"Distribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("Get the probability distribution of initial states.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("UncertainInitialized._get_initial_state_distribution()")]),t._v(", the\ndifference being that the result is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-265"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-265"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of initial states.")]),t._v(" "),a("h3",{attrs:{id:"get-max-horizon-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-max-horizon-4"}},[t._v("#")]),t._v(" _get_max_horizon "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_max_horizon",sig:{params:[{name:"self"}],return:"int"}}}),t._v(" "),a("p",[t._v("Return the maximum time horizon (int)")]),t._v(" "),a("h3",{attrs:{id:"get-memory-maxlen-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-memory-maxlen-9"}},[t._v("#")]),t._v(" _get_memory_maxlen "),a("Badge",{attrs:{text:"History",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_memory_maxlen",sig:{params:[{name:"self"}],return:"int"}}}),t._v(" "),a("p",[t._v("Get the (cached) memory max length.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("FiniteHistory._get_memory_maxlen()")]),t._v(" internally calls "),a("code",[t._v("FiniteHistory._get_memory_maxlen_()")]),t._v(" the first\ntime and automatically caches its value to make future calls more efficient (since the memory max length is\nassumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-266"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-266"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The memory max length.")]),t._v(" "),a("h3",{attrs:{id:"get-memory-maxlen-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-memory-maxlen-10"}},[t._v("#")]),t._v(" _get_memory_maxlen_ "),a("Badge",{attrs:{text:"FiniteHistory",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_memory_maxlen_",sig:{params:[{name:"self"}],return:"int"}}}),t._v(" "),a("p",[t._v("Get the memory max length.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("FiniteHistory._get_memory_maxlen()")]),t._v(", the difference being that\nthe result is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-267"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-267"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The memory max length.")]),t._v(" "),a("h3",{attrs:{id:"get-mode-costs-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-mode-costs-4"}},[t._v("#")]),t._v(" _get_mode_costs "),a("Badge",{attrs:{text:"WithModeCosts",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_mode_costs",sig:{params:[{name:"self"}],return:"Dict[int, Dict[int, float]]"}}}),t._v(" "),a("p",[t._v("Return a nested dictionary where the first key is the id of a task (int), the second key the id of a mode\nand the value indicates the cost of execution the task in the mode.")]),t._v(" "),a("h3",{attrs:{id:"get-next-state-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-next-state-4"}},[t._v("#")]),t._v(" _get_next_state "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_next_state",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("This function will be used if the domain is defined with DeterministicTransitions. This function will be ignored\nif the domain is defined as having UncertainTransitions or Simulation.")]),t._v(" "),a("h3",{attrs:{id:"get-next-state-distribution-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-next-state-distribution-7"}},[t._v("#")]),t._v(" _get_next_state_distribution "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_next_state_distribution",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"Distribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("This function will be used if the domain is defined with UncertainTransitions. This function will be ignored\nif the domain is defined as a Simulation. This function may also be used by uncertainty-specialised solvers\non deterministic domains.")]),t._v(" "),a("h3",{attrs:{id:"get-objectives-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-objectives-4"}},[t._v("#")]),t._v(" _get_objectives "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_objectives",sig:{params:[{name:"self"}],return:"List[SchedulingObjectiveEnum]"}}}),t._v(" "),a("p",[t._v("Return the objectives to consider as a list. The items should be of SchedulingObjectiveEnum type.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-10"}},[t._v("#")]),t._v(" _get_observation "),a("Badge",{attrs:{text:"TransformedObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Get the deterministic observation given a state and action.")]),t._v(" "),a("h4",{attrs:{id:"parameters-170"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-170"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-268"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-268"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-distribution-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-distribution-10"}},[t._v("#")]),t._v(" _get_observation_distribution "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation_distribution",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"Distribution[D.T_agent[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the probability distribution of the observation given a state and action.")]),t._v(" "),a("p",[t._v("In mathematical terms (discrete case), given an action "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.197ex",height:"1.02ex",viewBox:"0 -441 529 451"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})])])])])]),t._v(", this function represents: "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.078ex",height:"2.262ex",viewBox:"0 -750 4012.7 1000"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"50",d:"M287 628Q287 635 230 637Q206 637 199 638T192 648Q192 649 194 659Q200 679 203 681T397 683Q587 682 600 680Q664 669 707 631T751 530Q751 453 685 389Q616 321 507 303Q500 302 402 301H307L277 182Q247 66 247 59Q247 55 248 54T255 50T272 48T305 46H336Q342 37 342 35Q342 19 335 5Q330 0 319 0Q316 0 282 1T182 2Q120 2 87 2T51 1Q33 1 33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM645 554Q645 567 643 575T634 597T609 619T560 635Q553 636 480 637Q463 637 445 637T416 636T404 636Q391 635 386 627Q384 621 367 550T332 412T314 344Q314 342 395 342H407H430Q542 342 590 392Q617 419 631 471T645 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(751, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(1140, 0)"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1903, 0)"}},[a("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(2181, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2650, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(3094.7, 0)"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3623.7, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(",\nwhere "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.05ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.726ex",height:"1.643ex",viewBox:"0 -704 763 726"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})])])])])]),t._v(" is the random variable of the observation.")],1),t._v(" "),a("h4",{attrs:{id:"parameters-171"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-171"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-269"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-269"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-space-14"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-14"}},[t._v("#")]),t._v(" _get_observation_space "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) observation space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(" internally\ncalls "),a("code",[t._v("PartiallyObservable._get_observation_space_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the observation space is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-270"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-270"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The observation space.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-space-15"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-15"}},[t._v("#")]),t._v(" _get_observation_space_ "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation_space_",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("To be implemented if needed one day.")]),t._v(" "),a("h3",{attrs:{id:"get-preallocations-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-preallocations-4"}},[t._v("#")]),t._v(" _get_preallocations "),a("Badge",{attrs:{text:"WithPreallocations",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_preallocations",sig:{params:[{name:"self"}],return:"Dict[int, List[str]]"}}}),t._v(" "),a("p",[t._v("Return a dictionary where the key is the id of a task (int)\nand the value indicates the pre-allocated resources for this task (as a list of str)")]),t._v(" "),a("h3",{attrs:{id:"get-predecessors-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-predecessors-4"}},[t._v("#")]),t._v(" _get_predecessors "),a("Badge",{attrs:{text:"WithPrecedence",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_predecessors",sig:{params:[{name:"self"}],return:"Dict[int, List[int]]"}}}),t._v(" "),a("p",[t._v("Return the predecessors of the task. Successors are given as a list for a task given as a key.")]),t._v(" "),a("h3",{attrs:{id:"get-resource-cost-per-time-unit-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-resource-cost-per-time-unit-4"}},[t._v("#")]),t._v(" _get_resource_cost_per_time_unit "),a("Badge",{attrs:{text:"WithResourceCosts",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_resource_cost_per_time_unit",sig:{params:[{name:"self"}],return:"Dict[str, float]"}}}),t._v(" "),a("p",[t._v("Return a dictionary where the key is the name of a resource (str)\nand the value indicates the cost of using this resource per time unit.")]),t._v(" "),a("h3",{attrs:{id:"get-resource-renewability-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-resource-renewability-4"}},[t._v("#")]),t._v(" _get_resource_renewability "),a("Badge",{attrs:{text:"MixedRenewable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_resource_renewability",sig:{params:[{name:"self"}],return:"Dict[str, bool]"}}}),t._v(" "),a("p",[t._v("Return a dictionary where the key is a resource name (string)\nand the value whether this resource is renewable (True) or not (False).")]),t._v(" "),a("h3",{attrs:{id:"get-resource-type-for-unit-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-resource-type-for-unit-4"}},[t._v("#")]),t._v(" _get_resource_type_for_unit "),a("Badge",{attrs:{text:"WithResourceUnits",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_resource_type_for_unit",sig:{params:[{name:"self"}],return:"Dict[str, str]"}}}),t._v(" "),a("p",[t._v("Return a dictionary where the key is a resource unit name and the value a resource type name.\nAn empty dictionary can be used if there are no resource unit matching a resource type.")]),t._v(" "),a("h3",{attrs:{id:"get-resource-types-names-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-resource-types-names-4"}},[t._v("#")]),t._v(" _get_resource_types_names "),a("Badge",{attrs:{text:"WithResourceTypes",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_resource_types_names",sig:{params:[{name:"self"}],return:"List[str]"}}}),t._v(" "),a("p",[t._v("Return the names (string) of all resource types as a list.")]),t._v(" "),a("h3",{attrs:{id:"get-resource-units-names-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-resource-units-names-4"}},[t._v("#")]),t._v(" _get_resource_units_names "),a("Badge",{attrs:{text:"WithResourceUnits",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_resource_units_names",sig:{params:[{name:"self"}],return:"List[str]"}}}),t._v(" "),a("p",[t._v("Return the names (string) of all resource units as a list.")]),t._v(" "),a("h3",{attrs:{id:"get-successors-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-successors-4"}},[t._v("#")]),t._v(" _get_successors "),a("Badge",{attrs:{text:"WithPrecedence",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_successors",sig:{params:[{name:"self"}],return:"Dict[int, List[int]]"}}}),t._v(" "),a("p",[t._v("Return the successors of the tasks. Successors are given as a list for a task given as a key.")]),t._v(" "),a("h3",{attrs:{id:"get-task-existence-conditions-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-task-existence-conditions-4"}},[t._v("#")]),t._v(" _get_task_existence_conditions "),a("Badge",{attrs:{text:"WithConditionalTasks",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_task_existence_conditions",sig:{params:[{name:"self"}],return:"Dict[int, List[int]]"}}}),t._v(" "),a("p",[t._v("Return a dictionary where the key is a task id and the value a list of conditions to be respected (True)\nfor the task to be part of the schedule. If a task has no entry in the dictionary,\nthere is no conditions for that task.")]),t._v(" "),a("p",[t._v("Example:\nreturn\n{\n20: [get_all_condition_items().NC_PART_1_OPERATION_1],\n21: [get_all_condition_items().HARDWARE_ISSUE_MACHINE_A]\n22: [get_all_condition_items().NC_PART_1_OPERATION_1, get_all_condition_items().NC_PART_1_OPERATION_2]\n}e")]),t._v(" "),a("h3",{attrs:{id:"get-task-paused-non-renewable-resource-returned-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-task-paused-non-renewable-resource-returned-4"}},[t._v("#")]),t._v(" _get_task_paused_non_renewable_resource_returned "),a("Badge",{attrs:{text:"WithPreemptivity",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_task_paused_non_renewable_resource_returned",sig:{params:[{name:"self"}],return:"Dict[int, bool]"}}}),t._v(" "),a("p",[t._v("Return a dictionary where the key is a task id and the value is of type bool indicating\nif the non-renewable resources are consumed when the task is paused (False) or made available again (True).\nE.g. {\n2: False # if paused, non-renewable resource will be consumed\n5: True # if paused, the non-renewable resource will be available again\n}")]),t._v(" "),a("h3",{attrs:{id:"get-task-preemptivity-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-task-preemptivity-4"}},[t._v("#")]),t._v(" _get_task_preemptivity "),a("Badge",{attrs:{text:"WithPreemptivity",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_task_preemptivity",sig:{params:[{name:"self"}],return:"Dict[int, bool]"}}}),t._v(" "),a("p",[t._v("Return a dictionary where the key is a task id and the value a boolean indicating\nif the task can be paused or stopped.\nE.g. {\n1: False\n2: True\n3: False\n4: False\n5: True\n6: False\n}")]),t._v(" "),a("h3",{attrs:{id:"get-task-progress-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-task-progress-4"}},[t._v("#")]),t._v(" _get_task_progress "),a("Badge",{attrs:{text:"CustomTaskProgress",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_task_progress",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"t_from",annotation:"int"},{name:"t_to",annotation:"int"},{name:"mode",annotation:"Optional[int]"},{name:"sampled_duration",default:"None",annotation:"Optional[int]"}],return:"float"}}}),t._v(" "),a("h4",{attrs:{id:"returns-271"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-271"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The task progress (float) between t_from and t_to.")]),t._v(" "),a("h3",{attrs:{id:"get-task-resuming-type-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-task-resuming-type-4"}},[t._v("#")]),t._v(" _get_task_resuming_type "),a("Badge",{attrs:{text:"WithPreemptivity",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_task_resuming_type",sig:{params:[{name:"self"}],return:"Dict[int, ResumeType]"}}}),t._v(" "),a("p",[t._v("Return a dictionary where the key is a task id and the value is of type ResumeType indicating\nif the task can be resumed (restarted from where it was paused with no time loss)\nor restarted (restarted from the start).\nE.g. {\n1: ResumeType.NA\n2: ResumeType.Resume\n3: ResumeType.NA\n4: ResumeType.NA\n5: ResumeType.Restart\n6: ResumeType.NA\n}")]),t._v(" "),a("h3",{attrs:{id:"get-tasks-ids-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-tasks-ids-2"}},[t._v("#")]),t._v(" _get_tasks_ids "),a("Badge",{attrs:{text:"MultiMode",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_tasks_ids",sig:{params:[{name:"self"}],return:"Union[Set[int], Dict[int, Any], List[int]]"}}}),t._v(" "),a("p",[t._v("Return a set or dict of int = id of tasks")]),t._v(" "),a("h3",{attrs:{id:"get-tasks-modes-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-tasks-modes-2"}},[t._v("#")]),t._v(" _get_tasks_modes "),a("Badge",{attrs:{text:"MultiMode",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_tasks_modes",sig:{params:[{name:"self"}],return:"Dict[int, Dict[int, ModeConsumption]]"}}}),t._v(" "),a("p",[t._v("Return a nested dictionary where the first key is a task id and the second key is a mode id.\nThe value is a Mode object defining the resource consumption.\nIf the domain is an instance of VariableResourceConsumption, VaryingModeConsumption objects should be used.\nIf this is not the case (i.e. the domain is an instance of ConstantResourceConsumption),\nthen ConstantModeConsumption should be used.")]),t._v(" "),a("p",[t._v("E.g. with constant resource consumption\n{\n12: {\n1: ConstantModeConsumption({'rt_1': 2, 'rt_2': 0, 'ru_1': 1}),\n2: ConstantModeConsumption({'rt_1': 0, 'rt_2': 3, 'ru_1': 1}),\n}\n}")]),t._v(" "),a("p",[t._v("E.g. with time varying resource consumption\n{\n12: {\n1: VaryingModeConsumption({'rt_1': [2,2,2,2,3], 'rt_2': [0,0,0,0,0], 'ru_1': [1,1,1,1,1]}),\n2: VaryingModeConsumption({'rt_1': [1,1,1,1,2,2,2], 'rt_2': [0,0,0,0,0,0,0], 'ru_1': [1,1,1,1,1,1,1]}),\n}\n}")]),t._v(" "),a("h3",{attrs:{id:"get-time-lags-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-time-lags-4"}},[t._v("#")]),t._v(" _get_time_lags "),a("Badge",{attrs:{text:"WithTimeLag",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_time_lags",sig:{params:[{name:"self"}],return:"Dict[int, Dict[int, TimeLag]]"}}}),t._v(" "),a("p",[t._v("Return nested dictionaries where the first key is the id of a task (int)\nand the second key is the id of another task (int).\nThe value is a TimeLag object containing the MINIMUM and MAXIMUM time (int) that needs to separate the end\nof the first task to the start of the second task.")]),t._v(" "),a("p",[t._v("e.g.\n{\n12:{\n15: TimeLag(5, 10),\n16: TimeLag(5, 20),\n17: MinimumOnlyTimeLag(5),\n18: MaximumOnlyTimeLag(15),\n}\n}")]),t._v(" "),a("h4",{attrs:{id:"returns-272"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-272"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("A dictionary of TimeLag objects.")]),t._v(" "),a("h3",{attrs:{id:"get-time-window-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-time-window-4"}},[t._v("#")]),t._v(" _get_time_window "),a("Badge",{attrs:{text:"WithTimeWindow",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_time_window",sig:{params:[{name:"self"}],return:"Dict[int, TimeWindow]"}}}),t._v(" "),a("p",[t._v("Return a dictionary where the key is the id of a task (int)\nand the value is a TimeWindow object.\nNote that the max time horizon needs to be provided to the TimeWindow constructors\ne.g.\n{\n1: TimeWindow(10, 15, 20, 30, self.get_max_horizon())\n2: EmptyTimeWindow(self.get_max_horizon())\n3: EndTimeWindow(20, 25, self.get_max_horizon())\n4: EndBeforeOnlyTimeWindow(40, self.get_max_horizon())\n}")]),t._v(" "),a("h4",{attrs:{id:"returns-273"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-273"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("A dictionary of TimeWindow objects.")]),t._v(" "),a("h3",{attrs:{id:"get-variable-resource-consumption-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-variable-resource-consumption-4"}},[t._v("#")]),t._v(" _get_variable_resource_consumption "),a("Badge",{attrs:{text:"VariableResourceConsumption",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_variable_resource_consumption",sig:{params:[{name:"self"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Return true if the domain has variable resource consumption,\nfalse if the consumption of resource does not vary in time for any of the tasks")]),t._v(" "),a("h3",{attrs:{id:"init-memory-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#init-memory-5"}},[t._v("#")]),t._v(" _init_memory "),a("Badge",{attrs:{text:"History",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_init_memory",sig:{params:[{name:"self"},{name:"state",default:"None",annotation:"Optional[D.T_state]"}],return:"D.T_memory[D.T_state]"}}}),t._v(" "),a("p",[t._v("Initialize memory (possibly with a state) according to its specification and return it.")]),t._v(" "),a("p",[t._v("This function is automatically called by "),a("code",[t._v("Initializable._reset()")]),t._v(" to reinitialize the internal memory whenever\nthe domain is used as an environment.")]),t._v(" "),a("h4",{attrs:{id:"parameters-172"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-172"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": An optional state to initialize the memory with (typically the initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-274"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-274"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The new initialized memory.")]),t._v(" "),a("h3",{attrs:{id:"is-action-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-action-10"}},[t._v("#")]),t._v(" _is_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_action",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an event is an action (i.e. a controllable event for the agents).")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\naction space provided by "),a("code",[t._v("Events._get_action_space()")]),t._v(", but it can be overridden for faster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-173"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-173"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("event")]),t._v(": The event to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-275"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-275"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is an action (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-applicable-action-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-10"}},[t._v("#")]),t._v(" _is_applicable_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_applicable_action",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an action is applicable in the given memory (state or history), or in the internal one if\nomitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._is_applicable_action()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_applicable_action_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-174"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-174"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-276"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-276"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the action is applicable (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-applicable-action-from-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-from-5"}},[t._v("#")]),t._v(" _is_applicable_action_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_applicable_action_from",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an action is applicable in the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._is_applicable_action()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the space of\napplicable actions provided by "),a("code",[t._v("Events._get_applicable_actions_from()")]),t._v(", but it can be overridden for faster\nimplementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-175"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-175"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-277"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-277"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the action is applicable (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-enabled-event-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-10"}},[t._v("#")]),t._v(" _is_enabled_event "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_enabled_event",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an uncontrollable event is enabled in the given memory (state or history), or in the\ninternal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._is_enabled_event()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_enabled_event_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead\nof the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-176"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-176"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-278"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-278"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is enabled (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-enabled-event-from-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-from-5"}},[t._v("#")]),t._v(" _is_enabled_event_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_enabled_event_from",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an event is enabled in the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._is_enabled_event()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the space of\nenabled events provided by "),a("code",[t._v("Events._get_enabled_events_from()")]),t._v(", but it can be overridden for faster\nimplementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-177"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-177"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-279"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-279"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is enabled (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-goal-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-goal-10"}},[t._v("#")]),t._v(" _is_goal "),a("Badge",{attrs:{text:"Goals",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_goal",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"D.T_agent[D.T_predicate]"}}}),t._v(" "),a("p",[t._v("Indicate whether an observation belongs to the goals.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\ngoals space provided by "),a("code",[t._v("Goals._get_goals()")]),t._v(", but it can be overridden for faster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-178"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-178"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-280"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-280"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the observation is a goal (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-observation-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-observation-10"}},[t._v("#")]),t._v(" _is_observation "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_observation",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that an observation indeed belongs to the domain observation space.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\nobservation space provided by "),a("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(", but it can be overridden for\nfaster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-179"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-179"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-281"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-281"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the observation belongs to the domain observation space (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-transition-value-dependent-on-next-state-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-transition-value-dependent-on-next-state-8"}},[t._v("#")]),t._v(" _is_transition_value_dependent_on_next_state "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_transition_value_dependent_on_next_state",sig:{params:[{name:"self"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether _get_transition_value() requires the next_state parameter for its computation (cached).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("UncertainTransitions._is_transition_value_dependent_on_next_state()")]),t._v(" internally\ncalls "),a("code",[t._v("UncertainTransitions._is_transition_value_dependent_on_next_state_()")]),t._v(" the first time and automatically\ncaches its value to make future calls more efficient (since the returned value is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-282"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-282"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the transition value computation depends on next_state (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-transition-value-dependent-on-next-state-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-transition-value-dependent-on-next-state-9"}},[t._v("#")]),t._v(" _is_transition_value_dependent_on_next_state_ "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_transition_value_dependent_on_next_state_",sig:{params:[{name:"self"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether _get_transition_value() requires the next_state parameter for its computation.")]),t._v(" "),a("p",[t._v("This is a helper function called by default\nfrom "),a("code",[t._v("UncertainTransitions._is_transition_value_dependent_on_next_state()")]),t._v(", the difference being that the result\nis not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-283"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-283"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the transition value computation depends on next_state (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"reset-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#reset-10"}},[t._v("#")]),t._v(" _reset "),a("Badge",{attrs:{text:"Initializable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_reset",sig:{params:[{name:"self"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Reset the state of the environment and return an initial observation.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Initializable._reset()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Initializable._state_reset()")]),t._v(" (which returns an initial state). The boilerplate code automatically stores\nthe initial state into the "),a("code",[t._v("_memory")]),t._v(" attribute and samples a corresponding observation.")]),t._v(" "),a("h4",{attrs:{id:"returns-284"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-284"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("An initial observation.")]),t._v(" "),a("h3",{attrs:{id:"sample-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample-10"}},[t._v("#")]),t._v(" _sample "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_sample",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Sample one transition of the simulator's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Simulation._sample()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Simulation._state_sample()")]),t._v(" (which returns a transition outcome). The boilerplate code automatically\nsamples an observation corresponding to the sampled next state.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing simulator needs to be wrapped instead of implemented fully in scikit-decide (e.g. a\nsimulator), it is recommended to overwrite "),a("code",[t._v("Simulation._sample()")]),t._v(" to call the external simulator and not use\nthe "),a("code",[t._v("Simulation._state_sample()")]),t._v(" helper function.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-180"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-180"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-285"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-285"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of the sampled transition.")]),t._v(" "),a("h3",{attrs:{id:"sample-completion-conditions-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample-completion-conditions-4"}},[t._v("#")]),t._v(" _sample_completion_conditions "),a("Badge",{attrs:{text:"WithConditionalTasks",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_sample_completion_conditions",sig:{params:[{name:"self"},{name:"task",annotation:"int"}],return:"List[int]"}}}),t._v(" "),a("p",[t._v("Samples the condition distributions associated with the given task and return a list of sampled\nconditions.")]),t._v(" "),a("h3",{attrs:{id:"sample-quantity-resource-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample-quantity-resource-4"}},[t._v("#")]),t._v(" _sample_quantity_resource "),a("Badge",{attrs:{text:"UncertainResourceAvailabilityChanges",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_sample_quantity_resource",sig:{params:[{name:"self"},{name:"resource",annotation:"str"},{name:"time",annotation:"int"},{name:"**kwargs"}],return:"int"}}}),t._v(" "),a("p",[t._v("Sample an amount of resource availability (int) for the given resource\n(either resource type or resource unit) at the given time. This number should be the sum of the number of\nresource available at time t and the number of resource of this type consumed so far).")]),t._v(" "),a("h3",{attrs:{id:"sample-task-duration-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample-task-duration-4"}},[t._v("#")]),t._v(" _sample_task_duration "),a("Badge",{attrs:{text:"SimulatedTaskDuration",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_sample_task_duration",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"mode",default:"1",annotation:"Optional[int]"},{name:"progress_from",default:"0.0",annotation:"Optional[float]"}],return:"int"}}}),t._v(" "),a("p",[t._v("Return a task duration for the given task in the given mode.")]),t._v(" "),a("h3",{attrs:{id:"set-memory-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#set-memory-10"}},[t._v("#")]),t._v(" _set_memory "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_set_memory",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"None"}}}),t._v(" "),a("p",[t._v("Set internal memory attribute "),a("code",[t._v("_memory")]),t._v(" to given one.")]),t._v(" "),a("p",[t._v('This can be useful to set a specific "starting point" before doing a rollout with\nsuccessive '),a("code",[t._v("Environment._step()")]),t._v(" calls.")]),t._v(" "),a("h4",{attrs:{id:"parameters-181"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-181"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to set internally.")])]),t._v(" "),a("h4",{attrs:{id:"example-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#example-10"}},[t._v("#")]),t._v(" Example")]),t._v(" "),a("div",{staticClass:"language-python extra-class"},[a("pre",{pre:!0,attrs:{class:"language-python"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Set simulation_domain memory to my_state (assuming Markovian domain)")]),t._v("\nsimulation_domain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("_set_memory"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("my_state"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Start a 100-steps rollout from here (applying my_action at every step)")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("for")]),t._v(" _ "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("in")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("range")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n simulation_domain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("_step"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("my_action"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("h3",{attrs:{id:"state-reset-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#state-reset-5"}},[t._v("#")]),t._v(" _state_reset "),a("Badge",{attrs:{text:"Initializable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_state_reset",sig:{params:[{name:"self"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("Reset the state of the environment and return an initial state.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Initializable._reset()")]),t._v(". It focuses on the state level, as\nopposed to the observation one for the latter.")]),t._v(" "),a("h4",{attrs:{id:"returns-286"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-286"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("An initial state.")]),t._v(" "),a("h3",{attrs:{id:"state-sample-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#state-sample-5"}},[t._v("#")]),t._v(" _state_sample "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_state_sample",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"TransitionOutcome[D.T_state, D.T_agent[Value[D.T_value]], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("This function will be used if the domain is defined as a Simulation (i.e. transitions are defined by call to\na simulation). This function may also be used by simulation-based solvers on non-Simulation domains.")]),t._v(" "),a("h3",{attrs:{id:"state-step-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#state-step-5"}},[t._v("#")]),t._v(" _state_step "),a("Badge",{attrs:{text:"Environment",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_state_step",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"TransitionOutcome[D.T_state, D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Compute one step of the transition's dynamics.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Environment._step()")]),t._v(". It focuses on the state level, as opposed\nto the observation one for the latter.")]),t._v(" "),a("h4",{attrs:{id:"parameters-182"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-182"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the current memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-287"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-287"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The transition outcome of this step.")]),t._v(" "),a("h3",{attrs:{id:"step-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#step-10"}},[t._v("#")]),t._v(" _step "),a("Badge",{attrs:{text:"Environment",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_step",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Run one step of the environment's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Environment._step()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Environment._state_step()")]),t._v(" (which returns a transition outcome). The boilerplate code automatically stores\nnext state into the "),a("code",[t._v("_memory")]),t._v(" attribute and samples a corresponding observation.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing environment needs to be wrapped instead of implemented fully in scikit-decide (e.g. compiled\nATARI games), it is recommended to overwrite "),a("code",[t._v("Environment._step()")]),t._v(" to call the external environment and not\nuse the "),a("code",[t._v("Environment._state_step()")]),t._v(" helper function.")])]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Before calling "),a("code",[t._v("Environment._step()")]),t._v(" the first time or when the end of an episode is\nreached, "),a("code",[t._v("Initializable._reset()")]),t._v(" must be called to reset the environment's state.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-183"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-183"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the current memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-288"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-288"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of this step.")]),t._v(" "),a("h2",{attrs:{id:"deterministicschedulingdomain"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#deterministicschedulingdomain"}},[t._v("#")]),t._v(" DeterministicSchedulingDomain")]),t._v(" "),a("p",[t._v("This is the highest level scheduling domain class (inheriting top-level class for each mandatory\ndomain characteristic).")]),t._v(" "),a("h3",{attrs:{id:"add-to-current-conditions-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#add-to-current-conditions-5"}},[t._v("#")]),t._v(" add_to_current_conditions "),a("Badge",{attrs:{text:"WithConditionalTasks",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"add_to_current_conditions",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"state"}]}}}),t._v(" "),a("p",[t._v("Samples completion conditions for a given task and add these conditions to the list of conditions in the\ngiven state. This function should be called when a task complete.")]),t._v(" "),a("h3",{attrs:{id:"all-tasks-possible-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#all-tasks-possible-3"}},[t._v("#")]),t._v(" all_tasks_possible "),a("Badge",{attrs:{text:"MixedRenewable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"all_tasks_possible",sig:{params:[{name:"self"},{name:"state",annotation:"State"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Return a True is for each task there is at least one mode in which the task can be executed, given the\nresource configuration in the state provided as argument. Returns False otherwise.\nIf this function returns False, the scheduling problem is unsolvable from this state.\nThis is to cope with the use of non-renable resources that may lead to state from which a\ntask will not be possible anymore.")]),t._v(" "),a("h3",{attrs:{id:"check-if-action-can-be-started-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#check-if-action-can-be-started-3"}},[t._v("#")]),t._v(" check_if_action_can_be_started "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"check_if_action_can_be_started",sig:{params:[{name:"self"},{name:"state",annotation:"State"},{name:"action",annotation:"SchedulingAction"}],return:"Tuple[bool, Dict[str, int]]"}}}),t._v(" "),a("p",[t._v("Check if a start or resume action can be applied. It returns a boolean and a dictionary of resources to use.")]),t._v(" "),a("h3",{attrs:{id:"check-unique-resource-names-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#check-unique-resource-names-3"}},[t._v("#")]),t._v(" check_unique_resource_names "),a("Badge",{attrs:{text:"UncertainResourceAvailabilityChanges",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"check_unique_resource_names",sig:{params:[{name:"self"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Return True if there are no duplicates in resource names across both resource types\nand resource units name lists.")]),t._v(" "),a("h3",{attrs:{id:"check-value-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#check-value-11"}},[t._v("#")]),t._v(" check_value "),a("Badge",{attrs:{text:"Rewards",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"check_value",sig:{params:[{name:"self"},{name:"value",annotation:"Value[D.T_value]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that a value is compliant with its reward specification.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("This function returns always True by default because any kind of reward should be accepted at this level.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-184"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-184"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("value")]),t._v(": The value to check.")])]),t._v(" "),a("h4",{attrs:{id:"returns-289"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-289"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the value is compliant (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"find-one-ressource-to-do-one-task-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#find-one-ressource-to-do-one-task-3"}},[t._v("#")]),t._v(" find_one_ressource_to_do_one_task "),a("Badge",{attrs:{text:"WithResourceSkills",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"find_one_ressource_to_do_one_task",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"mode",annotation:"int"}],return:"List[str]"}}}),t._v(" "),a("p",[t._v("For the common case when it is possible to do the task by one resource unit.\nFor general case, it might just return no possible ressource unit.")]),t._v(" "),a("h3",{attrs:{id:"get-action-space-16"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-16"}},[t._v("#")]),t._v(" get_action_space "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_action_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) domain action space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.get_action_space()")]),t._v(" internally calls "),a("code",[t._v("Events._get_action_space_()")]),t._v(" the first time and\nautomatically caches its value to make future calls more efficient (since the action space is assumed to be\nconstant).")]),t._v(" "),a("h4",{attrs:{id:"returns-290"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-290"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The action space.")]),t._v(" "),a("h3",{attrs:{id:"get-all-condition-items-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-all-condition-items-3"}},[t._v("#")]),t._v(" get_all_condition_items "),a("Badge",{attrs:{text:"WithConditionalTasks",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_all_condition_items",sig:{params:[{name:"self"}],return:"Enum"}}}),t._v(" "),a("p",[t._v("Return an Enum with all the elements that can be used to define a condition.")]),t._v(" "),a("p",[t._v("Example:\nreturn\nConditionElementsExample(Enum):\nOK = 0\nNC_PART_1_OPERATION_1 = 1\nNC_PART_1_OPERATION_2 = 2\nNC_PART_2_OPERATION_1 = 3\nNC_PART_2_OPERATION_2 = 4\nHARDWARE_ISSUE_MACHINE_A = 5\nHARDWARE_ISSUE_MACHINE_B = 6")]),t._v(" "),a("h3",{attrs:{id:"get-all-resources-skills-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-all-resources-skills-5"}},[t._v("#")]),t._v(" get_all_resources_skills "),a("Badge",{attrs:{text:"WithResourceSkills",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_all_resources_skills",sig:{params:[{name:"self"}],return:"Dict[str, Dict[str, Any]]"}}}),t._v(" "),a("p",[t._v("Return a nested dictionary where the first key is the name of a resource type or resource unit\nand the second key is the name of a skill. The value defines the details of the skill.\nE.g. {unit: {skill: (detail of skill)}}")]),t._v(" "),a("h3",{attrs:{id:"get-all-tasks-skills-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-all-tasks-skills-5"}},[t._v("#")]),t._v(" get_all_tasks_skills "),a("Badge",{attrs:{text:"WithResourceSkills",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_all_tasks_skills",sig:{params:[{name:"self"}],return:"Dict[int, Dict[int, Dict[str, Any]]]"}}}),t._v(" "),a("p",[t._v("Return a nested dictionary where the first key is the name of a task\nand the second key is the name of a skill. The value defines the details of the skill.\nE.g. {task: {skill: (detail of skill)}}")]),t._v(" "),a("h3",{attrs:{id:"get-all-unconditional-tasks-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-all-unconditional-tasks-5"}},[t._v("#")]),t._v(" get_all_unconditional_tasks "),a("Badge",{attrs:{text:"WithConditionalTasks",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_all_unconditional_tasks",sig:{params:[{name:"self"}],return:"Set[int]"}}}),t._v(" "),a("p",[t._v("Returns the set of all task ids for which there are no conditions. These tasks are to be considered at\nthe start of a project (i.e. in the initial state).")]),t._v(" "),a("h3",{attrs:{id:"get-applicable-actions-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-11"}},[t._v("#")]),t._v(" get_applicable_actions "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_applicable_actions",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history), or in\nthe internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.get_applicable_actions()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_applicable_actions()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-185"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-185"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-291"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-291"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of applicable actions.")]),t._v(" "),a("h3",{attrs:{id:"get-available-tasks-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-available-tasks-5"}},[t._v("#")]),t._v(" get_available_tasks "),a("Badge",{attrs:{text:"WithConditionalTasks",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_available_tasks",sig:{params:[{name:"self"},{name:"state"}],return:"Set[int]"}}}),t._v(" "),a("p",[t._v("Returns the set of all task ids that can be considered under the conditions defined in the given state.\nNote that the set will contains all ids for all tasks in the domain that meet the conditions, that is tasks\nthat are remaining, or that have been completed, paused or started / resumed.")]),t._v(" "),a("h3",{attrs:{id:"get-enabled-events-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-11"}},[t._v("#")]),t._v(" get_enabled_events "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_enabled_events",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"Space[D.T_event]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory), or in the internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.get_enabled_events()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_enabled_events()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead of\nthe memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-186"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-186"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-292"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-292"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of enabled events.")]),t._v(" "),a("h3",{attrs:{id:"get-goals-16"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-goals-16"}},[t._v("#")]),t._v(" get_goals "),a("Badge",{attrs:{text:"Goals",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_goals",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) domain goals space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Goals.get_goals()")]),t._v(" internally calls "),a("code",[t._v("Goals._get_goals_()")]),t._v(" the first time and automatically caches its\nvalue to make future calls more efficient (since the goals space is assumed to be constant).")]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Goal states are assumed to be fully observable (i.e. observation = state) so that there is never uncertainty\nabout whether the goal has been reached or not. This assumption guarantees that any policy that does not\nreach the goal with certainty incurs in infinite expected cost. - "),a("em",[t._v("Geffner, 2013: A Concise Introduction to\nModels and Methods for Automated Planning")])])]),t._v(" "),a("h4",{attrs:{id:"returns-293"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-293"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The goals space.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-16"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-16"}},[t._v("#")]),t._v(" get_initial_state "),a("Badge",{attrs:{text:"DeterministicInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_initial_state",sig:{params:[{name:"self"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("Get the (cached) initial state.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("DeterministicInitialized.get_initial_state()")]),t._v(" internally\ncalls "),a("code",[t._v("DeterministicInitialized._get_initial_state_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the initial state is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-294"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-294"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The initial state.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-distribution-16"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-distribution-16"}},[t._v("#")]),t._v(" get_initial_state_distribution "),a("Badge",{attrs:{text:"UncertainInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_initial_state_distribution",sig:{params:[{name:"self"}],return:"Distribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("Get the (cached) probability distribution of initial states.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("UncertainInitialized.get_initial_state_distribution()")]),t._v(" internally\ncalls "),a("code",[t._v("UncertainInitialized._get_initial_state_distribution_()")]),t._v(" the first time and automatically caches its value\nto make future calls more efficient (since the initial state distribution is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-295"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-295"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of initial states.")]),t._v(" "),a("h3",{attrs:{id:"get-max-horizon-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-max-horizon-5"}},[t._v("#")]),t._v(" get_max_horizon "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_max_horizon",sig:{params:[{name:"self"}],return:"int"}}}),t._v(" "),a("p",[t._v("Return the maximum time horizon (int)")]),t._v(" "),a("h3",{attrs:{id:"get-mode-costs-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-mode-costs-5"}},[t._v("#")]),t._v(" get_mode_costs "),a("Badge",{attrs:{text:"WithModeCosts",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_mode_costs",sig:{params:[{name:"self"}],return:"Dict[int, Dict[int, float]]"}}}),t._v(" "),a("p",[t._v("Return a nested dictionary where the first key is the id of a task (int), the second key the id of a mode\nand the value indicates the cost of execution the task in the mode.")]),t._v(" "),a("h3",{attrs:{id:"get-next-state-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-next-state-5"}},[t._v("#")]),t._v(" get_next_state "),a("Badge",{attrs:{text:"DeterministicTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_next_state",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("Get the next state given a memory and action.")]),t._v(" "),a("h4",{attrs:{id:"parameters-187"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-187"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-296"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-296"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The deterministic next state.")]),t._v(" "),a("h3",{attrs:{id:"get-next-state-distribution-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-next-state-distribution-8"}},[t._v("#")]),t._v(" get_next_state_distribution "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_next_state_distribution",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"DiscreteDistribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("Get the discrete probability distribution of next state given a memory and action.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("In the Markovian case (memory only holds last state "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.061ex",height:"1.023ex",viewBox:"0 -442 469 452"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})])])])])]),t._v("), given an action "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.197ex",height:"1.02ex",viewBox:"0 -441 529 451"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})])])])])]),t._v(", this function can\nbe mathematically represented by "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.292ex",height:"2.283ex",viewBox:"0 -759 4107.1 1009"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"50",d:"M287 628Q287 635 230 637Q206 637 199 638T192 648Q192 649 194 659Q200 679 203 681T397 683Q587 682 600 680Q664 669 707 631T751 530Q751 453 685 389Q616 321 507 303Q500 302 402 301H307L277 182Q247 66 247 59Q247 55 248 54T255 50T272 48T305 46H336Q342 37 342 35Q342 19 335 5Q330 0 319 0Q316 0 282 1T182 2Q120 2 87 2T51 1Q33 1 33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM645 554Q645 567 643 575T634 597T609 619T560 635Q553 636 480 637Q463 637 445 637T416 636T404 636Q391 635 386 627Q384 621 367 550T332 412T314 344Q314 342 395 342H407H430Q542 342 590 392Q617 419 631 471T645 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(751, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"msup",transform:"translate(1140, 0)"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"53",d:"M308 24Q367 24 416 76T466 197Q466 260 414 284Q308 311 278 321T236 341Q176 383 176 462Q176 523 208 573T273 648Q302 673 343 688T407 704H418H425Q521 704 564 640Q565 640 577 653T603 682T623 704Q624 704 627 704T632 705Q645 705 645 698T617 577T585 459T569 456Q549 456 549 465Q549 471 550 475Q550 478 551 494T553 520Q553 554 544 579T526 616T501 641Q465 662 419 662Q362 662 313 616T263 510Q263 480 278 458T319 427Q323 425 389 408T456 390Q490 379 522 342T554 242Q554 216 546 186Q541 164 528 137T492 78T426 18T332 -20Q320 -22 298 -22Q199 -22 144 33L134 44L106 13Q83 -14 78 -18T65 -22Q52 -22 52 -14Q52 -11 110 221Q112 227 130 227H143Q149 221 149 216Q149 214 148 207T144 186T142 153Q144 114 160 87T203 47T255 29T308 24Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(613, 363) scale(0.707)"}},[a("path",{attrs:{"data-c":"2032",d:"M79 43Q73 43 52 49T30 61Q30 68 85 293T146 528Q161 560 198 560Q218 560 240 545T262 501Q262 496 260 486Q259 479 173 263T84 45T79 43Z"}})])]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1997.5, 0)"}},[a("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(2275.5, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2744.5, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(3189.1, 0)"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3718.1, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(", where "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.05ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.94ex",height:"1.767ex",viewBox:"0 -759 857.5 781"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"msup"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"53",d:"M308 24Q367 24 416 76T466 197Q466 260 414 284Q308 311 278 321T236 341Q176 383 176 462Q176 523 208 573T273 648Q302 673 343 688T407 704H418H425Q521 704 564 640Q565 640 577 653T603 682T623 704Q624 704 627 704T632 705Q645 705 645 698T617 577T585 459T569 456Q549 456 549 465Q549 471 550 475Q550 478 551 494T553 520Q553 554 544 579T526 616T501 641Q465 662 419 662Q362 662 313 616T263 510Q263 480 278 458T319 427Q323 425 389 408T456 390Q490 379 522 342T554 242Q554 216 546 186Q541 164 528 137T492 78T426 18T332 -20Q320 -22 298 -22Q199 -22 144 33L134 44L106 13Q83 -14 78 -18T65 -22Q52 -22 52 -14Q52 -11 110 221Q112 227 130 227H143Q149 221 149 216Q149 214 148 207T144 186T142 153Q144 114 160 87T203 47T255 29T308 24Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(613, 363) scale(0.707)"}},[a("path",{attrs:{"data-c":"2032",d:"M79 43Q73 43 52 49T30 61Q30 68 85 293T146 528Q161 560 198 560Q218 560 240 545T262 501Q262 496 260 486Q259 479 173 263T84 45T79 43Z"}})])])])])])]),t._v(" is the next state random variable.")],1)]),t._v(" "),a("h4",{attrs:{id:"parameters-188"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-188"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-297"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-297"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The discrete probability distribution of next state.")]),t._v(" "),a("h3",{attrs:{id:"get-objectives-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-objectives-5"}},[t._v("#")]),t._v(" get_objectives "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_objectives",sig:{params:[{name:"self"}],return:"List[SchedulingObjectiveEnum]"}}}),t._v(" "),a("p",[t._v("Return the objectives to consider as a list. The items should be of SchedulingObjectiveEnum type.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-11"}},[t._v("#")]),t._v(" get_observation "),a("Badge",{attrs:{text:"TransformedObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_observation",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Get the deterministic observation given a state and action.")]),t._v(" "),a("h4",{attrs:{id:"parameters-189"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-189"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-298"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-298"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-distribution-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-distribution-11"}},[t._v("#")]),t._v(" get_observation_distribution "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_observation_distribution",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"Distribution[D.T_agent[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the probability distribution of the observation given a state and action.")]),t._v(" "),a("p",[t._v("In mathematical terms (discrete case), given an action "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.197ex",height:"1.02ex",viewBox:"0 -441 529 451"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})])])])])]),t._v(", this function represents: "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.078ex",height:"2.262ex",viewBox:"0 -750 4012.7 1000"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"50",d:"M287 628Q287 635 230 637Q206 637 199 638T192 648Q192 649 194 659Q200 679 203 681T397 683Q587 682 600 680Q664 669 707 631T751 530Q751 453 685 389Q616 321 507 303Q500 302 402 301H307L277 182Q247 66 247 59Q247 55 248 54T255 50T272 48T305 46H336Q342 37 342 35Q342 19 335 5Q330 0 319 0Q316 0 282 1T182 2Q120 2 87 2T51 1Q33 1 33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM645 554Q645 567 643 575T634 597T609 619T560 635Q553 636 480 637Q463 637 445 637T416 636T404 636Q391 635 386 627Q384 621 367 550T332 412T314 344Q314 342 395 342H407H430Q542 342 590 392Q617 419 631 471T645 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(751, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(1140, 0)"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1903, 0)"}},[a("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(2181, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2650, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(3094.7, 0)"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3623.7, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(",\nwhere "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.05ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.726ex",height:"1.643ex",viewBox:"0 -704 763 726"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})])])])])]),t._v(" is the random variable of the observation.")],1),t._v(" "),a("h4",{attrs:{id:"parameters-190"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-190"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-299"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-299"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-space-16"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-16"}},[t._v("#")]),t._v(" get_observation_space "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_observation_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) observation space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("PartiallyObservable.get_observation_space()")]),t._v(" internally\ncalls "),a("code",[t._v("PartiallyObservable._get_observation_space_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the observation space is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-300"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-300"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The observation space.")]),t._v(" "),a("h3",{attrs:{id:"get-preallocations-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-preallocations-5"}},[t._v("#")]),t._v(" get_preallocations "),a("Badge",{attrs:{text:"WithPreallocations",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_preallocations",sig:{params:[{name:"self"}],return:"Dict[int, List[str]]"}}}),t._v(" "),a("p",[t._v("Return a dictionary where the key is the id of a task (int)\nand the value indicates the pre-allocated resources for this task (as a list of str)")]),t._v(" "),a("h3",{attrs:{id:"get-predecessors-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-predecessors-5"}},[t._v("#")]),t._v(" get_predecessors "),a("Badge",{attrs:{text:"WithPrecedence",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_predecessors",sig:{params:[{name:"self"}],return:"Dict[int, List[int]]"}}}),t._v(" "),a("p",[t._v("Return the predecessors of the task. Successors are given as a list for a task given as a key.")]),t._v(" "),a("h3",{attrs:{id:"get-resource-cost-per-time-unit-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-resource-cost-per-time-unit-5"}},[t._v("#")]),t._v(" get_resource_cost_per_time_unit "),a("Badge",{attrs:{text:"WithResourceCosts",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_resource_cost_per_time_unit",sig:{params:[{name:"self"}],return:"Dict[str, float]"}}}),t._v(" "),a("p",[t._v("Return a dictionary where the key is the name of a resource (str)\nand the value indicates the cost of using this resource per time unit.")]),t._v(" "),a("h3",{attrs:{id:"get-resource-renewability-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-resource-renewability-5"}},[t._v("#")]),t._v(" get_resource_renewability "),a("Badge",{attrs:{text:"MixedRenewable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_resource_renewability",sig:{params:[{name:"self"}],return:"Dict[str, bool]"}}}),t._v(" "),a("p",[t._v("Return a dictionary where the key is a resource name (string)\nand the value whether this resource is renewable (True) or not (False).")]),t._v(" "),a("h3",{attrs:{id:"get-resource-type-for-unit-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-resource-type-for-unit-5"}},[t._v("#")]),t._v(" get_resource_type_for_unit "),a("Badge",{attrs:{text:"WithResourceUnits",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_resource_type_for_unit",sig:{params:[{name:"self"}],return:"Dict[str, str]"}}}),t._v(" "),a("p",[t._v("Return a dictionary where the key is a resource unit name and the value a resource type name.\nAn empty dictionary can be used if there are no resource unit matching a resource type.")]),t._v(" "),a("h3",{attrs:{id:"get-resource-types-names-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-resource-types-names-5"}},[t._v("#")]),t._v(" get_resource_types_names "),a("Badge",{attrs:{text:"WithResourceTypes",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_resource_types_names",sig:{params:[{name:"self"}],return:"List[str]"}}}),t._v(" "),a("p",[t._v("Return the names (string) of all resource types as a list.")]),t._v(" "),a("h3",{attrs:{id:"get-resource-units-names-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-resource-units-names-5"}},[t._v("#")]),t._v(" get_resource_units_names "),a("Badge",{attrs:{text:"WithResourceUnits",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_resource_units_names",sig:{params:[{name:"self"}],return:"List[str]"}}}),t._v(" "),a("p",[t._v("Return the names (string) of all resource units as a list.")]),t._v(" "),a("h3",{attrs:{id:"get-skills-names-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-skills-names-3"}},[t._v("#")]),t._v(" get_skills_names "),a("Badge",{attrs:{text:"WithResourceSkills",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_skills_names",sig:{params:[{name:"self"}],return:"Set[str]"}}}),t._v(" "),a("p",[t._v("Return a list of all skill names as a list of str. Skill names are defined in the 2 dictionaries returned\nby the get_all_resources_skills and get_all_tasks_skills functions.")]),t._v(" "),a("h3",{attrs:{id:"get-skills-of-resource-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-skills-of-resource-3"}},[t._v("#")]),t._v(" get_skills_of_resource "),a("Badge",{attrs:{text:"WithResourceSkills",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_skills_of_resource",sig:{params:[{name:"self"},{name:"resource",annotation:"str"}],return:"Dict[str, Any]"}}}),t._v(" "),a("p",[t._v("Return the skills of a given resource")]),t._v(" "),a("h3",{attrs:{id:"get-skills-of-task-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-skills-of-task-3"}},[t._v("#")]),t._v(" get_skills_of_task "),a("Badge",{attrs:{text:"WithResourceSkills",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_skills_of_task",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"mode",annotation:"int"}],return:"Dict[str, Any]"}}}),t._v(" "),a("p",[t._v("Return the skill requirements for a given task")]),t._v(" "),a("h3",{attrs:{id:"get-successors-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-successors-5"}},[t._v("#")]),t._v(" get_successors "),a("Badge",{attrs:{text:"WithPrecedence",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_successors",sig:{params:[{name:"self"}],return:"Dict[int, List[int]]"}}}),t._v(" "),a("p",[t._v("Return the successors of the tasks. Successors are given as a list for a task given as a key.")]),t._v(" "),a("h3",{attrs:{id:"get-task-existence-conditions-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-task-existence-conditions-5"}},[t._v("#")]),t._v(" get_task_existence_conditions "),a("Badge",{attrs:{text:"WithConditionalTasks",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_task_existence_conditions",sig:{params:[{name:"self"}],return:"Dict[int, List[int]]"}}}),t._v(" "),a("p",[t._v("Return a dictionary where the key is a task id and the value a list of conditions to be respected (True)\nfor the task to be part of the schedule. If a task has no entry in the dictionary,\nthere is no conditions for that task.")]),t._v(" "),a("p",[t._v("Example:\nreturn\n{\n20: [get_all_condition_items().NC_PART_1_OPERATION_1],\n21: [get_all_condition_items().HARDWARE_ISSUE_MACHINE_A]\n22: [get_all_condition_items().NC_PART_1_OPERATION_1, get_all_condition_items().NC_PART_1_OPERATION_2]\n}e")]),t._v(" "),a("h3",{attrs:{id:"get-task-on-completion-added-conditions-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-task-on-completion-added-conditions-3"}},[t._v("#")]),t._v(" get_task_on_completion_added_conditions "),a("Badge",{attrs:{text:"WithConditionalTasks",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_task_on_completion_added_conditions",sig:{params:[{name:"self"}],return:"Dict[int, List[Distribution]]"}}}),t._v(" "),a("p",[t._v("Return a dict of list. The key of the dict is the task id and each list is composed of a list of tuples.\nEach tuple contains the probability (first item in tuple) that the conditionElement (second item in tuple)\nis True. The probabilities in the inner list should sum up to 1. The dictionary should only contains the keys\nof tasks that can create conditions.")]),t._v(" "),a("p",[t._v("Example:\nreturn\n{\n12:\n[\nDiscreteDistribution([(ConditionElementsExample.NC_PART_1_OPERATION_1, 0.1), (ConditionElementsExample.OK, 0.9)]),\nDiscreteDistribution([(ConditionElementsExample.HARDWARE_ISSUE_MACHINE_A, 0.05), ('paper', 0.1), (ConditionElementsExample.OK, 0.95)])\n]\n}")]),t._v(" "),a("h3",{attrs:{id:"get-task-paused-non-renewable-resource-returned-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-task-paused-non-renewable-resource-returned-5"}},[t._v("#")]),t._v(" get_task_paused_non_renewable_resource_returned "),a("Badge",{attrs:{text:"WithPreemptivity",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_task_paused_non_renewable_resource_returned",sig:{params:[{name:"self"}],return:"Dict[int, bool]"}}}),t._v(" "),a("p",[t._v("Return a dictionary where the key is a task id and the value is of type bool indicating\nif the non-renewable resources are consumed when the task is paused (False) or made available again (True).\nE.g. {\n2: False # if paused, non-renewable resource will be consumed\n5: True # if paused, the non-renewable resource will be available again\n}")]),t._v(" "),a("h3",{attrs:{id:"get-task-preemptivity-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-task-preemptivity-5"}},[t._v("#")]),t._v(" get_task_preemptivity "),a("Badge",{attrs:{text:"WithPreemptivity",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_task_preemptivity",sig:{params:[{name:"self"}],return:"Dict[int, bool]"}}}),t._v(" "),a("p",[t._v("Return a dictionary where the key is a task id and the value a boolean indicating\nif the task can be paused or stopped.\nE.g. {\n1: False\n2: True\n3: False\n4: False\n5: True\n6: False\n}")]),t._v(" "),a("h3",{attrs:{id:"get-task-progress-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-task-progress-5"}},[t._v("#")]),t._v(" get_task_progress "),a("Badge",{attrs:{text:"CustomTaskProgress",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_task_progress",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"t_from",annotation:"int"},{name:"t_to",annotation:"int"},{name:"mode",annotation:"Optional[int]"},{name:"sampled_duration",default:"None",annotation:"Optional[int]"}],return:"float"}}}),t._v(" "),a("h4",{attrs:{id:"returns-301"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-301"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The task progress (float) between t_from and t_to.")]),t._v(" "),a("h3",{attrs:{id:"get-task-resuming-type-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-task-resuming-type-5"}},[t._v("#")]),t._v(" get_task_resuming_type "),a("Badge",{attrs:{text:"WithPreemptivity",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_task_resuming_type",sig:{params:[{name:"self"}],return:"Dict[int, ResumeType]"}}}),t._v(" "),a("p",[t._v("Return a dictionary where the key is a task id and the value is of type ResumeType indicating\nif the task can be resumed (restarted from where it was paused with no time loss)\nor restarted (restarted from the start).\nE.g. {\n1: ResumeType.NA\n2: ResumeType.Resume\n3: ResumeType.NA\n4: ResumeType.NA\n5: ResumeType.Restart\n6: ResumeType.NA\n}")]),t._v(" "),a("h3",{attrs:{id:"get-time-lags-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-time-lags-5"}},[t._v("#")]),t._v(" get_time_lags "),a("Badge",{attrs:{text:"WithTimeLag",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_time_lags",sig:{params:[{name:"self"}],return:"Dict[int, Dict[int, TimeLag]]"}}}),t._v(" "),a("p",[t._v("Return nested dictionaries where the first key is the id of a task (int)\nand the second key is the id of another task (int).\nThe value is a TimeLag object containing the MINIMUM and MAXIMUM time (int) that needs to separate the end\nof the first task to the start of the second task.")]),t._v(" "),a("p",[t._v("e.g.\n{\n12:{\n15: TimeLag(5, 10),\n16: TimeLag(5, 20),\n17: MinimumOnlyTimeLag(5),\n18: MaximumOnlyTimeLag(15),\n}\n}")]),t._v(" "),a("h4",{attrs:{id:"returns-302"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-302"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("A dictionary of TimeLag objects.")]),t._v(" "),a("h3",{attrs:{id:"get-time-window-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-time-window-5"}},[t._v("#")]),t._v(" get_time_window "),a("Badge",{attrs:{text:"WithTimeWindow",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_time_window",sig:{params:[{name:"self"}],return:"Dict[int, TimeWindow]"}}}),t._v(" "),a("p",[t._v("Return a dictionary where the key is the id of a task (int)\nand the value is a TimeWindow object.\nNote that the max time horizon needs to be provided to the TimeWindow constructors\ne.g.\n{\n1: TimeWindow(10, 15, 20, 30, self.get_max_horizon())\n2: EmptyTimeWindow(self.get_max_horizon())\n3: EndTimeWindow(20, 25, self.get_max_horizon())\n4: EndBeforeOnlyTimeWindow(40, self.get_max_horizon())\n}")]),t._v(" "),a("h4",{attrs:{id:"returns-303"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-303"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("A dictionary of TimeWindow objects.")]),t._v(" "),a("h3",{attrs:{id:"get-transition-value-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-transition-value-6"}},[t._v("#")]),t._v(" get_transition_value "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_transition_value",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"},{name:"next_state",default:"None",annotation:"Optional[D.T_state]"}],return:"D.T_agent[Value[D.T_value]]"}}}),t._v(" "),a("p",[t._v("Get the value (reward or cost) of a transition.")]),t._v(" "),a("p",[t._v("The transition to consider is defined by the function parameters.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("If this function never depends on the next_state parameter for its computation, it is recommended to\nindicate it by overriding "),a("code",[t._v("UncertainTransitions._is_transition_value_dependent_on_next_state_()")]),t._v(" to return\nFalse. This information can then be exploited by solvers to avoid computing next state to evaluate a\ntransition value (more efficient).")])]),t._v(" "),a("h4",{attrs:{id:"parameters-191"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-191"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")]),t._v(" "),a("li",[a("strong",[t._v("next_state")]),t._v(": The next state in which the transition ends (if needed for the computation).")])]),t._v(" "),a("h4",{attrs:{id:"returns-304"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-304"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The transition value (reward or cost).")]),t._v(" "),a("h3",{attrs:{id:"get-variable-resource-consumption-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-variable-resource-consumption-5"}},[t._v("#")]),t._v(" get_variable_resource_consumption "),a("Badge",{attrs:{text:"VariableResourceConsumption",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_variable_resource_consumption",sig:{params:[{name:"self"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Return true if the domain has variable resource consumption,\nfalse if the consumption of resource does not vary in time for any of the tasks")]),t._v(" "),a("h3",{attrs:{id:"initialize-domain-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#initialize-domain-3"}},[t._v("#")]),t._v(" initialize_domain "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"initialize_domain",sig:{params:[{name:"self"}]}}}),t._v(" "),a("p",[t._v("Initialize a scheduling domain. This function needs to be called when instantiating a scheduling domain.")]),t._v(" "),a("h3",{attrs:{id:"is-action-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-action-11"}},[t._v("#")]),t._v(" is_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_action",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an event is an action (i.e. a controllable event for the agents).")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\naction space provided by "),a("code",[t._v("Events.get_action_space()")]),t._v(", but it can be overridden for faster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-192"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-192"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("event")]),t._v(": The event to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-305"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-305"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is an action (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-applicable-action-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-11"}},[t._v("#")]),t._v(" is_applicable_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_applicable_action",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an action is applicable in the given memory (state or history), or in the internal one if\nomitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.is_applicable_action()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_applicable_action()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead\nof the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-193"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-193"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-306"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-306"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the action is applicable (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-enabled-event-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-11"}},[t._v("#")]),t._v(" is_enabled_event "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_enabled_event",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an uncontrollable event is enabled in the given memory (state or history), or in the\ninternal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.is_enabled_event()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_enabled_event()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead of\nthe memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-194"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-194"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-307"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-307"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is enabled (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-goal-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-goal-11"}},[t._v("#")]),t._v(" is_goal "),a("Badge",{attrs:{text:"Goals",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_goal",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"D.T_agent[D.T_predicate]"}}}),t._v(" "),a("p",[t._v("Indicate whether an observation belongs to the goals.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\ngoals space provided by "),a("code",[t._v("Goals.get_goals()")]),t._v(", but it can be overridden for faster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-195"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-195"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-308"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-308"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the observation is a goal (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-observation-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-observation-11"}},[t._v("#")]),t._v(" is_observation "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_observation",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that an observation indeed belongs to the domain observation space.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\nobservation space provided by "),a("code",[t._v("PartiallyObservable.get_observation_space()")]),t._v(", but it can be overridden for\nfaster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-196"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-196"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-309"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-309"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the observation belongs to the domain observation space (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-terminal-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-terminal-6"}},[t._v("#")]),t._v(" is_terminal "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_terminal",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"}],return:"D.T_agent[D.T_predicate]"}}}),t._v(" "),a("p",[t._v("Indicate whether a state is terminal.")]),t._v(" "),a("p",[t._v("A terminal state is a state with no outgoing transition (except to itself with value 0).")]),t._v(" "),a("h4",{attrs:{id:"parameters-197"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-197"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-310"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-310"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the state is terminal (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-transition-value-dependent-on-next-state-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-transition-value-dependent-on-next-state-10"}},[t._v("#")]),t._v(" is_transition_value_dependent_on_next_state "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_transition_value_dependent_on_next_state",sig:{params:[{name:"self"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether get_transition_value() requires the next_state parameter for its computation (cached).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("UncertainTransitions.is_transition_value_dependent_on_next_state()")]),t._v(" internally\ncalls "),a("code",[t._v("UncertainTransitions._is_transition_value_dependent_on_next_state_()")]),t._v(" the first time and automatically\ncaches its value to make future calls more efficient (since the returned value is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-311"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-311"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the transition value computation depends on next_state (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"reset-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#reset-11"}},[t._v("#")]),t._v(" reset "),a("Badge",{attrs:{text:"Initializable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"reset",sig:{params:[{name:"self"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Reset the state of the environment and return an initial observation.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Initializable.reset()")]),t._v(" provides some boilerplate code and internally calls "),a("code",[t._v("Initializable._reset()")]),t._v("\n(which returns an initial state). The boilerplate code automatically stores the initial state into the "),a("code",[t._v("_memory")]),t._v("\nattribute and samples a corresponding observation.")]),t._v(" "),a("h4",{attrs:{id:"returns-312"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-312"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("An initial observation.")]),t._v(" "),a("h3",{attrs:{id:"sample-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample-11"}},[t._v("#")]),t._v(" sample "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"sample",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Sample one transition of the simulator's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Simulation.sample()")]),t._v(" provides some boilerplate code and internally calls "),a("code",[t._v("Simulation._sample()")]),t._v("\n(which returns a transition outcome). The boilerplate code automatically samples an observation corresponding to\nthe sampled next state.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing simulator needs to be wrapped instead of implemented fully in scikit-decide (e.g. a\nsimulator), it is recommended to overwrite "),a("code",[t._v("Simulation.sample()")]),t._v(" to call the external simulator and not use\nthe "),a("code",[t._v("Simulation._sample()")]),t._v(" helper function.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-198"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-198"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-313"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-313"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of the sampled transition.")]),t._v(" "),a("h3",{attrs:{id:"sample-completion-conditions-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample-completion-conditions-5"}},[t._v("#")]),t._v(" sample_completion_conditions "),a("Badge",{attrs:{text:"WithConditionalTasks",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"sample_completion_conditions",sig:{params:[{name:"self"},{name:"task",annotation:"int"}],return:"List[int]"}}}),t._v(" "),a("p",[t._v("Samples the condition distributions associated with the given task and return a list of sampled\nconditions.")]),t._v(" "),a("h3",{attrs:{id:"sample-quantity-resource-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample-quantity-resource-5"}},[t._v("#")]),t._v(" sample_quantity_resource "),a("Badge",{attrs:{text:"UncertainResourceAvailabilityChanges",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"sample_quantity_resource",sig:{params:[{name:"self"},{name:"resource",annotation:"str"},{name:"time",annotation:"int"},{name:"**kwargs"}],return:"int"}}}),t._v(" "),a("p",[t._v("Sample an amount of resource availability (int) for the given resource\n(either resource type or resource unit) at the given time. This number should be the sum of the number of\nresource available at time t and the number of resource of this type consumed so far).")]),t._v(" "),a("h3",{attrs:{id:"sample-task-duration-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample-task-duration-5"}},[t._v("#")]),t._v(" sample_task_duration "),a("Badge",{attrs:{text:"SimulatedTaskDuration",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"sample_task_duration",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"mode",default:"1",annotation:"Optional[int]"},{name:"progress_from",default:"0.0",annotation:"Optional[float]"}],return:"int"}}}),t._v(" "),a("p",[t._v("Sample, store and return task duration for the given task in the given mode.")]),t._v(" "),a("h3",{attrs:{id:"set-inplace-environment-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#set-inplace-environment-3"}},[t._v("#")]),t._v(" set_inplace_environment "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"set_inplace_environment",sig:{params:[{name:"self"},{name:"inplace_environment",annotation:"bool"}]}}}),t._v(" "),a("p",[t._v("Activate or not the fact that the simulator modifies the given state inplace or create a copy before.\nThe inplace version is several times faster but will lead to bugs in graph search solver.")]),t._v(" "),a("h3",{attrs:{id:"set-memory-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#set-memory-11"}},[t._v("#")]),t._v(" set_memory "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"set_memory",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"None"}}}),t._v(" "),a("p",[t._v("Set internal memory attribute "),a("code",[t._v("_memory")]),t._v(" to given one.")]),t._v(" "),a("p",[t._v('This can be useful to set a specific "starting point" before doing a rollout with successive '),a("code",[t._v("Environment.step()")]),t._v("\ncalls.")]),t._v(" "),a("h4",{attrs:{id:"parameters-199"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-199"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to set internally.")])]),t._v(" "),a("h4",{attrs:{id:"example-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#example-11"}},[t._v("#")]),t._v(" Example")]),t._v(" "),a("div",{staticClass:"language-python extra-class"},[a("pre",{pre:!0,attrs:{class:"language-python"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Set simulation_domain memory to my_state (assuming Markovian domain)")]),t._v("\nsimulation_domain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("set_memory"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("my_state"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Start a 100-steps rollout from here (applying my_action at every step)")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("for")]),t._v(" _ "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("in")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("range")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n simulation_domain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("step"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("my_action"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("h3",{attrs:{id:"solve-with-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#solve-with-6"}},[t._v("#")]),t._v(" solve_with "),a("Badge",{attrs:{text:"Domain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"solve_with",sig:{params:[{name:"solver",annotation:"Solver"},{name:"domain_factory",default:"None",annotation:"Optional[Callable[[], Domain]]"},{name:"load_path",default:"None",annotation:"Optional[str]"}],return:"Solver"}}}),t._v(" "),a("p",[t._v("Solve the domain with a new or loaded solver and return it auto-cast to the level of the domain.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Solver.check_domain()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Solver._check_domain_additional()")]),t._v(' (which returns True by default but can be overridden to define\nspecific checks in addition to the "domain requirements"). The boilerplate code automatically checks whether all\ndomain requirements are met.')]),t._v(" "),a("h4",{attrs:{id:"parameters-200"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-200"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("solver")]),t._v(": The solver.")]),t._v(" "),a("li",[a("strong",[t._v("domain_factory")]),t._v(": A callable with no argument returning the domain to solve (factory is the domain class if None).")]),t._v(" "),a("li",[a("strong",[t._v("load_path")]),t._v(": The path to restore the solver state from (if None, the solving process will be launched instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-314"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-314"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The new solver (auto-cast to the level of the domain).")]),t._v(" "),a("h3",{attrs:{id:"step-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#step-11"}},[t._v("#")]),t._v(" step "),a("Badge",{attrs:{text:"Environment",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"step",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Run one step of the environment's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Environment.step()")]),t._v(" provides some boilerplate code and internally calls "),a("code",[t._v("Environment._step()")]),t._v(" (which\nreturns a transition outcome). The boilerplate code automatically stores next state into the "),a("code",[t._v("_memory")]),t._v(" attribute\nand samples a corresponding observation.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing environment needs to be wrapped instead of implemented fully in scikit-decide (e.g. compiled\nATARI games), it is recommended to overwrite "),a("code",[t._v("Environment.step()")]),t._v(" to call the external environment and not\nuse the "),a("code",[t._v("Environment._step()")]),t._v(" helper function.")])]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Before calling "),a("code",[t._v("Environment.step()")]),t._v(" the first time or when the end of an episode is\nreached, "),a("code",[t._v("Initializable.reset()")]),t._v(" must be called to reset the environment's state.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-201"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-201"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the current memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-315"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-315"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of this step.")]),t._v(" "),a("h3",{attrs:{id:"update-complete-dummy-tasks-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-complete-dummy-tasks-3"}},[t._v("#")]),t._v(" update_complete_dummy_tasks "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_complete_dummy_tasks",sig:{params:[{name:"self"},{name:"state",annotation:"State"},{name:"action",annotation:"SchedulingAction"}]}}}),t._v(" "),a("p",[t._v("Update the status of newly started tasks whose duration is 0 from ongoing to complete.")]),t._v(" "),a("h3",{attrs:{id:"update-complete-dummy-tasks-simulation-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-complete-dummy-tasks-simulation-3"}},[t._v("#")]),t._v(" update_complete_dummy_tasks_simulation "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_complete_dummy_tasks_simulation",sig:{params:[{name:"self"},{name:"state",annotation:"State"},{name:"action",annotation:"SchedulingAction"}]}}}),t._v(" "),a("p",[t._v("In a simulated scheduling environment, update the status of newly started tasks whose duration is 0\nfrom ongoing to complete.")]),t._v(" "),a("h3",{attrs:{id:"update-complete-dummy-tasks-uncertain-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-complete-dummy-tasks-uncertain-3"}},[t._v("#")]),t._v(" update_complete_dummy_tasks_uncertain "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_complete_dummy_tasks_uncertain",sig:{params:[{name:"self"},{name:"states",annotation:"DiscreteDistribution[State]"},{name:"action",annotation:"SchedulingAction"}]}}}),t._v(" "),a("p",[t._v("In an uncertain scheduling environment, update the status of newly started tasks whose duration is 0\nfrom ongoing to complete.")]),t._v(" "),a("h3",{attrs:{id:"update-complete-tasks-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-complete-tasks-3"}},[t._v("#")]),t._v(" update_complete_tasks "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_complete_tasks",sig:{params:[{name:"self"},{name:"state",annotation:"State"}]}}}),t._v(" "),a("p",[t._v("Update the status of newly completed tasks in the state from ongoing to complete\nand update resource availability. This function will also log in task_details the time it was complete")]),t._v(" "),a("h3",{attrs:{id:"update-complete-tasks-simulation-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-complete-tasks-simulation-3"}},[t._v("#")]),t._v(" update_complete_tasks_simulation "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_complete_tasks_simulation",sig:{params:[{name:"self"},{name:"state",annotation:"State"}]}}}),t._v(" "),a("p",[t._v("In a simulated scheduling environment, update the status of newly completed tasks in the state from ongoing to complete\nand update resource availability. This function will also log in task_details the time it was complete")]),t._v(" "),a("h3",{attrs:{id:"update-complete-tasks-uncertain-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-complete-tasks-uncertain-3"}},[t._v("#")]),t._v(" update_complete_tasks_uncertain "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_complete_tasks_uncertain",sig:{params:[{name:"self"},{name:"states",annotation:"DiscreteDistribution[State]"}]}}}),t._v(" "),a("p",[t._v("In an uncertain scheduling environment, update the status of newly completed tasks in the state from ongoing\nto complete, update resource availability and update on-completion conditions.\nThis function will also log in task_details the time it was complete.")]),t._v(" "),a("h3",{attrs:{id:"update-conditional-tasks-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-conditional-tasks-3"}},[t._v("#")]),t._v(" update_conditional_tasks "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_conditional_tasks",sig:{params:[{name:"self"},{name:"state",annotation:"State"},{name:"action",annotation:"SchedulingAction"}]}}}),t._v(" "),a("p",[t._v("Update remaining tasks by checking conditions and potentially adding conditional tasks.")]),t._v(" "),a("h3",{attrs:{id:"update-conditional-tasks-simulation-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-conditional-tasks-simulation-3"}},[t._v("#")]),t._v(" update_conditional_tasks_simulation "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_conditional_tasks_simulation",sig:{params:[{name:"self"},{name:"state",annotation:"State"},{name:"action",annotation:"SchedulingAction"}]}}}),t._v(" "),a("p",[t._v("In a simulated scheduling environment, update remaining tasks by checking conditions and potentially\nadding conditional tasks.")]),t._v(" "),a("h3",{attrs:{id:"update-conditional-tasks-uncertain-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-conditional-tasks-uncertain-3"}},[t._v("#")]),t._v(" update_conditional_tasks_uncertain "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_conditional_tasks_uncertain",sig:{params:[{name:"self"},{name:"states",annotation:"DiscreteDistribution[State]"},{name:"action",annotation:"SchedulingAction"}]}}}),t._v(" "),a("p",[t._v("Update remaining tasks by checking conditions and potentially adding conditional tasks.")]),t._v(" "),a("h3",{attrs:{id:"update-pause-tasks-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-pause-tasks-3"}},[t._v("#")]),t._v(" update_pause_tasks "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_pause_tasks",sig:{params:[{name:"self"},{name:"state",annotation:"State"},{name:"action",annotation:"SchedulingAction"}]}}}),t._v(" "),a("p",[t._v("Update the status of a task from ongoing to paused if specified in the action\nand update resource availability. This function will also log in task_details the time it was paused.")]),t._v(" "),a("h3",{attrs:{id:"update-pause-tasks-simulation-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-pause-tasks-simulation-3"}},[t._v("#")]),t._v(" update_pause_tasks_simulation "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_pause_tasks_simulation",sig:{params:[{name:"self"},{name:"state",annotation:"State"},{name:"action",annotation:"SchedulingAction"}]}}}),t._v(" "),a("p",[t._v("In a simulation scheduling environment, update the status of a task from ongoing to paused if\nspecified in the action and update resource availability. This function will also log in task_details\nthe time it was paused.")]),t._v(" "),a("h3",{attrs:{id:"update-pause-tasks-uncertain-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-pause-tasks-uncertain-3"}},[t._v("#")]),t._v(" update_pause_tasks_uncertain "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_pause_tasks_uncertain",sig:{params:[{name:"self"},{name:"state",annotation:"State"},{name:"action",annotation:"SchedulingAction"}]}}}),t._v(" "),a("p",[t._v("In an uncertain scheduling environment, update the status of a task from ongoing to paused if\nspecified in the action and update resource availability. This function will also log in task_details\nthe time it was paused.")]),t._v(" "),a("h3",{attrs:{id:"update-progress-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-progress-3"}},[t._v("#")]),t._v(" update_progress "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_progress",sig:{params:[{name:"self"},{name:"state",annotation:"State"}]}}}),t._v(" "),a("p",[t._v("Update the progress of all ongoing tasks in the state.")]),t._v(" "),a("h3",{attrs:{id:"update-progress-simulation-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-progress-simulation-3"}},[t._v("#")]),t._v(" update_progress_simulation "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_progress_simulation",sig:{params:[{name:"self"},{name:"state",annotation:"State"}]}}}),t._v(" "),a("p",[t._v("In a simulation scheduling environment, update the progress of all ongoing tasks in the state.")]),t._v(" "),a("h3",{attrs:{id:"update-progress-uncertain-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-progress-uncertain-3"}},[t._v("#")]),t._v(" update_progress_uncertain "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_progress_uncertain",sig:{params:[{name:"self"},{name:"states",annotation:"DiscreteDistribution[State]"}]}}}),t._v(" "),a("p",[t._v("In an uncertain scheduling environment, update the progress of all ongoing tasks in the state.")]),t._v(" "),a("h3",{attrs:{id:"update-resource-availability-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-resource-availability-3"}},[t._v("#")]),t._v(" update_resource_availability "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_resource_availability",sig:{params:[{name:"self"},{name:"state",annotation:"State"},{name:"action",annotation:"SchedulingAction"}]}}}),t._v(" "),a("p",[t._v("Update resource availability for next time step. This should be called after update_time().")]),t._v(" "),a("h3",{attrs:{id:"update-resource-availability-simulation-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-resource-availability-simulation-3"}},[t._v("#")]),t._v(" update_resource_availability_simulation "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_resource_availability_simulation",sig:{params:[{name:"self"},{name:"state",annotation:"State"},{name:"action",annotation:"SchedulingAction"}]}}}),t._v(" "),a("p",[t._v("In a simulated scheduling environment, update resource availability for next time step.\nThis should be called after update_time().")]),t._v(" "),a("h3",{attrs:{id:"update-resource-availability-uncertain-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-resource-availability-uncertain-3"}},[t._v("#")]),t._v(" update_resource_availability_uncertain "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_resource_availability_uncertain",sig:{params:[{name:"self"},{name:"states",annotation:"DiscreteDistribution[State]"},{name:"action",annotation:"SchedulingAction"}]}}}),t._v(" "),a("p",[t._v("Update resource availability for next time step. This should be called after update_time().")]),t._v(" "),a("h3",{attrs:{id:"update-resume-tasks-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-resume-tasks-3"}},[t._v("#")]),t._v(" update_resume_tasks "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_resume_tasks",sig:{params:[{name:"self"},{name:"state",annotation:"State"},{name:"action",annotation:"SchedulingAction"}]}}}),t._v(" "),a("p",[t._v("Update the status of a task from paused to ongoing if specified in the action\nand update resource availability. This function will also log in task_details the time it was resumed")]),t._v(" "),a("h3",{attrs:{id:"update-resume-tasks-simulation-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-resume-tasks-simulation-3"}},[t._v("#")]),t._v(" update_resume_tasks_simulation "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_resume_tasks_simulation",sig:{params:[{name:"self"},{name:"state",annotation:"State"},{name:"action",annotation:"SchedulingAction"}]}}}),t._v(" "),a("p",[t._v("In a simulationn scheduling environment, update the status of a task from paused to ongoing if specified\nin the action and update resource availability. This function will also log in task_details the time it was\nresumed.")]),t._v(" "),a("h3",{attrs:{id:"update-resume-tasks-uncertain-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-resume-tasks-uncertain-3"}},[t._v("#")]),t._v(" update_resume_tasks_uncertain "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_resume_tasks_uncertain",sig:{params:[{name:"self"},{name:"state",annotation:"State"},{name:"action",annotation:"SchedulingAction"}]}}}),t._v(" "),a("p",[t._v("In an uncertain scheduling environment, update the status of a task from paused to ongoing if specified\nin the action and update resource availability. This function will also log in task_details the time it was\nresumed.")]),t._v(" "),a("h3",{attrs:{id:"update-start-tasks-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-start-tasks-3"}},[t._v("#")]),t._v(" update_start_tasks "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_start_tasks",sig:{params:[{name:"self"},{name:"state",annotation:"State"},{name:"action",annotation:"SchedulingAction"}]}}}),t._v(" "),a("p",[t._v("Update the status of a task from remaining to ongoing if specified in the action\nand update resource availability. This function will also log in task_details the time it was started.")]),t._v(" "),a("h3",{attrs:{id:"update-start-tasks-simulation-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-start-tasks-simulation-3"}},[t._v("#")]),t._v(" update_start_tasks_simulation "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_start_tasks_simulation",sig:{params:[{name:"self"},{name:"state",annotation:"State"},{name:"action",annotation:"SchedulingAction"}]}}}),t._v(" "),a("p",[t._v("In a simulated scheduling environment, update the status of a task from remaining to ongoing if\nspecified in the action and update resource availability. This function will also log in task_details the\ntime it was started.")]),t._v(" "),a("h3",{attrs:{id:"update-start-tasks-uncertain-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-start-tasks-uncertain-3"}},[t._v("#")]),t._v(" update_start_tasks_uncertain "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_start_tasks_uncertain",sig:{params:[{name:"self"},{name:"state",annotation:"State"},{name:"action",annotation:"SchedulingAction"}]}}}),t._v(" "),a("p",[t._v("In an uncertain scheduling environment, update the status of a task from remaining to ongoing\nif specified in the action and update resource availability.\nThis function returns a DsicreteDistribution of State.\nThis function will also log in task_details the time it was started.")]),t._v(" "),a("h3",{attrs:{id:"update-time-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-time-3"}},[t._v("#")]),t._v(" update_time "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_time",sig:{params:[{name:"self"},{name:"state",annotation:"State"},{name:"action",annotation:"SchedulingAction"}]}}}),t._v(" "),a("p",[t._v("Update the time of the state if the time_progress attribute of the given EnumerableAction is True.")]),t._v(" "),a("h3",{attrs:{id:"update-time-simulation-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-time-simulation-3"}},[t._v("#")]),t._v(" update_time_simulation "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_time_simulation",sig:{params:[{name:"self"},{name:"state",annotation:"State"},{name:"action",annotation:"SchedulingAction"}]}}}),t._v(" "),a("p",[t._v("In a simulated scheduling environment, update the time of the state if the time_progress attribute of the\ngiven EnumerableAction is True.")]),t._v(" "),a("h3",{attrs:{id:"update-time-uncertain-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-time-uncertain-3"}},[t._v("#")]),t._v(" update_time_uncertain "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_time_uncertain",sig:{params:[{name:"self"},{name:"states",annotation:"DiscreteDistribution[State]"},{name:"action",annotation:"SchedulingAction"}]}}}),t._v(" "),a("p",[t._v("Update the time of the state if the time_progress attribute of the given EnumerableAction is True.")]),t._v(" "),a("h3",{attrs:{id:"add-to-current-conditions-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#add-to-current-conditions-6"}},[t._v("#")]),t._v(" _add_to_current_conditions "),a("Badge",{attrs:{text:"WithConditionalTasks",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_add_to_current_conditions",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"state"}]}}}),t._v(" "),a("p",[t._v("Samples completion conditions for a given task and add these conditions to the list of conditions in the\ngiven state. This function should be called when a task complete.")]),t._v(" "),a("h3",{attrs:{id:"check-value-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#check-value-12"}},[t._v("#")]),t._v(" _check_value "),a("Badge",{attrs:{text:"Rewards",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_check_value",sig:{params:[{name:"self"},{name:"value",annotation:"Value[D.T_value]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that a value is compliant with its reward specification.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("This function returns always True by default because any kind of reward should be accepted at this level.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-202"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-202"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("value")]),t._v(": The value to check.")])]),t._v(" "),a("h4",{attrs:{id:"returns-316"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-316"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the value is compliant (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"get-action-space-17"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-17"}},[t._v("#")]),t._v(" _get_action_space "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_action_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) domain action space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._get_action_space()")]),t._v(" internally calls "),a("code",[t._v("Events._get_action_space_()")]),t._v(" the first time and\nautomatically caches its value to make future calls more efficient (since the action space is assumed to be\nconstant).")]),t._v(" "),a("h4",{attrs:{id:"returns-317"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-317"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The action space.")]),t._v(" "),a("h3",{attrs:{id:"get-action-space-18"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-18"}},[t._v("#")]),t._v(" _get_action_space_ "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_action_space_",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("To be implemented if needed one day.")]),t._v(" "),a("h3",{attrs:{id:"get-all-resources-skills-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-all-resources-skills-6"}},[t._v("#")]),t._v(" _get_all_resources_skills "),a("Badge",{attrs:{text:"WithResourceSkills",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_all_resources_skills",sig:{params:[{name:"self"}],return:"Dict[str, Dict[str, Any]]"}}}),t._v(" "),a("p",[t._v("Return a nested dictionary where the first key is the name of a resource type or resource unit\nand the second key is the name of a skill. The value defines the details of the skill.\nE.g. {unit: {skill: (detail of skill)}}")]),t._v(" "),a("h3",{attrs:{id:"get-all-tasks-skills-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-all-tasks-skills-6"}},[t._v("#")]),t._v(" _get_all_tasks_skills "),a("Badge",{attrs:{text:"WithResourceSkills",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_all_tasks_skills",sig:{params:[{name:"self"}],return:"Dict[int, Dict[int, Dict[str, Any]]]"}}}),t._v(" "),a("p",[t._v("Return a nested dictionary where the first key is the name of a task\nand the second key is the name of a skill. The value defines the details of the skill.\nE.g. {task: {skill: (detail of skill)}}")]),t._v(" "),a("h3",{attrs:{id:"get-all-unconditional-tasks-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-all-unconditional-tasks-6"}},[t._v("#")]),t._v(" _get_all_unconditional_tasks "),a("Badge",{attrs:{text:"WithConditionalTasks",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_all_unconditional_tasks",sig:{params:[{name:"self"}],return:"Set[int]"}}}),t._v(" "),a("p",[t._v("Returns the set of all task ids for which there are no conditions. These tasks are to be considered at\nthe start of a project (i.e. in the initial state).")]),t._v(" "),a("h3",{attrs:{id:"get-applicable-actions-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-12"}},[t._v("#")]),t._v(" _get_applicable_actions "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_applicable_actions",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history), or in\nthe internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._get_applicable_actions()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_applicable_actions_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-203"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-203"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-318"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-318"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of applicable actions.")]),t._v(" "),a("h3",{attrs:{id:"get-applicable-actions-from-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-from-6"}},[t._v("#")]),t._v(" _get_applicable_actions_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_applicable_actions_from",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Returns the action space from a state.\nTODO : think about a way to avoid the instaceof usage.")]),t._v(" "),a("h3",{attrs:{id:"get-available-tasks-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-available-tasks-6"}},[t._v("#")]),t._v(" _get_available_tasks "),a("Badge",{attrs:{text:"WithConditionalTasks",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_available_tasks",sig:{params:[{name:"self"},{name:"state"}],return:"Set[int]"}}}),t._v(" "),a("p",[t._v("Returns the set of all task ids that can be considered under the conditions defined in the given state.\nNote that the set will contains all ids for all tasks in the domain that meet the conditions, that is tasks\nthat are remaining, or that have been completed, paused or started / resumed.")]),t._v(" "),a("h3",{attrs:{id:"get-enabled-events-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-12"}},[t._v("#")]),t._v(" _get_enabled_events "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_enabled_events",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"Space[D.T_event]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory), or in the internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._get_enabled_events()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_enabled_events_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-204"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-204"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-319"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-319"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of enabled events.")]),t._v(" "),a("h3",{attrs:{id:"get-enabled-events-from-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-from-6"}},[t._v("#")]),t._v(" _get_enabled_events_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_enabled_events_from",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"Space[D.T_event]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._get_enabled_events()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("h4",{attrs:{id:"parameters-205"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-205"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-320"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-320"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of enabled events.")]),t._v(" "),a("h3",{attrs:{id:"get-goals-17"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-goals-17"}},[t._v("#")]),t._v(" _get_goals "),a("Badge",{attrs:{text:"Goals",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_goals",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) domain goals space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Goals._get_goals()")]),t._v(" internally calls "),a("code",[t._v("Goals._get_goals_()")]),t._v(" the first time and automatically caches\nits value to make future calls more efficient (since the goals space is assumed to be constant).")]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Goal states are assumed to be fully observable (i.e. observation = state) so that there is never uncertainty\nabout whether the goal has been reached or not. This assumption guarantees that any policy that does not\nreach the goal with certainty incurs in infinite expected cost. - "),a("em",[t._v("Geffner, 2013: A Concise Introduction to\nModels and Methods for Automated Planning")])])]),t._v(" "),a("h4",{attrs:{id:"returns-321"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-321"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The goals space.")]),t._v(" "),a("h3",{attrs:{id:"get-goals-18"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-goals-18"}},[t._v("#")]),t._v(" _get_goals_ "),a("Badge",{attrs:{text:"Goals",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_goals_",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the domain goals space (finite or infinite set).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Goals._get_goals()")]),t._v(", the difference being that the result is\nnot cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-322"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-322"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The goals space.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-17"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-17"}},[t._v("#")]),t._v(" _get_initial_state "),a("Badge",{attrs:{text:"DeterministicInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_initial_state",sig:{params:[{name:"self"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("Get the (cached) initial state.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("DeterministicInitialized._get_initial_state()")]),t._v(" internally\ncalls "),a("code",[t._v("DeterministicInitialized._get_initial_state_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the initial state is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-323"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-323"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The initial state.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-18"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-18"}},[t._v("#")]),t._v(" _get_initial_state_ "),a("Badge",{attrs:{text:"DeterministicInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_initial_state_",sig:{params:[{name:"self"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("Create and return an empty initial state")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-distribution-17"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-distribution-17"}},[t._v("#")]),t._v(" _get_initial_state_distribution "),a("Badge",{attrs:{text:"UncertainInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_initial_state_distribution",sig:{params:[{name:"self"}],return:"Distribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("Get the (cached) probability distribution of initial states.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("UncertainInitialized._get_initial_state_distribution()")]),t._v(" internally\ncalls "),a("code",[t._v("UncertainInitialized._get_initial_state_distribution_()")]),t._v(" the first time and automatically caches its value\nto make future calls more efficient (since the initial state distribution is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-324"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-324"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of initial states.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-distribution-18"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-distribution-18"}},[t._v("#")]),t._v(" _get_initial_state_distribution_ "),a("Badge",{attrs:{text:"UncertainInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_initial_state_distribution_",sig:{params:[{name:"self"}],return:"Distribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("Get the probability distribution of initial states.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("UncertainInitialized._get_initial_state_distribution()")]),t._v(", the\ndifference being that the result is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-325"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-325"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of initial states.")]),t._v(" "),a("h3",{attrs:{id:"get-max-horizon-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-max-horizon-6"}},[t._v("#")]),t._v(" _get_max_horizon "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_max_horizon",sig:{params:[{name:"self"}],return:"int"}}}),t._v(" "),a("p",[t._v("Return the maximum time horizon (int)")]),t._v(" "),a("h3",{attrs:{id:"get-memory-maxlen-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-memory-maxlen-11"}},[t._v("#")]),t._v(" _get_memory_maxlen "),a("Badge",{attrs:{text:"History",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_memory_maxlen",sig:{params:[{name:"self"}],return:"int"}}}),t._v(" "),a("p",[t._v("Get the (cached) memory max length.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("FiniteHistory._get_memory_maxlen()")]),t._v(" internally calls "),a("code",[t._v("FiniteHistory._get_memory_maxlen_()")]),t._v(" the first\ntime and automatically caches its value to make future calls more efficient (since the memory max length is\nassumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-326"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-326"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The memory max length.")]),t._v(" "),a("h3",{attrs:{id:"get-memory-maxlen-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-memory-maxlen-12"}},[t._v("#")]),t._v(" _get_memory_maxlen_ "),a("Badge",{attrs:{text:"FiniteHistory",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_memory_maxlen_",sig:{params:[{name:"self"}],return:"int"}}}),t._v(" "),a("p",[t._v("Get the memory max length.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("FiniteHistory._get_memory_maxlen()")]),t._v(", the difference being that\nthe result is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-327"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-327"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The memory max length.")]),t._v(" "),a("h3",{attrs:{id:"get-mode-costs-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-mode-costs-6"}},[t._v("#")]),t._v(" _get_mode_costs "),a("Badge",{attrs:{text:"WithModeCosts",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_mode_costs",sig:{params:[{name:"self"}],return:"Dict[int, Dict[int, float]]"}}}),t._v(" "),a("p",[t._v("Return a nested dictionary where the first key is the id of a task (int), the second key the id of a mode\nand the value indicates the cost of execution the task in the mode.")]),t._v(" "),a("h3",{attrs:{id:"get-next-state-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-next-state-6"}},[t._v("#")]),t._v(" _get_next_state "),a("Badge",{attrs:{text:"DeterministicTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_next_state",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("This function will be used if the domain is defined with DeterministicTransitions. This function will be ignored\nif the domain is defined as having UncertainTransitions or Simulation.")]),t._v(" "),a("h3",{attrs:{id:"get-next-state-distribution-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-next-state-distribution-9"}},[t._v("#")]),t._v(" _get_next_state_distribution "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_next_state_distribution",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"Distribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("This function will be used if the domain is defined with UncertainTransitions. This function will be ignored\nif the domain is defined as a Simulation. This function may also be used by uncertainty-specialised solvers\non deterministic domains.")]),t._v(" "),a("h3",{attrs:{id:"get-objectives-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-objectives-6"}},[t._v("#")]),t._v(" _get_objectives "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_objectives",sig:{params:[{name:"self"}],return:"List[SchedulingObjectiveEnum]"}}}),t._v(" "),a("p",[t._v("Return the objectives to consider as a list. The items should be of SchedulingObjectiveEnum type.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-12"}},[t._v("#")]),t._v(" _get_observation "),a("Badge",{attrs:{text:"TransformedObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Get the deterministic observation given a state and action.")]),t._v(" "),a("h4",{attrs:{id:"parameters-206"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-206"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-328"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-328"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-distribution-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-distribution-12"}},[t._v("#")]),t._v(" _get_observation_distribution "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation_distribution",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"Distribution[D.T_agent[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the probability distribution of the observation given a state and action.")]),t._v(" "),a("p",[t._v("In mathematical terms (discrete case), given an action "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.197ex",height:"1.02ex",viewBox:"0 -441 529 451"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})])])])])]),t._v(", this function represents: "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.078ex",height:"2.262ex",viewBox:"0 -750 4012.7 1000"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"50",d:"M287 628Q287 635 230 637Q206 637 199 638T192 648Q192 649 194 659Q200 679 203 681T397 683Q587 682 600 680Q664 669 707 631T751 530Q751 453 685 389Q616 321 507 303Q500 302 402 301H307L277 182Q247 66 247 59Q247 55 248 54T255 50T272 48T305 46H336Q342 37 342 35Q342 19 335 5Q330 0 319 0Q316 0 282 1T182 2Q120 2 87 2T51 1Q33 1 33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM645 554Q645 567 643 575T634 597T609 619T560 635Q553 636 480 637Q463 637 445 637T416 636T404 636Q391 635 386 627Q384 621 367 550T332 412T314 344Q314 342 395 342H407H430Q542 342 590 392Q617 419 631 471T645 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(751, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(1140, 0)"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1903, 0)"}},[a("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(2181, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2650, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(3094.7, 0)"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3623.7, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(",\nwhere "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.05ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.726ex",height:"1.643ex",viewBox:"0 -704 763 726"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})])])])])]),t._v(" is the random variable of the observation.")],1),t._v(" "),a("h4",{attrs:{id:"parameters-207"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-207"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-329"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-329"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-space-17"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-17"}},[t._v("#")]),t._v(" _get_observation_space "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) observation space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(" internally\ncalls "),a("code",[t._v("PartiallyObservable._get_observation_space_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the observation space is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-330"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-330"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The observation space.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-space-18"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-18"}},[t._v("#")]),t._v(" _get_observation_space_ "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation_space_",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("To be implemented if needed one day.")]),t._v(" "),a("h3",{attrs:{id:"get-preallocations-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-preallocations-6"}},[t._v("#")]),t._v(" _get_preallocations "),a("Badge",{attrs:{text:"WithPreallocations",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_preallocations",sig:{params:[{name:"self"}],return:"Dict[int, List[str]]"}}}),t._v(" "),a("p",[t._v("Return a dictionary where the key is the id of a task (int)\nand the value indicates the pre-allocated resources for this task (as a list of str)")]),t._v(" "),a("h3",{attrs:{id:"get-predecessors-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-predecessors-6"}},[t._v("#")]),t._v(" _get_predecessors "),a("Badge",{attrs:{text:"WithPrecedence",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_predecessors",sig:{params:[{name:"self"}],return:"Dict[int, List[int]]"}}}),t._v(" "),a("p",[t._v("Return the predecessors of the task. Successors are given as a list for a task given as a key.")]),t._v(" "),a("h3",{attrs:{id:"get-resource-cost-per-time-unit-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-resource-cost-per-time-unit-6"}},[t._v("#")]),t._v(" _get_resource_cost_per_time_unit "),a("Badge",{attrs:{text:"WithResourceCosts",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_resource_cost_per_time_unit",sig:{params:[{name:"self"}],return:"Dict[str, float]"}}}),t._v(" "),a("p",[t._v("Return a dictionary where the key is the name of a resource (str)\nand the value indicates the cost of using this resource per time unit.")]),t._v(" "),a("h3",{attrs:{id:"get-resource-renewability-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-resource-renewability-6"}},[t._v("#")]),t._v(" _get_resource_renewability "),a("Badge",{attrs:{text:"MixedRenewable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_resource_renewability",sig:{params:[{name:"self"}],return:"Dict[str, bool]"}}}),t._v(" "),a("p",[t._v("Return a dictionary where the key is a resource name (string)\nand the value whether this resource is renewable (True) or not (False).")]),t._v(" "),a("h3",{attrs:{id:"get-resource-type-for-unit-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-resource-type-for-unit-6"}},[t._v("#")]),t._v(" _get_resource_type_for_unit "),a("Badge",{attrs:{text:"WithResourceUnits",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_resource_type_for_unit",sig:{params:[{name:"self"}],return:"Dict[str, str]"}}}),t._v(" "),a("p",[t._v("Return a dictionary where the key is a resource unit name and the value a resource type name.\nAn empty dictionary can be used if there are no resource unit matching a resource type.")]),t._v(" "),a("h3",{attrs:{id:"get-resource-types-names-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-resource-types-names-6"}},[t._v("#")]),t._v(" _get_resource_types_names "),a("Badge",{attrs:{text:"WithResourceTypes",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_resource_types_names",sig:{params:[{name:"self"}],return:"List[str]"}}}),t._v(" "),a("p",[t._v("Return the names (string) of all resource types as a list.")]),t._v(" "),a("h3",{attrs:{id:"get-resource-units-names-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-resource-units-names-6"}},[t._v("#")]),t._v(" _get_resource_units_names "),a("Badge",{attrs:{text:"WithResourceUnits",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_resource_units_names",sig:{params:[{name:"self"}],return:"List[str]"}}}),t._v(" "),a("p",[t._v("Return the names (string) of all resource units as a list.")]),t._v(" "),a("h3",{attrs:{id:"get-successors-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-successors-6"}},[t._v("#")]),t._v(" _get_successors "),a("Badge",{attrs:{text:"WithPrecedence",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_successors",sig:{params:[{name:"self"}],return:"Dict[int, List[int]]"}}}),t._v(" "),a("p",[t._v("Return the successors of the tasks. Successors are given as a list for a task given as a key.")]),t._v(" "),a("h3",{attrs:{id:"get-task-existence-conditions-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-task-existence-conditions-6"}},[t._v("#")]),t._v(" _get_task_existence_conditions "),a("Badge",{attrs:{text:"WithConditionalTasks",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_task_existence_conditions",sig:{params:[{name:"self"}],return:"Dict[int, List[int]]"}}}),t._v(" "),a("p",[t._v("Return a dictionary where the key is a task id and the value a list of conditions to be respected (True)\nfor the task to be part of the schedule. If a task has no entry in the dictionary,\nthere is no conditions for that task.")]),t._v(" "),a("p",[t._v("Example:\nreturn\n{\n20: [get_all_condition_items().NC_PART_1_OPERATION_1],\n21: [get_all_condition_items().HARDWARE_ISSUE_MACHINE_A]\n22: [get_all_condition_items().NC_PART_1_OPERATION_1, get_all_condition_items().NC_PART_1_OPERATION_2]\n}e")]),t._v(" "),a("h3",{attrs:{id:"get-task-paused-non-renewable-resource-returned-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-task-paused-non-renewable-resource-returned-6"}},[t._v("#")]),t._v(" _get_task_paused_non_renewable_resource_returned "),a("Badge",{attrs:{text:"WithPreemptivity",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_task_paused_non_renewable_resource_returned",sig:{params:[{name:"self"}],return:"Dict[int, bool]"}}}),t._v(" "),a("p",[t._v("Return a dictionary where the key is a task id and the value is of type bool indicating\nif the non-renewable resources are consumed when the task is paused (False) or made available again (True).\nE.g. {\n2: False # if paused, non-renewable resource will be consumed\n5: True # if paused, the non-renewable resource will be available again\n}")]),t._v(" "),a("h3",{attrs:{id:"get-task-preemptivity-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-task-preemptivity-6"}},[t._v("#")]),t._v(" _get_task_preemptivity "),a("Badge",{attrs:{text:"WithPreemptivity",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_task_preemptivity",sig:{params:[{name:"self"}],return:"Dict[int, bool]"}}}),t._v(" "),a("p",[t._v("Return a dictionary where the key is a task id and the value a boolean indicating\nif the task can be paused or stopped.\nE.g. {\n1: False\n2: True\n3: False\n4: False\n5: True\n6: False\n}")]),t._v(" "),a("h3",{attrs:{id:"get-task-progress-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-task-progress-6"}},[t._v("#")]),t._v(" _get_task_progress "),a("Badge",{attrs:{text:"CustomTaskProgress",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_task_progress",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"t_from",annotation:"int"},{name:"t_to",annotation:"int"},{name:"mode",annotation:"Optional[int]"},{name:"sampled_duration",default:"None",annotation:"Optional[int]"}],return:"float"}}}),t._v(" "),a("h4",{attrs:{id:"returns-331"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-331"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The task progress (float) between t_from and t_to.")]),t._v(" "),a("h3",{attrs:{id:"get-task-resuming-type-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-task-resuming-type-6"}},[t._v("#")]),t._v(" _get_task_resuming_type "),a("Badge",{attrs:{text:"WithPreemptivity",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_task_resuming_type",sig:{params:[{name:"self"}],return:"Dict[int, ResumeType]"}}}),t._v(" "),a("p",[t._v("Return a dictionary where the key is a task id and the value is of type ResumeType indicating\nif the task can be resumed (restarted from where it was paused with no time loss)\nor restarted (restarted from the start).\nE.g. {\n1: ResumeType.NA\n2: ResumeType.Resume\n3: ResumeType.NA\n4: ResumeType.NA\n5: ResumeType.Restart\n6: ResumeType.NA\n}")]),t._v(" "),a("h3",{attrs:{id:"get-tasks-ids-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-tasks-ids-3"}},[t._v("#")]),t._v(" _get_tasks_ids "),a("Badge",{attrs:{text:"MultiMode",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_tasks_ids",sig:{params:[{name:"self"}],return:"Union[Set[int], Dict[int, Any], List[int]]"}}}),t._v(" "),a("p",[t._v("Return a set or dict of int = id of tasks")]),t._v(" "),a("h3",{attrs:{id:"get-tasks-modes-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-tasks-modes-3"}},[t._v("#")]),t._v(" _get_tasks_modes "),a("Badge",{attrs:{text:"MultiMode",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_tasks_modes",sig:{params:[{name:"self"}],return:"Dict[int, Dict[int, ModeConsumption]]"}}}),t._v(" "),a("p",[t._v("Return a nested dictionary where the first key is a task id and the second key is a mode id.\nThe value is a Mode object defining the resource consumption.\nIf the domain is an instance of VariableResourceConsumption, VaryingModeConsumption objects should be used.\nIf this is not the case (i.e. the domain is an instance of ConstantResourceConsumption),\nthen ConstantModeConsumption should be used.")]),t._v(" "),a("p",[t._v("E.g. with constant resource consumption\n{\n12: {\n1: ConstantModeConsumption({'rt_1': 2, 'rt_2': 0, 'ru_1': 1}),\n2: ConstantModeConsumption({'rt_1': 0, 'rt_2': 3, 'ru_1': 1}),\n}\n}")]),t._v(" "),a("p",[t._v("E.g. with time varying resource consumption\n{\n12: {\n1: VaryingModeConsumption({'rt_1': [2,2,2,2,3], 'rt_2': [0,0,0,0,0], 'ru_1': [1,1,1,1,1]}),\n2: VaryingModeConsumption({'rt_1': [1,1,1,1,2,2,2], 'rt_2': [0,0,0,0,0,0,0], 'ru_1': [1,1,1,1,1,1,1]}),\n}\n}")]),t._v(" "),a("h3",{attrs:{id:"get-time-lags-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-time-lags-6"}},[t._v("#")]),t._v(" _get_time_lags "),a("Badge",{attrs:{text:"WithTimeLag",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_time_lags",sig:{params:[{name:"self"}],return:"Dict[int, Dict[int, TimeLag]]"}}}),t._v(" "),a("p",[t._v("Return nested dictionaries where the first key is the id of a task (int)\nand the second key is the id of another task (int).\nThe value is a TimeLag object containing the MINIMUM and MAXIMUM time (int) that needs to separate the end\nof the first task to the start of the second task.")]),t._v(" "),a("p",[t._v("e.g.\n{\n12:{\n15: TimeLag(5, 10),\n16: TimeLag(5, 20),\n17: MinimumOnlyTimeLag(5),\n18: MaximumOnlyTimeLag(15),\n}\n}")]),t._v(" "),a("h4",{attrs:{id:"returns-332"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-332"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("A dictionary of TimeLag objects.")]),t._v(" "),a("h3",{attrs:{id:"get-time-window-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-time-window-6"}},[t._v("#")]),t._v(" _get_time_window "),a("Badge",{attrs:{text:"WithTimeWindow",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_time_window",sig:{params:[{name:"self"}],return:"Dict[int, TimeWindow]"}}}),t._v(" "),a("p",[t._v("Return a dictionary where the key is the id of a task (int)\nand the value is a TimeWindow object.\nNote that the max time horizon needs to be provided to the TimeWindow constructors\ne.g.\n{\n1: TimeWindow(10, 15, 20, 30, self.get_max_horizon())\n2: EmptyTimeWindow(self.get_max_horizon())\n3: EndTimeWindow(20, 25, self.get_max_horizon())\n4: EndBeforeOnlyTimeWindow(40, self.get_max_horizon())\n}")]),t._v(" "),a("h4",{attrs:{id:"returns-333"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-333"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("A dictionary of TimeWindow objects.")]),t._v(" "),a("h3",{attrs:{id:"get-variable-resource-consumption-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-variable-resource-consumption-6"}},[t._v("#")]),t._v(" _get_variable_resource_consumption "),a("Badge",{attrs:{text:"VariableResourceConsumption",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_variable_resource_consumption",sig:{params:[{name:"self"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Return true if the domain has variable resource consumption,\nfalse if the consumption of resource does not vary in time for any of the tasks")]),t._v(" "),a("h3",{attrs:{id:"init-memory-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#init-memory-6"}},[t._v("#")]),t._v(" _init_memory "),a("Badge",{attrs:{text:"History",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_init_memory",sig:{params:[{name:"self"},{name:"state",default:"None",annotation:"Optional[D.T_state]"}],return:"D.T_memory[D.T_state]"}}}),t._v(" "),a("p",[t._v("Initialize memory (possibly with a state) according to its specification and return it.")]),t._v(" "),a("p",[t._v("This function is automatically called by "),a("code",[t._v("Initializable._reset()")]),t._v(" to reinitialize the internal memory whenever\nthe domain is used as an environment.")]),t._v(" "),a("h4",{attrs:{id:"parameters-208"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-208"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": An optional state to initialize the memory with (typically the initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-334"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-334"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The new initialized memory.")]),t._v(" "),a("h3",{attrs:{id:"is-action-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-action-12"}},[t._v("#")]),t._v(" _is_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_action",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an event is an action (i.e. a controllable event for the agents).")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\naction space provided by "),a("code",[t._v("Events._get_action_space()")]),t._v(", but it can be overridden for faster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-209"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-209"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("event")]),t._v(": The event to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-335"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-335"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is an action (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-applicable-action-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-12"}},[t._v("#")]),t._v(" _is_applicable_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_applicable_action",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an action is applicable in the given memory (state or history), or in the internal one if\nomitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._is_applicable_action()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_applicable_action_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-210"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-210"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-336"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-336"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the action is applicable (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-applicable-action-from-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-from-6"}},[t._v("#")]),t._v(" _is_applicable_action_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_applicable_action_from",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an action is applicable in the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._is_applicable_action()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the space of\napplicable actions provided by "),a("code",[t._v("Events._get_applicable_actions_from()")]),t._v(", but it can be overridden for faster\nimplementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-211"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-211"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-337"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-337"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the action is applicable (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-enabled-event-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-12"}},[t._v("#")]),t._v(" _is_enabled_event "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_enabled_event",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an uncontrollable event is enabled in the given memory (state or history), or in the\ninternal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._is_enabled_event()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_enabled_event_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead\nof the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-212"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-212"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-338"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-338"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is enabled (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-enabled-event-from-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-from-6"}},[t._v("#")]),t._v(" _is_enabled_event_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_enabled_event_from",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an event is enabled in the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._is_enabled_event()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the space of\nenabled events provided by "),a("code",[t._v("Events._get_enabled_events_from()")]),t._v(", but it can be overridden for faster\nimplementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-213"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-213"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-339"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-339"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is enabled (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-goal-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-goal-12"}},[t._v("#")]),t._v(" _is_goal "),a("Badge",{attrs:{text:"Goals",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_goal",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"D.T_agent[D.T_predicate]"}}}),t._v(" "),a("p",[t._v("Indicate whether an observation belongs to the goals.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\ngoals space provided by "),a("code",[t._v("Goals._get_goals()")]),t._v(", but it can be overridden for faster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-214"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-214"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-340"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-340"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the observation is a goal (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-observation-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-observation-12"}},[t._v("#")]),t._v(" _is_observation "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_observation",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that an observation indeed belongs to the domain observation space.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\nobservation space provided by "),a("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(", but it can be overridden for\nfaster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-215"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-215"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-341"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-341"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the observation belongs to the domain observation space (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-transition-value-dependent-on-next-state-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-transition-value-dependent-on-next-state-11"}},[t._v("#")]),t._v(" _is_transition_value_dependent_on_next_state "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_transition_value_dependent_on_next_state",sig:{params:[{name:"self"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether _get_transition_value() requires the next_state parameter for its computation (cached).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("UncertainTransitions._is_transition_value_dependent_on_next_state()")]),t._v(" internally\ncalls "),a("code",[t._v("UncertainTransitions._is_transition_value_dependent_on_next_state_()")]),t._v(" the first time and automatically\ncaches its value to make future calls more efficient (since the returned value is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-342"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-342"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the transition value computation depends on next_state (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-transition-value-dependent-on-next-state-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-transition-value-dependent-on-next-state-12"}},[t._v("#")]),t._v(" _is_transition_value_dependent_on_next_state_ "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_transition_value_dependent_on_next_state_",sig:{params:[{name:"self"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether _get_transition_value() requires the next_state parameter for its computation.")]),t._v(" "),a("p",[t._v("This is a helper function called by default\nfrom "),a("code",[t._v("UncertainTransitions._is_transition_value_dependent_on_next_state()")]),t._v(", the difference being that the result\nis not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-343"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-343"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the transition value computation depends on next_state (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"reset-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#reset-12"}},[t._v("#")]),t._v(" _reset "),a("Badge",{attrs:{text:"Initializable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_reset",sig:{params:[{name:"self"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Reset the state of the environment and return an initial observation.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Initializable._reset()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Initializable._state_reset()")]),t._v(" (which returns an initial state). The boilerplate code automatically stores\nthe initial state into the "),a("code",[t._v("_memory")]),t._v(" attribute and samples a corresponding observation.")]),t._v(" "),a("h4",{attrs:{id:"returns-344"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-344"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("An initial observation.")]),t._v(" "),a("h3",{attrs:{id:"sample-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample-12"}},[t._v("#")]),t._v(" _sample "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_sample",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Sample one transition of the simulator's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Simulation._sample()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Simulation._state_sample()")]),t._v(" (which returns a transition outcome). The boilerplate code automatically\nsamples an observation corresponding to the sampled next state.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing simulator needs to be wrapped instead of implemented fully in scikit-decide (e.g. a\nsimulator), it is recommended to overwrite "),a("code",[t._v("Simulation._sample()")]),t._v(" to call the external simulator and not use\nthe "),a("code",[t._v("Simulation._state_sample()")]),t._v(" helper function.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-216"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-216"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-345"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-345"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of the sampled transition.")]),t._v(" "),a("h3",{attrs:{id:"sample-completion-conditions-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample-completion-conditions-6"}},[t._v("#")]),t._v(" _sample_completion_conditions "),a("Badge",{attrs:{text:"WithConditionalTasks",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_sample_completion_conditions",sig:{params:[{name:"self"},{name:"task",annotation:"int"}],return:"List[int]"}}}),t._v(" "),a("p",[t._v("Samples the condition distributions associated with the given task and return a list of sampled\nconditions.")]),t._v(" "),a("h3",{attrs:{id:"sample-quantity-resource-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample-quantity-resource-6"}},[t._v("#")]),t._v(" _sample_quantity_resource "),a("Badge",{attrs:{text:"UncertainResourceAvailabilityChanges",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_sample_quantity_resource",sig:{params:[{name:"self"},{name:"resource",annotation:"str"},{name:"time",annotation:"int"},{name:"**kwargs"}],return:"int"}}}),t._v(" "),a("p",[t._v("Sample an amount of resource availability (int) for the given resource\n(either resource type or resource unit) at the given time. This number should be the sum of the number of\nresource available at time t and the number of resource of this type consumed so far).")]),t._v(" "),a("h3",{attrs:{id:"sample-task-duration-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample-task-duration-6"}},[t._v("#")]),t._v(" _sample_task_duration "),a("Badge",{attrs:{text:"SimulatedTaskDuration",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_sample_task_duration",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"mode",default:"1",annotation:"Optional[int]"},{name:"progress_from",default:"0.0",annotation:"Optional[float]"}],return:"int"}}}),t._v(" "),a("p",[t._v("Return a task duration for the given task in the given mode.")]),t._v(" "),a("h3",{attrs:{id:"set-memory-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#set-memory-12"}},[t._v("#")]),t._v(" _set_memory "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_set_memory",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"None"}}}),t._v(" "),a("p",[t._v("Set internal memory attribute "),a("code",[t._v("_memory")]),t._v(" to given one.")]),t._v(" "),a("p",[t._v('This can be useful to set a specific "starting point" before doing a rollout with\nsuccessive '),a("code",[t._v("Environment._step()")]),t._v(" calls.")]),t._v(" "),a("h4",{attrs:{id:"parameters-217"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-217"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to set internally.")])]),t._v(" "),a("h4",{attrs:{id:"example-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#example-12"}},[t._v("#")]),t._v(" Example")]),t._v(" "),a("div",{staticClass:"language-python extra-class"},[a("pre",{pre:!0,attrs:{class:"language-python"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Set simulation_domain memory to my_state (assuming Markovian domain)")]),t._v("\nsimulation_domain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("_set_memory"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("my_state"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Start a 100-steps rollout from here (applying my_action at every step)")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("for")]),t._v(" _ "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("in")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("range")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n simulation_domain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("_step"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("my_action"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("h3",{attrs:{id:"state-reset-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#state-reset-6"}},[t._v("#")]),t._v(" _state_reset "),a("Badge",{attrs:{text:"Initializable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_state_reset",sig:{params:[{name:"self"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("Reset the state of the environment and return an initial state.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Initializable._reset()")]),t._v(". It focuses on the state level, as\nopposed to the observation one for the latter.")]),t._v(" "),a("h4",{attrs:{id:"returns-346"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-346"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("An initial state.")]),t._v(" "),a("h3",{attrs:{id:"state-sample-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#state-sample-6"}},[t._v("#")]),t._v(" _state_sample "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_state_sample",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"TransitionOutcome[D.T_state, D.T_agent[Value[D.T_value]], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("This function will be used if the domain is defined as a Simulation (i.e. transitions are defined by call to\na simulation). This function may also be used by simulation-based solvers on non-Simulation domains.")]),t._v(" "),a("h3",{attrs:{id:"state-step-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#state-step-6"}},[t._v("#")]),t._v(" _state_step "),a("Badge",{attrs:{text:"Environment",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_state_step",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"TransitionOutcome[D.T_state, D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Compute one step of the transition's dynamics.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Environment._step()")]),t._v(". It focuses on the state level, as opposed\nto the observation one for the latter.")]),t._v(" "),a("h4",{attrs:{id:"parameters-218"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-218"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the current memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-347"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-347"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The transition outcome of this step.")]),t._v(" "),a("h3",{attrs:{id:"step-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#step-12"}},[t._v("#")]),t._v(" _step "),a("Badge",{attrs:{text:"Environment",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_step",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Run one step of the environment's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Environment._step()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Environment._state_step()")]),t._v(" (which returns a transition outcome). The boilerplate code automatically stores\nnext state into the "),a("code",[t._v("_memory")]),t._v(" attribute and samples a corresponding observation.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing environment needs to be wrapped instead of implemented fully in scikit-decide (e.g. compiled\nATARI games), it is recommended to overwrite "),a("code",[t._v("Environment._step()")]),t._v(" to call the external environment and not\nuse the "),a("code",[t._v("Environment._state_step()")]),t._v(" helper function.")])]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Before calling "),a("code",[t._v("Environment._step()")]),t._v(" the first time or when the end of an episode is\nreached, "),a("code",[t._v("Initializable._reset()")]),t._v(" must be called to reset the environment's state.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-219"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-219"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the current memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-348"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-348"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of this step.")])],1)}),[],!1,null,null,null);e.default=n.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[44],{575:function(t,e,a){"use strict";a.r(e);var s=a(38),n=Object(s.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"builders-domain-scheduling-scheduling-domains"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#builders-domain-scheduling-scheduling-domains"}},[t._v("#")]),t._v(" builders.domain.scheduling.scheduling_domains")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("Domain specification")]),t._v(" "),a("skdecide-summary")],1),t._v(" "),a("h2",{attrs:{id:"schedulingobjectiveenum"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#schedulingobjectiveenum"}},[t._v("#")]),t._v(" SchedulingObjectiveEnum")]),t._v(" "),a("p",[t._v("Enum defining the different scheduling objectives:")]),t._v(" "),a("ul",[a("li",[t._v("MAKESPAN: makespan (to be minimize)")]),t._v(" "),a("li",[t._v("COST: cost of resources (to be minimized)")])]),t._v(" "),a("h2",{attrs:{id:"d"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#d"}},[t._v("#")]),t._v(" D")]),t._v(" "),a("p",[t._v("Base class for any scheduling statefull domain")]),t._v(" "),a("h3",{attrs:{id:"check-value"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#check-value"}},[t._v("#")]),t._v(" check_value "),a("Badge",{attrs:{text:"Rewards",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"check_value",sig:{params:[{name:"self"},{name:"value",annotation:"Value[D.T_value]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that a value is compliant with its reward specification.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("This function returns always True by default because any kind of reward should be accepted at this level.")])]),t._v(" "),a("h4",{attrs:{id:"parameters"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("value")]),t._v(": The value to check.")])]),t._v(" "),a("h4",{attrs:{id:"returns"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the value is compliant (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"get-action-space"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space"}},[t._v("#")]),t._v(" get_action_space "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_action_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) domain action space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.get_action_space()")]),t._v(" internally calls "),a("code",[t._v("Events._get_action_space_()")]),t._v(" the first time and\nautomatically caches its value to make future calls more efficient (since the action space is assumed to be\nconstant).")]),t._v(" "),a("h4",{attrs:{id:"returns-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-2"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The action space.")]),t._v(" "),a("h3",{attrs:{id:"get-applicable-actions"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions"}},[t._v("#")]),t._v(" get_applicable_actions "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_applicable_actions",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history), or in\nthe internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.get_applicable_actions()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_applicable_actions()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-2"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-3"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of applicable actions.")]),t._v(" "),a("h3",{attrs:{id:"get-enabled-events"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events"}},[t._v("#")]),t._v(" get_enabled_events "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_enabled_events",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"Space[D.T_event]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory), or in the internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.get_enabled_events()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_enabled_events()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead of\nthe memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-3"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-4"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of enabled events.")]),t._v(" "),a("h3",{attrs:{id:"get-goals"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-goals"}},[t._v("#")]),t._v(" get_goals "),a("Badge",{attrs:{text:"Goals",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_goals",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) domain goals space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Goals.get_goals()")]),t._v(" internally calls "),a("code",[t._v("Goals._get_goals_()")]),t._v(" the first time and automatically caches its\nvalue to make future calls more efficient (since the goals space is assumed to be constant).")]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Goal states are assumed to be fully observable (i.e. observation = state) so that there is never uncertainty\nabout whether the goal has been reached or not. This assumption guarantees that any policy that does not\nreach the goal with certainty incurs in infinite expected cost. - "),a("em",[t._v("Geffner, 2013: A Concise Introduction to\nModels and Methods for Automated Planning")])])]),t._v(" "),a("h4",{attrs:{id:"returns-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-5"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The goals space.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state"}},[t._v("#")]),t._v(" get_initial_state "),a("Badge",{attrs:{text:"DeterministicInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_initial_state",sig:{params:[{name:"self"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("Get the (cached) initial state.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("DeterministicInitialized.get_initial_state()")]),t._v(" internally\ncalls "),a("code",[t._v("DeterministicInitialized._get_initial_state_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the initial state is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-6"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The initial state.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-distribution"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-distribution"}},[t._v("#")]),t._v(" get_initial_state_distribution "),a("Badge",{attrs:{text:"UncertainInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_initial_state_distribution",sig:{params:[{name:"self"}],return:"Distribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("Get the (cached) probability distribution of initial states.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("UncertainInitialized.get_initial_state_distribution()")]),t._v(" internally\ncalls "),a("code",[t._v("UncertainInitialized._get_initial_state_distribution_()")]),t._v(" the first time and automatically caches its value\nto make future calls more efficient (since the initial state distribution is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-7"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of initial states.")]),t._v(" "),a("h3",{attrs:{id:"get-observation"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation"}},[t._v("#")]),t._v(" get_observation "),a("Badge",{attrs:{text:"TransformedObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_observation",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Get the deterministic observation given a state and action.")]),t._v(" "),a("h4",{attrs:{id:"parameters-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-4"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-8"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-distribution"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-distribution"}},[t._v("#")]),t._v(" get_observation_distribution "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_observation_distribution",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"Distribution[D.T_agent[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the probability distribution of the observation given a state and action.")]),t._v(" "),a("p",[t._v("In mathematical terms (discrete case), given an action "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.197ex",height:"1.02ex",viewBox:"0 -441 529 451"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})])])])])]),t._v(", this function represents: "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.078ex",height:"2.262ex",viewBox:"0 -750 4012.7 1000"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"50",d:"M287 628Q287 635 230 637Q206 637 199 638T192 648Q192 649 194 659Q200 679 203 681T397 683Q587 682 600 680Q664 669 707 631T751 530Q751 453 685 389Q616 321 507 303Q500 302 402 301H307L277 182Q247 66 247 59Q247 55 248 54T255 50T272 48T305 46H336Q342 37 342 35Q342 19 335 5Q330 0 319 0Q316 0 282 1T182 2Q120 2 87 2T51 1Q33 1 33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM645 554Q645 567 643 575T634 597T609 619T560 635Q553 636 480 637Q463 637 445 637T416 636T404 636Q391 635 386 627Q384 621 367 550T332 412T314 344Q314 342 395 342H407H430Q542 342 590 392Q617 419 631 471T645 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(751, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(1140, 0)"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1903, 0)"}},[a("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(2181, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2650, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(3094.7, 0)"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3623.7, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(",\nwhere "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.05ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.726ex",height:"1.643ex",viewBox:"0 -704 763 726"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})])])])])]),t._v(" is the random variable of the observation.")],1),t._v(" "),a("h4",{attrs:{id:"parameters-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-5"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-9"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-space"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space"}},[t._v("#")]),t._v(" get_observation_space "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_observation_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) observation space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("PartiallyObservable.get_observation_space()")]),t._v(" internally\ncalls "),a("code",[t._v("PartiallyObservable._get_observation_space_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the observation space is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-10"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The observation space.")]),t._v(" "),a("h3",{attrs:{id:"is-action"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-action"}},[t._v("#")]),t._v(" is_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_action",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an event is an action (i.e. a controllable event for the agents).")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\naction space provided by "),a("code",[t._v("Events.get_action_space()")]),t._v(", but it can be overridden for faster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-6"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("event")]),t._v(": The event to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-11"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is an action (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-applicable-action"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action"}},[t._v("#")]),t._v(" is_applicable_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_applicable_action",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an action is applicable in the given memory (state or history), or in the internal one if\nomitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.is_applicable_action()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_applicable_action()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead\nof the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-7"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-12"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the action is applicable (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-enabled-event"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event"}},[t._v("#")]),t._v(" is_enabled_event "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_enabled_event",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an uncontrollable event is enabled in the given memory (state or history), or in the\ninternal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.is_enabled_event()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_enabled_event()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead of\nthe memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-8"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-13"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is enabled (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-goal"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-goal"}},[t._v("#")]),t._v(" is_goal "),a("Badge",{attrs:{text:"Goals",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_goal",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"D.T_agent[D.T_predicate]"}}}),t._v(" "),a("p",[t._v("Indicate whether an observation belongs to the goals.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\ngoals space provided by "),a("code",[t._v("Goals.get_goals()")]),t._v(", but it can be overridden for faster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-9"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-14"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-14"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the observation is a goal (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-observation"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-observation"}},[t._v("#")]),t._v(" is_observation "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_observation",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that an observation indeed belongs to the domain observation space.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\nobservation space provided by "),a("code",[t._v("PartiallyObservable.get_observation_space()")]),t._v(", but it can be overridden for\nfaster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-10"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-15"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-15"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the observation belongs to the domain observation space (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"reset"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#reset"}},[t._v("#")]),t._v(" reset "),a("Badge",{attrs:{text:"Initializable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"reset",sig:{params:[{name:"self"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Reset the state of the environment and return an initial observation.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Initializable.reset()")]),t._v(" provides some boilerplate code and internally calls "),a("code",[t._v("Initializable._reset()")]),t._v("\n(which returns an initial state). The boilerplate code automatically stores the initial state into the "),a("code",[t._v("_memory")]),t._v("\nattribute and samples a corresponding observation.")]),t._v(" "),a("h4",{attrs:{id:"returns-16"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-16"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("An initial observation.")]),t._v(" "),a("h3",{attrs:{id:"sample"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample"}},[t._v("#")]),t._v(" sample "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"sample",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Sample one transition of the simulator's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Simulation.sample()")]),t._v(" provides some boilerplate code and internally calls "),a("code",[t._v("Simulation._sample()")]),t._v("\n(which returns a transition outcome). The boilerplate code automatically samples an observation corresponding to\nthe sampled next state.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing simulator needs to be wrapped instead of implemented fully in scikit-decide (e.g. a\nsimulator), it is recommended to overwrite "),a("code",[t._v("Simulation.sample()")]),t._v(" to call the external simulator and not use\nthe "),a("code",[t._v("Simulation._sample()")]),t._v(" helper function.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-11"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-17"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-17"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of the sampled transition.")]),t._v(" "),a("h3",{attrs:{id:"set-memory"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#set-memory"}},[t._v("#")]),t._v(" set_memory "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"set_memory",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"None"}}}),t._v(" "),a("p",[t._v("Set internal memory attribute "),a("code",[t._v("_memory")]),t._v(" to given one.")]),t._v(" "),a("p",[t._v('This can be useful to set a specific "starting point" before doing a rollout with successive '),a("code",[t._v("Environment.step()")]),t._v("\ncalls.")]),t._v(" "),a("h4",{attrs:{id:"parameters-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-12"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to set internally.")])]),t._v(" "),a("h4",{attrs:{id:"example"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#example"}},[t._v("#")]),t._v(" Example")]),t._v(" "),a("div",{staticClass:"language-python extra-class"},[a("pre",{pre:!0,attrs:{class:"language-python"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Set simulation_domain memory to my_state (assuming Markovian domain)")]),t._v("\nsimulation_domain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("set_memory"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("my_state"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Start a 100-steps rollout from here (applying my_action at every step)")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("for")]),t._v(" _ "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("in")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("range")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n simulation_domain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("step"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("my_action"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("h3",{attrs:{id:"solve-with"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#solve-with"}},[t._v("#")]),t._v(" solve_with "),a("Badge",{attrs:{text:"Domain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"solve_with",sig:{params:[{name:"solver",annotation:"Solver"},{name:"domain_factory",default:"None",annotation:"Optional[Callable[[], Domain]]"},{name:"load_path",default:"None",annotation:"Optional[str]"}],return:"Solver"}}}),t._v(" "),a("p",[t._v("Solve the domain with a new or loaded solver and return it auto-cast to the level of the domain.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Solver.check_domain()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Solver._check_domain_additional()")]),t._v(' (which returns True by default but can be overridden to define\nspecific checks in addition to the "domain requirements"). The boilerplate code automatically checks whether all\ndomain requirements are met.')]),t._v(" "),a("h4",{attrs:{id:"parameters-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-13"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("solver")]),t._v(": The solver.")]),t._v(" "),a("li",[a("strong",[t._v("domain_factory")]),t._v(": A callable with no argument returning the domain to solve (factory is the domain class if None).")]),t._v(" "),a("li",[a("strong",[t._v("load_path")]),t._v(": The path to restore the solver state from (if None, the solving process will be launched instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-18"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-18"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The new solver (auto-cast to the level of the domain).")]),t._v(" "),a("h3",{attrs:{id:"step"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#step"}},[t._v("#")]),t._v(" step "),a("Badge",{attrs:{text:"Environment",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"step",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Run one step of the environment's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Environment.step()")]),t._v(" provides some boilerplate code and internally calls "),a("code",[t._v("Environment._step()")]),t._v(" (which\nreturns a transition outcome). The boilerplate code automatically stores next state into the "),a("code",[t._v("_memory")]),t._v(" attribute\nand samples a corresponding observation.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing environment needs to be wrapped instead of implemented fully in scikit-decide (e.g. compiled\nATARI games), it is recommended to overwrite "),a("code",[t._v("Environment.step()")]),t._v(" to call the external environment and not\nuse the "),a("code",[t._v("Environment._step()")]),t._v(" helper function.")])]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Before calling "),a("code",[t._v("Environment.step()")]),t._v(" the first time or when the end of an episode is\nreached, "),a("code",[t._v("Initializable.reset()")]),t._v(" must be called to reset the environment's state.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-14"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-14"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the current memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-19"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-19"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of this step.")]),t._v(" "),a("h3",{attrs:{id:"check-value-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#check-value-2"}},[t._v("#")]),t._v(" _check_value "),a("Badge",{attrs:{text:"Rewards",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_check_value",sig:{params:[{name:"self"},{name:"value",annotation:"Value[D.T_value]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that a value is compliant with its reward specification.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("This function returns always True by default because any kind of reward should be accepted at this level.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-15"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-15"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("value")]),t._v(": The value to check.")])]),t._v(" "),a("h4",{attrs:{id:"returns-20"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-20"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the value is compliant (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"get-action-space-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-2"}},[t._v("#")]),t._v(" _get_action_space "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_action_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) domain action space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._get_action_space()")]),t._v(" internally calls "),a("code",[t._v("Events._get_action_space_()")]),t._v(" the first time and\nautomatically caches its value to make future calls more efficient (since the action space is assumed to be\nconstant).")]),t._v(" "),a("h4",{attrs:{id:"returns-21"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-21"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The action space.")]),t._v(" "),a("h3",{attrs:{id:"get-action-space-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-3"}},[t._v("#")]),t._v(" _get_action_space_ "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_action_space_",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the domain action space (finite or infinite set).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._get_action_space()")]),t._v(", the difference being that the\nresult is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-22"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-22"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The action space.")]),t._v(" "),a("h3",{attrs:{id:"get-applicable-actions-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-2"}},[t._v("#")]),t._v(" _get_applicable_actions "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_applicable_actions",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history), or in\nthe internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._get_applicable_actions()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_applicable_actions_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-16"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-16"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-23"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-23"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of applicable actions.")]),t._v(" "),a("h3",{attrs:{id:"get-applicable-actions-from"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-from"}},[t._v("#")]),t._v(" _get_applicable_actions_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_applicable_actions_from",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._get_applicable_actions()")]),t._v(", the difference being that\nthe memory parameter is mandatory here.")]),t._v(" "),a("h4",{attrs:{id:"parameters-17"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-17"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-24"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-24"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of applicable actions.")]),t._v(" "),a("h3",{attrs:{id:"get-enabled-events-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-2"}},[t._v("#")]),t._v(" _get_enabled_events "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_enabled_events",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"Space[D.T_event]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory), or in the internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._get_enabled_events()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_enabled_events_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-18"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-18"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-25"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-25"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of enabled events.")]),t._v(" "),a("h3",{attrs:{id:"get-enabled-events-from"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-from"}},[t._v("#")]),t._v(" _get_enabled_events_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_enabled_events_from",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"Space[D.T_event]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._get_enabled_events()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("h4",{attrs:{id:"parameters-19"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-19"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-26"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-26"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of enabled events.")]),t._v(" "),a("h3",{attrs:{id:"get-goals-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-goals-2"}},[t._v("#")]),t._v(" _get_goals "),a("Badge",{attrs:{text:"Goals",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_goals",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) domain goals space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Goals._get_goals()")]),t._v(" internally calls "),a("code",[t._v("Goals._get_goals_()")]),t._v(" the first time and automatically caches\nits value to make future calls more efficient (since the goals space is assumed to be constant).")]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Goal states are assumed to be fully observable (i.e. observation = state) so that there is never uncertainty\nabout whether the goal has been reached or not. This assumption guarantees that any policy that does not\nreach the goal with certainty incurs in infinite expected cost. - "),a("em",[t._v("Geffner, 2013: A Concise Introduction to\nModels and Methods for Automated Planning")])])]),t._v(" "),a("h4",{attrs:{id:"returns-27"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-27"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The goals space.")]),t._v(" "),a("h3",{attrs:{id:"get-goals-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-goals-3"}},[t._v("#")]),t._v(" _get_goals_ "),a("Badge",{attrs:{text:"Goals",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_goals_",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the domain goals space (finite or infinite set).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Goals._get_goals()")]),t._v(", the difference being that the result is\nnot cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-28"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-28"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The goals space.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-2"}},[t._v("#")]),t._v(" _get_initial_state "),a("Badge",{attrs:{text:"DeterministicInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_initial_state",sig:{params:[{name:"self"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("Get the (cached) initial state.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("DeterministicInitialized._get_initial_state()")]),t._v(" internally\ncalls "),a("code",[t._v("DeterministicInitialized._get_initial_state_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the initial state is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-29"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-29"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The initial state.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-3"}},[t._v("#")]),t._v(" _get_initial_state_ "),a("Badge",{attrs:{text:"DeterministicInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_initial_state_",sig:{params:[{name:"self"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("Get the initial state.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("DeterministicInitialized._get_initial_state()")]),t._v(", the difference\nbeing that the result is not cached here.")]),t._v(" "),a("h4",{attrs:{id:"returns-30"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-30"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The initial state.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-distribution-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-distribution-2"}},[t._v("#")]),t._v(" _get_initial_state_distribution "),a("Badge",{attrs:{text:"UncertainInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_initial_state_distribution",sig:{params:[{name:"self"}],return:"Distribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("Get the (cached) probability distribution of initial states.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("UncertainInitialized._get_initial_state_distribution()")]),t._v(" internally\ncalls "),a("code",[t._v("UncertainInitialized._get_initial_state_distribution_()")]),t._v(" the first time and automatically caches its value\nto make future calls more efficient (since the initial state distribution is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-31"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-31"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of initial states.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-distribution-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-distribution-3"}},[t._v("#")]),t._v(" _get_initial_state_distribution_ "),a("Badge",{attrs:{text:"UncertainInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_initial_state_distribution_",sig:{params:[{name:"self"}],return:"Distribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("Get the probability distribution of initial states.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("UncertainInitialized._get_initial_state_distribution()")]),t._v(", the\ndifference being that the result is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-32"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-32"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of initial states.")]),t._v(" "),a("h3",{attrs:{id:"get-memory-maxlen"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-memory-maxlen"}},[t._v("#")]),t._v(" _get_memory_maxlen "),a("Badge",{attrs:{text:"History",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_memory_maxlen",sig:{params:[{name:"self"}],return:"int"}}}),t._v(" "),a("p",[t._v("Get the (cached) memory max length.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("FiniteHistory._get_memory_maxlen()")]),t._v(" internally calls "),a("code",[t._v("FiniteHistory._get_memory_maxlen_()")]),t._v(" the first\ntime and automatically caches its value to make future calls more efficient (since the memory max length is\nassumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-33"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-33"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The memory max length.")]),t._v(" "),a("h3",{attrs:{id:"get-memory-maxlen-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-memory-maxlen-2"}},[t._v("#")]),t._v(" _get_memory_maxlen_ "),a("Badge",{attrs:{text:"FiniteHistory",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_memory_maxlen_",sig:{params:[{name:"self"}],return:"int"}}}),t._v(" "),a("p",[t._v("Get the memory max length.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("FiniteHistory._get_memory_maxlen()")]),t._v(", the difference being that\nthe result is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-34"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-34"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The memory max length.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-2"}},[t._v("#")]),t._v(" _get_observation "),a("Badge",{attrs:{text:"TransformedObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Get the deterministic observation given a state and action.")]),t._v(" "),a("h4",{attrs:{id:"parameters-20"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-20"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-35"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-35"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-distribution-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-distribution-2"}},[t._v("#")]),t._v(" _get_observation_distribution "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation_distribution",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"Distribution[D.T_agent[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the probability distribution of the observation given a state and action.")]),t._v(" "),a("p",[t._v("In mathematical terms (discrete case), given an action "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.197ex",height:"1.02ex",viewBox:"0 -441 529 451"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})])])])])]),t._v(", this function represents: "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.078ex",height:"2.262ex",viewBox:"0 -750 4012.7 1000"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"50",d:"M287 628Q287 635 230 637Q206 637 199 638T192 648Q192 649 194 659Q200 679 203 681T397 683Q587 682 600 680Q664 669 707 631T751 530Q751 453 685 389Q616 321 507 303Q500 302 402 301H307L277 182Q247 66 247 59Q247 55 248 54T255 50T272 48T305 46H336Q342 37 342 35Q342 19 335 5Q330 0 319 0Q316 0 282 1T182 2Q120 2 87 2T51 1Q33 1 33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM645 554Q645 567 643 575T634 597T609 619T560 635Q553 636 480 637Q463 637 445 637T416 636T404 636Q391 635 386 627Q384 621 367 550T332 412T314 344Q314 342 395 342H407H430Q542 342 590 392Q617 419 631 471T645 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(751, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(1140, 0)"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1903, 0)"}},[a("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(2181, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2650, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(3094.7, 0)"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3623.7, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(",\nwhere "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.05ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.726ex",height:"1.643ex",viewBox:"0 -704 763 726"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})])])])])]),t._v(" is the random variable of the observation.")],1),t._v(" "),a("h4",{attrs:{id:"parameters-21"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-21"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-36"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-36"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-space-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-2"}},[t._v("#")]),t._v(" _get_observation_space "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) observation space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(" internally\ncalls "),a("code",[t._v("PartiallyObservable._get_observation_space_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the observation space is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-37"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-37"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The observation space.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-space-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-3"}},[t._v("#")]),t._v(" _get_observation_space_ "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation_space_",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the observation space (finite or infinite set).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(", the difference\nbeing that the result is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-38"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-38"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The observation space.")]),t._v(" "),a("h3",{attrs:{id:"init-memory"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#init-memory"}},[t._v("#")]),t._v(" _init_memory "),a("Badge",{attrs:{text:"History",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_init_memory",sig:{params:[{name:"self"},{name:"state",default:"None",annotation:"Optional[D.T_state]"}],return:"D.T_memory[D.T_state]"}}}),t._v(" "),a("p",[t._v("Initialize memory (possibly with a state) according to its specification and return it.")]),t._v(" "),a("p",[t._v("This function is automatically called by "),a("code",[t._v("Initializable._reset()")]),t._v(" to reinitialize the internal memory whenever\nthe domain is used as an environment.")]),t._v(" "),a("h4",{attrs:{id:"parameters-22"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-22"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": An optional state to initialize the memory with (typically the initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-39"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-39"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The new initialized memory.")]),t._v(" "),a("h3",{attrs:{id:"is-action-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-action-2"}},[t._v("#")]),t._v(" _is_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_action",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an event is an action (i.e. a controllable event for the agents).")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\naction space provided by "),a("code",[t._v("Events._get_action_space()")]),t._v(", but it can be overridden for faster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-23"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-23"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("event")]),t._v(": The event to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-40"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-40"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is an action (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-applicable-action-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-2"}},[t._v("#")]),t._v(" _is_applicable_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_applicable_action",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an action is applicable in the given memory (state or history), or in the internal one if\nomitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._is_applicable_action()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_applicable_action_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-24"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-24"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-41"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-41"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the action is applicable (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-applicable-action-from"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-from"}},[t._v("#")]),t._v(" _is_applicable_action_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_applicable_action_from",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an action is applicable in the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._is_applicable_action()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the space of\napplicable actions provided by "),a("code",[t._v("Events._get_applicable_actions_from()")]),t._v(", but it can be overridden for faster\nimplementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-25"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-25"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-42"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-42"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the action is applicable (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-enabled-event-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-2"}},[t._v("#")]),t._v(" _is_enabled_event "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_enabled_event",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an uncontrollable event is enabled in the given memory (state or history), or in the\ninternal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._is_enabled_event()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_enabled_event_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead\nof the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-26"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-26"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-43"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-43"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is enabled (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-enabled-event-from"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-from"}},[t._v("#")]),t._v(" _is_enabled_event_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_enabled_event_from",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an event is enabled in the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._is_enabled_event()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the space of\nenabled events provided by "),a("code",[t._v("Events._get_enabled_events_from()")]),t._v(", but it can be overridden for faster\nimplementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-27"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-27"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-44"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-44"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is enabled (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-goal-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-goal-2"}},[t._v("#")]),t._v(" _is_goal "),a("Badge",{attrs:{text:"Goals",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_goal",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"D.T_agent[D.T_predicate]"}}}),t._v(" "),a("p",[t._v("Indicate whether an observation belongs to the goals.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\ngoals space provided by "),a("code",[t._v("Goals._get_goals()")]),t._v(", but it can be overridden for faster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-28"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-28"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-45"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-45"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the observation is a goal (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-observation-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-observation-2"}},[t._v("#")]),t._v(" _is_observation "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_observation",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that an observation indeed belongs to the domain observation space.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\nobservation space provided by "),a("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(", but it can be overridden for\nfaster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-29"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-29"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-46"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-46"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the observation belongs to the domain observation space (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"reset-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#reset-2"}},[t._v("#")]),t._v(" _reset "),a("Badge",{attrs:{text:"Initializable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_reset",sig:{params:[{name:"self"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Reset the state of the environment and return an initial observation.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Initializable._reset()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Initializable._state_reset()")]),t._v(" (which returns an initial state). The boilerplate code automatically stores\nthe initial state into the "),a("code",[t._v("_memory")]),t._v(" attribute and samples a corresponding observation.")]),t._v(" "),a("h4",{attrs:{id:"returns-47"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-47"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("An initial observation.")]),t._v(" "),a("h3",{attrs:{id:"sample-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample-2"}},[t._v("#")]),t._v(" _sample "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_sample",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Sample one transition of the simulator's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Simulation._sample()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Simulation._state_sample()")]),t._v(" (which returns a transition outcome). The boilerplate code automatically\nsamples an observation corresponding to the sampled next state.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing simulator needs to be wrapped instead of implemented fully in scikit-decide (e.g. a\nsimulator), it is recommended to overwrite "),a("code",[t._v("Simulation._sample()")]),t._v(" to call the external simulator and not use\nthe "),a("code",[t._v("Simulation._state_sample()")]),t._v(" helper function.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-30"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-30"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-48"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-48"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of the sampled transition.")]),t._v(" "),a("h3",{attrs:{id:"set-memory-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#set-memory-2"}},[t._v("#")]),t._v(" _set_memory "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_set_memory",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"None"}}}),t._v(" "),a("p",[t._v("Set internal memory attribute "),a("code",[t._v("_memory")]),t._v(" to given one.")]),t._v(" "),a("p",[t._v('This can be useful to set a specific "starting point" before doing a rollout with\nsuccessive '),a("code",[t._v("Environment._step()")]),t._v(" calls.")]),t._v(" "),a("h4",{attrs:{id:"parameters-31"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-31"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to set internally.")])]),t._v(" "),a("h4",{attrs:{id:"example-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#example-2"}},[t._v("#")]),t._v(" Example")]),t._v(" "),a("div",{staticClass:"language-python extra-class"},[a("pre",{pre:!0,attrs:{class:"language-python"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Set simulation_domain memory to my_state (assuming Markovian domain)")]),t._v("\nsimulation_domain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("_set_memory"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("my_state"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Start a 100-steps rollout from here (applying my_action at every step)")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("for")]),t._v(" _ "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("in")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("range")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n simulation_domain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("_step"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("my_action"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("h3",{attrs:{id:"state-reset"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#state-reset"}},[t._v("#")]),t._v(" _state_reset "),a("Badge",{attrs:{text:"Initializable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_state_reset",sig:{params:[{name:"self"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("Reset the state of the environment and return an initial state.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Initializable._reset()")]),t._v(". It focuses on the state level, as\nopposed to the observation one for the latter.")]),t._v(" "),a("h4",{attrs:{id:"returns-49"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-49"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("An initial state.")]),t._v(" "),a("h3",{attrs:{id:"state-sample"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#state-sample"}},[t._v("#")]),t._v(" _state_sample "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_state_sample",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"TransitionOutcome[D.T_state, D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Compute one sample of the transition's dynamics.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Simulation._sample()")]),t._v(". It focuses on the state level, as\nopposed to the observation one for the latter.")]),t._v(" "),a("h4",{attrs:{id:"parameters-32"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-32"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-50"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-50"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The transition outcome of the sampled transition.")]),t._v(" "),a("h3",{attrs:{id:"state-step"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#state-step"}},[t._v("#")]),t._v(" _state_step "),a("Badge",{attrs:{text:"Environment",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_state_step",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"TransitionOutcome[D.T_state, D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Compute one step of the transition's dynamics.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Environment._step()")]),t._v(". It focuses on the state level, as opposed\nto the observation one for the latter.")]),t._v(" "),a("h4",{attrs:{id:"parameters-33"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-33"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the current memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-51"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-51"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The transition outcome of this step.")]),t._v(" "),a("h3",{attrs:{id:"step-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#step-2"}},[t._v("#")]),t._v(" _step "),a("Badge",{attrs:{text:"Environment",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_step",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Run one step of the environment's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Environment._step()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Environment._state_step()")]),t._v(" (which returns a transition outcome). The boilerplate code automatically stores\nnext state into the "),a("code",[t._v("_memory")]),t._v(" attribute and samples a corresponding observation.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing environment needs to be wrapped instead of implemented fully in scikit-decide (e.g. compiled\nATARI games), it is recommended to overwrite "),a("code",[t._v("Environment._step()")]),t._v(" to call the external environment and not\nuse the "),a("code",[t._v("Environment._state_step()")]),t._v(" helper function.")])]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Before calling "),a("code",[t._v("Environment._step()")]),t._v(" the first time or when the end of an episode is\nreached, "),a("code",[t._v("Initializable._reset()")]),t._v(" must be called to reset the environment's state.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-34"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-34"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the current memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-52"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-52"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of this step.")]),t._v(" "),a("h2",{attrs:{id:"schedulingdomain"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#schedulingdomain"}},[t._v("#")]),t._v(" SchedulingDomain")]),t._v(" "),a("p",[t._v("This is the highest level scheduling domain class (inheriting top-level class for each mandatory\ndomain characteristic).\nThis is where the implementation of the statefull scheduling domain is implemented,\nletting to the user the possibility\nto the user to define the scheduling problem without having to think of a statefull version.")]),t._v(" "),a("h3",{attrs:{id:"add-to-current-conditions"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#add-to-current-conditions"}},[t._v("#")]),t._v(" add_to_current_conditions "),a("Badge",{attrs:{text:"WithConditionalTasks",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"add_to_current_conditions",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"state"}]}}}),t._v(" "),a("p",[t._v("Samples completion conditions for a given task and add these conditions to the list of conditions in the\ngiven state. This function should be called when a task complete.")]),t._v(" "),a("h3",{attrs:{id:"all-tasks-possible"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#all-tasks-possible"}},[t._v("#")]),t._v(" all_tasks_possible "),a("Badge",{attrs:{text:"MixedRenewable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"all_tasks_possible",sig:{params:[{name:"self"},{name:"state",annotation:"State"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Return a True is for each task there is at least one mode in which the task can be executed, given the\nresource configuration in the state provided as argument. Returns False otherwise.\nIf this function returns False, the scheduling problem is unsolvable from this state.\nThis is to cope with the use of non-renable resources that may lead to state from which a\ntask will not be possible anymore.")]),t._v(" "),a("h3",{attrs:{id:"check-if-action-can-be-started"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#check-if-action-can-be-started"}},[t._v("#")]),t._v(" check_if_action_can_be_started "),a("Badge",{attrs:{text:"SchedulingDomain",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"check_if_action_can_be_started",sig:{params:[{name:"self"},{name:"state",annotation:"State"},{name:"action",annotation:"SchedulingAction"}],return:"Tuple[bool, Dict[str, int]]"}}}),t._v(" "),a("p",[t._v("Check if a start or resume action can be applied. It returns a boolean and a dictionary of resources to use.")]),t._v(" "),a("h3",{attrs:{id:"check-unique-resource-names"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#check-unique-resource-names"}},[t._v("#")]),t._v(" check_unique_resource_names "),a("Badge",{attrs:{text:"UncertainResourceAvailabilityChanges",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"check_unique_resource_names",sig:{params:[{name:"self"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Return True if there are no duplicates in resource names across both resource types\nand resource units name lists.")]),t._v(" "),a("h3",{attrs:{id:"check-value-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#check-value-3"}},[t._v("#")]),t._v(" check_value "),a("Badge",{attrs:{text:"Rewards",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"check_value",sig:{params:[{name:"self"},{name:"value",annotation:"Value[D.T_value]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that a value is compliant with its reward specification.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("This function returns always True by default because any kind of reward should be accepted at this level.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-35"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-35"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("value")]),t._v(": The value to check.")])]),t._v(" "),a("h4",{attrs:{id:"returns-53"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-53"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the value is compliant (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"find-one-ressource-to-do-one-task"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#find-one-ressource-to-do-one-task"}},[t._v("#")]),t._v(" find_one_ressource_to_do_one_task "),a("Badge",{attrs:{text:"WithResourceSkills",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"find_one_ressource_to_do_one_task",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"mode",annotation:"int"}],return:"List[str]"}}}),t._v(" "),a("p",[t._v("For the common case when it is possible to do the task by one resource unit.\nFor general case, it might just return no possible ressource unit.")]),t._v(" "),a("h3",{attrs:{id:"get-action-space-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-4"}},[t._v("#")]),t._v(" get_action_space "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_action_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) domain action space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.get_action_space()")]),t._v(" internally calls "),a("code",[t._v("Events._get_action_space_()")]),t._v(" the first time and\nautomatically caches its value to make future calls more efficient (since the action space is assumed to be\nconstant).")]),t._v(" "),a("h4",{attrs:{id:"returns-54"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-54"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The action space.")]),t._v(" "),a("h3",{attrs:{id:"get-all-condition-items"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-all-condition-items"}},[t._v("#")]),t._v(" get_all_condition_items "),a("Badge",{attrs:{text:"WithConditionalTasks",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_all_condition_items",sig:{params:[{name:"self"}],return:"Enum"}}}),t._v(" "),a("p",[t._v("Return an Enum with all the elements that can be used to define a condition.")]),t._v(" "),a("p",[t._v("Example:\nreturn\nConditionElementsExample(Enum):\nOK = 0\nNC_PART_1_OPERATION_1 = 1\nNC_PART_1_OPERATION_2 = 2\nNC_PART_2_OPERATION_1 = 3\nNC_PART_2_OPERATION_2 = 4\nHARDWARE_ISSUE_MACHINE_A = 5\nHARDWARE_ISSUE_MACHINE_B = 6")]),t._v(" "),a("h3",{attrs:{id:"get-all-resources-skills"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-all-resources-skills"}},[t._v("#")]),t._v(" get_all_resources_skills "),a("Badge",{attrs:{text:"WithResourceSkills",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_all_resources_skills",sig:{params:[{name:"self"}],return:"Dict[str, Dict[str, Any]]"}}}),t._v(" "),a("p",[t._v("Return a nested dictionary where the first key is the name of a resource type or resource unit\nand the second key is the name of a skill. The value defines the details of the skill.\nE.g. {unit: {skill: (detail of skill)}}")]),t._v(" "),a("h3",{attrs:{id:"get-all-tasks-skills"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-all-tasks-skills"}},[t._v("#")]),t._v(" get_all_tasks_skills "),a("Badge",{attrs:{text:"WithResourceSkills",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_all_tasks_skills",sig:{params:[{name:"self"}],return:"Dict[int, Dict[int, Dict[str, Any]]]"}}}),t._v(" "),a("p",[t._v("Return a nested dictionary where the first key is the name of a task\nand the second key is the name of a skill. The value defines the details of the skill.\nE.g. {task: {skill: (detail of skill)}}")]),t._v(" "),a("h3",{attrs:{id:"get-all-unconditional-tasks"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-all-unconditional-tasks"}},[t._v("#")]),t._v(" get_all_unconditional_tasks "),a("Badge",{attrs:{text:"WithConditionalTasks",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_all_unconditional_tasks",sig:{params:[{name:"self"}],return:"Set[int]"}}}),t._v(" "),a("p",[t._v("Returns the set of all task ids for which there are no conditions. These tasks are to be considered at\nthe start of a project (i.e. in the initial state).")]),t._v(" "),a("h3",{attrs:{id:"get-applicable-actions-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-3"}},[t._v("#")]),t._v(" get_applicable_actions "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_applicable_actions",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history), or in\nthe internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.get_applicable_actions()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_applicable_actions()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-36"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-36"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-55"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-55"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of applicable actions.")]),t._v(" "),a("h3",{attrs:{id:"get-available-tasks"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-available-tasks"}},[t._v("#")]),t._v(" get_available_tasks "),a("Badge",{attrs:{text:"WithConditionalTasks",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_available_tasks",sig:{params:[{name:"self"},{name:"state"}],return:"Set[int]"}}}),t._v(" "),a("p",[t._v("Returns the set of all task ids that can be considered under the conditions defined in the given state.\nNote that the set will contains all ids for all tasks in the domain that meet the conditions, that is tasks\nthat are remaining, or that have been completed, paused or started / resumed.")]),t._v(" "),a("h3",{attrs:{id:"get-enabled-events-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-3"}},[t._v("#")]),t._v(" get_enabled_events "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_enabled_events",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"Space[D.T_event]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory), or in the internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.get_enabled_events()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_enabled_events()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead of\nthe memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-37"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-37"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-56"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-56"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of enabled events.")]),t._v(" "),a("h3",{attrs:{id:"get-goals-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-goals-4"}},[t._v("#")]),t._v(" get_goals "),a("Badge",{attrs:{text:"Goals",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_goals",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) domain goals space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Goals.get_goals()")]),t._v(" internally calls "),a("code",[t._v("Goals._get_goals_()")]),t._v(" the first time and automatically caches its\nvalue to make future calls more efficient (since the goals space is assumed to be constant).")]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Goal states are assumed to be fully observable (i.e. observation = state) so that there is never uncertainty\nabout whether the goal has been reached or not. This assumption guarantees that any policy that does not\nreach the goal with certainty incurs in infinite expected cost. - "),a("em",[t._v("Geffner, 2013: A Concise Introduction to\nModels and Methods for Automated Planning")])])]),t._v(" "),a("h4",{attrs:{id:"returns-57"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-57"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The goals space.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-4"}},[t._v("#")]),t._v(" get_initial_state "),a("Badge",{attrs:{text:"DeterministicInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_initial_state",sig:{params:[{name:"self"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("Get the (cached) initial state.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("DeterministicInitialized.get_initial_state()")]),t._v(" internally\ncalls "),a("code",[t._v("DeterministicInitialized._get_initial_state_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the initial state is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-58"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-58"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The initial state.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-distribution-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-distribution-4"}},[t._v("#")]),t._v(" get_initial_state_distribution "),a("Badge",{attrs:{text:"UncertainInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_initial_state_distribution",sig:{params:[{name:"self"}],return:"Distribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("Get the (cached) probability distribution of initial states.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("UncertainInitialized.get_initial_state_distribution()")]),t._v(" internally\ncalls "),a("code",[t._v("UncertainInitialized._get_initial_state_distribution_()")]),t._v(" the first time and automatically caches its value\nto make future calls more efficient (since the initial state distribution is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-59"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-59"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of initial states.")]),t._v(" "),a("h3",{attrs:{id:"get-max-horizon"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-max-horizon"}},[t._v("#")]),t._v(" get_max_horizon "),a("Badge",{attrs:{text:"SchedulingDomain",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_max_horizon",sig:{params:[{name:"self"}],return:"int"}}}),t._v(" "),a("p",[t._v("Return the maximum time horizon (int)")]),t._v(" "),a("h3",{attrs:{id:"get-mode-costs"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-mode-costs"}},[t._v("#")]),t._v(" get_mode_costs "),a("Badge",{attrs:{text:"WithModeCosts",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_mode_costs",sig:{params:[{name:"self"}],return:"Dict[int, Dict[int, float]]"}}}),t._v(" "),a("p",[t._v("Return a nested dictionary where the first key is the id of a task (int), the second key the id of a mode\nand the value indicates the cost of execution the task in the mode.")]),t._v(" "),a("h3",{attrs:{id:"get-objectives"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-objectives"}},[t._v("#")]),t._v(" get_objectives "),a("Badge",{attrs:{text:"SchedulingDomain",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_objectives",sig:{params:[{name:"self"}],return:"List[SchedulingObjectiveEnum]"}}}),t._v(" "),a("p",[t._v("Return the objectives to consider as a list. The items should be of SchedulingObjectiveEnum type.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-3"}},[t._v("#")]),t._v(" get_observation "),a("Badge",{attrs:{text:"TransformedObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_observation",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Get the deterministic observation given a state and action.")]),t._v(" "),a("h4",{attrs:{id:"parameters-38"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-38"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-60"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-60"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-distribution-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-distribution-3"}},[t._v("#")]),t._v(" get_observation_distribution "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_observation_distribution",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"Distribution[D.T_agent[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the probability distribution of the observation given a state and action.")]),t._v(" "),a("p",[t._v("In mathematical terms (discrete case), given an action "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.197ex",height:"1.02ex",viewBox:"0 -441 529 451"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})])])])])]),t._v(", this function represents: "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.078ex",height:"2.262ex",viewBox:"0 -750 4012.7 1000"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"50",d:"M287 628Q287 635 230 637Q206 637 199 638T192 648Q192 649 194 659Q200 679 203 681T397 683Q587 682 600 680Q664 669 707 631T751 530Q751 453 685 389Q616 321 507 303Q500 302 402 301H307L277 182Q247 66 247 59Q247 55 248 54T255 50T272 48T305 46H336Q342 37 342 35Q342 19 335 5Q330 0 319 0Q316 0 282 1T182 2Q120 2 87 2T51 1Q33 1 33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM645 554Q645 567 643 575T634 597T609 619T560 635Q553 636 480 637Q463 637 445 637T416 636T404 636Q391 635 386 627Q384 621 367 550T332 412T314 344Q314 342 395 342H407H430Q542 342 590 392Q617 419 631 471T645 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(751, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(1140, 0)"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1903, 0)"}},[a("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(2181, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2650, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(3094.7, 0)"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3623.7, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(",\nwhere "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.05ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.726ex",height:"1.643ex",viewBox:"0 -704 763 726"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})])])])])]),t._v(" is the random variable of the observation.")],1),t._v(" "),a("h4",{attrs:{id:"parameters-39"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-39"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-61"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-61"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-space-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-4"}},[t._v("#")]),t._v(" get_observation_space "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_observation_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) observation space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("PartiallyObservable.get_observation_space()")]),t._v(" internally\ncalls "),a("code",[t._v("PartiallyObservable._get_observation_space_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the observation space is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-62"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-62"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The observation space.")]),t._v(" "),a("h3",{attrs:{id:"get-preallocations"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-preallocations"}},[t._v("#")]),t._v(" get_preallocations "),a("Badge",{attrs:{text:"WithPreallocations",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_preallocations",sig:{params:[{name:"self"}],return:"Dict[int, List[str]]"}}}),t._v(" "),a("p",[t._v("Return a dictionary where the key is the id of a task (int)\nand the value indicates the pre-allocated resources for this task (as a list of str)")]),t._v(" "),a("h3",{attrs:{id:"get-predecessors"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-predecessors"}},[t._v("#")]),t._v(" get_predecessors "),a("Badge",{attrs:{text:"WithPrecedence",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_predecessors",sig:{params:[{name:"self"}],return:"Dict[int, List[int]]"}}}),t._v(" "),a("p",[t._v("Return the predecessors of the task. Successors are given as a list for a task given as a key.")]),t._v(" "),a("h3",{attrs:{id:"get-resource-cost-per-time-unit"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-resource-cost-per-time-unit"}},[t._v("#")]),t._v(" get_resource_cost_per_time_unit "),a("Badge",{attrs:{text:"WithResourceCosts",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_resource_cost_per_time_unit",sig:{params:[{name:"self"}],return:"Dict[str, float]"}}}),t._v(" "),a("p",[t._v("Return a dictionary where the key is the name of a resource (str)\nand the value indicates the cost of using this resource per time unit.")]),t._v(" "),a("h3",{attrs:{id:"get-resource-renewability"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-resource-renewability"}},[t._v("#")]),t._v(" get_resource_renewability "),a("Badge",{attrs:{text:"MixedRenewable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_resource_renewability",sig:{params:[{name:"self"}],return:"Dict[str, bool]"}}}),t._v(" "),a("p",[t._v("Return a dictionary where the key is a resource name (string)\nand the value whether this resource is renewable (True) or not (False).")]),t._v(" "),a("h3",{attrs:{id:"get-resource-type-for-unit"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-resource-type-for-unit"}},[t._v("#")]),t._v(" get_resource_type_for_unit "),a("Badge",{attrs:{text:"WithResourceUnits",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_resource_type_for_unit",sig:{params:[{name:"self"}],return:"Dict[str, str]"}}}),t._v(" "),a("p",[t._v("Return a dictionary where the key is a resource unit name and the value a resource type name.\nAn empty dictionary can be used if there are no resource unit matching a resource type.")]),t._v(" "),a("h3",{attrs:{id:"get-resource-types-names"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-resource-types-names"}},[t._v("#")]),t._v(" get_resource_types_names "),a("Badge",{attrs:{text:"WithResourceTypes",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_resource_types_names",sig:{params:[{name:"self"}],return:"List[str]"}}}),t._v(" "),a("p",[t._v("Return the names (string) of all resource types as a list.")]),t._v(" "),a("h3",{attrs:{id:"get-resource-units-names"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-resource-units-names"}},[t._v("#")]),t._v(" get_resource_units_names "),a("Badge",{attrs:{text:"WithResourceUnits",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_resource_units_names",sig:{params:[{name:"self"}],return:"List[str]"}}}),t._v(" "),a("p",[t._v("Return the names (string) of all resource units as a list.")]),t._v(" "),a("h3",{attrs:{id:"get-skills-names"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-skills-names"}},[t._v("#")]),t._v(" get_skills_names "),a("Badge",{attrs:{text:"WithResourceSkills",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_skills_names",sig:{params:[{name:"self"}],return:"Set[str]"}}}),t._v(" "),a("p",[t._v("Return a list of all skill names as a list of str. Skill names are defined in the 2 dictionaries returned\nby the get_all_resources_skills and get_all_tasks_skills functions.")]),t._v(" "),a("h3",{attrs:{id:"get-skills-of-resource"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-skills-of-resource"}},[t._v("#")]),t._v(" get_skills_of_resource "),a("Badge",{attrs:{text:"WithResourceSkills",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_skills_of_resource",sig:{params:[{name:"self"},{name:"resource",annotation:"str"}],return:"Dict[str, Any]"}}}),t._v(" "),a("p",[t._v("Return the skills of a given resource")]),t._v(" "),a("h3",{attrs:{id:"get-skills-of-task"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-skills-of-task"}},[t._v("#")]),t._v(" get_skills_of_task "),a("Badge",{attrs:{text:"WithResourceSkills",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_skills_of_task",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"mode",annotation:"int"}],return:"Dict[str, Any]"}}}),t._v(" "),a("p",[t._v("Return the skill requirements for a given task")]),t._v(" "),a("h3",{attrs:{id:"get-successors"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-successors"}},[t._v("#")]),t._v(" get_successors "),a("Badge",{attrs:{text:"WithPrecedence",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_successors",sig:{params:[{name:"self"}],return:"Dict[int, List[int]]"}}}),t._v(" "),a("p",[t._v("Return the successors of the tasks. Successors are given as a list for a task given as a key.")]),t._v(" "),a("h3",{attrs:{id:"get-task-existence-conditions"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-task-existence-conditions"}},[t._v("#")]),t._v(" get_task_existence_conditions "),a("Badge",{attrs:{text:"WithConditionalTasks",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_task_existence_conditions",sig:{params:[{name:"self"}],return:"Dict[int, List[int]]"}}}),t._v(" "),a("p",[t._v("Return a dictionary where the key is a task id and the value a list of conditions to be respected (True)\nfor the task to be part of the schedule. If a task has no entry in the dictionary,\nthere is no conditions for that task.")]),t._v(" "),a("p",[t._v("Example:\nreturn\n{\n20: [get_all_condition_items().NC_PART_1_OPERATION_1],\n21: [get_all_condition_items().HARDWARE_ISSUE_MACHINE_A]\n22: [get_all_condition_items().NC_PART_1_OPERATION_1, get_all_condition_items().NC_PART_1_OPERATION_2]\n}e")]),t._v(" "),a("h3",{attrs:{id:"get-task-on-completion-added-conditions"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-task-on-completion-added-conditions"}},[t._v("#")]),t._v(" get_task_on_completion_added_conditions "),a("Badge",{attrs:{text:"WithConditionalTasks",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_task_on_completion_added_conditions",sig:{params:[{name:"self"}],return:"Dict[int, List[Distribution]]"}}}),t._v(" "),a("p",[t._v("Return a dict of list. The key of the dict is the task id and each list is composed of a list of tuples.\nEach tuple contains the probability (first item in tuple) that the conditionElement (second item in tuple)\nis True. The probabilities in the inner list should sum up to 1. The dictionary should only contains the keys\nof tasks that can create conditions.")]),t._v(" "),a("p",[t._v("Example:\nreturn\n{\n12:\n[\nDiscreteDistribution([(ConditionElementsExample.NC_PART_1_OPERATION_1, 0.1), (ConditionElementsExample.OK, 0.9)]),\nDiscreteDistribution([(ConditionElementsExample.HARDWARE_ISSUE_MACHINE_A, 0.05), ('paper', 0.1), (ConditionElementsExample.OK, 0.95)])\n]\n}")]),t._v(" "),a("h3",{attrs:{id:"get-task-paused-non-renewable-resource-returned"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-task-paused-non-renewable-resource-returned"}},[t._v("#")]),t._v(" get_task_paused_non_renewable_resource_returned "),a("Badge",{attrs:{text:"WithPreemptivity",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_task_paused_non_renewable_resource_returned",sig:{params:[{name:"self"}],return:"Dict[int, bool]"}}}),t._v(" "),a("p",[t._v("Return a dictionary where the key is a task id and the value is of type bool indicating\nif the non-renewable resources are consumed when the task is paused (False) or made available again (True).\nE.g. {\n2: False # if paused, non-renewable resource will be consumed\n5: True # if paused, the non-renewable resource will be available again\n}")]),t._v(" "),a("h3",{attrs:{id:"get-task-preemptivity"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-task-preemptivity"}},[t._v("#")]),t._v(" get_task_preemptivity "),a("Badge",{attrs:{text:"WithPreemptivity",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_task_preemptivity",sig:{params:[{name:"self"}],return:"Dict[int, bool]"}}}),t._v(" "),a("p",[t._v("Return a dictionary where the key is a task id and the value a boolean indicating\nif the task can be paused or stopped.\nE.g. {\n1: False\n2: True\n3: False\n4: False\n5: True\n6: False\n}")]),t._v(" "),a("h3",{attrs:{id:"get-task-progress"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-task-progress"}},[t._v("#")]),t._v(" get_task_progress "),a("Badge",{attrs:{text:"CustomTaskProgress",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_task_progress",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"t_from",annotation:"int"},{name:"t_to",annotation:"int"},{name:"mode",annotation:"Optional[int]"},{name:"sampled_duration",default:"None",annotation:"Optional[int]"}],return:"float"}}}),t._v(" "),a("h4",{attrs:{id:"returns-63"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-63"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The task progress (float) between t_from and t_to.")]),t._v(" "),a("h3",{attrs:{id:"get-task-resuming-type"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-task-resuming-type"}},[t._v("#")]),t._v(" get_task_resuming_type "),a("Badge",{attrs:{text:"WithPreemptivity",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_task_resuming_type",sig:{params:[{name:"self"}],return:"Dict[int, ResumeType]"}}}),t._v(" "),a("p",[t._v("Return a dictionary where the key is a task id and the value is of type ResumeType indicating\nif the task can be resumed (restarted from where it was paused with no time loss)\nor restarted (restarted from the start).\nE.g. {\n1: ResumeType.NA\n2: ResumeType.Resume\n3: ResumeType.NA\n4: ResumeType.NA\n5: ResumeType.Restart\n6: ResumeType.NA\n}")]),t._v(" "),a("h3",{attrs:{id:"get-time-lags"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-time-lags"}},[t._v("#")]),t._v(" get_time_lags "),a("Badge",{attrs:{text:"WithTimeLag",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_time_lags",sig:{params:[{name:"self"}],return:"Dict[int, Dict[int, TimeLag]]"}}}),t._v(" "),a("p",[t._v("Return nested dictionaries where the first key is the id of a task (int)\nand the second key is the id of another task (int).\nThe value is a TimeLag object containing the MINIMUM and MAXIMUM time (int) that needs to separate the end\nof the first task to the start of the second task.")]),t._v(" "),a("p",[t._v("e.g.\n{\n12:{\n15: TimeLag(5, 10),\n16: TimeLag(5, 20),\n17: MinimumOnlyTimeLag(5),\n18: MaximumOnlyTimeLag(15),\n}\n}")]),t._v(" "),a("h4",{attrs:{id:"returns-64"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-64"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("A dictionary of TimeLag objects.")]),t._v(" "),a("h3",{attrs:{id:"get-time-window"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-time-window"}},[t._v("#")]),t._v(" get_time_window "),a("Badge",{attrs:{text:"WithTimeWindow",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_time_window",sig:{params:[{name:"self"}],return:"Dict[int, TimeWindow]"}}}),t._v(" "),a("p",[t._v("Return a dictionary where the key is the id of a task (int)\nand the value is a TimeWindow object.\nNote that the max time horizon needs to be provided to the TimeWindow constructors\ne.g.\n{\n1: TimeWindow(10, 15, 20, 30, self.get_max_horizon())\n2: EmptyTimeWindow(self.get_max_horizon())\n3: EndTimeWindow(20, 25, self.get_max_horizon())\n4: EndBeforeOnlyTimeWindow(40, self.get_max_horizon())\n}")]),t._v(" "),a("h4",{attrs:{id:"returns-65"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-65"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("A dictionary of TimeWindow objects.")]),t._v(" "),a("h3",{attrs:{id:"get-variable-resource-consumption"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-variable-resource-consumption"}},[t._v("#")]),t._v(" get_variable_resource_consumption "),a("Badge",{attrs:{text:"VariableResourceConsumption",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_variable_resource_consumption",sig:{params:[{name:"self"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Return true if the domain has variable resource consumption,\nfalse if the consumption of resource does not vary in time for any of the tasks")]),t._v(" "),a("h3",{attrs:{id:"initialize-domain"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#initialize-domain"}},[t._v("#")]),t._v(" initialize_domain "),a("Badge",{attrs:{text:"SchedulingDomain",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"initialize_domain",sig:{params:[{name:"self"}]}}}),t._v(" "),a("p",[t._v("Initialize a scheduling domain. This function needs to be called when instantiating a scheduling domain.")]),t._v(" "),a("h3",{attrs:{id:"is-action-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-action-3"}},[t._v("#")]),t._v(" is_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_action",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an event is an action (i.e. a controllable event for the agents).")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\naction space provided by "),a("code",[t._v("Events.get_action_space()")]),t._v(", but it can be overridden for faster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-40"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-40"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("event")]),t._v(": The event to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-66"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-66"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is an action (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-applicable-action-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-3"}},[t._v("#")]),t._v(" is_applicable_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_applicable_action",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an action is applicable in the given memory (state or history), or in the internal one if\nomitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.is_applicable_action()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_applicable_action()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead\nof the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-41"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-41"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-67"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-67"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the action is applicable (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-enabled-event-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-3"}},[t._v("#")]),t._v(" is_enabled_event "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_enabled_event",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an uncontrollable event is enabled in the given memory (state or history), or in the\ninternal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.is_enabled_event()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_enabled_event()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead of\nthe memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-42"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-42"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-68"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-68"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is enabled (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-goal-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-goal-3"}},[t._v("#")]),t._v(" is_goal "),a("Badge",{attrs:{text:"Goals",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_goal",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"D.T_agent[D.T_predicate]"}}}),t._v(" "),a("p",[t._v("Indicate whether an observation belongs to the goals.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\ngoals space provided by "),a("code",[t._v("Goals.get_goals()")]),t._v(", but it can be overridden for faster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-43"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-43"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-69"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-69"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the observation is a goal (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-observation-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-observation-3"}},[t._v("#")]),t._v(" is_observation "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_observation",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that an observation indeed belongs to the domain observation space.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\nobservation space provided by "),a("code",[t._v("PartiallyObservable.get_observation_space()")]),t._v(", but it can be overridden for\nfaster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-44"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-44"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-70"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-70"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the observation belongs to the domain observation space (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"reset-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#reset-3"}},[t._v("#")]),t._v(" reset "),a("Badge",{attrs:{text:"Initializable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"reset",sig:{params:[{name:"self"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Reset the state of the environment and return an initial observation.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Initializable.reset()")]),t._v(" provides some boilerplate code and internally calls "),a("code",[t._v("Initializable._reset()")]),t._v("\n(which returns an initial state). The boilerplate code automatically stores the initial state into the "),a("code",[t._v("_memory")]),t._v("\nattribute and samples a corresponding observation.")]),t._v(" "),a("h4",{attrs:{id:"returns-71"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-71"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("An initial observation.")]),t._v(" "),a("h3",{attrs:{id:"sample-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample-3"}},[t._v("#")]),t._v(" sample "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"sample",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Sample one transition of the simulator's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Simulation.sample()")]),t._v(" provides some boilerplate code and internally calls "),a("code",[t._v("Simulation._sample()")]),t._v("\n(which returns a transition outcome). The boilerplate code automatically samples an observation corresponding to\nthe sampled next state.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing simulator needs to be wrapped instead of implemented fully in scikit-decide (e.g. a\nsimulator), it is recommended to overwrite "),a("code",[t._v("Simulation.sample()")]),t._v(" to call the external simulator and not use\nthe "),a("code",[t._v("Simulation._sample()")]),t._v(" helper function.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-45"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-45"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-72"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-72"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of the sampled transition.")]),t._v(" "),a("h3",{attrs:{id:"sample-completion-conditions"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample-completion-conditions"}},[t._v("#")]),t._v(" sample_completion_conditions "),a("Badge",{attrs:{text:"WithConditionalTasks",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"sample_completion_conditions",sig:{params:[{name:"self"},{name:"task",annotation:"int"}],return:"List[int]"}}}),t._v(" "),a("p",[t._v("Samples the condition distributions associated with the given task and return a list of sampled\nconditions.")]),t._v(" "),a("h3",{attrs:{id:"sample-quantity-resource"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample-quantity-resource"}},[t._v("#")]),t._v(" sample_quantity_resource "),a("Badge",{attrs:{text:"UncertainResourceAvailabilityChanges",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"sample_quantity_resource",sig:{params:[{name:"self"},{name:"resource",annotation:"str"},{name:"time",annotation:"int"},{name:"**kwargs"}],return:"int"}}}),t._v(" "),a("p",[t._v("Sample an amount of resource availability (int) for the given resource\n(either resource type or resource unit) at the given time. This number should be the sum of the number of\nresource available at time t and the number of resource of this type consumed so far).")]),t._v(" "),a("h3",{attrs:{id:"sample-task-duration"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample-task-duration"}},[t._v("#")]),t._v(" sample_task_duration "),a("Badge",{attrs:{text:"SimulatedTaskDuration",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"sample_task_duration",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"mode",default:"1",annotation:"Optional[int]"},{name:"progress_from",default:"0.0",annotation:"Optional[float]"}],return:"int"}}}),t._v(" "),a("p",[t._v("Sample, store and return task duration for the given task in the given mode.")]),t._v(" "),a("h3",{attrs:{id:"set-inplace-environment"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#set-inplace-environment"}},[t._v("#")]),t._v(" set_inplace_environment "),a("Badge",{attrs:{text:"SchedulingDomain",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"set_inplace_environment",sig:{params:[{name:"self"},{name:"inplace_environment",annotation:"bool"}]}}}),t._v(" "),a("p",[t._v("Activate or not the fact that the simulator modifies the given state inplace or create a copy before.\nThe inplace version is several times faster but will lead to bugs in graph search solver.")]),t._v(" "),a("h3",{attrs:{id:"set-memory-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#set-memory-3"}},[t._v("#")]),t._v(" set_memory "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"set_memory",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"None"}}}),t._v(" "),a("p",[t._v("Set internal memory attribute "),a("code",[t._v("_memory")]),t._v(" to given one.")]),t._v(" "),a("p",[t._v('This can be useful to set a specific "starting point" before doing a rollout with successive '),a("code",[t._v("Environment.step()")]),t._v("\ncalls.")]),t._v(" "),a("h4",{attrs:{id:"parameters-46"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-46"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to set internally.")])]),t._v(" "),a("h4",{attrs:{id:"example-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#example-3"}},[t._v("#")]),t._v(" Example")]),t._v(" "),a("div",{staticClass:"language-python extra-class"},[a("pre",{pre:!0,attrs:{class:"language-python"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Set simulation_domain memory to my_state (assuming Markovian domain)")]),t._v("\nsimulation_domain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("set_memory"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("my_state"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Start a 100-steps rollout from here (applying my_action at every step)")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("for")]),t._v(" _ "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("in")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("range")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n simulation_domain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("step"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("my_action"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("h3",{attrs:{id:"solve-with-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#solve-with-2"}},[t._v("#")]),t._v(" solve_with "),a("Badge",{attrs:{text:"Domain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"solve_with",sig:{params:[{name:"solver",annotation:"Solver"},{name:"domain_factory",default:"None",annotation:"Optional[Callable[[], Domain]]"},{name:"load_path",default:"None",annotation:"Optional[str]"}],return:"Solver"}}}),t._v(" "),a("p",[t._v("Solve the domain with a new or loaded solver and return it auto-cast to the level of the domain.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Solver.check_domain()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Solver._check_domain_additional()")]),t._v(' (which returns True by default but can be overridden to define\nspecific checks in addition to the "domain requirements"). The boilerplate code automatically checks whether all\ndomain requirements are met.')]),t._v(" "),a("h4",{attrs:{id:"parameters-47"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-47"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("solver")]),t._v(": The solver.")]),t._v(" "),a("li",[a("strong",[t._v("domain_factory")]),t._v(": A callable with no argument returning the domain to solve (factory is the domain class if None).")]),t._v(" "),a("li",[a("strong",[t._v("load_path")]),t._v(": The path to restore the solver state from (if None, the solving process will be launched instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-73"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-73"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The new solver (auto-cast to the level of the domain).")]),t._v(" "),a("h3",{attrs:{id:"step-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#step-3"}},[t._v("#")]),t._v(" step "),a("Badge",{attrs:{text:"Environment",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"step",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Run one step of the environment's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Environment.step()")]),t._v(" provides some boilerplate code and internally calls "),a("code",[t._v("Environment._step()")]),t._v(" (which\nreturns a transition outcome). The boilerplate code automatically stores next state into the "),a("code",[t._v("_memory")]),t._v(" attribute\nand samples a corresponding observation.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing environment needs to be wrapped instead of implemented fully in scikit-decide (e.g. compiled\nATARI games), it is recommended to overwrite "),a("code",[t._v("Environment.step()")]),t._v(" to call the external environment and not\nuse the "),a("code",[t._v("Environment._step()")]),t._v(" helper function.")])]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Before calling "),a("code",[t._v("Environment.step()")]),t._v(" the first time or when the end of an episode is\nreached, "),a("code",[t._v("Initializable.reset()")]),t._v(" must be called to reset the environment's state.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-48"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-48"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the current memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-74"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-74"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of this step.")]),t._v(" "),a("h3",{attrs:{id:"update-complete-dummy-tasks"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-complete-dummy-tasks"}},[t._v("#")]),t._v(" update_complete_dummy_tasks "),a("Badge",{attrs:{text:"SchedulingDomain",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_complete_dummy_tasks",sig:{params:[{name:"self"},{name:"state",annotation:"State"},{name:"action",annotation:"SchedulingAction"}]}}}),t._v(" "),a("p",[t._v("Update the status of newly started tasks whose duration is 0 from ongoing to complete.")]),t._v(" "),a("h3",{attrs:{id:"update-complete-dummy-tasks-simulation"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-complete-dummy-tasks-simulation"}},[t._v("#")]),t._v(" update_complete_dummy_tasks_simulation "),a("Badge",{attrs:{text:"SchedulingDomain",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_complete_dummy_tasks_simulation",sig:{params:[{name:"self"},{name:"state",annotation:"State"},{name:"action",annotation:"SchedulingAction"}]}}}),t._v(" "),a("p",[t._v("In a simulated scheduling environment, update the status of newly started tasks whose duration is 0\nfrom ongoing to complete.")]),t._v(" "),a("h3",{attrs:{id:"update-complete-dummy-tasks-uncertain"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-complete-dummy-tasks-uncertain"}},[t._v("#")]),t._v(" update_complete_dummy_tasks_uncertain "),a("Badge",{attrs:{text:"SchedulingDomain",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_complete_dummy_tasks_uncertain",sig:{params:[{name:"self"},{name:"states",annotation:"DiscreteDistribution[State]"},{name:"action",annotation:"SchedulingAction"}]}}}),t._v(" "),a("p",[t._v("In an uncertain scheduling environment, update the status of newly started tasks whose duration is 0\nfrom ongoing to complete.")]),t._v(" "),a("h3",{attrs:{id:"update-complete-tasks"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-complete-tasks"}},[t._v("#")]),t._v(" update_complete_tasks "),a("Badge",{attrs:{text:"SchedulingDomain",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_complete_tasks",sig:{params:[{name:"self"},{name:"state",annotation:"State"}]}}}),t._v(" "),a("p",[t._v("Update the status of newly completed tasks in the state from ongoing to complete\nand update resource availability. This function will also log in task_details the time it was complete")]),t._v(" "),a("h3",{attrs:{id:"update-complete-tasks-simulation"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-complete-tasks-simulation"}},[t._v("#")]),t._v(" update_complete_tasks_simulation "),a("Badge",{attrs:{text:"SchedulingDomain",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_complete_tasks_simulation",sig:{params:[{name:"self"},{name:"state",annotation:"State"}]}}}),t._v(" "),a("p",[t._v("In a simulated scheduling environment, update the status of newly completed tasks in the state from ongoing to complete\nand update resource availability. This function will also log in task_details the time it was complete")]),t._v(" "),a("h3",{attrs:{id:"update-complete-tasks-uncertain"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-complete-tasks-uncertain"}},[t._v("#")]),t._v(" update_complete_tasks_uncertain "),a("Badge",{attrs:{text:"SchedulingDomain",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_complete_tasks_uncertain",sig:{params:[{name:"self"},{name:"states",annotation:"DiscreteDistribution[State]"}]}}}),t._v(" "),a("p",[t._v("In an uncertain scheduling environment, update the status of newly completed tasks in the state from ongoing\nto complete, update resource availability and update on-completion conditions.\nThis function will also log in task_details the time it was complete.")]),t._v(" "),a("h3",{attrs:{id:"update-conditional-tasks"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-conditional-tasks"}},[t._v("#")]),t._v(" update_conditional_tasks "),a("Badge",{attrs:{text:"SchedulingDomain",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_conditional_tasks",sig:{params:[{name:"self"},{name:"state",annotation:"State"},{name:"action",annotation:"SchedulingAction"}]}}}),t._v(" "),a("p",[t._v("Update remaining tasks by checking conditions and potentially adding conditional tasks.")]),t._v(" "),a("h3",{attrs:{id:"update-conditional-tasks-simulation"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-conditional-tasks-simulation"}},[t._v("#")]),t._v(" update_conditional_tasks_simulation "),a("Badge",{attrs:{text:"SchedulingDomain",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_conditional_tasks_simulation",sig:{params:[{name:"self"},{name:"state",annotation:"State"},{name:"action",annotation:"SchedulingAction"}]}}}),t._v(" "),a("p",[t._v("In a simulated scheduling environment, update remaining tasks by checking conditions and potentially\nadding conditional tasks.")]),t._v(" "),a("h3",{attrs:{id:"update-conditional-tasks-uncertain"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-conditional-tasks-uncertain"}},[t._v("#")]),t._v(" update_conditional_tasks_uncertain "),a("Badge",{attrs:{text:"SchedulingDomain",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_conditional_tasks_uncertain",sig:{params:[{name:"self"},{name:"states",annotation:"DiscreteDistribution[State]"},{name:"action",annotation:"SchedulingAction"}]}}}),t._v(" "),a("p",[t._v("Update remaining tasks by checking conditions and potentially adding conditional tasks.")]),t._v(" "),a("h3",{attrs:{id:"update-pause-tasks"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-pause-tasks"}},[t._v("#")]),t._v(" update_pause_tasks "),a("Badge",{attrs:{text:"SchedulingDomain",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_pause_tasks",sig:{params:[{name:"self"},{name:"state",annotation:"State"},{name:"action",annotation:"SchedulingAction"}]}}}),t._v(" "),a("p",[t._v("Update the status of a task from ongoing to paused if specified in the action\nand update resource availability. This function will also log in task_details the time it was paused.")]),t._v(" "),a("h3",{attrs:{id:"update-pause-tasks-simulation"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-pause-tasks-simulation"}},[t._v("#")]),t._v(" update_pause_tasks_simulation "),a("Badge",{attrs:{text:"SchedulingDomain",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_pause_tasks_simulation",sig:{params:[{name:"self"},{name:"state",annotation:"State"},{name:"action",annotation:"SchedulingAction"}]}}}),t._v(" "),a("p",[t._v("In a simulation scheduling environment, update the status of a task from ongoing to paused if\nspecified in the action and update resource availability. This function will also log in task_details\nthe time it was paused.")]),t._v(" "),a("h3",{attrs:{id:"update-pause-tasks-uncertain"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-pause-tasks-uncertain"}},[t._v("#")]),t._v(" update_pause_tasks_uncertain "),a("Badge",{attrs:{text:"SchedulingDomain",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_pause_tasks_uncertain",sig:{params:[{name:"self"},{name:"state",annotation:"State"},{name:"action",annotation:"SchedulingAction"}]}}}),t._v(" "),a("p",[t._v("In an uncertain scheduling environment, update the status of a task from ongoing to paused if\nspecified in the action and update resource availability. This function will also log in task_details\nthe time it was paused.")]),t._v(" "),a("h3",{attrs:{id:"update-progress"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-progress"}},[t._v("#")]),t._v(" update_progress "),a("Badge",{attrs:{text:"SchedulingDomain",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_progress",sig:{params:[{name:"self"},{name:"state",annotation:"State"}]}}}),t._v(" "),a("p",[t._v("Update the progress of all ongoing tasks in the state.")]),t._v(" "),a("h3",{attrs:{id:"update-progress-simulation"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-progress-simulation"}},[t._v("#")]),t._v(" update_progress_simulation "),a("Badge",{attrs:{text:"SchedulingDomain",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_progress_simulation",sig:{params:[{name:"self"},{name:"state",annotation:"State"}]}}}),t._v(" "),a("p",[t._v("In a simulation scheduling environment, update the progress of all ongoing tasks in the state.")]),t._v(" "),a("h3",{attrs:{id:"update-progress-uncertain"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-progress-uncertain"}},[t._v("#")]),t._v(" update_progress_uncertain "),a("Badge",{attrs:{text:"SchedulingDomain",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_progress_uncertain",sig:{params:[{name:"self"},{name:"states",annotation:"DiscreteDistribution[State]"}]}}}),t._v(" "),a("p",[t._v("In an uncertain scheduling environment, update the progress of all ongoing tasks in the state.")]),t._v(" "),a("h3",{attrs:{id:"update-resource-availability"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-resource-availability"}},[t._v("#")]),t._v(" update_resource_availability "),a("Badge",{attrs:{text:"SchedulingDomain",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_resource_availability",sig:{params:[{name:"self"},{name:"state",annotation:"State"},{name:"action",annotation:"SchedulingAction"}]}}}),t._v(" "),a("p",[t._v("Update resource availability for next time step. This should be called after update_time().")]),t._v(" "),a("h3",{attrs:{id:"update-resource-availability-simulation"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-resource-availability-simulation"}},[t._v("#")]),t._v(" update_resource_availability_simulation "),a("Badge",{attrs:{text:"SchedulingDomain",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_resource_availability_simulation",sig:{params:[{name:"self"},{name:"state",annotation:"State"},{name:"action",annotation:"SchedulingAction"}]}}}),t._v(" "),a("p",[t._v("In a simulated scheduling environment, update resource availability for next time step.\nThis should be called after update_time().")]),t._v(" "),a("h3",{attrs:{id:"update-resource-availability-uncertain"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-resource-availability-uncertain"}},[t._v("#")]),t._v(" update_resource_availability_uncertain "),a("Badge",{attrs:{text:"SchedulingDomain",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_resource_availability_uncertain",sig:{params:[{name:"self"},{name:"states",annotation:"DiscreteDistribution[State]"},{name:"action",annotation:"SchedulingAction"}]}}}),t._v(" "),a("p",[t._v("Update resource availability for next time step. This should be called after update_time().")]),t._v(" "),a("h3",{attrs:{id:"update-resume-tasks"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-resume-tasks"}},[t._v("#")]),t._v(" update_resume_tasks "),a("Badge",{attrs:{text:"SchedulingDomain",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_resume_tasks",sig:{params:[{name:"self"},{name:"state",annotation:"State"},{name:"action",annotation:"SchedulingAction"}]}}}),t._v(" "),a("p",[t._v("Update the status of a task from paused to ongoing if specified in the action\nand update resource availability. This function will also log in task_details the time it was resumed")]),t._v(" "),a("h3",{attrs:{id:"update-resume-tasks-simulation"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-resume-tasks-simulation"}},[t._v("#")]),t._v(" update_resume_tasks_simulation "),a("Badge",{attrs:{text:"SchedulingDomain",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_resume_tasks_simulation",sig:{params:[{name:"self"},{name:"state",annotation:"State"},{name:"action",annotation:"SchedulingAction"}]}}}),t._v(" "),a("p",[t._v("In a simulationn scheduling environment, update the status of a task from paused to ongoing if specified\nin the action and update resource availability. This function will also log in task_details the time it was\nresumed.")]),t._v(" "),a("h3",{attrs:{id:"update-resume-tasks-uncertain"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-resume-tasks-uncertain"}},[t._v("#")]),t._v(" update_resume_tasks_uncertain "),a("Badge",{attrs:{text:"SchedulingDomain",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_resume_tasks_uncertain",sig:{params:[{name:"self"},{name:"state",annotation:"State"},{name:"action",annotation:"SchedulingAction"}]}}}),t._v(" "),a("p",[t._v("In an uncertain scheduling environment, update the status of a task from paused to ongoing if specified\nin the action and update resource availability. This function will also log in task_details the time it was\nresumed.")]),t._v(" "),a("h3",{attrs:{id:"update-start-tasks"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-start-tasks"}},[t._v("#")]),t._v(" update_start_tasks "),a("Badge",{attrs:{text:"SchedulingDomain",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_start_tasks",sig:{params:[{name:"self"},{name:"state",annotation:"State"},{name:"action",annotation:"SchedulingAction"}]}}}),t._v(" "),a("p",[t._v("Update the status of a task from remaining to ongoing if specified in the action\nand update resource availability. This function will also log in task_details the time it was started.")]),t._v(" "),a("h3",{attrs:{id:"update-start-tasks-simulation"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-start-tasks-simulation"}},[t._v("#")]),t._v(" update_start_tasks_simulation "),a("Badge",{attrs:{text:"SchedulingDomain",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_start_tasks_simulation",sig:{params:[{name:"self"},{name:"state",annotation:"State"},{name:"action",annotation:"SchedulingAction"}]}}}),t._v(" "),a("p",[t._v("In a simulated scheduling environment, update the status of a task from remaining to ongoing if\nspecified in the action and update resource availability. This function will also log in task_details the\ntime it was started.")]),t._v(" "),a("h3",{attrs:{id:"update-start-tasks-uncertain"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-start-tasks-uncertain"}},[t._v("#")]),t._v(" update_start_tasks_uncertain "),a("Badge",{attrs:{text:"SchedulingDomain",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_start_tasks_uncertain",sig:{params:[{name:"self"},{name:"state",annotation:"State"},{name:"action",annotation:"SchedulingAction"}]}}}),t._v(" "),a("p",[t._v("In an uncertain scheduling environment, update the status of a task from remaining to ongoing\nif specified in the action and update resource availability.\nThis function returns a DsicreteDistribution of State.\nThis function will also log in task_details the time it was started.")]),t._v(" "),a("h3",{attrs:{id:"update-time"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-time"}},[t._v("#")]),t._v(" update_time "),a("Badge",{attrs:{text:"SchedulingDomain",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_time",sig:{params:[{name:"self"},{name:"state",annotation:"State"},{name:"action",annotation:"SchedulingAction"}]}}}),t._v(" "),a("p",[t._v("Update the time of the state if the time_progress attribute of the given EnumerableAction is True.")]),t._v(" "),a("h3",{attrs:{id:"update-time-simulation"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-time-simulation"}},[t._v("#")]),t._v(" update_time_simulation "),a("Badge",{attrs:{text:"SchedulingDomain",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_time_simulation",sig:{params:[{name:"self"},{name:"state",annotation:"State"},{name:"action",annotation:"SchedulingAction"}]}}}),t._v(" "),a("p",[t._v("In a simulated scheduling environment, update the time of the state if the time_progress attribute of the\ngiven EnumerableAction is True.")]),t._v(" "),a("h3",{attrs:{id:"update-time-uncertain"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-time-uncertain"}},[t._v("#")]),t._v(" update_time_uncertain "),a("Badge",{attrs:{text:"SchedulingDomain",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_time_uncertain",sig:{params:[{name:"self"},{name:"states",annotation:"DiscreteDistribution[State]"},{name:"action",annotation:"SchedulingAction"}]}}}),t._v(" "),a("p",[t._v("Update the time of the state if the time_progress attribute of the given EnumerableAction is True.")]),t._v(" "),a("h3",{attrs:{id:"add-to-current-conditions-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#add-to-current-conditions-2"}},[t._v("#")]),t._v(" _add_to_current_conditions "),a("Badge",{attrs:{text:"WithConditionalTasks",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_add_to_current_conditions",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"state"}]}}}),t._v(" "),a("p",[t._v("Samples completion conditions for a given task and add these conditions to the list of conditions in the\ngiven state. This function should be called when a task complete.")]),t._v(" "),a("h3",{attrs:{id:"check-value-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#check-value-4"}},[t._v("#")]),t._v(" _check_value "),a("Badge",{attrs:{text:"Rewards",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_check_value",sig:{params:[{name:"self"},{name:"value",annotation:"Value[D.T_value]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that a value is compliant with its reward specification.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("This function returns always True by default because any kind of reward should be accepted at this level.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-49"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-49"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("value")]),t._v(": The value to check.")])]),t._v(" "),a("h4",{attrs:{id:"returns-75"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-75"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the value is compliant (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"get-action-space-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-5"}},[t._v("#")]),t._v(" _get_action_space "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_action_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) domain action space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._get_action_space()")]),t._v(" internally calls "),a("code",[t._v("Events._get_action_space_()")]),t._v(" the first time and\nautomatically caches its value to make future calls more efficient (since the action space is assumed to be\nconstant).")]),t._v(" "),a("h4",{attrs:{id:"returns-76"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-76"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The action space.")]),t._v(" "),a("h3",{attrs:{id:"get-action-space-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-6"}},[t._v("#")]),t._v(" _get_action_space_ "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_action_space_",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("To be implemented if needed one day.")]),t._v(" "),a("h3",{attrs:{id:"get-all-resources-skills-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-all-resources-skills-2"}},[t._v("#")]),t._v(" _get_all_resources_skills "),a("Badge",{attrs:{text:"WithResourceSkills",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_all_resources_skills",sig:{params:[{name:"self"}],return:"Dict[str, Dict[str, Any]]"}}}),t._v(" "),a("p",[t._v("Return a nested dictionary where the first key is the name of a resource type or resource unit\nand the second key is the name of a skill. The value defines the details of the skill.\nE.g. {unit: {skill: (detail of skill)}}")]),t._v(" "),a("h3",{attrs:{id:"get-all-tasks-skills-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-all-tasks-skills-2"}},[t._v("#")]),t._v(" _get_all_tasks_skills "),a("Badge",{attrs:{text:"WithResourceSkills",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_all_tasks_skills",sig:{params:[{name:"self"}],return:"Dict[int, Dict[int, Dict[str, Any]]]"}}}),t._v(" "),a("p",[t._v("Return a nested dictionary where the first key is the name of a task\nand the second key is the name of a skill. The value defines the details of the skill.\nE.g. {task: {skill: (detail of skill)}}")]),t._v(" "),a("h3",{attrs:{id:"get-all-unconditional-tasks-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-all-unconditional-tasks-2"}},[t._v("#")]),t._v(" _get_all_unconditional_tasks "),a("Badge",{attrs:{text:"WithConditionalTasks",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_all_unconditional_tasks",sig:{params:[{name:"self"}],return:"Set[int]"}}}),t._v(" "),a("p",[t._v("Returns the set of all task ids for which there are no conditions. These tasks are to be considered at\nthe start of a project (i.e. in the initial state).")]),t._v(" "),a("h3",{attrs:{id:"get-applicable-actions-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-4"}},[t._v("#")]),t._v(" _get_applicable_actions "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_applicable_actions",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history), or in\nthe internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._get_applicable_actions()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_applicable_actions_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-50"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-50"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-77"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-77"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of applicable actions.")]),t._v(" "),a("h3",{attrs:{id:"get-applicable-actions-from-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-from-2"}},[t._v("#")]),t._v(" _get_applicable_actions_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_applicable_actions_from",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Returns the action space from a state.\nTODO : think about a way to avoid the instaceof usage.")]),t._v(" "),a("h3",{attrs:{id:"get-available-tasks-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-available-tasks-2"}},[t._v("#")]),t._v(" _get_available_tasks "),a("Badge",{attrs:{text:"WithConditionalTasks",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_available_tasks",sig:{params:[{name:"self"},{name:"state"}],return:"Set[int]"}}}),t._v(" "),a("p",[t._v("Returns the set of all task ids that can be considered under the conditions defined in the given state.\nNote that the set will contains all ids for all tasks in the domain that meet the conditions, that is tasks\nthat are remaining, or that have been completed, paused or started / resumed.")]),t._v(" "),a("h3",{attrs:{id:"get-enabled-events-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-4"}},[t._v("#")]),t._v(" _get_enabled_events "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_enabled_events",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"Space[D.T_event]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory), or in the internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._get_enabled_events()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_enabled_events_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-51"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-51"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-78"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-78"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of enabled events.")]),t._v(" "),a("h3",{attrs:{id:"get-enabled-events-from-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-from-2"}},[t._v("#")]),t._v(" _get_enabled_events_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_enabled_events_from",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"Space[D.T_event]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._get_enabled_events()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("h4",{attrs:{id:"parameters-52"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-52"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-79"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-79"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of enabled events.")]),t._v(" "),a("h3",{attrs:{id:"get-goals-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-goals-5"}},[t._v("#")]),t._v(" _get_goals "),a("Badge",{attrs:{text:"Goals",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_goals",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) domain goals space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Goals._get_goals()")]),t._v(" internally calls "),a("code",[t._v("Goals._get_goals_()")]),t._v(" the first time and automatically caches\nits value to make future calls more efficient (since the goals space is assumed to be constant).")]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Goal states are assumed to be fully observable (i.e. observation = state) so that there is never uncertainty\nabout whether the goal has been reached or not. This assumption guarantees that any policy that does not\nreach the goal with certainty incurs in infinite expected cost. - "),a("em",[t._v("Geffner, 2013: A Concise Introduction to\nModels and Methods for Automated Planning")])])]),t._v(" "),a("h4",{attrs:{id:"returns-80"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-80"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The goals space.")]),t._v(" "),a("h3",{attrs:{id:"get-goals-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-goals-6"}},[t._v("#")]),t._v(" _get_goals_ "),a("Badge",{attrs:{text:"Goals",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_goals_",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the domain goals space (finite or infinite set).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Goals._get_goals()")]),t._v(", the difference being that the result is\nnot cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-81"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-81"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The goals space.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-5"}},[t._v("#")]),t._v(" _get_initial_state "),a("Badge",{attrs:{text:"DeterministicInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_initial_state",sig:{params:[{name:"self"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("Get the (cached) initial state.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("DeterministicInitialized._get_initial_state()")]),t._v(" internally\ncalls "),a("code",[t._v("DeterministicInitialized._get_initial_state_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the initial state is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-82"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-82"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The initial state.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-6"}},[t._v("#")]),t._v(" _get_initial_state_ "),a("Badge",{attrs:{text:"DeterministicInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_initial_state_",sig:{params:[{name:"self"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("Create and return an empty initial state")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-distribution-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-distribution-5"}},[t._v("#")]),t._v(" _get_initial_state_distribution "),a("Badge",{attrs:{text:"UncertainInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_initial_state_distribution",sig:{params:[{name:"self"}],return:"Distribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("Get the (cached) probability distribution of initial states.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("UncertainInitialized._get_initial_state_distribution()")]),t._v(" internally\ncalls "),a("code",[t._v("UncertainInitialized._get_initial_state_distribution_()")]),t._v(" the first time and automatically caches its value\nto make future calls more efficient (since the initial state distribution is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-83"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-83"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of initial states.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-distribution-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-distribution-6"}},[t._v("#")]),t._v(" _get_initial_state_distribution_ "),a("Badge",{attrs:{text:"UncertainInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_initial_state_distribution_",sig:{params:[{name:"self"}],return:"Distribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("Get the probability distribution of initial states.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("UncertainInitialized._get_initial_state_distribution()")]),t._v(", the\ndifference being that the result is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-84"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-84"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of initial states.")]),t._v(" "),a("h3",{attrs:{id:"get-max-horizon-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-max-horizon-2"}},[t._v("#")]),t._v(" _get_max_horizon "),a("Badge",{attrs:{text:"SchedulingDomain",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_max_horizon",sig:{params:[{name:"self"}],return:"int"}}}),t._v(" "),a("p",[t._v("Return the maximum time horizon (int)")]),t._v(" "),a("h3",{attrs:{id:"get-memory-maxlen-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-memory-maxlen-3"}},[t._v("#")]),t._v(" _get_memory_maxlen "),a("Badge",{attrs:{text:"History",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_memory_maxlen",sig:{params:[{name:"self"}],return:"int"}}}),t._v(" "),a("p",[t._v("Get the (cached) memory max length.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("FiniteHistory._get_memory_maxlen()")]),t._v(" internally calls "),a("code",[t._v("FiniteHistory._get_memory_maxlen_()")]),t._v(" the first\ntime and automatically caches its value to make future calls more efficient (since the memory max length is\nassumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-85"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-85"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The memory max length.")]),t._v(" "),a("h3",{attrs:{id:"get-memory-maxlen-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-memory-maxlen-4"}},[t._v("#")]),t._v(" _get_memory_maxlen_ "),a("Badge",{attrs:{text:"FiniteHistory",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_memory_maxlen_",sig:{params:[{name:"self"}],return:"int"}}}),t._v(" "),a("p",[t._v("Get the memory max length.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("FiniteHistory._get_memory_maxlen()")]),t._v(", the difference being that\nthe result is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-86"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-86"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The memory max length.")]),t._v(" "),a("h3",{attrs:{id:"get-mode-costs-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-mode-costs-2"}},[t._v("#")]),t._v(" _get_mode_costs "),a("Badge",{attrs:{text:"WithModeCosts",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_mode_costs",sig:{params:[{name:"self"}],return:"Dict[int, Dict[int, float]]"}}}),t._v(" "),a("p",[t._v("Return a nested dictionary where the first key is the id of a task (int), the second key the id of a mode\nand the value indicates the cost of execution the task in the mode.")]),t._v(" "),a("h3",{attrs:{id:"get-next-state"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-next-state"}},[t._v("#")]),t._v(" _get_next_state "),a("Badge",{attrs:{text:"SchedulingDomain",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_next_state",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("This function will be used if the domain is defined with DeterministicTransitions. This function will be ignored\nif the domain is defined as having UncertainTransitions or Simulation.")]),t._v(" "),a("h3",{attrs:{id:"get-next-state-distribution"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-next-state-distribution"}},[t._v("#")]),t._v(" _get_next_state_distribution "),a("Badge",{attrs:{text:"SchedulingDomain",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_next_state_distribution",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"Distribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("This function will be used if the domain is defined with UncertainTransitions. This function will be ignored\nif the domain is defined as a Simulation. This function may also be used by uncertainty-specialised solvers\non deterministic domains.")]),t._v(" "),a("h3",{attrs:{id:"get-objectives-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-objectives-2"}},[t._v("#")]),t._v(" _get_objectives "),a("Badge",{attrs:{text:"SchedulingDomain",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_objectives",sig:{params:[{name:"self"}],return:"List[SchedulingObjectiveEnum]"}}}),t._v(" "),a("p",[t._v("Return the objectives to consider as a list. The items should be of SchedulingObjectiveEnum type.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-4"}},[t._v("#")]),t._v(" _get_observation "),a("Badge",{attrs:{text:"TransformedObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Get the deterministic observation given a state and action.")]),t._v(" "),a("h4",{attrs:{id:"parameters-53"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-53"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-87"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-87"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-distribution-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-distribution-4"}},[t._v("#")]),t._v(" _get_observation_distribution "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation_distribution",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"Distribution[D.T_agent[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the probability distribution of the observation given a state and action.")]),t._v(" "),a("p",[t._v("In mathematical terms (discrete case), given an action "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.197ex",height:"1.02ex",viewBox:"0 -441 529 451"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})])])])])]),t._v(", this function represents: "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.078ex",height:"2.262ex",viewBox:"0 -750 4012.7 1000"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"50",d:"M287 628Q287 635 230 637Q206 637 199 638T192 648Q192 649 194 659Q200 679 203 681T397 683Q587 682 600 680Q664 669 707 631T751 530Q751 453 685 389Q616 321 507 303Q500 302 402 301H307L277 182Q247 66 247 59Q247 55 248 54T255 50T272 48T305 46H336Q342 37 342 35Q342 19 335 5Q330 0 319 0Q316 0 282 1T182 2Q120 2 87 2T51 1Q33 1 33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM645 554Q645 567 643 575T634 597T609 619T560 635Q553 636 480 637Q463 637 445 637T416 636T404 636Q391 635 386 627Q384 621 367 550T332 412T314 344Q314 342 395 342H407H430Q542 342 590 392Q617 419 631 471T645 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(751, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(1140, 0)"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1903, 0)"}},[a("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(2181, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2650, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(3094.7, 0)"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3623.7, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(",\nwhere "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.05ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.726ex",height:"1.643ex",viewBox:"0 -704 763 726"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})])])])])]),t._v(" is the random variable of the observation.")],1),t._v(" "),a("h4",{attrs:{id:"parameters-54"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-54"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-88"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-88"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-space-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-5"}},[t._v("#")]),t._v(" _get_observation_space "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) observation space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(" internally\ncalls "),a("code",[t._v("PartiallyObservable._get_observation_space_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the observation space is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-89"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-89"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The observation space.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-space-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-6"}},[t._v("#")]),t._v(" _get_observation_space_ "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation_space_",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("To be implemented if needed one day.")]),t._v(" "),a("h3",{attrs:{id:"get-preallocations-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-preallocations-2"}},[t._v("#")]),t._v(" _get_preallocations "),a("Badge",{attrs:{text:"WithPreallocations",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_preallocations",sig:{params:[{name:"self"}],return:"Dict[int, List[str]]"}}}),t._v(" "),a("p",[t._v("Return a dictionary where the key is the id of a task (int)\nand the value indicates the pre-allocated resources for this task (as a list of str)")]),t._v(" "),a("h3",{attrs:{id:"get-predecessors-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-predecessors-2"}},[t._v("#")]),t._v(" _get_predecessors "),a("Badge",{attrs:{text:"WithPrecedence",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_predecessors",sig:{params:[{name:"self"}],return:"Dict[int, List[int]]"}}}),t._v(" "),a("p",[t._v("Return the predecessors of the task. Successors are given as a list for a task given as a key.")]),t._v(" "),a("h3",{attrs:{id:"get-resource-cost-per-time-unit-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-resource-cost-per-time-unit-2"}},[t._v("#")]),t._v(" _get_resource_cost_per_time_unit "),a("Badge",{attrs:{text:"WithResourceCosts",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_resource_cost_per_time_unit",sig:{params:[{name:"self"}],return:"Dict[str, float]"}}}),t._v(" "),a("p",[t._v("Return a dictionary where the key is the name of a resource (str)\nand the value indicates the cost of using this resource per time unit.")]),t._v(" "),a("h3",{attrs:{id:"get-resource-renewability-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-resource-renewability-2"}},[t._v("#")]),t._v(" _get_resource_renewability "),a("Badge",{attrs:{text:"MixedRenewable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_resource_renewability",sig:{params:[{name:"self"}],return:"Dict[str, bool]"}}}),t._v(" "),a("p",[t._v("Return a dictionary where the key is a resource name (string)\nand the value whether this resource is renewable (True) or not (False).")]),t._v(" "),a("h3",{attrs:{id:"get-resource-type-for-unit-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-resource-type-for-unit-2"}},[t._v("#")]),t._v(" _get_resource_type_for_unit "),a("Badge",{attrs:{text:"WithResourceUnits",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_resource_type_for_unit",sig:{params:[{name:"self"}],return:"Dict[str, str]"}}}),t._v(" "),a("p",[t._v("Return a dictionary where the key is a resource unit name and the value a resource type name.\nAn empty dictionary can be used if there are no resource unit matching a resource type.")]),t._v(" "),a("h3",{attrs:{id:"get-resource-types-names-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-resource-types-names-2"}},[t._v("#")]),t._v(" _get_resource_types_names "),a("Badge",{attrs:{text:"WithResourceTypes",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_resource_types_names",sig:{params:[{name:"self"}],return:"List[str]"}}}),t._v(" "),a("p",[t._v("Return the names (string) of all resource types as a list.")]),t._v(" "),a("h3",{attrs:{id:"get-resource-units-names-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-resource-units-names-2"}},[t._v("#")]),t._v(" _get_resource_units_names "),a("Badge",{attrs:{text:"WithResourceUnits",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_resource_units_names",sig:{params:[{name:"self"}],return:"List[str]"}}}),t._v(" "),a("p",[t._v("Return the names (string) of all resource units as a list.")]),t._v(" "),a("h3",{attrs:{id:"get-successors-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-successors-2"}},[t._v("#")]),t._v(" _get_successors "),a("Badge",{attrs:{text:"WithPrecedence",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_successors",sig:{params:[{name:"self"}],return:"Dict[int, List[int]]"}}}),t._v(" "),a("p",[t._v("Return the successors of the tasks. Successors are given as a list for a task given as a key.")]),t._v(" "),a("h3",{attrs:{id:"get-task-existence-conditions-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-task-existence-conditions-2"}},[t._v("#")]),t._v(" _get_task_existence_conditions "),a("Badge",{attrs:{text:"WithConditionalTasks",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_task_existence_conditions",sig:{params:[{name:"self"}],return:"Dict[int, List[int]]"}}}),t._v(" "),a("p",[t._v("Return a dictionary where the key is a task id and the value a list of conditions to be respected (True)\nfor the task to be part of the schedule. If a task has no entry in the dictionary,\nthere is no conditions for that task.")]),t._v(" "),a("p",[t._v("Example:\nreturn\n{\n20: [get_all_condition_items().NC_PART_1_OPERATION_1],\n21: [get_all_condition_items().HARDWARE_ISSUE_MACHINE_A]\n22: [get_all_condition_items().NC_PART_1_OPERATION_1, get_all_condition_items().NC_PART_1_OPERATION_2]\n}e")]),t._v(" "),a("h3",{attrs:{id:"get-task-paused-non-renewable-resource-returned-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-task-paused-non-renewable-resource-returned-2"}},[t._v("#")]),t._v(" _get_task_paused_non_renewable_resource_returned "),a("Badge",{attrs:{text:"WithPreemptivity",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_task_paused_non_renewable_resource_returned",sig:{params:[{name:"self"}],return:"Dict[int, bool]"}}}),t._v(" "),a("p",[t._v("Return a dictionary where the key is a task id and the value is of type bool indicating\nif the non-renewable resources are consumed when the task is paused (False) or made available again (True).\nE.g. {\n2: False # if paused, non-renewable resource will be consumed\n5: True # if paused, the non-renewable resource will be available again\n}")]),t._v(" "),a("h3",{attrs:{id:"get-task-preemptivity-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-task-preemptivity-2"}},[t._v("#")]),t._v(" _get_task_preemptivity "),a("Badge",{attrs:{text:"WithPreemptivity",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_task_preemptivity",sig:{params:[{name:"self"}],return:"Dict[int, bool]"}}}),t._v(" "),a("p",[t._v("Return a dictionary where the key is a task id and the value a boolean indicating\nif the task can be paused or stopped.\nE.g. {\n1: False\n2: True\n3: False\n4: False\n5: True\n6: False\n}")]),t._v(" "),a("h3",{attrs:{id:"get-task-progress-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-task-progress-2"}},[t._v("#")]),t._v(" _get_task_progress "),a("Badge",{attrs:{text:"CustomTaskProgress",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_task_progress",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"t_from",annotation:"int"},{name:"t_to",annotation:"int"},{name:"mode",annotation:"Optional[int]"},{name:"sampled_duration",default:"None",annotation:"Optional[int]"}],return:"float"}}}),t._v(" "),a("h4",{attrs:{id:"returns-90"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-90"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The task progress (float) between t_from and t_to.")]),t._v(" "),a("h3",{attrs:{id:"get-task-resuming-type-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-task-resuming-type-2"}},[t._v("#")]),t._v(" _get_task_resuming_type "),a("Badge",{attrs:{text:"WithPreemptivity",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_task_resuming_type",sig:{params:[{name:"self"}],return:"Dict[int, ResumeType]"}}}),t._v(" "),a("p",[t._v("Return a dictionary where the key is a task id and the value is of type ResumeType indicating\nif the task can be resumed (restarted from where it was paused with no time loss)\nor restarted (restarted from the start).\nE.g. {\n1: ResumeType.NA\n2: ResumeType.Resume\n3: ResumeType.NA\n4: ResumeType.NA\n5: ResumeType.Restart\n6: ResumeType.NA\n}")]),t._v(" "),a("h3",{attrs:{id:"get-tasks-ids"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-tasks-ids"}},[t._v("#")]),t._v(" _get_tasks_ids "),a("Badge",{attrs:{text:"MultiMode",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_tasks_ids",sig:{params:[{name:"self"}],return:"Union[Set[int], Dict[int, Any], List[int]]"}}}),t._v(" "),a("p",[t._v("Return a set or dict of int = id of tasks")]),t._v(" "),a("h3",{attrs:{id:"get-tasks-modes"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-tasks-modes"}},[t._v("#")]),t._v(" _get_tasks_modes "),a("Badge",{attrs:{text:"MultiMode",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_tasks_modes",sig:{params:[{name:"self"}],return:"Dict[int, Dict[int, ModeConsumption]]"}}}),t._v(" "),a("p",[t._v("Return a nested dictionary where the first key is a task id and the second key is a mode id.\nThe value is a Mode object defining the resource consumption.\nIf the domain is an instance of VariableResourceConsumption, VaryingModeConsumption objects should be used.\nIf this is not the case (i.e. the domain is an instance of ConstantResourceConsumption),\nthen ConstantModeConsumption should be used.")]),t._v(" "),a("p",[t._v("E.g. with constant resource consumption\n{\n12: {\n1: ConstantModeConsumption({'rt_1': 2, 'rt_2': 0, 'ru_1': 1}),\n2: ConstantModeConsumption({'rt_1': 0, 'rt_2': 3, 'ru_1': 1}),\n}\n}")]),t._v(" "),a("p",[t._v("E.g. with time varying resource consumption\n{\n12: {\n1: VaryingModeConsumption({'rt_1': [2,2,2,2,3], 'rt_2': [0,0,0,0,0], 'ru_1': [1,1,1,1,1]}),\n2: VaryingModeConsumption({'rt_1': [1,1,1,1,2,2,2], 'rt_2': [0,0,0,0,0,0,0], 'ru_1': [1,1,1,1,1,1,1]}),\n}\n}")]),t._v(" "),a("h3",{attrs:{id:"get-time-lags-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-time-lags-2"}},[t._v("#")]),t._v(" _get_time_lags "),a("Badge",{attrs:{text:"WithTimeLag",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_time_lags",sig:{params:[{name:"self"}],return:"Dict[int, Dict[int, TimeLag]]"}}}),t._v(" "),a("p",[t._v("Return nested dictionaries where the first key is the id of a task (int)\nand the second key is the id of another task (int).\nThe value is a TimeLag object containing the MINIMUM and MAXIMUM time (int) that needs to separate the end\nof the first task to the start of the second task.")]),t._v(" "),a("p",[t._v("e.g.\n{\n12:{\n15: TimeLag(5, 10),\n16: TimeLag(5, 20),\n17: MinimumOnlyTimeLag(5),\n18: MaximumOnlyTimeLag(15),\n}\n}")]),t._v(" "),a("h4",{attrs:{id:"returns-91"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-91"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("A dictionary of TimeLag objects.")]),t._v(" "),a("h3",{attrs:{id:"get-time-window-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-time-window-2"}},[t._v("#")]),t._v(" _get_time_window "),a("Badge",{attrs:{text:"WithTimeWindow",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_time_window",sig:{params:[{name:"self"}],return:"Dict[int, TimeWindow]"}}}),t._v(" "),a("p",[t._v("Return a dictionary where the key is the id of a task (int)\nand the value is a TimeWindow object.\nNote that the max time horizon needs to be provided to the TimeWindow constructors\ne.g.\n{\n1: TimeWindow(10, 15, 20, 30, self.get_max_horizon())\n2: EmptyTimeWindow(self.get_max_horizon())\n3: EndTimeWindow(20, 25, self.get_max_horizon())\n4: EndBeforeOnlyTimeWindow(40, self.get_max_horizon())\n}")]),t._v(" "),a("h4",{attrs:{id:"returns-92"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-92"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("A dictionary of TimeWindow objects.")]),t._v(" "),a("h3",{attrs:{id:"get-variable-resource-consumption-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-variable-resource-consumption-2"}},[t._v("#")]),t._v(" _get_variable_resource_consumption "),a("Badge",{attrs:{text:"VariableResourceConsumption",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_variable_resource_consumption",sig:{params:[{name:"self"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Return true if the domain has variable resource consumption,\nfalse if the consumption of resource does not vary in time for any of the tasks")]),t._v(" "),a("h3",{attrs:{id:"init-memory-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#init-memory-2"}},[t._v("#")]),t._v(" _init_memory "),a("Badge",{attrs:{text:"History",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_init_memory",sig:{params:[{name:"self"},{name:"state",default:"None",annotation:"Optional[D.T_state]"}],return:"D.T_memory[D.T_state]"}}}),t._v(" "),a("p",[t._v("Initialize memory (possibly with a state) according to its specification and return it.")]),t._v(" "),a("p",[t._v("This function is automatically called by "),a("code",[t._v("Initializable._reset()")]),t._v(" to reinitialize the internal memory whenever\nthe domain is used as an environment.")]),t._v(" "),a("h4",{attrs:{id:"parameters-55"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-55"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": An optional state to initialize the memory with (typically the initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-93"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-93"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The new initialized memory.")]),t._v(" "),a("h3",{attrs:{id:"is-action-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-action-4"}},[t._v("#")]),t._v(" _is_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_action",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an event is an action (i.e. a controllable event for the agents).")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\naction space provided by "),a("code",[t._v("Events._get_action_space()")]),t._v(", but it can be overridden for faster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-56"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-56"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("event")]),t._v(": The event to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-94"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-94"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is an action (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-applicable-action-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-4"}},[t._v("#")]),t._v(" _is_applicable_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_applicable_action",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an action is applicable in the given memory (state or history), or in the internal one if\nomitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._is_applicable_action()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_applicable_action_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-57"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-57"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-95"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-95"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the action is applicable (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-applicable-action-from-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-from-2"}},[t._v("#")]),t._v(" _is_applicable_action_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_applicable_action_from",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an action is applicable in the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._is_applicable_action()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the space of\napplicable actions provided by "),a("code",[t._v("Events._get_applicable_actions_from()")]),t._v(", but it can be overridden for faster\nimplementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-58"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-58"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-96"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-96"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the action is applicable (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-enabled-event-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-4"}},[t._v("#")]),t._v(" _is_enabled_event "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_enabled_event",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an uncontrollable event is enabled in the given memory (state or history), or in the\ninternal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._is_enabled_event()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_enabled_event_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead\nof the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-59"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-59"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-97"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-97"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is enabled (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-enabled-event-from-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-from-2"}},[t._v("#")]),t._v(" _is_enabled_event_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_enabled_event_from",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an event is enabled in the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._is_enabled_event()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the space of\nenabled events provided by "),a("code",[t._v("Events._get_enabled_events_from()")]),t._v(", but it can be overridden for faster\nimplementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-60"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-60"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-98"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-98"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is enabled (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-goal-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-goal-4"}},[t._v("#")]),t._v(" _is_goal "),a("Badge",{attrs:{text:"Goals",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_goal",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"D.T_agent[D.T_predicate]"}}}),t._v(" "),a("p",[t._v("Indicate whether an observation belongs to the goals.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\ngoals space provided by "),a("code",[t._v("Goals._get_goals()")]),t._v(", but it can be overridden for faster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-61"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-61"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-99"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-99"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the observation is a goal (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-observation-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-observation-4"}},[t._v("#")]),t._v(" _is_observation "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_observation",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that an observation indeed belongs to the domain observation space.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\nobservation space provided by "),a("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(", but it can be overridden for\nfaster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-62"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-62"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-100"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-100"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the observation belongs to the domain observation space (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"reset-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#reset-4"}},[t._v("#")]),t._v(" _reset "),a("Badge",{attrs:{text:"Initializable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_reset",sig:{params:[{name:"self"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Reset the state of the environment and return an initial observation.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Initializable._reset()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Initializable._state_reset()")]),t._v(" (which returns an initial state). The boilerplate code automatically stores\nthe initial state into the "),a("code",[t._v("_memory")]),t._v(" attribute and samples a corresponding observation.")]),t._v(" "),a("h4",{attrs:{id:"returns-101"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-101"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("An initial observation.")]),t._v(" "),a("h3",{attrs:{id:"sample-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample-4"}},[t._v("#")]),t._v(" _sample "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_sample",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Sample one transition of the simulator's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Simulation._sample()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Simulation._state_sample()")]),t._v(" (which returns a transition outcome). The boilerplate code automatically\nsamples an observation corresponding to the sampled next state.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing simulator needs to be wrapped instead of implemented fully in scikit-decide (e.g. a\nsimulator), it is recommended to overwrite "),a("code",[t._v("Simulation._sample()")]),t._v(" to call the external simulator and not use\nthe "),a("code",[t._v("Simulation._state_sample()")]),t._v(" helper function.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-63"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-63"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-102"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-102"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of the sampled transition.")]),t._v(" "),a("h3",{attrs:{id:"sample-completion-conditions-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample-completion-conditions-2"}},[t._v("#")]),t._v(" _sample_completion_conditions "),a("Badge",{attrs:{text:"WithConditionalTasks",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_sample_completion_conditions",sig:{params:[{name:"self"},{name:"task",annotation:"int"}],return:"List[int]"}}}),t._v(" "),a("p",[t._v("Samples the condition distributions associated with the given task and return a list of sampled\nconditions.")]),t._v(" "),a("h3",{attrs:{id:"sample-quantity-resource-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample-quantity-resource-2"}},[t._v("#")]),t._v(" _sample_quantity_resource "),a("Badge",{attrs:{text:"UncertainResourceAvailabilityChanges",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_sample_quantity_resource",sig:{params:[{name:"self"},{name:"resource",annotation:"str"},{name:"time",annotation:"int"},{name:"**kwargs"}],return:"int"}}}),t._v(" "),a("p",[t._v("Sample an amount of resource availability (int) for the given resource\n(either resource type or resource unit) at the given time. This number should be the sum of the number of\nresource available at time t and the number of resource of this type consumed so far).")]),t._v(" "),a("h3",{attrs:{id:"sample-task-duration-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample-task-duration-2"}},[t._v("#")]),t._v(" _sample_task_duration "),a("Badge",{attrs:{text:"SimulatedTaskDuration",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_sample_task_duration",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"mode",default:"1",annotation:"Optional[int]"},{name:"progress_from",default:"0.0",annotation:"Optional[float]"}],return:"int"}}}),t._v(" "),a("p",[t._v("Return a task duration for the given task in the given mode.")]),t._v(" "),a("h3",{attrs:{id:"set-memory-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#set-memory-4"}},[t._v("#")]),t._v(" _set_memory "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_set_memory",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"None"}}}),t._v(" "),a("p",[t._v("Set internal memory attribute "),a("code",[t._v("_memory")]),t._v(" to given one.")]),t._v(" "),a("p",[t._v('This can be useful to set a specific "starting point" before doing a rollout with\nsuccessive '),a("code",[t._v("Environment._step()")]),t._v(" calls.")]),t._v(" "),a("h4",{attrs:{id:"parameters-64"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-64"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to set internally.")])]),t._v(" "),a("h4",{attrs:{id:"example-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#example-4"}},[t._v("#")]),t._v(" Example")]),t._v(" "),a("div",{staticClass:"language-python extra-class"},[a("pre",{pre:!0,attrs:{class:"language-python"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Set simulation_domain memory to my_state (assuming Markovian domain)")]),t._v("\nsimulation_domain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("_set_memory"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("my_state"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Start a 100-steps rollout from here (applying my_action at every step)")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("for")]),t._v(" _ "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("in")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("range")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n simulation_domain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("_step"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("my_action"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("h3",{attrs:{id:"state-reset-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#state-reset-2"}},[t._v("#")]),t._v(" _state_reset "),a("Badge",{attrs:{text:"Initializable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_state_reset",sig:{params:[{name:"self"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("Reset the state of the environment and return an initial state.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Initializable._reset()")]),t._v(". It focuses on the state level, as\nopposed to the observation one for the latter.")]),t._v(" "),a("h4",{attrs:{id:"returns-103"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-103"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("An initial state.")]),t._v(" "),a("h3",{attrs:{id:"state-sample-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#state-sample-2"}},[t._v("#")]),t._v(" _state_sample "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_state_sample",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"TransitionOutcome[D.T_state, D.T_agent[Value[D.T_value]], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("This function will be used if the domain is defined as a Simulation (i.e. transitions are defined by call to\na simulation). This function may also be used by simulation-based solvers on non-Simulation domains.")]),t._v(" "),a("h3",{attrs:{id:"state-step-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#state-step-2"}},[t._v("#")]),t._v(" _state_step "),a("Badge",{attrs:{text:"Environment",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_state_step",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"TransitionOutcome[D.T_state, D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Compute one step of the transition's dynamics.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Environment._step()")]),t._v(". It focuses on the state level, as opposed\nto the observation one for the latter.")]),t._v(" "),a("h4",{attrs:{id:"parameters-65"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-65"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the current memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-104"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-104"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The transition outcome of this step.")]),t._v(" "),a("h3",{attrs:{id:"step-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#step-4"}},[t._v("#")]),t._v(" _step "),a("Badge",{attrs:{text:"Environment",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_step",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Run one step of the environment's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Environment._step()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Environment._state_step()")]),t._v(" (which returns a transition outcome). The boilerplate code automatically stores\nnext state into the "),a("code",[t._v("_memory")]),t._v(" attribute and samples a corresponding observation.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing environment needs to be wrapped instead of implemented fully in scikit-decide (e.g. compiled\nATARI games), it is recommended to overwrite "),a("code",[t._v("Environment._step()")]),t._v(" to call the external environment and not\nuse the "),a("code",[t._v("Environment._state_step()")]),t._v(" helper function.")])]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Before calling "),a("code",[t._v("Environment._step()")]),t._v(" the first time or when the end of an episode is\nreached, "),a("code",[t._v("Initializable._reset()")]),t._v(" must be called to reset the environment's state.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-66"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-66"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the current memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-105"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-105"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of this step.")]),t._v(" "),a("h2",{attrs:{id:"d-det"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#d-det"}},[t._v("#")]),t._v(" D_det")]),t._v(" "),a("p",[t._v("Base class for deterministic scheduling problems")]),t._v(" "),a("h3",{attrs:{id:"check-value-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#check-value-5"}},[t._v("#")]),t._v(" check_value "),a("Badge",{attrs:{text:"Rewards",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"check_value",sig:{params:[{name:"self"},{name:"value",annotation:"Value[D.T_value]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that a value is compliant with its reward specification.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("This function returns always True by default because any kind of reward should be accepted at this level.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-67"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-67"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("value")]),t._v(": The value to check.")])]),t._v(" "),a("h4",{attrs:{id:"returns-106"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-106"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the value is compliant (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"get-action-space-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-7"}},[t._v("#")]),t._v(" get_action_space "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_action_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) domain action space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.get_action_space()")]),t._v(" internally calls "),a("code",[t._v("Events._get_action_space_()")]),t._v(" the first time and\nautomatically caches its value to make future calls more efficient (since the action space is assumed to be\nconstant).")]),t._v(" "),a("h4",{attrs:{id:"returns-107"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-107"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The action space.")]),t._v(" "),a("h3",{attrs:{id:"get-applicable-actions-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-5"}},[t._v("#")]),t._v(" get_applicable_actions "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_applicable_actions",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history), or in\nthe internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.get_applicable_actions()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_applicable_actions()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-68"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-68"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-108"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-108"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of applicable actions.")]),t._v(" "),a("h3",{attrs:{id:"get-enabled-events-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-5"}},[t._v("#")]),t._v(" get_enabled_events "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_enabled_events",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"Space[D.T_event]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory), or in the internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.get_enabled_events()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_enabled_events()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead of\nthe memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-69"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-69"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-109"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-109"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of enabled events.")]),t._v(" "),a("h3",{attrs:{id:"get-goals-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-goals-7"}},[t._v("#")]),t._v(" get_goals "),a("Badge",{attrs:{text:"Goals",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_goals",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) domain goals space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Goals.get_goals()")]),t._v(" internally calls "),a("code",[t._v("Goals._get_goals_()")]),t._v(" the first time and automatically caches its\nvalue to make future calls more efficient (since the goals space is assumed to be constant).")]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Goal states are assumed to be fully observable (i.e. observation = state) so that there is never uncertainty\nabout whether the goal has been reached or not. This assumption guarantees that any policy that does not\nreach the goal with certainty incurs in infinite expected cost. - "),a("em",[t._v("Geffner, 2013: A Concise Introduction to\nModels and Methods for Automated Planning")])])]),t._v(" "),a("h4",{attrs:{id:"returns-110"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-110"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The goals space.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-7"}},[t._v("#")]),t._v(" get_initial_state "),a("Badge",{attrs:{text:"DeterministicInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_initial_state",sig:{params:[{name:"self"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("Get the (cached) initial state.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("DeterministicInitialized.get_initial_state()")]),t._v(" internally\ncalls "),a("code",[t._v("DeterministicInitialized._get_initial_state_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the initial state is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-111"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-111"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The initial state.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-distribution-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-distribution-7"}},[t._v("#")]),t._v(" get_initial_state_distribution "),a("Badge",{attrs:{text:"UncertainInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_initial_state_distribution",sig:{params:[{name:"self"}],return:"Distribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("Get the (cached) probability distribution of initial states.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("UncertainInitialized.get_initial_state_distribution()")]),t._v(" internally\ncalls "),a("code",[t._v("UncertainInitialized._get_initial_state_distribution_()")]),t._v(" the first time and automatically caches its value\nto make future calls more efficient (since the initial state distribution is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-112"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-112"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of initial states.")]),t._v(" "),a("h3",{attrs:{id:"get-next-state-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-next-state-2"}},[t._v("#")]),t._v(" get_next_state "),a("Badge",{attrs:{text:"DeterministicTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_next_state",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("Get the next state given a memory and action.")]),t._v(" "),a("h4",{attrs:{id:"parameters-70"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-70"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-113"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-113"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The deterministic next state.")]),t._v(" "),a("h3",{attrs:{id:"get-next-state-distribution-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-next-state-distribution-2"}},[t._v("#")]),t._v(" get_next_state_distribution "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_next_state_distribution",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"DiscreteDistribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("Get the discrete probability distribution of next state given a memory and action.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("In the Markovian case (memory only holds last state "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.061ex",height:"1.023ex",viewBox:"0 -442 469 452"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})])])])])]),t._v("), given an action "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.197ex",height:"1.02ex",viewBox:"0 -441 529 451"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})])])])])]),t._v(", this function can\nbe mathematically represented by "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.292ex",height:"2.283ex",viewBox:"0 -759 4107.1 1009"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"50",d:"M287 628Q287 635 230 637Q206 637 199 638T192 648Q192 649 194 659Q200 679 203 681T397 683Q587 682 600 680Q664 669 707 631T751 530Q751 453 685 389Q616 321 507 303Q500 302 402 301H307L277 182Q247 66 247 59Q247 55 248 54T255 50T272 48T305 46H336Q342 37 342 35Q342 19 335 5Q330 0 319 0Q316 0 282 1T182 2Q120 2 87 2T51 1Q33 1 33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM645 554Q645 567 643 575T634 597T609 619T560 635Q553 636 480 637Q463 637 445 637T416 636T404 636Q391 635 386 627Q384 621 367 550T332 412T314 344Q314 342 395 342H407H430Q542 342 590 392Q617 419 631 471T645 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(751, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"msup",transform:"translate(1140, 0)"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"53",d:"M308 24Q367 24 416 76T466 197Q466 260 414 284Q308 311 278 321T236 341Q176 383 176 462Q176 523 208 573T273 648Q302 673 343 688T407 704H418H425Q521 704 564 640Q565 640 577 653T603 682T623 704Q624 704 627 704T632 705Q645 705 645 698T617 577T585 459T569 456Q549 456 549 465Q549 471 550 475Q550 478 551 494T553 520Q553 554 544 579T526 616T501 641Q465 662 419 662Q362 662 313 616T263 510Q263 480 278 458T319 427Q323 425 389 408T456 390Q490 379 522 342T554 242Q554 216 546 186Q541 164 528 137T492 78T426 18T332 -20Q320 -22 298 -22Q199 -22 144 33L134 44L106 13Q83 -14 78 -18T65 -22Q52 -22 52 -14Q52 -11 110 221Q112 227 130 227H143Q149 221 149 216Q149 214 148 207T144 186T142 153Q144 114 160 87T203 47T255 29T308 24Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(613, 363) scale(0.707)"}},[a("path",{attrs:{"data-c":"2032",d:"M79 43Q73 43 52 49T30 61Q30 68 85 293T146 528Q161 560 198 560Q218 560 240 545T262 501Q262 496 260 486Q259 479 173 263T84 45T79 43Z"}})])]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1997.5, 0)"}},[a("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(2275.5, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2744.5, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(3189.1, 0)"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3718.1, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(", where "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.05ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.94ex",height:"1.767ex",viewBox:"0 -759 857.5 781"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"msup"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"53",d:"M308 24Q367 24 416 76T466 197Q466 260 414 284Q308 311 278 321T236 341Q176 383 176 462Q176 523 208 573T273 648Q302 673 343 688T407 704H418H425Q521 704 564 640Q565 640 577 653T603 682T623 704Q624 704 627 704T632 705Q645 705 645 698T617 577T585 459T569 456Q549 456 549 465Q549 471 550 475Q550 478 551 494T553 520Q553 554 544 579T526 616T501 641Q465 662 419 662Q362 662 313 616T263 510Q263 480 278 458T319 427Q323 425 389 408T456 390Q490 379 522 342T554 242Q554 216 546 186Q541 164 528 137T492 78T426 18T332 -20Q320 -22 298 -22Q199 -22 144 33L134 44L106 13Q83 -14 78 -18T65 -22Q52 -22 52 -14Q52 -11 110 221Q112 227 130 227H143Q149 221 149 216Q149 214 148 207T144 186T142 153Q144 114 160 87T203 47T255 29T308 24Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(613, 363) scale(0.707)"}},[a("path",{attrs:{"data-c":"2032",d:"M79 43Q73 43 52 49T30 61Q30 68 85 293T146 528Q161 560 198 560Q218 560 240 545T262 501Q262 496 260 486Q259 479 173 263T84 45T79 43Z"}})])])])])])]),t._v(" is the next state random variable.")],1)]),t._v(" "),a("h4",{attrs:{id:"parameters-71"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-71"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-114"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-114"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The discrete probability distribution of next state.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-5"}},[t._v("#")]),t._v(" get_observation "),a("Badge",{attrs:{text:"TransformedObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_observation",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Get the deterministic observation given a state and action.")]),t._v(" "),a("h4",{attrs:{id:"parameters-72"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-72"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-115"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-115"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-distribution-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-distribution-5"}},[t._v("#")]),t._v(" get_observation_distribution "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_observation_distribution",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"Distribution[D.T_agent[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the probability distribution of the observation given a state and action.")]),t._v(" "),a("p",[t._v("In mathematical terms (discrete case), given an action "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.197ex",height:"1.02ex",viewBox:"0 -441 529 451"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})])])])])]),t._v(", this function represents: "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.078ex",height:"2.262ex",viewBox:"0 -750 4012.7 1000"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"50",d:"M287 628Q287 635 230 637Q206 637 199 638T192 648Q192 649 194 659Q200 679 203 681T397 683Q587 682 600 680Q664 669 707 631T751 530Q751 453 685 389Q616 321 507 303Q500 302 402 301H307L277 182Q247 66 247 59Q247 55 248 54T255 50T272 48T305 46H336Q342 37 342 35Q342 19 335 5Q330 0 319 0Q316 0 282 1T182 2Q120 2 87 2T51 1Q33 1 33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM645 554Q645 567 643 575T634 597T609 619T560 635Q553 636 480 637Q463 637 445 637T416 636T404 636Q391 635 386 627Q384 621 367 550T332 412T314 344Q314 342 395 342H407H430Q542 342 590 392Q617 419 631 471T645 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(751, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(1140, 0)"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1903, 0)"}},[a("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(2181, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2650, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(3094.7, 0)"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3623.7, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(",\nwhere "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.05ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.726ex",height:"1.643ex",viewBox:"0 -704 763 726"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})])])])])]),t._v(" is the random variable of the observation.")],1),t._v(" "),a("h4",{attrs:{id:"parameters-73"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-73"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-116"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-116"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-space-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-7"}},[t._v("#")]),t._v(" get_observation_space "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_observation_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) observation space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("PartiallyObservable.get_observation_space()")]),t._v(" internally\ncalls "),a("code",[t._v("PartiallyObservable._get_observation_space_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the observation space is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-117"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-117"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The observation space.")]),t._v(" "),a("h3",{attrs:{id:"get-transition-value"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-transition-value"}},[t._v("#")]),t._v(" get_transition_value "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_transition_value",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"},{name:"next_state",default:"None",annotation:"Optional[D.T_state]"}],return:"D.T_agent[Value[D.T_value]]"}}}),t._v(" "),a("p",[t._v("Get the value (reward or cost) of a transition.")]),t._v(" "),a("p",[t._v("The transition to consider is defined by the function parameters.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("If this function never depends on the next_state parameter for its computation, it is recommended to\nindicate it by overriding "),a("code",[t._v("UncertainTransitions._is_transition_value_dependent_on_next_state_()")]),t._v(" to return\nFalse. This information can then be exploited by solvers to avoid computing next state to evaluate a\ntransition value (more efficient).")])]),t._v(" "),a("h4",{attrs:{id:"parameters-74"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-74"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")]),t._v(" "),a("li",[a("strong",[t._v("next_state")]),t._v(": The next state in which the transition ends (if needed for the computation).")])]),t._v(" "),a("h4",{attrs:{id:"returns-118"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-118"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The transition value (reward or cost).")]),t._v(" "),a("h3",{attrs:{id:"is-action-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-action-5"}},[t._v("#")]),t._v(" is_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_action",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an event is an action (i.e. a controllable event for the agents).")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\naction space provided by "),a("code",[t._v("Events.get_action_space()")]),t._v(", but it can be overridden for faster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-75"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-75"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("event")]),t._v(": The event to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-119"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-119"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is an action (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-applicable-action-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-5"}},[t._v("#")]),t._v(" is_applicable_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_applicable_action",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an action is applicable in the given memory (state or history), or in the internal one if\nomitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.is_applicable_action()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_applicable_action()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead\nof the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-76"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-76"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-120"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-120"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the action is applicable (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-enabled-event-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-5"}},[t._v("#")]),t._v(" is_enabled_event "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_enabled_event",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an uncontrollable event is enabled in the given memory (state or history), or in the\ninternal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.is_enabled_event()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_enabled_event()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead of\nthe memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-77"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-77"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-121"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-121"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is enabled (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-goal-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-goal-5"}},[t._v("#")]),t._v(" is_goal "),a("Badge",{attrs:{text:"Goals",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_goal",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"D.T_agent[D.T_predicate]"}}}),t._v(" "),a("p",[t._v("Indicate whether an observation belongs to the goals.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\ngoals space provided by "),a("code",[t._v("Goals.get_goals()")]),t._v(", but it can be overridden for faster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-78"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-78"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-122"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-122"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the observation is a goal (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-observation-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-observation-5"}},[t._v("#")]),t._v(" is_observation "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_observation",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that an observation indeed belongs to the domain observation space.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\nobservation space provided by "),a("code",[t._v("PartiallyObservable.get_observation_space()")]),t._v(", but it can be overridden for\nfaster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-79"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-79"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-123"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-123"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the observation belongs to the domain observation space (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-terminal"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-terminal"}},[t._v("#")]),t._v(" is_terminal "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_terminal",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"}],return:"D.T_agent[D.T_predicate]"}}}),t._v(" "),a("p",[t._v("Indicate whether a state is terminal.")]),t._v(" "),a("p",[t._v("A terminal state is a state with no outgoing transition (except to itself with value 0).")]),t._v(" "),a("h4",{attrs:{id:"parameters-80"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-80"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-124"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-124"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the state is terminal (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-transition-value-dependent-on-next-state"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-transition-value-dependent-on-next-state"}},[t._v("#")]),t._v(" is_transition_value_dependent_on_next_state "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_transition_value_dependent_on_next_state",sig:{params:[{name:"self"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether get_transition_value() requires the next_state parameter for its computation (cached).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("UncertainTransitions.is_transition_value_dependent_on_next_state()")]),t._v(" internally\ncalls "),a("code",[t._v("UncertainTransitions._is_transition_value_dependent_on_next_state_()")]),t._v(" the first time and automatically\ncaches its value to make future calls more efficient (since the returned value is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-125"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-125"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the transition value computation depends on next_state (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"reset-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#reset-5"}},[t._v("#")]),t._v(" reset "),a("Badge",{attrs:{text:"Initializable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"reset",sig:{params:[{name:"self"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Reset the state of the environment and return an initial observation.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Initializable.reset()")]),t._v(" provides some boilerplate code and internally calls "),a("code",[t._v("Initializable._reset()")]),t._v("\n(which returns an initial state). The boilerplate code automatically stores the initial state into the "),a("code",[t._v("_memory")]),t._v("\nattribute and samples a corresponding observation.")]),t._v(" "),a("h4",{attrs:{id:"returns-126"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-126"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("An initial observation.")]),t._v(" "),a("h3",{attrs:{id:"sample-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample-5"}},[t._v("#")]),t._v(" sample "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"sample",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Sample one transition of the simulator's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Simulation.sample()")]),t._v(" provides some boilerplate code and internally calls "),a("code",[t._v("Simulation._sample()")]),t._v("\n(which returns a transition outcome). The boilerplate code automatically samples an observation corresponding to\nthe sampled next state.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing simulator needs to be wrapped instead of implemented fully in scikit-decide (e.g. a\nsimulator), it is recommended to overwrite "),a("code",[t._v("Simulation.sample()")]),t._v(" to call the external simulator and not use\nthe "),a("code",[t._v("Simulation._sample()")]),t._v(" helper function.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-81"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-81"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-127"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-127"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of the sampled transition.")]),t._v(" "),a("h3",{attrs:{id:"set-memory-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#set-memory-5"}},[t._v("#")]),t._v(" set_memory "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"set_memory",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"None"}}}),t._v(" "),a("p",[t._v("Set internal memory attribute "),a("code",[t._v("_memory")]),t._v(" to given one.")]),t._v(" "),a("p",[t._v('This can be useful to set a specific "starting point" before doing a rollout with successive '),a("code",[t._v("Environment.step()")]),t._v("\ncalls.")]),t._v(" "),a("h4",{attrs:{id:"parameters-82"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-82"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to set internally.")])]),t._v(" "),a("h4",{attrs:{id:"example-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#example-5"}},[t._v("#")]),t._v(" Example")]),t._v(" "),a("div",{staticClass:"language-python extra-class"},[a("pre",{pre:!0,attrs:{class:"language-python"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Set simulation_domain memory to my_state (assuming Markovian domain)")]),t._v("\nsimulation_domain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("set_memory"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("my_state"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Start a 100-steps rollout from here (applying my_action at every step)")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("for")]),t._v(" _ "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("in")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("range")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n simulation_domain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("step"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("my_action"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("h3",{attrs:{id:"solve-with-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#solve-with-3"}},[t._v("#")]),t._v(" solve_with "),a("Badge",{attrs:{text:"Domain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"solve_with",sig:{params:[{name:"solver",annotation:"Solver"},{name:"domain_factory",default:"None",annotation:"Optional[Callable[[], Domain]]"},{name:"load_path",default:"None",annotation:"Optional[str]"}],return:"Solver"}}}),t._v(" "),a("p",[t._v("Solve the domain with a new or loaded solver and return it auto-cast to the level of the domain.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Solver.check_domain()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Solver._check_domain_additional()")]),t._v(' (which returns True by default but can be overridden to define\nspecific checks in addition to the "domain requirements"). The boilerplate code automatically checks whether all\ndomain requirements are met.')]),t._v(" "),a("h4",{attrs:{id:"parameters-83"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-83"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("solver")]),t._v(": The solver.")]),t._v(" "),a("li",[a("strong",[t._v("domain_factory")]),t._v(": A callable with no argument returning the domain to solve (factory is the domain class if None).")]),t._v(" "),a("li",[a("strong",[t._v("load_path")]),t._v(": The path to restore the solver state from (if None, the solving process will be launched instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-128"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-128"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The new solver (auto-cast to the level of the domain).")]),t._v(" "),a("h3",{attrs:{id:"step-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#step-5"}},[t._v("#")]),t._v(" step "),a("Badge",{attrs:{text:"Environment",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"step",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Run one step of the environment's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Environment.step()")]),t._v(" provides some boilerplate code and internally calls "),a("code",[t._v("Environment._step()")]),t._v(" (which\nreturns a transition outcome). The boilerplate code automatically stores next state into the "),a("code",[t._v("_memory")]),t._v(" attribute\nand samples a corresponding observation.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing environment needs to be wrapped instead of implemented fully in scikit-decide (e.g. compiled\nATARI games), it is recommended to overwrite "),a("code",[t._v("Environment.step()")]),t._v(" to call the external environment and not\nuse the "),a("code",[t._v("Environment._step()")]),t._v(" helper function.")])]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Before calling "),a("code",[t._v("Environment.step()")]),t._v(" the first time or when the end of an episode is\nreached, "),a("code",[t._v("Initializable.reset()")]),t._v(" must be called to reset the environment's state.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-84"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-84"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the current memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-129"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-129"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of this step.")]),t._v(" "),a("h3",{attrs:{id:"check-value-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#check-value-6"}},[t._v("#")]),t._v(" _check_value "),a("Badge",{attrs:{text:"Rewards",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_check_value",sig:{params:[{name:"self"},{name:"value",annotation:"Value[D.T_value]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that a value is compliant with its reward specification.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("This function returns always True by default because any kind of reward should be accepted at this level.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-85"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-85"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("value")]),t._v(": The value to check.")])]),t._v(" "),a("h4",{attrs:{id:"returns-130"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-130"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the value is compliant (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"get-action-space-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-8"}},[t._v("#")]),t._v(" _get_action_space "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_action_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) domain action space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._get_action_space()")]),t._v(" internally calls "),a("code",[t._v("Events._get_action_space_()")]),t._v(" the first time and\nautomatically caches its value to make future calls more efficient (since the action space is assumed to be\nconstant).")]),t._v(" "),a("h4",{attrs:{id:"returns-131"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-131"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The action space.")]),t._v(" "),a("h3",{attrs:{id:"get-action-space-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-9"}},[t._v("#")]),t._v(" _get_action_space_ "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_action_space_",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the domain action space (finite or infinite set).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._get_action_space()")]),t._v(", the difference being that the\nresult is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-132"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-132"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The action space.")]),t._v(" "),a("h3",{attrs:{id:"get-applicable-actions-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-6"}},[t._v("#")]),t._v(" _get_applicable_actions "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_applicable_actions",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history), or in\nthe internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._get_applicable_actions()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_applicable_actions_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-86"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-86"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-133"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-133"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of applicable actions.")]),t._v(" "),a("h3",{attrs:{id:"get-applicable-actions-from-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-from-3"}},[t._v("#")]),t._v(" _get_applicable_actions_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_applicable_actions_from",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._get_applicable_actions()")]),t._v(", the difference being that\nthe memory parameter is mandatory here.")]),t._v(" "),a("h4",{attrs:{id:"parameters-87"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-87"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-134"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-134"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of applicable actions.")]),t._v(" "),a("h3",{attrs:{id:"get-enabled-events-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-6"}},[t._v("#")]),t._v(" _get_enabled_events "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_enabled_events",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"Space[D.T_event]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory), or in the internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._get_enabled_events()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_enabled_events_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-88"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-88"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-135"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-135"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of enabled events.")]),t._v(" "),a("h3",{attrs:{id:"get-enabled-events-from-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-from-3"}},[t._v("#")]),t._v(" _get_enabled_events_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_enabled_events_from",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"Space[D.T_event]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._get_enabled_events()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("h4",{attrs:{id:"parameters-89"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-89"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-136"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-136"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of enabled events.")]),t._v(" "),a("h3",{attrs:{id:"get-goals-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-goals-8"}},[t._v("#")]),t._v(" _get_goals "),a("Badge",{attrs:{text:"Goals",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_goals",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) domain goals space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Goals._get_goals()")]),t._v(" internally calls "),a("code",[t._v("Goals._get_goals_()")]),t._v(" the first time and automatically caches\nits value to make future calls more efficient (since the goals space is assumed to be constant).")]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Goal states are assumed to be fully observable (i.e. observation = state) so that there is never uncertainty\nabout whether the goal has been reached or not. This assumption guarantees that any policy that does not\nreach the goal with certainty incurs in infinite expected cost. - "),a("em",[t._v("Geffner, 2013: A Concise Introduction to\nModels and Methods for Automated Planning")])])]),t._v(" "),a("h4",{attrs:{id:"returns-137"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-137"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The goals space.")]),t._v(" "),a("h3",{attrs:{id:"get-goals-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-goals-9"}},[t._v("#")]),t._v(" _get_goals_ "),a("Badge",{attrs:{text:"Goals",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_goals_",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the domain goals space (finite or infinite set).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Goals._get_goals()")]),t._v(", the difference being that the result is\nnot cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-138"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-138"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The goals space.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-8"}},[t._v("#")]),t._v(" _get_initial_state "),a("Badge",{attrs:{text:"DeterministicInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_initial_state",sig:{params:[{name:"self"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("Get the (cached) initial state.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("DeterministicInitialized._get_initial_state()")]),t._v(" internally\ncalls "),a("code",[t._v("DeterministicInitialized._get_initial_state_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the initial state is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-139"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-139"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The initial state.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-9"}},[t._v("#")]),t._v(" _get_initial_state_ "),a("Badge",{attrs:{text:"DeterministicInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_initial_state_",sig:{params:[{name:"self"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("Get the initial state.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("DeterministicInitialized._get_initial_state()")]),t._v(", the difference\nbeing that the result is not cached here.")]),t._v(" "),a("h4",{attrs:{id:"returns-140"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-140"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The initial state.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-distribution-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-distribution-8"}},[t._v("#")]),t._v(" _get_initial_state_distribution "),a("Badge",{attrs:{text:"UncertainInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_initial_state_distribution",sig:{params:[{name:"self"}],return:"Distribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("Get the (cached) probability distribution of initial states.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("UncertainInitialized._get_initial_state_distribution()")]),t._v(" internally\ncalls "),a("code",[t._v("UncertainInitialized._get_initial_state_distribution_()")]),t._v(" the first time and automatically caches its value\nto make future calls more efficient (since the initial state distribution is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-141"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-141"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of initial states.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-distribution-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-distribution-9"}},[t._v("#")]),t._v(" _get_initial_state_distribution_ "),a("Badge",{attrs:{text:"UncertainInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_initial_state_distribution_",sig:{params:[{name:"self"}],return:"Distribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("Get the probability distribution of initial states.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("UncertainInitialized._get_initial_state_distribution()")]),t._v(", the\ndifference being that the result is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-142"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-142"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of initial states.")]),t._v(" "),a("h3",{attrs:{id:"get-memory-maxlen-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-memory-maxlen-5"}},[t._v("#")]),t._v(" _get_memory_maxlen "),a("Badge",{attrs:{text:"History",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_memory_maxlen",sig:{params:[{name:"self"}],return:"int"}}}),t._v(" "),a("p",[t._v("Get the (cached) memory max length.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("FiniteHistory._get_memory_maxlen()")]),t._v(" internally calls "),a("code",[t._v("FiniteHistory._get_memory_maxlen_()")]),t._v(" the first\ntime and automatically caches its value to make future calls more efficient (since the memory max length is\nassumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-143"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-143"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The memory max length.")]),t._v(" "),a("h3",{attrs:{id:"get-memory-maxlen-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-memory-maxlen-6"}},[t._v("#")]),t._v(" _get_memory_maxlen_ "),a("Badge",{attrs:{text:"FiniteHistory",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_memory_maxlen_",sig:{params:[{name:"self"}],return:"int"}}}),t._v(" "),a("p",[t._v("Get the memory max length.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("FiniteHistory._get_memory_maxlen()")]),t._v(", the difference being that\nthe result is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-144"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-144"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The memory max length.")]),t._v(" "),a("h3",{attrs:{id:"get-next-state-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-next-state-3"}},[t._v("#")]),t._v(" _get_next_state "),a("Badge",{attrs:{text:"DeterministicTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_next_state",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("Get the next state given a memory and action.")]),t._v(" "),a("h4",{attrs:{id:"parameters-90"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-90"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-145"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-145"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The deterministic next state.")]),t._v(" "),a("h3",{attrs:{id:"get-next-state-distribution-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-next-state-distribution-3"}},[t._v("#")]),t._v(" _get_next_state_distribution "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_next_state_distribution",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"SingleValueDistribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("Get the discrete probability distribution of next state given a memory and action.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("In the Markovian case (memory only holds last state "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.061ex",height:"1.023ex",viewBox:"0 -442 469 452"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})])])])])]),t._v("), given an action "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.197ex",height:"1.02ex",viewBox:"0 -441 529 451"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})])])])])]),t._v(", this function can\nbe mathematically represented by "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.292ex",height:"2.283ex",viewBox:"0 -759 4107.1 1009"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"50",d:"M287 628Q287 635 230 637Q206 637 199 638T192 648Q192 649 194 659Q200 679 203 681T397 683Q587 682 600 680Q664 669 707 631T751 530Q751 453 685 389Q616 321 507 303Q500 302 402 301H307L277 182Q247 66 247 59Q247 55 248 54T255 50T272 48T305 46H336Q342 37 342 35Q342 19 335 5Q330 0 319 0Q316 0 282 1T182 2Q120 2 87 2T51 1Q33 1 33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM645 554Q645 567 643 575T634 597T609 619T560 635Q553 636 480 637Q463 637 445 637T416 636T404 636Q391 635 386 627Q384 621 367 550T332 412T314 344Q314 342 395 342H407H430Q542 342 590 392Q617 419 631 471T645 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(751, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"msup",transform:"translate(1140, 0)"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"53",d:"M308 24Q367 24 416 76T466 197Q466 260 414 284Q308 311 278 321T236 341Q176 383 176 462Q176 523 208 573T273 648Q302 673 343 688T407 704H418H425Q521 704 564 640Q565 640 577 653T603 682T623 704Q624 704 627 704T632 705Q645 705 645 698T617 577T585 459T569 456Q549 456 549 465Q549 471 550 475Q550 478 551 494T553 520Q553 554 544 579T526 616T501 641Q465 662 419 662Q362 662 313 616T263 510Q263 480 278 458T319 427Q323 425 389 408T456 390Q490 379 522 342T554 242Q554 216 546 186Q541 164 528 137T492 78T426 18T332 -20Q320 -22 298 -22Q199 -22 144 33L134 44L106 13Q83 -14 78 -18T65 -22Q52 -22 52 -14Q52 -11 110 221Q112 227 130 227H143Q149 221 149 216Q149 214 148 207T144 186T142 153Q144 114 160 87T203 47T255 29T308 24Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(613, 363) scale(0.707)"}},[a("path",{attrs:{"data-c":"2032",d:"M79 43Q73 43 52 49T30 61Q30 68 85 293T146 528Q161 560 198 560Q218 560 240 545T262 501Q262 496 260 486Q259 479 173 263T84 45T79 43Z"}})])]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1997.5, 0)"}},[a("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(2275.5, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2744.5, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(3189.1, 0)"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3718.1, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(", where "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.05ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.94ex",height:"1.767ex",viewBox:"0 -759 857.5 781"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"msup"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"53",d:"M308 24Q367 24 416 76T466 197Q466 260 414 284Q308 311 278 321T236 341Q176 383 176 462Q176 523 208 573T273 648Q302 673 343 688T407 704H418H425Q521 704 564 640Q565 640 577 653T603 682T623 704Q624 704 627 704T632 705Q645 705 645 698T617 577T585 459T569 456Q549 456 549 465Q549 471 550 475Q550 478 551 494T553 520Q553 554 544 579T526 616T501 641Q465 662 419 662Q362 662 313 616T263 510Q263 480 278 458T319 427Q323 425 389 408T456 390Q490 379 522 342T554 242Q554 216 546 186Q541 164 528 137T492 78T426 18T332 -20Q320 -22 298 -22Q199 -22 144 33L134 44L106 13Q83 -14 78 -18T65 -22Q52 -22 52 -14Q52 -11 110 221Q112 227 130 227H143Q149 221 149 216Q149 214 148 207T144 186T142 153Q144 114 160 87T203 47T255 29T308 24Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(613, 363) scale(0.707)"}},[a("path",{attrs:{"data-c":"2032",d:"M79 43Q73 43 52 49T30 61Q30 68 85 293T146 528Q161 560 198 560Q218 560 240 545T262 501Q262 496 260 486Q259 479 173 263T84 45T79 43Z"}})])])])])])]),t._v(" is the next state random variable.")],1)]),t._v(" "),a("h4",{attrs:{id:"parameters-91"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-91"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-146"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-146"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The discrete probability distribution of next state.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-6"}},[t._v("#")]),t._v(" _get_observation "),a("Badge",{attrs:{text:"TransformedObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Get the deterministic observation given a state and action.")]),t._v(" "),a("h4",{attrs:{id:"parameters-92"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-92"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-147"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-147"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-distribution-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-distribution-6"}},[t._v("#")]),t._v(" _get_observation_distribution "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation_distribution",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"Distribution[D.T_agent[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the probability distribution of the observation given a state and action.")]),t._v(" "),a("p",[t._v("In mathematical terms (discrete case), given an action "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.197ex",height:"1.02ex",viewBox:"0 -441 529 451"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})])])])])]),t._v(", this function represents: "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.078ex",height:"2.262ex",viewBox:"0 -750 4012.7 1000"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"50",d:"M287 628Q287 635 230 637Q206 637 199 638T192 648Q192 649 194 659Q200 679 203 681T397 683Q587 682 600 680Q664 669 707 631T751 530Q751 453 685 389Q616 321 507 303Q500 302 402 301H307L277 182Q247 66 247 59Q247 55 248 54T255 50T272 48T305 46H336Q342 37 342 35Q342 19 335 5Q330 0 319 0Q316 0 282 1T182 2Q120 2 87 2T51 1Q33 1 33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM645 554Q645 567 643 575T634 597T609 619T560 635Q553 636 480 637Q463 637 445 637T416 636T404 636Q391 635 386 627Q384 621 367 550T332 412T314 344Q314 342 395 342H407H430Q542 342 590 392Q617 419 631 471T645 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(751, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(1140, 0)"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1903, 0)"}},[a("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(2181, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2650, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(3094.7, 0)"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3623.7, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(",\nwhere "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.05ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.726ex",height:"1.643ex",viewBox:"0 -704 763 726"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})])])])])]),t._v(" is the random variable of the observation.")],1),t._v(" "),a("h4",{attrs:{id:"parameters-93"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-93"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-148"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-148"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-space-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-8"}},[t._v("#")]),t._v(" _get_observation_space "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) observation space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(" internally\ncalls "),a("code",[t._v("PartiallyObservable._get_observation_space_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the observation space is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-149"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-149"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The observation space.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-space-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-9"}},[t._v("#")]),t._v(" _get_observation_space_ "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation_space_",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the observation space (finite or infinite set).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(", the difference\nbeing that the result is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-150"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-150"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The observation space.")]),t._v(" "),a("h3",{attrs:{id:"get-transition-value-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-transition-value-2"}},[t._v("#")]),t._v(" _get_transition_value "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_transition_value",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"},{name:"next_state",default:"None",annotation:"Optional[D.T_state]"}],return:"D.T_agent[Value[D.T_value]]"}}}),t._v(" "),a("p",[t._v("Get the value (reward or cost) of a transition.")]),t._v(" "),a("p",[t._v("The transition to consider is defined by the function parameters.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("If this function never depends on the next_state parameter for its computation, it is recommended to\nindicate it by overriding "),a("code",[t._v("UncertainTransitions._is_transition_value_dependent_on_next_state_()")]),t._v(" to return\nFalse. This information can then be exploited by solvers to avoid computing next state to evaluate a\ntransition value (more efficient).")])]),t._v(" "),a("h4",{attrs:{id:"parameters-94"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-94"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")]),t._v(" "),a("li",[a("strong",[t._v("next_state")]),t._v(": The next state in which the transition ends (if needed for the computation).")])]),t._v(" "),a("h4",{attrs:{id:"returns-151"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-151"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The transition value (reward or cost).")]),t._v(" "),a("h3",{attrs:{id:"init-memory-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#init-memory-3"}},[t._v("#")]),t._v(" _init_memory "),a("Badge",{attrs:{text:"History",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_init_memory",sig:{params:[{name:"self"},{name:"state",default:"None",annotation:"Optional[D.T_state]"}],return:"D.T_memory[D.T_state]"}}}),t._v(" "),a("p",[t._v("Initialize memory (possibly with a state) according to its specification and return it.")]),t._v(" "),a("p",[t._v("This function is automatically called by "),a("code",[t._v("Initializable._reset()")]),t._v(" to reinitialize the internal memory whenever\nthe domain is used as an environment.")]),t._v(" "),a("h4",{attrs:{id:"parameters-95"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-95"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": An optional state to initialize the memory with (typically the initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-152"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-152"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The new initialized memory.")]),t._v(" "),a("h3",{attrs:{id:"is-action-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-action-6"}},[t._v("#")]),t._v(" _is_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_action",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an event is an action (i.e. a controllable event for the agents).")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\naction space provided by "),a("code",[t._v("Events._get_action_space()")]),t._v(", but it can be overridden for faster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-96"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-96"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("event")]),t._v(": The event to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-153"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-153"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is an action (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-applicable-action-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-6"}},[t._v("#")]),t._v(" _is_applicable_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_applicable_action",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an action is applicable in the given memory (state or history), or in the internal one if\nomitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._is_applicable_action()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_applicable_action_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-97"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-97"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-154"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-154"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the action is applicable (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-applicable-action-from-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-from-3"}},[t._v("#")]),t._v(" _is_applicable_action_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_applicable_action_from",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an action is applicable in the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._is_applicable_action()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the space of\napplicable actions provided by "),a("code",[t._v("Events._get_applicable_actions_from()")]),t._v(", but it can be overridden for faster\nimplementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-98"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-98"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-155"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-155"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the action is applicable (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-enabled-event-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-6"}},[t._v("#")]),t._v(" _is_enabled_event "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_enabled_event",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an uncontrollable event is enabled in the given memory (state or history), or in the\ninternal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._is_enabled_event()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_enabled_event_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead\nof the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-99"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-99"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-156"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-156"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is enabled (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-enabled-event-from-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-from-3"}},[t._v("#")]),t._v(" _is_enabled_event_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_enabled_event_from",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an event is enabled in the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._is_enabled_event()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the space of\nenabled events provided by "),a("code",[t._v("Events._get_enabled_events_from()")]),t._v(", but it can be overridden for faster\nimplementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-100"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-100"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-157"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-157"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is enabled (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-goal-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-goal-6"}},[t._v("#")]),t._v(" _is_goal "),a("Badge",{attrs:{text:"Goals",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_goal",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"D.T_agent[D.T_predicate]"}}}),t._v(" "),a("p",[t._v("Indicate whether an observation belongs to the goals.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\ngoals space provided by "),a("code",[t._v("Goals._get_goals()")]),t._v(", but it can be overridden for faster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-101"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-101"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-158"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-158"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the observation is a goal (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-observation-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-observation-6"}},[t._v("#")]),t._v(" _is_observation "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_observation",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that an observation indeed belongs to the domain observation space.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\nobservation space provided by "),a("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(", but it can be overridden for\nfaster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-102"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-102"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-159"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-159"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the observation belongs to the domain observation space (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-terminal-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-terminal-2"}},[t._v("#")]),t._v(" _is_terminal "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_terminal",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"}],return:"D.T_agent[D.T_predicate]"}}}),t._v(" "),a("p",[t._v("Indicate whether a state is terminal.")]),t._v(" "),a("p",[t._v("A terminal state is a state with no outgoing transition (except to itself with value 0).")]),t._v(" "),a("h4",{attrs:{id:"parameters-103"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-103"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-160"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-160"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the state is terminal (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-transition-value-dependent-on-next-state-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-transition-value-dependent-on-next-state-2"}},[t._v("#")]),t._v(" _is_transition_value_dependent_on_next_state "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_transition_value_dependent_on_next_state",sig:{params:[{name:"self"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether _get_transition_value() requires the next_state parameter for its computation (cached).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("UncertainTransitions._is_transition_value_dependent_on_next_state()")]),t._v(" internally\ncalls "),a("code",[t._v("UncertainTransitions._is_transition_value_dependent_on_next_state_()")]),t._v(" the first time and automatically\ncaches its value to make future calls more efficient (since the returned value is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-161"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-161"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the transition value computation depends on next_state (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-transition-value-dependent-on-next-state-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-transition-value-dependent-on-next-state-3"}},[t._v("#")]),t._v(" _is_transition_value_dependent_on_next_state_ "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_transition_value_dependent_on_next_state_",sig:{params:[{name:"self"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether _get_transition_value() requires the next_state parameter for its computation.")]),t._v(" "),a("p",[t._v("This is a helper function called by default\nfrom "),a("code",[t._v("UncertainTransitions._is_transition_value_dependent_on_next_state()")]),t._v(", the difference being that the result\nis not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-162"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-162"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the transition value computation depends on next_state (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"reset-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#reset-6"}},[t._v("#")]),t._v(" _reset "),a("Badge",{attrs:{text:"Initializable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_reset",sig:{params:[{name:"self"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Reset the state of the environment and return an initial observation.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Initializable._reset()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Initializable._state_reset()")]),t._v(" (which returns an initial state). The boilerplate code automatically stores\nthe initial state into the "),a("code",[t._v("_memory")]),t._v(" attribute and samples a corresponding observation.")]),t._v(" "),a("h4",{attrs:{id:"returns-163"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-163"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("An initial observation.")]),t._v(" "),a("h3",{attrs:{id:"sample-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample-6"}},[t._v("#")]),t._v(" _sample "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_sample",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Sample one transition of the simulator's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Simulation._sample()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Simulation._state_sample()")]),t._v(" (which returns a transition outcome). The boilerplate code automatically\nsamples an observation corresponding to the sampled next state.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing simulator needs to be wrapped instead of implemented fully in scikit-decide (e.g. a\nsimulator), it is recommended to overwrite "),a("code",[t._v("Simulation._sample()")]),t._v(" to call the external simulator and not use\nthe "),a("code",[t._v("Simulation._state_sample()")]),t._v(" helper function.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-104"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-104"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-164"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-164"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of the sampled transition.")]),t._v(" "),a("h3",{attrs:{id:"set-memory-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#set-memory-6"}},[t._v("#")]),t._v(" _set_memory "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_set_memory",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"None"}}}),t._v(" "),a("p",[t._v("Set internal memory attribute "),a("code",[t._v("_memory")]),t._v(" to given one.")]),t._v(" "),a("p",[t._v('This can be useful to set a specific "starting point" before doing a rollout with\nsuccessive '),a("code",[t._v("Environment._step()")]),t._v(" calls.")]),t._v(" "),a("h4",{attrs:{id:"parameters-105"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-105"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to set internally.")])]),t._v(" "),a("h4",{attrs:{id:"example-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#example-6"}},[t._v("#")]),t._v(" Example")]),t._v(" "),a("div",{staticClass:"language-python extra-class"},[a("pre",{pre:!0,attrs:{class:"language-python"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Set simulation_domain memory to my_state (assuming Markovian domain)")]),t._v("\nsimulation_domain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("_set_memory"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("my_state"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Start a 100-steps rollout from here (applying my_action at every step)")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("for")]),t._v(" _ "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("in")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("range")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n simulation_domain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("_step"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("my_action"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("h3",{attrs:{id:"state-reset-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#state-reset-3"}},[t._v("#")]),t._v(" _state_reset "),a("Badge",{attrs:{text:"Initializable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_state_reset",sig:{params:[{name:"self"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("Reset the state of the environment and return an initial state.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Initializable._reset()")]),t._v(". It focuses on the state level, as\nopposed to the observation one for the latter.")]),t._v(" "),a("h4",{attrs:{id:"returns-165"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-165"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("An initial state.")]),t._v(" "),a("h3",{attrs:{id:"state-sample-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#state-sample-3"}},[t._v("#")]),t._v(" _state_sample "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_state_sample",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"TransitionOutcome[D.T_state, D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Compute one sample of the transition's dynamics.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Simulation._sample()")]),t._v(". It focuses on the state level, as\nopposed to the observation one for the latter.")]),t._v(" "),a("h4",{attrs:{id:"parameters-106"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-106"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-166"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-166"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The transition outcome of the sampled transition.")]),t._v(" "),a("h3",{attrs:{id:"state-step-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#state-step-3"}},[t._v("#")]),t._v(" _state_step "),a("Badge",{attrs:{text:"Environment",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_state_step",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"TransitionOutcome[D.T_state, D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Compute one step of the transition's dynamics.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Environment._step()")]),t._v(". It focuses on the state level, as opposed\nto the observation one for the latter.")]),t._v(" "),a("h4",{attrs:{id:"parameters-107"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-107"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the current memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-167"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-167"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The transition outcome of this step.")]),t._v(" "),a("h3",{attrs:{id:"step-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#step-6"}},[t._v("#")]),t._v(" _step "),a("Badge",{attrs:{text:"Environment",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_step",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Run one step of the environment's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Environment._step()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Environment._state_step()")]),t._v(" (which returns a transition outcome). The boilerplate code automatically stores\nnext state into the "),a("code",[t._v("_memory")]),t._v(" attribute and samples a corresponding observation.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing environment needs to be wrapped instead of implemented fully in scikit-decide (e.g. compiled\nATARI games), it is recommended to overwrite "),a("code",[t._v("Environment._step()")]),t._v(" to call the external environment and not\nuse the "),a("code",[t._v("Environment._state_step()")]),t._v(" helper function.")])]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Before calling "),a("code",[t._v("Environment._step()")]),t._v(" the first time or when the end of an episode is\nreached, "),a("code",[t._v("Initializable._reset()")]),t._v(" must be called to reset the environment's state.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-108"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-108"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the current memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-168"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-168"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of this step.")]),t._v(" "),a("h2",{attrs:{id:"d-uncertain"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#d-uncertain"}},[t._v("#")]),t._v(" D_uncertain")]),t._v(" "),a("p",[t._v("Base class for uncertain scheduling problems where we can compute distributions")]),t._v(" "),a("h3",{attrs:{id:"check-value-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#check-value-7"}},[t._v("#")]),t._v(" check_value "),a("Badge",{attrs:{text:"Rewards",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"check_value",sig:{params:[{name:"self"},{name:"value",annotation:"Value[D.T_value]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that a value is compliant with its reward specification.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("This function returns always True by default because any kind of reward should be accepted at this level.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-109"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-109"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("value")]),t._v(": The value to check.")])]),t._v(" "),a("h4",{attrs:{id:"returns-169"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-169"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the value is compliant (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"get-action-space-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-10"}},[t._v("#")]),t._v(" get_action_space "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_action_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) domain action space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.get_action_space()")]),t._v(" internally calls "),a("code",[t._v("Events._get_action_space_()")]),t._v(" the first time and\nautomatically caches its value to make future calls more efficient (since the action space is assumed to be\nconstant).")]),t._v(" "),a("h4",{attrs:{id:"returns-170"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-170"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The action space.")]),t._v(" "),a("h3",{attrs:{id:"get-applicable-actions-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-7"}},[t._v("#")]),t._v(" get_applicable_actions "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_applicable_actions",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history), or in\nthe internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.get_applicable_actions()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_applicable_actions()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-110"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-110"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-171"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-171"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of applicable actions.")]),t._v(" "),a("h3",{attrs:{id:"get-enabled-events-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-7"}},[t._v("#")]),t._v(" get_enabled_events "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_enabled_events",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"Space[D.T_event]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory), or in the internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.get_enabled_events()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_enabled_events()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead of\nthe memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-111"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-111"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-172"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-172"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of enabled events.")]),t._v(" "),a("h3",{attrs:{id:"get-goals-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-goals-10"}},[t._v("#")]),t._v(" get_goals "),a("Badge",{attrs:{text:"Goals",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_goals",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) domain goals space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Goals.get_goals()")]),t._v(" internally calls "),a("code",[t._v("Goals._get_goals_()")]),t._v(" the first time and automatically caches its\nvalue to make future calls more efficient (since the goals space is assumed to be constant).")]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Goal states are assumed to be fully observable (i.e. observation = state) so that there is never uncertainty\nabout whether the goal has been reached or not. This assumption guarantees that any policy that does not\nreach the goal with certainty incurs in infinite expected cost. - "),a("em",[t._v("Geffner, 2013: A Concise Introduction to\nModels and Methods for Automated Planning")])])]),t._v(" "),a("h4",{attrs:{id:"returns-173"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-173"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The goals space.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-10"}},[t._v("#")]),t._v(" get_initial_state "),a("Badge",{attrs:{text:"DeterministicInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_initial_state",sig:{params:[{name:"self"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("Get the (cached) initial state.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("DeterministicInitialized.get_initial_state()")]),t._v(" internally\ncalls "),a("code",[t._v("DeterministicInitialized._get_initial_state_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the initial state is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-174"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-174"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The initial state.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-distribution-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-distribution-10"}},[t._v("#")]),t._v(" get_initial_state_distribution "),a("Badge",{attrs:{text:"UncertainInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_initial_state_distribution",sig:{params:[{name:"self"}],return:"Distribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("Get the (cached) probability distribution of initial states.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("UncertainInitialized.get_initial_state_distribution()")]),t._v(" internally\ncalls "),a("code",[t._v("UncertainInitialized._get_initial_state_distribution_()")]),t._v(" the first time and automatically caches its value\nto make future calls more efficient (since the initial state distribution is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-175"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-175"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of initial states.")]),t._v(" "),a("h3",{attrs:{id:"get-next-state-distribution-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-next-state-distribution-4"}},[t._v("#")]),t._v(" get_next_state_distribution "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_next_state_distribution",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"Distribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("Get the probability distribution of next state given a memory and action.")]),t._v(" "),a("h4",{attrs:{id:"parameters-112"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-112"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-176"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-176"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of next state.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-7"}},[t._v("#")]),t._v(" get_observation "),a("Badge",{attrs:{text:"TransformedObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_observation",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Get the deterministic observation given a state and action.")]),t._v(" "),a("h4",{attrs:{id:"parameters-113"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-113"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-177"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-177"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-distribution-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-distribution-7"}},[t._v("#")]),t._v(" get_observation_distribution "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_observation_distribution",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"Distribution[D.T_agent[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the probability distribution of the observation given a state and action.")]),t._v(" "),a("p",[t._v("In mathematical terms (discrete case), given an action "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.197ex",height:"1.02ex",viewBox:"0 -441 529 451"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})])])])])]),t._v(", this function represents: "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.078ex",height:"2.262ex",viewBox:"0 -750 4012.7 1000"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"50",d:"M287 628Q287 635 230 637Q206 637 199 638T192 648Q192 649 194 659Q200 679 203 681T397 683Q587 682 600 680Q664 669 707 631T751 530Q751 453 685 389Q616 321 507 303Q500 302 402 301H307L277 182Q247 66 247 59Q247 55 248 54T255 50T272 48T305 46H336Q342 37 342 35Q342 19 335 5Q330 0 319 0Q316 0 282 1T182 2Q120 2 87 2T51 1Q33 1 33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM645 554Q645 567 643 575T634 597T609 619T560 635Q553 636 480 637Q463 637 445 637T416 636T404 636Q391 635 386 627Q384 621 367 550T332 412T314 344Q314 342 395 342H407H430Q542 342 590 392Q617 419 631 471T645 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(751, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(1140, 0)"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1903, 0)"}},[a("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(2181, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2650, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(3094.7, 0)"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3623.7, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(",\nwhere "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.05ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.726ex",height:"1.643ex",viewBox:"0 -704 763 726"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})])])])])]),t._v(" is the random variable of the observation.")],1),t._v(" "),a("h4",{attrs:{id:"parameters-114"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-114"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-178"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-178"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-space-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-10"}},[t._v("#")]),t._v(" get_observation_space "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_observation_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) observation space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("PartiallyObservable.get_observation_space()")]),t._v(" internally\ncalls "),a("code",[t._v("PartiallyObservable._get_observation_space_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the observation space is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-179"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-179"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The observation space.")]),t._v(" "),a("h3",{attrs:{id:"get-transition-value-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-transition-value-3"}},[t._v("#")]),t._v(" get_transition_value "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_transition_value",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"},{name:"next_state",default:"None",annotation:"Optional[D.T_state]"}],return:"D.T_agent[Value[D.T_value]]"}}}),t._v(" "),a("p",[t._v("Get the value (reward or cost) of a transition.")]),t._v(" "),a("p",[t._v("The transition to consider is defined by the function parameters.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("If this function never depends on the next_state parameter for its computation, it is recommended to\nindicate it by overriding "),a("code",[t._v("UncertainTransitions._is_transition_value_dependent_on_next_state_()")]),t._v(" to return\nFalse. This information can then be exploited by solvers to avoid computing next state to evaluate a\ntransition value (more efficient).")])]),t._v(" "),a("h4",{attrs:{id:"parameters-115"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-115"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")]),t._v(" "),a("li",[a("strong",[t._v("next_state")]),t._v(": The next state in which the transition ends (if needed for the computation).")])]),t._v(" "),a("h4",{attrs:{id:"returns-180"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-180"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The transition value (reward or cost).")]),t._v(" "),a("h3",{attrs:{id:"is-action-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-action-7"}},[t._v("#")]),t._v(" is_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_action",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an event is an action (i.e. a controllable event for the agents).")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\naction space provided by "),a("code",[t._v("Events.get_action_space()")]),t._v(", but it can be overridden for faster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-116"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-116"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("event")]),t._v(": The event to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-181"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-181"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is an action (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-applicable-action-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-7"}},[t._v("#")]),t._v(" is_applicable_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_applicable_action",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an action is applicable in the given memory (state or history), or in the internal one if\nomitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.is_applicable_action()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_applicable_action()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead\nof the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-117"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-117"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-182"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-182"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the action is applicable (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-enabled-event-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-7"}},[t._v("#")]),t._v(" is_enabled_event "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_enabled_event",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an uncontrollable event is enabled in the given memory (state or history), or in the\ninternal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.is_enabled_event()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_enabled_event()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead of\nthe memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-118"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-118"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-183"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-183"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is enabled (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-goal-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-goal-7"}},[t._v("#")]),t._v(" is_goal "),a("Badge",{attrs:{text:"Goals",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_goal",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"D.T_agent[D.T_predicate]"}}}),t._v(" "),a("p",[t._v("Indicate whether an observation belongs to the goals.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\ngoals space provided by "),a("code",[t._v("Goals.get_goals()")]),t._v(", but it can be overridden for faster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-119"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-119"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-184"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-184"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the observation is a goal (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-observation-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-observation-7"}},[t._v("#")]),t._v(" is_observation "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_observation",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that an observation indeed belongs to the domain observation space.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\nobservation space provided by "),a("code",[t._v("PartiallyObservable.get_observation_space()")]),t._v(", but it can be overridden for\nfaster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-120"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-120"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-185"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-185"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the observation belongs to the domain observation space (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-terminal-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-terminal-3"}},[t._v("#")]),t._v(" is_terminal "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_terminal",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"}],return:"D.T_agent[D.T_predicate]"}}}),t._v(" "),a("p",[t._v("Indicate whether a state is terminal.")]),t._v(" "),a("p",[t._v("A terminal state is a state with no outgoing transition (except to itself with value 0).")]),t._v(" "),a("h4",{attrs:{id:"parameters-121"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-121"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-186"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-186"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the state is terminal (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-transition-value-dependent-on-next-state-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-transition-value-dependent-on-next-state-4"}},[t._v("#")]),t._v(" is_transition_value_dependent_on_next_state "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_transition_value_dependent_on_next_state",sig:{params:[{name:"self"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether get_transition_value() requires the next_state parameter for its computation (cached).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("UncertainTransitions.is_transition_value_dependent_on_next_state()")]),t._v(" internally\ncalls "),a("code",[t._v("UncertainTransitions._is_transition_value_dependent_on_next_state_()")]),t._v(" the first time and automatically\ncaches its value to make future calls more efficient (since the returned value is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-187"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-187"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the transition value computation depends on next_state (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"reset-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#reset-7"}},[t._v("#")]),t._v(" reset "),a("Badge",{attrs:{text:"Initializable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"reset",sig:{params:[{name:"self"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Reset the state of the environment and return an initial observation.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Initializable.reset()")]),t._v(" provides some boilerplate code and internally calls "),a("code",[t._v("Initializable._reset()")]),t._v("\n(which returns an initial state). The boilerplate code automatically stores the initial state into the "),a("code",[t._v("_memory")]),t._v("\nattribute and samples a corresponding observation.")]),t._v(" "),a("h4",{attrs:{id:"returns-188"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-188"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("An initial observation.")]),t._v(" "),a("h3",{attrs:{id:"sample-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample-7"}},[t._v("#")]),t._v(" sample "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"sample",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Sample one transition of the simulator's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Simulation.sample()")]),t._v(" provides some boilerplate code and internally calls "),a("code",[t._v("Simulation._sample()")]),t._v("\n(which returns a transition outcome). The boilerplate code automatically samples an observation corresponding to\nthe sampled next state.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing simulator needs to be wrapped instead of implemented fully in scikit-decide (e.g. a\nsimulator), it is recommended to overwrite "),a("code",[t._v("Simulation.sample()")]),t._v(" to call the external simulator and not use\nthe "),a("code",[t._v("Simulation._sample()")]),t._v(" helper function.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-122"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-122"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-189"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-189"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of the sampled transition.")]),t._v(" "),a("h3",{attrs:{id:"set-memory-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#set-memory-7"}},[t._v("#")]),t._v(" set_memory "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"set_memory",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"None"}}}),t._v(" "),a("p",[t._v("Set internal memory attribute "),a("code",[t._v("_memory")]),t._v(" to given one.")]),t._v(" "),a("p",[t._v('This can be useful to set a specific "starting point" before doing a rollout with successive '),a("code",[t._v("Environment.step()")]),t._v("\ncalls.")]),t._v(" "),a("h4",{attrs:{id:"parameters-123"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-123"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to set internally.")])]),t._v(" "),a("h4",{attrs:{id:"example-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#example-7"}},[t._v("#")]),t._v(" Example")]),t._v(" "),a("div",{staticClass:"language-python extra-class"},[a("pre",{pre:!0,attrs:{class:"language-python"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Set simulation_domain memory to my_state (assuming Markovian domain)")]),t._v("\nsimulation_domain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("set_memory"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("my_state"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Start a 100-steps rollout from here (applying my_action at every step)")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("for")]),t._v(" _ "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("in")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("range")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n simulation_domain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("step"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("my_action"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("h3",{attrs:{id:"solve-with-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#solve-with-4"}},[t._v("#")]),t._v(" solve_with "),a("Badge",{attrs:{text:"Domain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"solve_with",sig:{params:[{name:"solver",annotation:"Solver"},{name:"domain_factory",default:"None",annotation:"Optional[Callable[[], Domain]]"},{name:"load_path",default:"None",annotation:"Optional[str]"}],return:"Solver"}}}),t._v(" "),a("p",[t._v("Solve the domain with a new or loaded solver and return it auto-cast to the level of the domain.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Solver.check_domain()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Solver._check_domain_additional()")]),t._v(' (which returns True by default but can be overridden to define\nspecific checks in addition to the "domain requirements"). The boilerplate code automatically checks whether all\ndomain requirements are met.')]),t._v(" "),a("h4",{attrs:{id:"parameters-124"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-124"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("solver")]),t._v(": The solver.")]),t._v(" "),a("li",[a("strong",[t._v("domain_factory")]),t._v(": A callable with no argument returning the domain to solve (factory is the domain class if None).")]),t._v(" "),a("li",[a("strong",[t._v("load_path")]),t._v(": The path to restore the solver state from (if None, the solving process will be launched instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-190"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-190"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The new solver (auto-cast to the level of the domain).")]),t._v(" "),a("h3",{attrs:{id:"step-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#step-7"}},[t._v("#")]),t._v(" step "),a("Badge",{attrs:{text:"Environment",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"step",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Run one step of the environment's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Environment.step()")]),t._v(" provides some boilerplate code and internally calls "),a("code",[t._v("Environment._step()")]),t._v(" (which\nreturns a transition outcome). The boilerplate code automatically stores next state into the "),a("code",[t._v("_memory")]),t._v(" attribute\nand samples a corresponding observation.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing environment needs to be wrapped instead of implemented fully in scikit-decide (e.g. compiled\nATARI games), it is recommended to overwrite "),a("code",[t._v("Environment.step()")]),t._v(" to call the external environment and not\nuse the "),a("code",[t._v("Environment._step()")]),t._v(" helper function.")])]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Before calling "),a("code",[t._v("Environment.step()")]),t._v(" the first time or when the end of an episode is\nreached, "),a("code",[t._v("Initializable.reset()")]),t._v(" must be called to reset the environment's state.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-125"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-125"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the current memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-191"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-191"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of this step.")]),t._v(" "),a("h3",{attrs:{id:"check-value-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#check-value-8"}},[t._v("#")]),t._v(" _check_value "),a("Badge",{attrs:{text:"Rewards",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_check_value",sig:{params:[{name:"self"},{name:"value",annotation:"Value[D.T_value]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that a value is compliant with its reward specification.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("This function returns always True by default because any kind of reward should be accepted at this level.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-126"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-126"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("value")]),t._v(": The value to check.")])]),t._v(" "),a("h4",{attrs:{id:"returns-192"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-192"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the value is compliant (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"get-action-space-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-11"}},[t._v("#")]),t._v(" _get_action_space "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_action_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) domain action space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._get_action_space()")]),t._v(" internally calls "),a("code",[t._v("Events._get_action_space_()")]),t._v(" the first time and\nautomatically caches its value to make future calls more efficient (since the action space is assumed to be\nconstant).")]),t._v(" "),a("h4",{attrs:{id:"returns-193"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-193"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The action space.")]),t._v(" "),a("h3",{attrs:{id:"get-action-space-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-12"}},[t._v("#")]),t._v(" _get_action_space_ "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_action_space_",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the domain action space (finite or infinite set).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._get_action_space()")]),t._v(", the difference being that the\nresult is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-194"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-194"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The action space.")]),t._v(" "),a("h3",{attrs:{id:"get-applicable-actions-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-8"}},[t._v("#")]),t._v(" _get_applicable_actions "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_applicable_actions",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history), or in\nthe internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._get_applicable_actions()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_applicable_actions_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-127"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-127"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-195"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-195"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of applicable actions.")]),t._v(" "),a("h3",{attrs:{id:"get-applicable-actions-from-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-from-4"}},[t._v("#")]),t._v(" _get_applicable_actions_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_applicable_actions_from",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._get_applicable_actions()")]),t._v(", the difference being that\nthe memory parameter is mandatory here.")]),t._v(" "),a("h4",{attrs:{id:"parameters-128"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-128"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-196"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-196"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of applicable actions.")]),t._v(" "),a("h3",{attrs:{id:"get-enabled-events-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-8"}},[t._v("#")]),t._v(" _get_enabled_events "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_enabled_events",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"Space[D.T_event]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory), or in the internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._get_enabled_events()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_enabled_events_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-129"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-129"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-197"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-197"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of enabled events.")]),t._v(" "),a("h3",{attrs:{id:"get-enabled-events-from-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-from-4"}},[t._v("#")]),t._v(" _get_enabled_events_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_enabled_events_from",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"Space[D.T_event]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._get_enabled_events()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("h4",{attrs:{id:"parameters-130"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-130"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-198"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-198"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of enabled events.")]),t._v(" "),a("h3",{attrs:{id:"get-goals-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-goals-11"}},[t._v("#")]),t._v(" _get_goals "),a("Badge",{attrs:{text:"Goals",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_goals",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) domain goals space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Goals._get_goals()")]),t._v(" internally calls "),a("code",[t._v("Goals._get_goals_()")]),t._v(" the first time and automatically caches\nits value to make future calls more efficient (since the goals space is assumed to be constant).")]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Goal states are assumed to be fully observable (i.e. observation = state) so that there is never uncertainty\nabout whether the goal has been reached or not. This assumption guarantees that any policy that does not\nreach the goal with certainty incurs in infinite expected cost. - "),a("em",[t._v("Geffner, 2013: A Concise Introduction to\nModels and Methods for Automated Planning")])])]),t._v(" "),a("h4",{attrs:{id:"returns-199"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-199"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The goals space.")]),t._v(" "),a("h3",{attrs:{id:"get-goals-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-goals-12"}},[t._v("#")]),t._v(" _get_goals_ "),a("Badge",{attrs:{text:"Goals",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_goals_",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the domain goals space (finite or infinite set).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Goals._get_goals()")]),t._v(", the difference being that the result is\nnot cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-200"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-200"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The goals space.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-11"}},[t._v("#")]),t._v(" _get_initial_state "),a("Badge",{attrs:{text:"DeterministicInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_initial_state",sig:{params:[{name:"self"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("Get the (cached) initial state.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("DeterministicInitialized._get_initial_state()")]),t._v(" internally\ncalls "),a("code",[t._v("DeterministicInitialized._get_initial_state_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the initial state is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-201"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-201"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The initial state.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-12"}},[t._v("#")]),t._v(" _get_initial_state_ "),a("Badge",{attrs:{text:"DeterministicInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_initial_state_",sig:{params:[{name:"self"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("Get the initial state.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("DeterministicInitialized._get_initial_state()")]),t._v(", the difference\nbeing that the result is not cached here.")]),t._v(" "),a("h4",{attrs:{id:"returns-202"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-202"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The initial state.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-distribution-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-distribution-11"}},[t._v("#")]),t._v(" _get_initial_state_distribution "),a("Badge",{attrs:{text:"UncertainInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_initial_state_distribution",sig:{params:[{name:"self"}],return:"Distribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("Get the (cached) probability distribution of initial states.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("UncertainInitialized._get_initial_state_distribution()")]),t._v(" internally\ncalls "),a("code",[t._v("UncertainInitialized._get_initial_state_distribution_()")]),t._v(" the first time and automatically caches its value\nto make future calls more efficient (since the initial state distribution is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-203"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-203"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of initial states.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-distribution-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-distribution-12"}},[t._v("#")]),t._v(" _get_initial_state_distribution_ "),a("Badge",{attrs:{text:"UncertainInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_initial_state_distribution_",sig:{params:[{name:"self"}],return:"Distribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("Get the probability distribution of initial states.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("UncertainInitialized._get_initial_state_distribution()")]),t._v(", the\ndifference being that the result is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-204"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-204"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of initial states.")]),t._v(" "),a("h3",{attrs:{id:"get-memory-maxlen-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-memory-maxlen-7"}},[t._v("#")]),t._v(" _get_memory_maxlen "),a("Badge",{attrs:{text:"History",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_memory_maxlen",sig:{params:[{name:"self"}],return:"int"}}}),t._v(" "),a("p",[t._v("Get the (cached) memory max length.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("FiniteHistory._get_memory_maxlen()")]),t._v(" internally calls "),a("code",[t._v("FiniteHistory._get_memory_maxlen_()")]),t._v(" the first\ntime and automatically caches its value to make future calls more efficient (since the memory max length is\nassumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-205"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-205"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The memory max length.")]),t._v(" "),a("h3",{attrs:{id:"get-memory-maxlen-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-memory-maxlen-8"}},[t._v("#")]),t._v(" _get_memory_maxlen_ "),a("Badge",{attrs:{text:"FiniteHistory",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_memory_maxlen_",sig:{params:[{name:"self"}],return:"int"}}}),t._v(" "),a("p",[t._v("Get the memory max length.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("FiniteHistory._get_memory_maxlen()")]),t._v(", the difference being that\nthe result is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-206"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-206"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The memory max length.")]),t._v(" "),a("h3",{attrs:{id:"get-next-state-distribution-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-next-state-distribution-5"}},[t._v("#")]),t._v(" _get_next_state_distribution "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_next_state_distribution",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"Distribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("Get the probability distribution of next state given a memory and action.")]),t._v(" "),a("h4",{attrs:{id:"parameters-131"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-131"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-207"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-207"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of next state.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-8"}},[t._v("#")]),t._v(" _get_observation "),a("Badge",{attrs:{text:"TransformedObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Get the deterministic observation given a state and action.")]),t._v(" "),a("h4",{attrs:{id:"parameters-132"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-132"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-208"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-208"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-distribution-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-distribution-8"}},[t._v("#")]),t._v(" _get_observation_distribution "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation_distribution",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"Distribution[D.T_agent[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the probability distribution of the observation given a state and action.")]),t._v(" "),a("p",[t._v("In mathematical terms (discrete case), given an action "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.197ex",height:"1.02ex",viewBox:"0 -441 529 451"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})])])])])]),t._v(", this function represents: "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.078ex",height:"2.262ex",viewBox:"0 -750 4012.7 1000"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"50",d:"M287 628Q287 635 230 637Q206 637 199 638T192 648Q192 649 194 659Q200 679 203 681T397 683Q587 682 600 680Q664 669 707 631T751 530Q751 453 685 389Q616 321 507 303Q500 302 402 301H307L277 182Q247 66 247 59Q247 55 248 54T255 50T272 48T305 46H336Q342 37 342 35Q342 19 335 5Q330 0 319 0Q316 0 282 1T182 2Q120 2 87 2T51 1Q33 1 33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM645 554Q645 567 643 575T634 597T609 619T560 635Q553 636 480 637Q463 637 445 637T416 636T404 636Q391 635 386 627Q384 621 367 550T332 412T314 344Q314 342 395 342H407H430Q542 342 590 392Q617 419 631 471T645 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(751, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(1140, 0)"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1903, 0)"}},[a("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(2181, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2650, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(3094.7, 0)"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3623.7, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(",\nwhere "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.05ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.726ex",height:"1.643ex",viewBox:"0 -704 763 726"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})])])])])]),t._v(" is the random variable of the observation.")],1),t._v(" "),a("h4",{attrs:{id:"parameters-133"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-133"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-209"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-209"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-space-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-11"}},[t._v("#")]),t._v(" _get_observation_space "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) observation space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(" internally\ncalls "),a("code",[t._v("PartiallyObservable._get_observation_space_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the observation space is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-210"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-210"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The observation space.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-space-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-12"}},[t._v("#")]),t._v(" _get_observation_space_ "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation_space_",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the observation space (finite or infinite set).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(", the difference\nbeing that the result is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-211"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-211"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The observation space.")]),t._v(" "),a("h3",{attrs:{id:"get-transition-value-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-transition-value-4"}},[t._v("#")]),t._v(" _get_transition_value "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_transition_value",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"},{name:"next_state",default:"None",annotation:"Optional[D.T_state]"}],return:"D.T_agent[Value[D.T_value]]"}}}),t._v(" "),a("p",[t._v("Get the value (reward or cost) of a transition.")]),t._v(" "),a("p",[t._v("The transition to consider is defined by the function parameters.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("If this function never depends on the next_state parameter for its computation, it is recommended to\nindicate it by overriding "),a("code",[t._v("UncertainTransitions._is_transition_value_dependent_on_next_state_()")]),t._v(" to return\nFalse. This information can then be exploited by solvers to avoid computing next state to evaluate a\ntransition value (more efficient).")])]),t._v(" "),a("h4",{attrs:{id:"parameters-134"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-134"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")]),t._v(" "),a("li",[a("strong",[t._v("next_state")]),t._v(": The next state in which the transition ends (if needed for the computation).")])]),t._v(" "),a("h4",{attrs:{id:"returns-212"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-212"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The transition value (reward or cost).")]),t._v(" "),a("h3",{attrs:{id:"init-memory-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#init-memory-4"}},[t._v("#")]),t._v(" _init_memory "),a("Badge",{attrs:{text:"History",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_init_memory",sig:{params:[{name:"self"},{name:"state",default:"None",annotation:"Optional[D.T_state]"}],return:"D.T_memory[D.T_state]"}}}),t._v(" "),a("p",[t._v("Initialize memory (possibly with a state) according to its specification and return it.")]),t._v(" "),a("p",[t._v("This function is automatically called by "),a("code",[t._v("Initializable._reset()")]),t._v(" to reinitialize the internal memory whenever\nthe domain is used as an environment.")]),t._v(" "),a("h4",{attrs:{id:"parameters-135"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-135"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": An optional state to initialize the memory with (typically the initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-213"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-213"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The new initialized memory.")]),t._v(" "),a("h3",{attrs:{id:"is-action-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-action-8"}},[t._v("#")]),t._v(" _is_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_action",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an event is an action (i.e. a controllable event for the agents).")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\naction space provided by "),a("code",[t._v("Events._get_action_space()")]),t._v(", but it can be overridden for faster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-136"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-136"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("event")]),t._v(": The event to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-214"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-214"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is an action (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-applicable-action-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-8"}},[t._v("#")]),t._v(" _is_applicable_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_applicable_action",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an action is applicable in the given memory (state or history), or in the internal one if\nomitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._is_applicable_action()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_applicable_action_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-137"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-137"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-215"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-215"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the action is applicable (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-applicable-action-from-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-from-4"}},[t._v("#")]),t._v(" _is_applicable_action_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_applicable_action_from",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an action is applicable in the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._is_applicable_action()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the space of\napplicable actions provided by "),a("code",[t._v("Events._get_applicable_actions_from()")]),t._v(", but it can be overridden for faster\nimplementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-138"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-138"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-216"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-216"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the action is applicable (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-enabled-event-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-8"}},[t._v("#")]),t._v(" _is_enabled_event "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_enabled_event",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an uncontrollable event is enabled in the given memory (state or history), or in the\ninternal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._is_enabled_event()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_enabled_event_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead\nof the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-139"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-139"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-217"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-217"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is enabled (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-enabled-event-from-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-from-4"}},[t._v("#")]),t._v(" _is_enabled_event_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_enabled_event_from",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an event is enabled in the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._is_enabled_event()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the space of\nenabled events provided by "),a("code",[t._v("Events._get_enabled_events_from()")]),t._v(", but it can be overridden for faster\nimplementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-140"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-140"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-218"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-218"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is enabled (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-goal-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-goal-8"}},[t._v("#")]),t._v(" _is_goal "),a("Badge",{attrs:{text:"Goals",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_goal",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"D.T_agent[D.T_predicate]"}}}),t._v(" "),a("p",[t._v("Indicate whether an observation belongs to the goals.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\ngoals space provided by "),a("code",[t._v("Goals._get_goals()")]),t._v(", but it can be overridden for faster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-141"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-141"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-219"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-219"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the observation is a goal (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-observation-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-observation-8"}},[t._v("#")]),t._v(" _is_observation "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_observation",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that an observation indeed belongs to the domain observation space.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\nobservation space provided by "),a("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(", but it can be overridden for\nfaster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-142"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-142"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-220"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-220"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the observation belongs to the domain observation space (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-terminal-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-terminal-4"}},[t._v("#")]),t._v(" _is_terminal "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_terminal",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"}],return:"D.T_agent[D.T_predicate]"}}}),t._v(" "),a("p",[t._v("Indicate whether a state is terminal.")]),t._v(" "),a("p",[t._v("A terminal state is a state with no outgoing transition (except to itself with value 0).")]),t._v(" "),a("h4",{attrs:{id:"parameters-143"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-143"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-221"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-221"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the state is terminal (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-transition-value-dependent-on-next-state-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-transition-value-dependent-on-next-state-5"}},[t._v("#")]),t._v(" _is_transition_value_dependent_on_next_state "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_transition_value_dependent_on_next_state",sig:{params:[{name:"self"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether _get_transition_value() requires the next_state parameter for its computation (cached).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("UncertainTransitions._is_transition_value_dependent_on_next_state()")]),t._v(" internally\ncalls "),a("code",[t._v("UncertainTransitions._is_transition_value_dependent_on_next_state_()")]),t._v(" the first time and automatically\ncaches its value to make future calls more efficient (since the returned value is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-222"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-222"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the transition value computation depends on next_state (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-transition-value-dependent-on-next-state-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-transition-value-dependent-on-next-state-6"}},[t._v("#")]),t._v(" _is_transition_value_dependent_on_next_state_ "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_transition_value_dependent_on_next_state_",sig:{params:[{name:"self"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether _get_transition_value() requires the next_state parameter for its computation.")]),t._v(" "),a("p",[t._v("This is a helper function called by default\nfrom "),a("code",[t._v("UncertainTransitions._is_transition_value_dependent_on_next_state()")]),t._v(", the difference being that the result\nis not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-223"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-223"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the transition value computation depends on next_state (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"reset-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#reset-8"}},[t._v("#")]),t._v(" _reset "),a("Badge",{attrs:{text:"Initializable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_reset",sig:{params:[{name:"self"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Reset the state of the environment and return an initial observation.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Initializable._reset()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Initializable._state_reset()")]),t._v(" (which returns an initial state). The boilerplate code automatically stores\nthe initial state into the "),a("code",[t._v("_memory")]),t._v(" attribute and samples a corresponding observation.")]),t._v(" "),a("h4",{attrs:{id:"returns-224"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-224"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("An initial observation.")]),t._v(" "),a("h3",{attrs:{id:"sample-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample-8"}},[t._v("#")]),t._v(" _sample "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_sample",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Sample one transition of the simulator's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Simulation._sample()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Simulation._state_sample()")]),t._v(" (which returns a transition outcome). The boilerplate code automatically\nsamples an observation corresponding to the sampled next state.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing simulator needs to be wrapped instead of implemented fully in scikit-decide (e.g. a\nsimulator), it is recommended to overwrite "),a("code",[t._v("Simulation._sample()")]),t._v(" to call the external simulator and not use\nthe "),a("code",[t._v("Simulation._state_sample()")]),t._v(" helper function.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-144"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-144"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-225"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-225"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of the sampled transition.")]),t._v(" "),a("h3",{attrs:{id:"set-memory-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#set-memory-8"}},[t._v("#")]),t._v(" _set_memory "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_set_memory",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"None"}}}),t._v(" "),a("p",[t._v("Set internal memory attribute "),a("code",[t._v("_memory")]),t._v(" to given one.")]),t._v(" "),a("p",[t._v('This can be useful to set a specific "starting point" before doing a rollout with\nsuccessive '),a("code",[t._v("Environment._step()")]),t._v(" calls.")]),t._v(" "),a("h4",{attrs:{id:"parameters-145"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-145"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to set internally.")])]),t._v(" "),a("h4",{attrs:{id:"example-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#example-8"}},[t._v("#")]),t._v(" Example")]),t._v(" "),a("div",{staticClass:"language-python extra-class"},[a("pre",{pre:!0,attrs:{class:"language-python"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Set simulation_domain memory to my_state (assuming Markovian domain)")]),t._v("\nsimulation_domain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("_set_memory"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("my_state"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Start a 100-steps rollout from here (applying my_action at every step)")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("for")]),t._v(" _ "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("in")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("range")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n simulation_domain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("_step"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("my_action"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("h3",{attrs:{id:"state-reset-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#state-reset-4"}},[t._v("#")]),t._v(" _state_reset "),a("Badge",{attrs:{text:"Initializable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_state_reset",sig:{params:[{name:"self"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("Reset the state of the environment and return an initial state.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Initializable._reset()")]),t._v(". It focuses on the state level, as\nopposed to the observation one for the latter.")]),t._v(" "),a("h4",{attrs:{id:"returns-226"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-226"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("An initial state.")]),t._v(" "),a("h3",{attrs:{id:"state-sample-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#state-sample-4"}},[t._v("#")]),t._v(" _state_sample "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_state_sample",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"TransitionOutcome[D.T_state, D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Compute one sample of the transition's dynamics.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Simulation._sample()")]),t._v(". It focuses on the state level, as\nopposed to the observation one for the latter.")]),t._v(" "),a("h4",{attrs:{id:"parameters-146"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-146"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-227"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-227"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The transition outcome of the sampled transition.")]),t._v(" "),a("h3",{attrs:{id:"state-step-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#state-step-4"}},[t._v("#")]),t._v(" _state_step "),a("Badge",{attrs:{text:"Environment",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_state_step",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"TransitionOutcome[D.T_state, D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Compute one step of the transition's dynamics.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Environment._step()")]),t._v(". It focuses on the state level, as opposed\nto the observation one for the latter.")]),t._v(" "),a("h4",{attrs:{id:"parameters-147"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-147"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the current memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-228"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-228"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The transition outcome of this step.")]),t._v(" "),a("h3",{attrs:{id:"step-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#step-8"}},[t._v("#")]),t._v(" _step "),a("Badge",{attrs:{text:"Environment",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_step",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Run one step of the environment's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Environment._step()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Environment._state_step()")]),t._v(" (which returns a transition outcome). The boilerplate code automatically stores\nnext state into the "),a("code",[t._v("_memory")]),t._v(" attribute and samples a corresponding observation.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing environment needs to be wrapped instead of implemented fully in scikit-decide (e.g. compiled\nATARI games), it is recommended to overwrite "),a("code",[t._v("Environment._step()")]),t._v(" to call the external environment and not\nuse the "),a("code",[t._v("Environment._state_step()")]),t._v(" helper function.")])]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Before calling "),a("code",[t._v("Environment._step()")]),t._v(" the first time or when the end of an episode is\nreached, "),a("code",[t._v("Initializable._reset()")]),t._v(" must be called to reset the environment's state.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-148"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-148"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the current memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-229"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-229"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of this step.")]),t._v(" "),a("h2",{attrs:{id:"uncertainschedulingdomain"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#uncertainschedulingdomain"}},[t._v("#")]),t._v(" UncertainSchedulingDomain")]),t._v(" "),a("p",[t._v("This is the highest level scheduling domain class (inheriting top-level class for each mandatory\ndomain characteristic).")]),t._v(" "),a("h3",{attrs:{id:"add-to-current-conditions-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#add-to-current-conditions-3"}},[t._v("#")]),t._v(" add_to_current_conditions "),a("Badge",{attrs:{text:"WithConditionalTasks",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"add_to_current_conditions",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"state"}]}}}),t._v(" "),a("p",[t._v("Samples completion conditions for a given task and add these conditions to the list of conditions in the\ngiven state. This function should be called when a task complete.")]),t._v(" "),a("h3",{attrs:{id:"all-tasks-possible-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#all-tasks-possible-2"}},[t._v("#")]),t._v(" all_tasks_possible "),a("Badge",{attrs:{text:"MixedRenewable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"all_tasks_possible",sig:{params:[{name:"self"},{name:"state",annotation:"State"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Return a True is for each task there is at least one mode in which the task can be executed, given the\nresource configuration in the state provided as argument. Returns False otherwise.\nIf this function returns False, the scheduling problem is unsolvable from this state.\nThis is to cope with the use of non-renable resources that may lead to state from which a\ntask will not be possible anymore.")]),t._v(" "),a("h3",{attrs:{id:"check-if-action-can-be-started-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#check-if-action-can-be-started-2"}},[t._v("#")]),t._v(" check_if_action_can_be_started "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"check_if_action_can_be_started",sig:{params:[{name:"self"},{name:"state",annotation:"State"},{name:"action",annotation:"SchedulingAction"}],return:"Tuple[bool, Dict[str, int]]"}}}),t._v(" "),a("p",[t._v("Check if a start or resume action can be applied. It returns a boolean and a dictionary of resources to use.")]),t._v(" "),a("h3",{attrs:{id:"check-unique-resource-names-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#check-unique-resource-names-2"}},[t._v("#")]),t._v(" check_unique_resource_names "),a("Badge",{attrs:{text:"UncertainResourceAvailabilityChanges",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"check_unique_resource_names",sig:{params:[{name:"self"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Return True if there are no duplicates in resource names across both resource types\nand resource units name lists.")]),t._v(" "),a("h3",{attrs:{id:"check-value-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#check-value-9"}},[t._v("#")]),t._v(" check_value "),a("Badge",{attrs:{text:"Rewards",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"check_value",sig:{params:[{name:"self"},{name:"value",annotation:"Value[D.T_value]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that a value is compliant with its reward specification.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("This function returns always True by default because any kind of reward should be accepted at this level.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-149"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-149"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("value")]),t._v(": The value to check.")])]),t._v(" "),a("h4",{attrs:{id:"returns-230"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-230"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the value is compliant (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"find-one-ressource-to-do-one-task-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#find-one-ressource-to-do-one-task-2"}},[t._v("#")]),t._v(" find_one_ressource_to_do_one_task "),a("Badge",{attrs:{text:"WithResourceSkills",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"find_one_ressource_to_do_one_task",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"mode",annotation:"int"}],return:"List[str]"}}}),t._v(" "),a("p",[t._v("For the common case when it is possible to do the task by one resource unit.\nFor general case, it might just return no possible ressource unit.")]),t._v(" "),a("h3",{attrs:{id:"get-action-space-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-13"}},[t._v("#")]),t._v(" get_action_space "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_action_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) domain action space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.get_action_space()")]),t._v(" internally calls "),a("code",[t._v("Events._get_action_space_()")]),t._v(" the first time and\nautomatically caches its value to make future calls more efficient (since the action space is assumed to be\nconstant).")]),t._v(" "),a("h4",{attrs:{id:"returns-231"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-231"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The action space.")]),t._v(" "),a("h3",{attrs:{id:"get-all-condition-items-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-all-condition-items-2"}},[t._v("#")]),t._v(" get_all_condition_items "),a("Badge",{attrs:{text:"WithConditionalTasks",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_all_condition_items",sig:{params:[{name:"self"}],return:"Enum"}}}),t._v(" "),a("p",[t._v("Return an Enum with all the elements that can be used to define a condition.")]),t._v(" "),a("p",[t._v("Example:\nreturn\nConditionElementsExample(Enum):\nOK = 0\nNC_PART_1_OPERATION_1 = 1\nNC_PART_1_OPERATION_2 = 2\nNC_PART_2_OPERATION_1 = 3\nNC_PART_2_OPERATION_2 = 4\nHARDWARE_ISSUE_MACHINE_A = 5\nHARDWARE_ISSUE_MACHINE_B = 6")]),t._v(" "),a("h3",{attrs:{id:"get-all-resources-skills-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-all-resources-skills-3"}},[t._v("#")]),t._v(" get_all_resources_skills "),a("Badge",{attrs:{text:"WithResourceSkills",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_all_resources_skills",sig:{params:[{name:"self"}],return:"Dict[str, Dict[str, Any]]"}}}),t._v(" "),a("p",[t._v("Return a nested dictionary where the first key is the name of a resource type or resource unit\nand the second key is the name of a skill. The value defines the details of the skill.\nE.g. {unit: {skill: (detail of skill)}}")]),t._v(" "),a("h3",{attrs:{id:"get-all-tasks-skills-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-all-tasks-skills-3"}},[t._v("#")]),t._v(" get_all_tasks_skills "),a("Badge",{attrs:{text:"WithResourceSkills",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_all_tasks_skills",sig:{params:[{name:"self"}],return:"Dict[int, Dict[int, Dict[str, Any]]]"}}}),t._v(" "),a("p",[t._v("Return a nested dictionary where the first key is the name of a task\nand the second key is the name of a skill. The value defines the details of the skill.\nE.g. {task: {skill: (detail of skill)}}")]),t._v(" "),a("h3",{attrs:{id:"get-all-unconditional-tasks-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-all-unconditional-tasks-3"}},[t._v("#")]),t._v(" get_all_unconditional_tasks "),a("Badge",{attrs:{text:"WithConditionalTasks",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_all_unconditional_tasks",sig:{params:[{name:"self"}],return:"Set[int]"}}}),t._v(" "),a("p",[t._v("Returns the set of all task ids for which there are no conditions. These tasks are to be considered at\nthe start of a project (i.e. in the initial state).")]),t._v(" "),a("h3",{attrs:{id:"get-applicable-actions-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-9"}},[t._v("#")]),t._v(" get_applicable_actions "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_applicable_actions",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history), or in\nthe internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.get_applicable_actions()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_applicable_actions()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-150"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-150"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-232"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-232"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of applicable actions.")]),t._v(" "),a("h3",{attrs:{id:"get-available-tasks-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-available-tasks-3"}},[t._v("#")]),t._v(" get_available_tasks "),a("Badge",{attrs:{text:"WithConditionalTasks",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_available_tasks",sig:{params:[{name:"self"},{name:"state"}],return:"Set[int]"}}}),t._v(" "),a("p",[t._v("Returns the set of all task ids that can be considered under the conditions defined in the given state.\nNote that the set will contains all ids for all tasks in the domain that meet the conditions, that is tasks\nthat are remaining, or that have been completed, paused or started / resumed.")]),t._v(" "),a("h3",{attrs:{id:"get-enabled-events-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-9"}},[t._v("#")]),t._v(" get_enabled_events "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_enabled_events",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"Space[D.T_event]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory), or in the internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.get_enabled_events()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_enabled_events()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead of\nthe memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-151"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-151"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-233"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-233"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of enabled events.")]),t._v(" "),a("h3",{attrs:{id:"get-goals-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-goals-13"}},[t._v("#")]),t._v(" get_goals "),a("Badge",{attrs:{text:"Goals",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_goals",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) domain goals space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Goals.get_goals()")]),t._v(" internally calls "),a("code",[t._v("Goals._get_goals_()")]),t._v(" the first time and automatically caches its\nvalue to make future calls more efficient (since the goals space is assumed to be constant).")]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Goal states are assumed to be fully observable (i.e. observation = state) so that there is never uncertainty\nabout whether the goal has been reached or not. This assumption guarantees that any policy that does not\nreach the goal with certainty incurs in infinite expected cost. - "),a("em",[t._v("Geffner, 2013: A Concise Introduction to\nModels and Methods for Automated Planning")])])]),t._v(" "),a("h4",{attrs:{id:"returns-234"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-234"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The goals space.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-13"}},[t._v("#")]),t._v(" get_initial_state "),a("Badge",{attrs:{text:"DeterministicInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_initial_state",sig:{params:[{name:"self"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("Get the (cached) initial state.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("DeterministicInitialized.get_initial_state()")]),t._v(" internally\ncalls "),a("code",[t._v("DeterministicInitialized._get_initial_state_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the initial state is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-235"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-235"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The initial state.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-distribution-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-distribution-13"}},[t._v("#")]),t._v(" get_initial_state_distribution "),a("Badge",{attrs:{text:"UncertainInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_initial_state_distribution",sig:{params:[{name:"self"}],return:"Distribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("Get the (cached) probability distribution of initial states.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("UncertainInitialized.get_initial_state_distribution()")]),t._v(" internally\ncalls "),a("code",[t._v("UncertainInitialized._get_initial_state_distribution_()")]),t._v(" the first time and automatically caches its value\nto make future calls more efficient (since the initial state distribution is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-236"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-236"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of initial states.")]),t._v(" "),a("h3",{attrs:{id:"get-max-horizon-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-max-horizon-3"}},[t._v("#")]),t._v(" get_max_horizon "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_max_horizon",sig:{params:[{name:"self"}],return:"int"}}}),t._v(" "),a("p",[t._v("Return the maximum time horizon (int)")]),t._v(" "),a("h3",{attrs:{id:"get-mode-costs-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-mode-costs-3"}},[t._v("#")]),t._v(" get_mode_costs "),a("Badge",{attrs:{text:"WithModeCosts",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_mode_costs",sig:{params:[{name:"self"}],return:"Dict[int, Dict[int, float]]"}}}),t._v(" "),a("p",[t._v("Return a nested dictionary where the first key is the id of a task (int), the second key the id of a mode\nand the value indicates the cost of execution the task in the mode.")]),t._v(" "),a("h3",{attrs:{id:"get-next-state-distribution-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-next-state-distribution-6"}},[t._v("#")]),t._v(" get_next_state_distribution "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_next_state_distribution",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"Distribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("Get the probability distribution of next state given a memory and action.")]),t._v(" "),a("h4",{attrs:{id:"parameters-152"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-152"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-237"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-237"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of next state.")]),t._v(" "),a("h3",{attrs:{id:"get-objectives-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-objectives-3"}},[t._v("#")]),t._v(" get_objectives "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_objectives",sig:{params:[{name:"self"}],return:"List[SchedulingObjectiveEnum]"}}}),t._v(" "),a("p",[t._v("Return the objectives to consider as a list. The items should be of SchedulingObjectiveEnum type.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-9"}},[t._v("#")]),t._v(" get_observation "),a("Badge",{attrs:{text:"TransformedObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_observation",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Get the deterministic observation given a state and action.")]),t._v(" "),a("h4",{attrs:{id:"parameters-153"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-153"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-238"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-238"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-distribution-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-distribution-9"}},[t._v("#")]),t._v(" get_observation_distribution "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_observation_distribution",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"Distribution[D.T_agent[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the probability distribution of the observation given a state and action.")]),t._v(" "),a("p",[t._v("In mathematical terms (discrete case), given an action "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.197ex",height:"1.02ex",viewBox:"0 -441 529 451"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})])])])])]),t._v(", this function represents: "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.078ex",height:"2.262ex",viewBox:"0 -750 4012.7 1000"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"50",d:"M287 628Q287 635 230 637Q206 637 199 638T192 648Q192 649 194 659Q200 679 203 681T397 683Q587 682 600 680Q664 669 707 631T751 530Q751 453 685 389Q616 321 507 303Q500 302 402 301H307L277 182Q247 66 247 59Q247 55 248 54T255 50T272 48T305 46H336Q342 37 342 35Q342 19 335 5Q330 0 319 0Q316 0 282 1T182 2Q120 2 87 2T51 1Q33 1 33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM645 554Q645 567 643 575T634 597T609 619T560 635Q553 636 480 637Q463 637 445 637T416 636T404 636Q391 635 386 627Q384 621 367 550T332 412T314 344Q314 342 395 342H407H430Q542 342 590 392Q617 419 631 471T645 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(751, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(1140, 0)"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1903, 0)"}},[a("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(2181, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2650, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(3094.7, 0)"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3623.7, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(",\nwhere "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.05ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.726ex",height:"1.643ex",viewBox:"0 -704 763 726"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})])])])])]),t._v(" is the random variable of the observation.")],1),t._v(" "),a("h4",{attrs:{id:"parameters-154"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-154"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-239"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-239"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-space-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-13"}},[t._v("#")]),t._v(" get_observation_space "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_observation_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) observation space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("PartiallyObservable.get_observation_space()")]),t._v(" internally\ncalls "),a("code",[t._v("PartiallyObservable._get_observation_space_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the observation space is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-240"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-240"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The observation space.")]),t._v(" "),a("h3",{attrs:{id:"get-preallocations-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-preallocations-3"}},[t._v("#")]),t._v(" get_preallocations "),a("Badge",{attrs:{text:"WithPreallocations",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_preallocations",sig:{params:[{name:"self"}],return:"Dict[int, List[str]]"}}}),t._v(" "),a("p",[t._v("Return a dictionary where the key is the id of a task (int)\nand the value indicates the pre-allocated resources for this task (as a list of str)")]),t._v(" "),a("h3",{attrs:{id:"get-predecessors-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-predecessors-3"}},[t._v("#")]),t._v(" get_predecessors "),a("Badge",{attrs:{text:"WithPrecedence",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_predecessors",sig:{params:[{name:"self"}],return:"Dict[int, List[int]]"}}}),t._v(" "),a("p",[t._v("Return the predecessors of the task. Successors are given as a list for a task given as a key.")]),t._v(" "),a("h3",{attrs:{id:"get-resource-cost-per-time-unit-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-resource-cost-per-time-unit-3"}},[t._v("#")]),t._v(" get_resource_cost_per_time_unit "),a("Badge",{attrs:{text:"WithResourceCosts",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_resource_cost_per_time_unit",sig:{params:[{name:"self"}],return:"Dict[str, float]"}}}),t._v(" "),a("p",[t._v("Return a dictionary where the key is the name of a resource (str)\nand the value indicates the cost of using this resource per time unit.")]),t._v(" "),a("h3",{attrs:{id:"get-resource-renewability-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-resource-renewability-3"}},[t._v("#")]),t._v(" get_resource_renewability "),a("Badge",{attrs:{text:"MixedRenewable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_resource_renewability",sig:{params:[{name:"self"}],return:"Dict[str, bool]"}}}),t._v(" "),a("p",[t._v("Return a dictionary where the key is a resource name (string)\nand the value whether this resource is renewable (True) or not (False).")]),t._v(" "),a("h3",{attrs:{id:"get-resource-type-for-unit-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-resource-type-for-unit-3"}},[t._v("#")]),t._v(" get_resource_type_for_unit "),a("Badge",{attrs:{text:"WithResourceUnits",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_resource_type_for_unit",sig:{params:[{name:"self"}],return:"Dict[str, str]"}}}),t._v(" "),a("p",[t._v("Return a dictionary where the key is a resource unit name and the value a resource type name.\nAn empty dictionary can be used if there are no resource unit matching a resource type.")]),t._v(" "),a("h3",{attrs:{id:"get-resource-types-names-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-resource-types-names-3"}},[t._v("#")]),t._v(" get_resource_types_names "),a("Badge",{attrs:{text:"WithResourceTypes",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_resource_types_names",sig:{params:[{name:"self"}],return:"List[str]"}}}),t._v(" "),a("p",[t._v("Return the names (string) of all resource types as a list.")]),t._v(" "),a("h3",{attrs:{id:"get-resource-units-names-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-resource-units-names-3"}},[t._v("#")]),t._v(" get_resource_units_names "),a("Badge",{attrs:{text:"WithResourceUnits",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_resource_units_names",sig:{params:[{name:"self"}],return:"List[str]"}}}),t._v(" "),a("p",[t._v("Return the names (string) of all resource units as a list.")]),t._v(" "),a("h3",{attrs:{id:"get-skills-names-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-skills-names-2"}},[t._v("#")]),t._v(" get_skills_names "),a("Badge",{attrs:{text:"WithResourceSkills",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_skills_names",sig:{params:[{name:"self"}],return:"Set[str]"}}}),t._v(" "),a("p",[t._v("Return a list of all skill names as a list of str. Skill names are defined in the 2 dictionaries returned\nby the get_all_resources_skills and get_all_tasks_skills functions.")]),t._v(" "),a("h3",{attrs:{id:"get-skills-of-resource-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-skills-of-resource-2"}},[t._v("#")]),t._v(" get_skills_of_resource "),a("Badge",{attrs:{text:"WithResourceSkills",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_skills_of_resource",sig:{params:[{name:"self"},{name:"resource",annotation:"str"}],return:"Dict[str, Any]"}}}),t._v(" "),a("p",[t._v("Return the skills of a given resource")]),t._v(" "),a("h3",{attrs:{id:"get-skills-of-task-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-skills-of-task-2"}},[t._v("#")]),t._v(" get_skills_of_task "),a("Badge",{attrs:{text:"WithResourceSkills",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_skills_of_task",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"mode",annotation:"int"}],return:"Dict[str, Any]"}}}),t._v(" "),a("p",[t._v("Return the skill requirements for a given task")]),t._v(" "),a("h3",{attrs:{id:"get-successors-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-successors-3"}},[t._v("#")]),t._v(" get_successors "),a("Badge",{attrs:{text:"WithPrecedence",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_successors",sig:{params:[{name:"self"}],return:"Dict[int, List[int]]"}}}),t._v(" "),a("p",[t._v("Return the successors of the tasks. Successors are given as a list for a task given as a key.")]),t._v(" "),a("h3",{attrs:{id:"get-task-existence-conditions-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-task-existence-conditions-3"}},[t._v("#")]),t._v(" get_task_existence_conditions "),a("Badge",{attrs:{text:"WithConditionalTasks",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_task_existence_conditions",sig:{params:[{name:"self"}],return:"Dict[int, List[int]]"}}}),t._v(" "),a("p",[t._v("Return a dictionary where the key is a task id and the value a list of conditions to be respected (True)\nfor the task to be part of the schedule. If a task has no entry in the dictionary,\nthere is no conditions for that task.")]),t._v(" "),a("p",[t._v("Example:\nreturn\n{\n20: [get_all_condition_items().NC_PART_1_OPERATION_1],\n21: [get_all_condition_items().HARDWARE_ISSUE_MACHINE_A]\n22: [get_all_condition_items().NC_PART_1_OPERATION_1, get_all_condition_items().NC_PART_1_OPERATION_2]\n}e")]),t._v(" "),a("h3",{attrs:{id:"get-task-on-completion-added-conditions-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-task-on-completion-added-conditions-2"}},[t._v("#")]),t._v(" get_task_on_completion_added_conditions "),a("Badge",{attrs:{text:"WithConditionalTasks",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_task_on_completion_added_conditions",sig:{params:[{name:"self"}],return:"Dict[int, List[Distribution]]"}}}),t._v(" "),a("p",[t._v("Return a dict of list. The key of the dict is the task id and each list is composed of a list of tuples.\nEach tuple contains the probability (first item in tuple) that the conditionElement (second item in tuple)\nis True. The probabilities in the inner list should sum up to 1. The dictionary should only contains the keys\nof tasks that can create conditions.")]),t._v(" "),a("p",[t._v("Example:\nreturn\n{\n12:\n[\nDiscreteDistribution([(ConditionElementsExample.NC_PART_1_OPERATION_1, 0.1), (ConditionElementsExample.OK, 0.9)]),\nDiscreteDistribution([(ConditionElementsExample.HARDWARE_ISSUE_MACHINE_A, 0.05), ('paper', 0.1), (ConditionElementsExample.OK, 0.95)])\n]\n}")]),t._v(" "),a("h3",{attrs:{id:"get-task-paused-non-renewable-resource-returned-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-task-paused-non-renewable-resource-returned-3"}},[t._v("#")]),t._v(" get_task_paused_non_renewable_resource_returned "),a("Badge",{attrs:{text:"WithPreemptivity",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_task_paused_non_renewable_resource_returned",sig:{params:[{name:"self"}],return:"Dict[int, bool]"}}}),t._v(" "),a("p",[t._v("Return a dictionary where the key is a task id and the value is of type bool indicating\nif the non-renewable resources are consumed when the task is paused (False) or made available again (True).\nE.g. {\n2: False # if paused, non-renewable resource will be consumed\n5: True # if paused, the non-renewable resource will be available again\n}")]),t._v(" "),a("h3",{attrs:{id:"get-task-preemptivity-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-task-preemptivity-3"}},[t._v("#")]),t._v(" get_task_preemptivity "),a("Badge",{attrs:{text:"WithPreemptivity",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_task_preemptivity",sig:{params:[{name:"self"}],return:"Dict[int, bool]"}}}),t._v(" "),a("p",[t._v("Return a dictionary where the key is a task id and the value a boolean indicating\nif the task can be paused or stopped.\nE.g. {\n1: False\n2: True\n3: False\n4: False\n5: True\n6: False\n}")]),t._v(" "),a("h3",{attrs:{id:"get-task-progress-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-task-progress-3"}},[t._v("#")]),t._v(" get_task_progress "),a("Badge",{attrs:{text:"CustomTaskProgress",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_task_progress",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"t_from",annotation:"int"},{name:"t_to",annotation:"int"},{name:"mode",annotation:"Optional[int]"},{name:"sampled_duration",default:"None",annotation:"Optional[int]"}],return:"float"}}}),t._v(" "),a("h4",{attrs:{id:"returns-241"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-241"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The task progress (float) between t_from and t_to.")]),t._v(" "),a("h3",{attrs:{id:"get-task-resuming-type-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-task-resuming-type-3"}},[t._v("#")]),t._v(" get_task_resuming_type "),a("Badge",{attrs:{text:"WithPreemptivity",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_task_resuming_type",sig:{params:[{name:"self"}],return:"Dict[int, ResumeType]"}}}),t._v(" "),a("p",[t._v("Return a dictionary where the key is a task id and the value is of type ResumeType indicating\nif the task can be resumed (restarted from where it was paused with no time loss)\nor restarted (restarted from the start).\nE.g. {\n1: ResumeType.NA\n2: ResumeType.Resume\n3: ResumeType.NA\n4: ResumeType.NA\n5: ResumeType.Restart\n6: ResumeType.NA\n}")]),t._v(" "),a("h3",{attrs:{id:"get-time-lags-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-time-lags-3"}},[t._v("#")]),t._v(" get_time_lags "),a("Badge",{attrs:{text:"WithTimeLag",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_time_lags",sig:{params:[{name:"self"}],return:"Dict[int, Dict[int, TimeLag]]"}}}),t._v(" "),a("p",[t._v("Return nested dictionaries where the first key is the id of a task (int)\nand the second key is the id of another task (int).\nThe value is a TimeLag object containing the MINIMUM and MAXIMUM time (int) that needs to separate the end\nof the first task to the start of the second task.")]),t._v(" "),a("p",[t._v("e.g.\n{\n12:{\n15: TimeLag(5, 10),\n16: TimeLag(5, 20),\n17: MinimumOnlyTimeLag(5),\n18: MaximumOnlyTimeLag(15),\n}\n}")]),t._v(" "),a("h4",{attrs:{id:"returns-242"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-242"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("A dictionary of TimeLag objects.")]),t._v(" "),a("h3",{attrs:{id:"get-time-window-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-time-window-3"}},[t._v("#")]),t._v(" get_time_window "),a("Badge",{attrs:{text:"WithTimeWindow",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_time_window",sig:{params:[{name:"self"}],return:"Dict[int, TimeWindow]"}}}),t._v(" "),a("p",[t._v("Return a dictionary where the key is the id of a task (int)\nand the value is a TimeWindow object.\nNote that the max time horizon needs to be provided to the TimeWindow constructors\ne.g.\n{\n1: TimeWindow(10, 15, 20, 30, self.get_max_horizon())\n2: EmptyTimeWindow(self.get_max_horizon())\n3: EndTimeWindow(20, 25, self.get_max_horizon())\n4: EndBeforeOnlyTimeWindow(40, self.get_max_horizon())\n}")]),t._v(" "),a("h4",{attrs:{id:"returns-243"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-243"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("A dictionary of TimeWindow objects.")]),t._v(" "),a("h3",{attrs:{id:"get-transition-value-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-transition-value-5"}},[t._v("#")]),t._v(" get_transition_value "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_transition_value",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"},{name:"next_state",default:"None",annotation:"Optional[D.T_state]"}],return:"D.T_agent[Value[D.T_value]]"}}}),t._v(" "),a("p",[t._v("Get the value (reward or cost) of a transition.")]),t._v(" "),a("p",[t._v("The transition to consider is defined by the function parameters.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("If this function never depends on the next_state parameter for its computation, it is recommended to\nindicate it by overriding "),a("code",[t._v("UncertainTransitions._is_transition_value_dependent_on_next_state_()")]),t._v(" to return\nFalse. This information can then be exploited by solvers to avoid computing next state to evaluate a\ntransition value (more efficient).")])]),t._v(" "),a("h4",{attrs:{id:"parameters-155"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-155"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")]),t._v(" "),a("li",[a("strong",[t._v("next_state")]),t._v(": The next state in which the transition ends (if needed for the computation).")])]),t._v(" "),a("h4",{attrs:{id:"returns-244"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-244"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The transition value (reward or cost).")]),t._v(" "),a("h3",{attrs:{id:"get-variable-resource-consumption-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-variable-resource-consumption-3"}},[t._v("#")]),t._v(" get_variable_resource_consumption "),a("Badge",{attrs:{text:"VariableResourceConsumption",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_variable_resource_consumption",sig:{params:[{name:"self"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Return true if the domain has variable resource consumption,\nfalse if the consumption of resource does not vary in time for any of the tasks")]),t._v(" "),a("h3",{attrs:{id:"initialize-domain-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#initialize-domain-2"}},[t._v("#")]),t._v(" initialize_domain "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"initialize_domain",sig:{params:[{name:"self"}]}}}),t._v(" "),a("p",[t._v("Initialize a scheduling domain. This function needs to be called when instantiating a scheduling domain.")]),t._v(" "),a("h3",{attrs:{id:"is-action-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-action-9"}},[t._v("#")]),t._v(" is_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_action",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an event is an action (i.e. a controllable event for the agents).")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\naction space provided by "),a("code",[t._v("Events.get_action_space()")]),t._v(", but it can be overridden for faster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-156"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-156"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("event")]),t._v(": The event to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-245"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-245"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is an action (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-applicable-action-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-9"}},[t._v("#")]),t._v(" is_applicable_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_applicable_action",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an action is applicable in the given memory (state or history), or in the internal one if\nomitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.is_applicable_action()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_applicable_action()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead\nof the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-157"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-157"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-246"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-246"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the action is applicable (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-enabled-event-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-9"}},[t._v("#")]),t._v(" is_enabled_event "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_enabled_event",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an uncontrollable event is enabled in the given memory (state or history), or in the\ninternal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.is_enabled_event()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_enabled_event()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead of\nthe memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-158"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-158"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-247"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-247"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is enabled (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-goal-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-goal-9"}},[t._v("#")]),t._v(" is_goal "),a("Badge",{attrs:{text:"Goals",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_goal",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"D.T_agent[D.T_predicate]"}}}),t._v(" "),a("p",[t._v("Indicate whether an observation belongs to the goals.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\ngoals space provided by "),a("code",[t._v("Goals.get_goals()")]),t._v(", but it can be overridden for faster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-159"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-159"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-248"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-248"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the observation is a goal (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-observation-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-observation-9"}},[t._v("#")]),t._v(" is_observation "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_observation",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that an observation indeed belongs to the domain observation space.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\nobservation space provided by "),a("code",[t._v("PartiallyObservable.get_observation_space()")]),t._v(", but it can be overridden for\nfaster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-160"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-160"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-249"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-249"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the observation belongs to the domain observation space (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-terminal-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-terminal-5"}},[t._v("#")]),t._v(" is_terminal "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_terminal",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"}],return:"D.T_agent[D.T_predicate]"}}}),t._v(" "),a("p",[t._v("Indicate whether a state is terminal.")]),t._v(" "),a("p",[t._v("A terminal state is a state with no outgoing transition (except to itself with value 0).")]),t._v(" "),a("h4",{attrs:{id:"parameters-161"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-161"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-250"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-250"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the state is terminal (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-transition-value-dependent-on-next-state-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-transition-value-dependent-on-next-state-7"}},[t._v("#")]),t._v(" is_transition_value_dependent_on_next_state "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_transition_value_dependent_on_next_state",sig:{params:[{name:"self"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether get_transition_value() requires the next_state parameter for its computation (cached).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("UncertainTransitions.is_transition_value_dependent_on_next_state()")]),t._v(" internally\ncalls "),a("code",[t._v("UncertainTransitions._is_transition_value_dependent_on_next_state_()")]),t._v(" the first time and automatically\ncaches its value to make future calls more efficient (since the returned value is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-251"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-251"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the transition value computation depends on next_state (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"reset-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#reset-9"}},[t._v("#")]),t._v(" reset "),a("Badge",{attrs:{text:"Initializable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"reset",sig:{params:[{name:"self"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Reset the state of the environment and return an initial observation.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Initializable.reset()")]),t._v(" provides some boilerplate code and internally calls "),a("code",[t._v("Initializable._reset()")]),t._v("\n(which returns an initial state). The boilerplate code automatically stores the initial state into the "),a("code",[t._v("_memory")]),t._v("\nattribute and samples a corresponding observation.")]),t._v(" "),a("h4",{attrs:{id:"returns-252"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-252"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("An initial observation.")]),t._v(" "),a("h3",{attrs:{id:"sample-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample-9"}},[t._v("#")]),t._v(" sample "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"sample",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Sample one transition of the simulator's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Simulation.sample()")]),t._v(" provides some boilerplate code and internally calls "),a("code",[t._v("Simulation._sample()")]),t._v("\n(which returns a transition outcome). The boilerplate code automatically samples an observation corresponding to\nthe sampled next state.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing simulator needs to be wrapped instead of implemented fully in scikit-decide (e.g. a\nsimulator), it is recommended to overwrite "),a("code",[t._v("Simulation.sample()")]),t._v(" to call the external simulator and not use\nthe "),a("code",[t._v("Simulation._sample()")]),t._v(" helper function.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-162"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-162"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-253"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-253"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of the sampled transition.")]),t._v(" "),a("h3",{attrs:{id:"sample-completion-conditions-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample-completion-conditions-3"}},[t._v("#")]),t._v(" sample_completion_conditions "),a("Badge",{attrs:{text:"WithConditionalTasks",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"sample_completion_conditions",sig:{params:[{name:"self"},{name:"task",annotation:"int"}],return:"List[int]"}}}),t._v(" "),a("p",[t._v("Samples the condition distributions associated with the given task and return a list of sampled\nconditions.")]),t._v(" "),a("h3",{attrs:{id:"sample-quantity-resource-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample-quantity-resource-3"}},[t._v("#")]),t._v(" sample_quantity_resource "),a("Badge",{attrs:{text:"UncertainResourceAvailabilityChanges",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"sample_quantity_resource",sig:{params:[{name:"self"},{name:"resource",annotation:"str"},{name:"time",annotation:"int"},{name:"**kwargs"}],return:"int"}}}),t._v(" "),a("p",[t._v("Sample an amount of resource availability (int) for the given resource\n(either resource type or resource unit) at the given time. This number should be the sum of the number of\nresource available at time t and the number of resource of this type consumed so far).")]),t._v(" "),a("h3",{attrs:{id:"sample-task-duration-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample-task-duration-3"}},[t._v("#")]),t._v(" sample_task_duration "),a("Badge",{attrs:{text:"SimulatedTaskDuration",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"sample_task_duration",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"mode",default:"1",annotation:"Optional[int]"},{name:"progress_from",default:"0.0",annotation:"Optional[float]"}],return:"int"}}}),t._v(" "),a("p",[t._v("Sample, store and return task duration for the given task in the given mode.")]),t._v(" "),a("h3",{attrs:{id:"set-inplace-environment-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#set-inplace-environment-2"}},[t._v("#")]),t._v(" set_inplace_environment "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"set_inplace_environment",sig:{params:[{name:"self"},{name:"inplace_environment",annotation:"bool"}]}}}),t._v(" "),a("p",[t._v("Activate or not the fact that the simulator modifies the given state inplace or create a copy before.\nThe inplace version is several times faster but will lead to bugs in graph search solver.")]),t._v(" "),a("h3",{attrs:{id:"set-memory-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#set-memory-9"}},[t._v("#")]),t._v(" set_memory "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"set_memory",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"None"}}}),t._v(" "),a("p",[t._v("Set internal memory attribute "),a("code",[t._v("_memory")]),t._v(" to given one.")]),t._v(" "),a("p",[t._v('This can be useful to set a specific "starting point" before doing a rollout with successive '),a("code",[t._v("Environment.step()")]),t._v("\ncalls.")]),t._v(" "),a("h4",{attrs:{id:"parameters-163"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-163"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to set internally.")])]),t._v(" "),a("h4",{attrs:{id:"example-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#example-9"}},[t._v("#")]),t._v(" Example")]),t._v(" "),a("div",{staticClass:"language-python extra-class"},[a("pre",{pre:!0,attrs:{class:"language-python"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Set simulation_domain memory to my_state (assuming Markovian domain)")]),t._v("\nsimulation_domain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("set_memory"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("my_state"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Start a 100-steps rollout from here (applying my_action at every step)")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("for")]),t._v(" _ "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("in")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("range")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n simulation_domain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("step"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("my_action"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("h3",{attrs:{id:"solve-with-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#solve-with-5"}},[t._v("#")]),t._v(" solve_with "),a("Badge",{attrs:{text:"Domain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"solve_with",sig:{params:[{name:"solver",annotation:"Solver"},{name:"domain_factory",default:"None",annotation:"Optional[Callable[[], Domain]]"},{name:"load_path",default:"None",annotation:"Optional[str]"}],return:"Solver"}}}),t._v(" "),a("p",[t._v("Solve the domain with a new or loaded solver and return it auto-cast to the level of the domain.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Solver.check_domain()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Solver._check_domain_additional()")]),t._v(' (which returns True by default but can be overridden to define\nspecific checks in addition to the "domain requirements"). The boilerplate code automatically checks whether all\ndomain requirements are met.')]),t._v(" "),a("h4",{attrs:{id:"parameters-164"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-164"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("solver")]),t._v(": The solver.")]),t._v(" "),a("li",[a("strong",[t._v("domain_factory")]),t._v(": A callable with no argument returning the domain to solve (factory is the domain class if None).")]),t._v(" "),a("li",[a("strong",[t._v("load_path")]),t._v(": The path to restore the solver state from (if None, the solving process will be launched instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-254"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-254"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The new solver (auto-cast to the level of the domain).")]),t._v(" "),a("h3",{attrs:{id:"step-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#step-9"}},[t._v("#")]),t._v(" step "),a("Badge",{attrs:{text:"Environment",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"step",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Run one step of the environment's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Environment.step()")]),t._v(" provides some boilerplate code and internally calls "),a("code",[t._v("Environment._step()")]),t._v(" (which\nreturns a transition outcome). The boilerplate code automatically stores next state into the "),a("code",[t._v("_memory")]),t._v(" attribute\nand samples a corresponding observation.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing environment needs to be wrapped instead of implemented fully in scikit-decide (e.g. compiled\nATARI games), it is recommended to overwrite "),a("code",[t._v("Environment.step()")]),t._v(" to call the external environment and not\nuse the "),a("code",[t._v("Environment._step()")]),t._v(" helper function.")])]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Before calling "),a("code",[t._v("Environment.step()")]),t._v(" the first time or when the end of an episode is\nreached, "),a("code",[t._v("Initializable.reset()")]),t._v(" must be called to reset the environment's state.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-165"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-165"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the current memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-255"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-255"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of this step.")]),t._v(" "),a("h3",{attrs:{id:"update-complete-dummy-tasks-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-complete-dummy-tasks-2"}},[t._v("#")]),t._v(" update_complete_dummy_tasks "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_complete_dummy_tasks",sig:{params:[{name:"self"},{name:"state",annotation:"State"},{name:"action",annotation:"SchedulingAction"}]}}}),t._v(" "),a("p",[t._v("Update the status of newly started tasks whose duration is 0 from ongoing to complete.")]),t._v(" "),a("h3",{attrs:{id:"update-complete-dummy-tasks-simulation-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-complete-dummy-tasks-simulation-2"}},[t._v("#")]),t._v(" update_complete_dummy_tasks_simulation "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_complete_dummy_tasks_simulation",sig:{params:[{name:"self"},{name:"state",annotation:"State"},{name:"action",annotation:"SchedulingAction"}]}}}),t._v(" "),a("p",[t._v("In a simulated scheduling environment, update the status of newly started tasks whose duration is 0\nfrom ongoing to complete.")]),t._v(" "),a("h3",{attrs:{id:"update-complete-dummy-tasks-uncertain-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-complete-dummy-tasks-uncertain-2"}},[t._v("#")]),t._v(" update_complete_dummy_tasks_uncertain "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_complete_dummy_tasks_uncertain",sig:{params:[{name:"self"},{name:"states",annotation:"DiscreteDistribution[State]"},{name:"action",annotation:"SchedulingAction"}]}}}),t._v(" "),a("p",[t._v("In an uncertain scheduling environment, update the status of newly started tasks whose duration is 0\nfrom ongoing to complete.")]),t._v(" "),a("h3",{attrs:{id:"update-complete-tasks-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-complete-tasks-2"}},[t._v("#")]),t._v(" update_complete_tasks "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_complete_tasks",sig:{params:[{name:"self"},{name:"state",annotation:"State"}]}}}),t._v(" "),a("p",[t._v("Update the status of newly completed tasks in the state from ongoing to complete\nand update resource availability. This function will also log in task_details the time it was complete")]),t._v(" "),a("h3",{attrs:{id:"update-complete-tasks-simulation-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-complete-tasks-simulation-2"}},[t._v("#")]),t._v(" update_complete_tasks_simulation "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_complete_tasks_simulation",sig:{params:[{name:"self"},{name:"state",annotation:"State"}]}}}),t._v(" "),a("p",[t._v("In a simulated scheduling environment, update the status of newly completed tasks in the state from ongoing to complete\nand update resource availability. This function will also log in task_details the time it was complete")]),t._v(" "),a("h3",{attrs:{id:"update-complete-tasks-uncertain-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-complete-tasks-uncertain-2"}},[t._v("#")]),t._v(" update_complete_tasks_uncertain "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_complete_tasks_uncertain",sig:{params:[{name:"self"},{name:"states",annotation:"DiscreteDistribution[State]"}]}}}),t._v(" "),a("p",[t._v("In an uncertain scheduling environment, update the status of newly completed tasks in the state from ongoing\nto complete, update resource availability and update on-completion conditions.\nThis function will also log in task_details the time it was complete.")]),t._v(" "),a("h3",{attrs:{id:"update-conditional-tasks-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-conditional-tasks-2"}},[t._v("#")]),t._v(" update_conditional_tasks "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_conditional_tasks",sig:{params:[{name:"self"},{name:"state",annotation:"State"},{name:"action",annotation:"SchedulingAction"}]}}}),t._v(" "),a("p",[t._v("Update remaining tasks by checking conditions and potentially adding conditional tasks.")]),t._v(" "),a("h3",{attrs:{id:"update-conditional-tasks-simulation-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-conditional-tasks-simulation-2"}},[t._v("#")]),t._v(" update_conditional_tasks_simulation "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_conditional_tasks_simulation",sig:{params:[{name:"self"},{name:"state",annotation:"State"},{name:"action",annotation:"SchedulingAction"}]}}}),t._v(" "),a("p",[t._v("In a simulated scheduling environment, update remaining tasks by checking conditions and potentially\nadding conditional tasks.")]),t._v(" "),a("h3",{attrs:{id:"update-conditional-tasks-uncertain-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-conditional-tasks-uncertain-2"}},[t._v("#")]),t._v(" update_conditional_tasks_uncertain "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_conditional_tasks_uncertain",sig:{params:[{name:"self"},{name:"states",annotation:"DiscreteDistribution[State]"},{name:"action",annotation:"SchedulingAction"}]}}}),t._v(" "),a("p",[t._v("Update remaining tasks by checking conditions and potentially adding conditional tasks.")]),t._v(" "),a("h3",{attrs:{id:"update-pause-tasks-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-pause-tasks-2"}},[t._v("#")]),t._v(" update_pause_tasks "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_pause_tasks",sig:{params:[{name:"self"},{name:"state",annotation:"State"},{name:"action",annotation:"SchedulingAction"}]}}}),t._v(" "),a("p",[t._v("Update the status of a task from ongoing to paused if specified in the action\nand update resource availability. This function will also log in task_details the time it was paused.")]),t._v(" "),a("h3",{attrs:{id:"update-pause-tasks-simulation-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-pause-tasks-simulation-2"}},[t._v("#")]),t._v(" update_pause_tasks_simulation "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_pause_tasks_simulation",sig:{params:[{name:"self"},{name:"state",annotation:"State"},{name:"action",annotation:"SchedulingAction"}]}}}),t._v(" "),a("p",[t._v("In a simulation scheduling environment, update the status of a task from ongoing to paused if\nspecified in the action and update resource availability. This function will also log in task_details\nthe time it was paused.")]),t._v(" "),a("h3",{attrs:{id:"update-pause-tasks-uncertain-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-pause-tasks-uncertain-2"}},[t._v("#")]),t._v(" update_pause_tasks_uncertain "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_pause_tasks_uncertain",sig:{params:[{name:"self"},{name:"state",annotation:"State"},{name:"action",annotation:"SchedulingAction"}]}}}),t._v(" "),a("p",[t._v("In an uncertain scheduling environment, update the status of a task from ongoing to paused if\nspecified in the action and update resource availability. This function will also log in task_details\nthe time it was paused.")]),t._v(" "),a("h3",{attrs:{id:"update-progress-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-progress-2"}},[t._v("#")]),t._v(" update_progress "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_progress",sig:{params:[{name:"self"},{name:"state",annotation:"State"}]}}}),t._v(" "),a("p",[t._v("Update the progress of all ongoing tasks in the state.")]),t._v(" "),a("h3",{attrs:{id:"update-progress-simulation-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-progress-simulation-2"}},[t._v("#")]),t._v(" update_progress_simulation "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_progress_simulation",sig:{params:[{name:"self"},{name:"state",annotation:"State"}]}}}),t._v(" "),a("p",[t._v("In a simulation scheduling environment, update the progress of all ongoing tasks in the state.")]),t._v(" "),a("h3",{attrs:{id:"update-progress-uncertain-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-progress-uncertain-2"}},[t._v("#")]),t._v(" update_progress_uncertain "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_progress_uncertain",sig:{params:[{name:"self"},{name:"states",annotation:"DiscreteDistribution[State]"}]}}}),t._v(" "),a("p",[t._v("In an uncertain scheduling environment, update the progress of all ongoing tasks in the state.")]),t._v(" "),a("h3",{attrs:{id:"update-resource-availability-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-resource-availability-2"}},[t._v("#")]),t._v(" update_resource_availability "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_resource_availability",sig:{params:[{name:"self"},{name:"state",annotation:"State"},{name:"action",annotation:"SchedulingAction"}]}}}),t._v(" "),a("p",[t._v("Update resource availability for next time step. This should be called after update_time().")]),t._v(" "),a("h3",{attrs:{id:"update-resource-availability-simulation-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-resource-availability-simulation-2"}},[t._v("#")]),t._v(" update_resource_availability_simulation "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_resource_availability_simulation",sig:{params:[{name:"self"},{name:"state",annotation:"State"},{name:"action",annotation:"SchedulingAction"}]}}}),t._v(" "),a("p",[t._v("In a simulated scheduling environment, update resource availability for next time step.\nThis should be called after update_time().")]),t._v(" "),a("h3",{attrs:{id:"update-resource-availability-uncertain-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-resource-availability-uncertain-2"}},[t._v("#")]),t._v(" update_resource_availability_uncertain "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_resource_availability_uncertain",sig:{params:[{name:"self"},{name:"states",annotation:"DiscreteDistribution[State]"},{name:"action",annotation:"SchedulingAction"}]}}}),t._v(" "),a("p",[t._v("Update resource availability for next time step. This should be called after update_time().")]),t._v(" "),a("h3",{attrs:{id:"update-resume-tasks-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-resume-tasks-2"}},[t._v("#")]),t._v(" update_resume_tasks "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_resume_tasks",sig:{params:[{name:"self"},{name:"state",annotation:"State"},{name:"action",annotation:"SchedulingAction"}]}}}),t._v(" "),a("p",[t._v("Update the status of a task from paused to ongoing if specified in the action\nand update resource availability. This function will also log in task_details the time it was resumed")]),t._v(" "),a("h3",{attrs:{id:"update-resume-tasks-simulation-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-resume-tasks-simulation-2"}},[t._v("#")]),t._v(" update_resume_tasks_simulation "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_resume_tasks_simulation",sig:{params:[{name:"self"},{name:"state",annotation:"State"},{name:"action",annotation:"SchedulingAction"}]}}}),t._v(" "),a("p",[t._v("In a simulationn scheduling environment, update the status of a task from paused to ongoing if specified\nin the action and update resource availability. This function will also log in task_details the time it was\nresumed.")]),t._v(" "),a("h3",{attrs:{id:"update-resume-tasks-uncertain-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-resume-tasks-uncertain-2"}},[t._v("#")]),t._v(" update_resume_tasks_uncertain "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_resume_tasks_uncertain",sig:{params:[{name:"self"},{name:"state",annotation:"State"},{name:"action",annotation:"SchedulingAction"}]}}}),t._v(" "),a("p",[t._v("In an uncertain scheduling environment, update the status of a task from paused to ongoing if specified\nin the action and update resource availability. This function will also log in task_details the time it was\nresumed.")]),t._v(" "),a("h3",{attrs:{id:"update-start-tasks-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-start-tasks-2"}},[t._v("#")]),t._v(" update_start_tasks "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_start_tasks",sig:{params:[{name:"self"},{name:"state",annotation:"State"},{name:"action",annotation:"SchedulingAction"}]}}}),t._v(" "),a("p",[t._v("Update the status of a task from remaining to ongoing if specified in the action\nand update resource availability. This function will also log in task_details the time it was started.")]),t._v(" "),a("h3",{attrs:{id:"update-start-tasks-simulation-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-start-tasks-simulation-2"}},[t._v("#")]),t._v(" update_start_tasks_simulation "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_start_tasks_simulation",sig:{params:[{name:"self"},{name:"state",annotation:"State"},{name:"action",annotation:"SchedulingAction"}]}}}),t._v(" "),a("p",[t._v("In a simulated scheduling environment, update the status of a task from remaining to ongoing if\nspecified in the action and update resource availability. This function will also log in task_details the\ntime it was started.")]),t._v(" "),a("h3",{attrs:{id:"update-start-tasks-uncertain-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-start-tasks-uncertain-2"}},[t._v("#")]),t._v(" update_start_tasks_uncertain "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_start_tasks_uncertain",sig:{params:[{name:"self"},{name:"state",annotation:"State"},{name:"action",annotation:"SchedulingAction"}]}}}),t._v(" "),a("p",[t._v("In an uncertain scheduling environment, update the status of a task from remaining to ongoing\nif specified in the action and update resource availability.\nThis function returns a DsicreteDistribution of State.\nThis function will also log in task_details the time it was started.")]),t._v(" "),a("h3",{attrs:{id:"update-time-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-time-2"}},[t._v("#")]),t._v(" update_time "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_time",sig:{params:[{name:"self"},{name:"state",annotation:"State"},{name:"action",annotation:"SchedulingAction"}]}}}),t._v(" "),a("p",[t._v("Update the time of the state if the time_progress attribute of the given EnumerableAction is True.")]),t._v(" "),a("h3",{attrs:{id:"update-time-simulation-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-time-simulation-2"}},[t._v("#")]),t._v(" update_time_simulation "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_time_simulation",sig:{params:[{name:"self"},{name:"state",annotation:"State"},{name:"action",annotation:"SchedulingAction"}]}}}),t._v(" "),a("p",[t._v("In a simulated scheduling environment, update the time of the state if the time_progress attribute of the\ngiven EnumerableAction is True.")]),t._v(" "),a("h3",{attrs:{id:"update-time-uncertain-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-time-uncertain-2"}},[t._v("#")]),t._v(" update_time_uncertain "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_time_uncertain",sig:{params:[{name:"self"},{name:"states",annotation:"DiscreteDistribution[State]"},{name:"action",annotation:"SchedulingAction"}]}}}),t._v(" "),a("p",[t._v("Update the time of the state if the time_progress attribute of the given EnumerableAction is True.")]),t._v(" "),a("h3",{attrs:{id:"add-to-current-conditions-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#add-to-current-conditions-4"}},[t._v("#")]),t._v(" _add_to_current_conditions "),a("Badge",{attrs:{text:"WithConditionalTasks",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_add_to_current_conditions",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"state"}]}}}),t._v(" "),a("p",[t._v("Samples completion conditions for a given task and add these conditions to the list of conditions in the\ngiven state. This function should be called when a task complete.")]),t._v(" "),a("h3",{attrs:{id:"check-value-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#check-value-10"}},[t._v("#")]),t._v(" _check_value "),a("Badge",{attrs:{text:"Rewards",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_check_value",sig:{params:[{name:"self"},{name:"value",annotation:"Value[D.T_value]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that a value is compliant with its reward specification.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("This function returns always True by default because any kind of reward should be accepted at this level.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-166"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-166"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("value")]),t._v(": The value to check.")])]),t._v(" "),a("h4",{attrs:{id:"returns-256"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-256"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the value is compliant (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"get-action-space-14"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-14"}},[t._v("#")]),t._v(" _get_action_space "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_action_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) domain action space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._get_action_space()")]),t._v(" internally calls "),a("code",[t._v("Events._get_action_space_()")]),t._v(" the first time and\nautomatically caches its value to make future calls more efficient (since the action space is assumed to be\nconstant).")]),t._v(" "),a("h4",{attrs:{id:"returns-257"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-257"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The action space.")]),t._v(" "),a("h3",{attrs:{id:"get-action-space-15"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-15"}},[t._v("#")]),t._v(" _get_action_space_ "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_action_space_",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("To be implemented if needed one day.")]),t._v(" "),a("h3",{attrs:{id:"get-all-resources-skills-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-all-resources-skills-4"}},[t._v("#")]),t._v(" _get_all_resources_skills "),a("Badge",{attrs:{text:"WithResourceSkills",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_all_resources_skills",sig:{params:[{name:"self"}],return:"Dict[str, Dict[str, Any]]"}}}),t._v(" "),a("p",[t._v("Return a nested dictionary where the first key is the name of a resource type or resource unit\nand the second key is the name of a skill. The value defines the details of the skill.\nE.g. {unit: {skill: (detail of skill)}}")]),t._v(" "),a("h3",{attrs:{id:"get-all-tasks-skills-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-all-tasks-skills-4"}},[t._v("#")]),t._v(" _get_all_tasks_skills "),a("Badge",{attrs:{text:"WithResourceSkills",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_all_tasks_skills",sig:{params:[{name:"self"}],return:"Dict[int, Dict[int, Dict[str, Any]]]"}}}),t._v(" "),a("p",[t._v("Return a nested dictionary where the first key is the name of a task\nand the second key is the name of a skill. The value defines the details of the skill.\nE.g. {task: {skill: (detail of skill)}}")]),t._v(" "),a("h3",{attrs:{id:"get-all-unconditional-tasks-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-all-unconditional-tasks-4"}},[t._v("#")]),t._v(" _get_all_unconditional_tasks "),a("Badge",{attrs:{text:"WithConditionalTasks",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_all_unconditional_tasks",sig:{params:[{name:"self"}],return:"Set[int]"}}}),t._v(" "),a("p",[t._v("Returns the set of all task ids for which there are no conditions. These tasks are to be considered at\nthe start of a project (i.e. in the initial state).")]),t._v(" "),a("h3",{attrs:{id:"get-applicable-actions-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-10"}},[t._v("#")]),t._v(" _get_applicable_actions "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_applicable_actions",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history), or in\nthe internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._get_applicable_actions()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_applicable_actions_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-167"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-167"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-258"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-258"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of applicable actions.")]),t._v(" "),a("h3",{attrs:{id:"get-applicable-actions-from-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-from-5"}},[t._v("#")]),t._v(" _get_applicable_actions_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_applicable_actions_from",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Returns the action space from a state.\nTODO : think about a way to avoid the instaceof usage.")]),t._v(" "),a("h3",{attrs:{id:"get-available-tasks-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-available-tasks-4"}},[t._v("#")]),t._v(" _get_available_tasks "),a("Badge",{attrs:{text:"WithConditionalTasks",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_available_tasks",sig:{params:[{name:"self"},{name:"state"}],return:"Set[int]"}}}),t._v(" "),a("p",[t._v("Returns the set of all task ids that can be considered under the conditions defined in the given state.\nNote that the set will contains all ids for all tasks in the domain that meet the conditions, that is tasks\nthat are remaining, or that have been completed, paused or started / resumed.")]),t._v(" "),a("h3",{attrs:{id:"get-enabled-events-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-10"}},[t._v("#")]),t._v(" _get_enabled_events "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_enabled_events",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"Space[D.T_event]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory), or in the internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._get_enabled_events()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_enabled_events_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-168"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-168"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-259"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-259"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of enabled events.")]),t._v(" "),a("h3",{attrs:{id:"get-enabled-events-from-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-from-5"}},[t._v("#")]),t._v(" _get_enabled_events_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_enabled_events_from",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"Space[D.T_event]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._get_enabled_events()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("h4",{attrs:{id:"parameters-169"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-169"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-260"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-260"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of enabled events.")]),t._v(" "),a("h3",{attrs:{id:"get-goals-14"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-goals-14"}},[t._v("#")]),t._v(" _get_goals "),a("Badge",{attrs:{text:"Goals",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_goals",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) domain goals space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Goals._get_goals()")]),t._v(" internally calls "),a("code",[t._v("Goals._get_goals_()")]),t._v(" the first time and automatically caches\nits value to make future calls more efficient (since the goals space is assumed to be constant).")]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Goal states are assumed to be fully observable (i.e. observation = state) so that there is never uncertainty\nabout whether the goal has been reached or not. This assumption guarantees that any policy that does not\nreach the goal with certainty incurs in infinite expected cost. - "),a("em",[t._v("Geffner, 2013: A Concise Introduction to\nModels and Methods for Automated Planning")])])]),t._v(" "),a("h4",{attrs:{id:"returns-261"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-261"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The goals space.")]),t._v(" "),a("h3",{attrs:{id:"get-goals-15"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-goals-15"}},[t._v("#")]),t._v(" _get_goals_ "),a("Badge",{attrs:{text:"Goals",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_goals_",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the domain goals space (finite or infinite set).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Goals._get_goals()")]),t._v(", the difference being that the result is\nnot cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-262"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-262"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The goals space.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-14"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-14"}},[t._v("#")]),t._v(" _get_initial_state "),a("Badge",{attrs:{text:"DeterministicInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_initial_state",sig:{params:[{name:"self"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("Get the (cached) initial state.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("DeterministicInitialized._get_initial_state()")]),t._v(" internally\ncalls "),a("code",[t._v("DeterministicInitialized._get_initial_state_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the initial state is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-263"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-263"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The initial state.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-15"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-15"}},[t._v("#")]),t._v(" _get_initial_state_ "),a("Badge",{attrs:{text:"DeterministicInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_initial_state_",sig:{params:[{name:"self"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("Create and return an empty initial state")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-distribution-14"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-distribution-14"}},[t._v("#")]),t._v(" _get_initial_state_distribution "),a("Badge",{attrs:{text:"UncertainInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_initial_state_distribution",sig:{params:[{name:"self"}],return:"Distribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("Get the (cached) probability distribution of initial states.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("UncertainInitialized._get_initial_state_distribution()")]),t._v(" internally\ncalls "),a("code",[t._v("UncertainInitialized._get_initial_state_distribution_()")]),t._v(" the first time and automatically caches its value\nto make future calls more efficient (since the initial state distribution is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-264"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-264"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of initial states.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-distribution-15"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-distribution-15"}},[t._v("#")]),t._v(" _get_initial_state_distribution_ "),a("Badge",{attrs:{text:"UncertainInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_initial_state_distribution_",sig:{params:[{name:"self"}],return:"Distribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("Get the probability distribution of initial states.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("UncertainInitialized._get_initial_state_distribution()")]),t._v(", the\ndifference being that the result is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-265"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-265"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of initial states.")]),t._v(" "),a("h3",{attrs:{id:"get-max-horizon-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-max-horizon-4"}},[t._v("#")]),t._v(" _get_max_horizon "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_max_horizon",sig:{params:[{name:"self"}],return:"int"}}}),t._v(" "),a("p",[t._v("Return the maximum time horizon (int)")]),t._v(" "),a("h3",{attrs:{id:"get-memory-maxlen-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-memory-maxlen-9"}},[t._v("#")]),t._v(" _get_memory_maxlen "),a("Badge",{attrs:{text:"History",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_memory_maxlen",sig:{params:[{name:"self"}],return:"int"}}}),t._v(" "),a("p",[t._v("Get the (cached) memory max length.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("FiniteHistory._get_memory_maxlen()")]),t._v(" internally calls "),a("code",[t._v("FiniteHistory._get_memory_maxlen_()")]),t._v(" the first\ntime and automatically caches its value to make future calls more efficient (since the memory max length is\nassumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-266"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-266"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The memory max length.")]),t._v(" "),a("h3",{attrs:{id:"get-memory-maxlen-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-memory-maxlen-10"}},[t._v("#")]),t._v(" _get_memory_maxlen_ "),a("Badge",{attrs:{text:"FiniteHistory",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_memory_maxlen_",sig:{params:[{name:"self"}],return:"int"}}}),t._v(" "),a("p",[t._v("Get the memory max length.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("FiniteHistory._get_memory_maxlen()")]),t._v(", the difference being that\nthe result is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-267"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-267"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The memory max length.")]),t._v(" "),a("h3",{attrs:{id:"get-mode-costs-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-mode-costs-4"}},[t._v("#")]),t._v(" _get_mode_costs "),a("Badge",{attrs:{text:"WithModeCosts",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_mode_costs",sig:{params:[{name:"self"}],return:"Dict[int, Dict[int, float]]"}}}),t._v(" "),a("p",[t._v("Return a nested dictionary where the first key is the id of a task (int), the second key the id of a mode\nand the value indicates the cost of execution the task in the mode.")]),t._v(" "),a("h3",{attrs:{id:"get-next-state-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-next-state-4"}},[t._v("#")]),t._v(" _get_next_state "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_next_state",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("This function will be used if the domain is defined with DeterministicTransitions. This function will be ignored\nif the domain is defined as having UncertainTransitions or Simulation.")]),t._v(" "),a("h3",{attrs:{id:"get-next-state-distribution-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-next-state-distribution-7"}},[t._v("#")]),t._v(" _get_next_state_distribution "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_next_state_distribution",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"Distribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("This function will be used if the domain is defined with UncertainTransitions. This function will be ignored\nif the domain is defined as a Simulation. This function may also be used by uncertainty-specialised solvers\non deterministic domains.")]),t._v(" "),a("h3",{attrs:{id:"get-objectives-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-objectives-4"}},[t._v("#")]),t._v(" _get_objectives "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_objectives",sig:{params:[{name:"self"}],return:"List[SchedulingObjectiveEnum]"}}}),t._v(" "),a("p",[t._v("Return the objectives to consider as a list. The items should be of SchedulingObjectiveEnum type.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-10"}},[t._v("#")]),t._v(" _get_observation "),a("Badge",{attrs:{text:"TransformedObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Get the deterministic observation given a state and action.")]),t._v(" "),a("h4",{attrs:{id:"parameters-170"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-170"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-268"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-268"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-distribution-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-distribution-10"}},[t._v("#")]),t._v(" _get_observation_distribution "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation_distribution",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"Distribution[D.T_agent[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the probability distribution of the observation given a state and action.")]),t._v(" "),a("p",[t._v("In mathematical terms (discrete case), given an action "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.197ex",height:"1.02ex",viewBox:"0 -441 529 451"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})])])])])]),t._v(", this function represents: "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.078ex",height:"2.262ex",viewBox:"0 -750 4012.7 1000"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"50",d:"M287 628Q287 635 230 637Q206 637 199 638T192 648Q192 649 194 659Q200 679 203 681T397 683Q587 682 600 680Q664 669 707 631T751 530Q751 453 685 389Q616 321 507 303Q500 302 402 301H307L277 182Q247 66 247 59Q247 55 248 54T255 50T272 48T305 46H336Q342 37 342 35Q342 19 335 5Q330 0 319 0Q316 0 282 1T182 2Q120 2 87 2T51 1Q33 1 33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM645 554Q645 567 643 575T634 597T609 619T560 635Q553 636 480 637Q463 637 445 637T416 636T404 636Q391 635 386 627Q384 621 367 550T332 412T314 344Q314 342 395 342H407H430Q542 342 590 392Q617 419 631 471T645 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(751, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(1140, 0)"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1903, 0)"}},[a("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(2181, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2650, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(3094.7, 0)"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3623.7, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(",\nwhere "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.05ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.726ex",height:"1.643ex",viewBox:"0 -704 763 726"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})])])])])]),t._v(" is the random variable of the observation.")],1),t._v(" "),a("h4",{attrs:{id:"parameters-171"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-171"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-269"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-269"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-space-14"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-14"}},[t._v("#")]),t._v(" _get_observation_space "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) observation space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(" internally\ncalls "),a("code",[t._v("PartiallyObservable._get_observation_space_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the observation space is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-270"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-270"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The observation space.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-space-15"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-15"}},[t._v("#")]),t._v(" _get_observation_space_ "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation_space_",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("To be implemented if needed one day.")]),t._v(" "),a("h3",{attrs:{id:"get-preallocations-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-preallocations-4"}},[t._v("#")]),t._v(" _get_preallocations "),a("Badge",{attrs:{text:"WithPreallocations",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_preallocations",sig:{params:[{name:"self"}],return:"Dict[int, List[str]]"}}}),t._v(" "),a("p",[t._v("Return a dictionary where the key is the id of a task (int)\nand the value indicates the pre-allocated resources for this task (as a list of str)")]),t._v(" "),a("h3",{attrs:{id:"get-predecessors-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-predecessors-4"}},[t._v("#")]),t._v(" _get_predecessors "),a("Badge",{attrs:{text:"WithPrecedence",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_predecessors",sig:{params:[{name:"self"}],return:"Dict[int, List[int]]"}}}),t._v(" "),a("p",[t._v("Return the predecessors of the task. Successors are given as a list for a task given as a key.")]),t._v(" "),a("h3",{attrs:{id:"get-resource-cost-per-time-unit-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-resource-cost-per-time-unit-4"}},[t._v("#")]),t._v(" _get_resource_cost_per_time_unit "),a("Badge",{attrs:{text:"WithResourceCosts",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_resource_cost_per_time_unit",sig:{params:[{name:"self"}],return:"Dict[str, float]"}}}),t._v(" "),a("p",[t._v("Return a dictionary where the key is the name of a resource (str)\nand the value indicates the cost of using this resource per time unit.")]),t._v(" "),a("h3",{attrs:{id:"get-resource-renewability-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-resource-renewability-4"}},[t._v("#")]),t._v(" _get_resource_renewability "),a("Badge",{attrs:{text:"MixedRenewable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_resource_renewability",sig:{params:[{name:"self"}],return:"Dict[str, bool]"}}}),t._v(" "),a("p",[t._v("Return a dictionary where the key is a resource name (string)\nand the value whether this resource is renewable (True) or not (False).")]),t._v(" "),a("h3",{attrs:{id:"get-resource-type-for-unit-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-resource-type-for-unit-4"}},[t._v("#")]),t._v(" _get_resource_type_for_unit "),a("Badge",{attrs:{text:"WithResourceUnits",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_resource_type_for_unit",sig:{params:[{name:"self"}],return:"Dict[str, str]"}}}),t._v(" "),a("p",[t._v("Return a dictionary where the key is a resource unit name and the value a resource type name.\nAn empty dictionary can be used if there are no resource unit matching a resource type.")]),t._v(" "),a("h3",{attrs:{id:"get-resource-types-names-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-resource-types-names-4"}},[t._v("#")]),t._v(" _get_resource_types_names "),a("Badge",{attrs:{text:"WithResourceTypes",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_resource_types_names",sig:{params:[{name:"self"}],return:"List[str]"}}}),t._v(" "),a("p",[t._v("Return the names (string) of all resource types as a list.")]),t._v(" "),a("h3",{attrs:{id:"get-resource-units-names-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-resource-units-names-4"}},[t._v("#")]),t._v(" _get_resource_units_names "),a("Badge",{attrs:{text:"WithResourceUnits",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_resource_units_names",sig:{params:[{name:"self"}],return:"List[str]"}}}),t._v(" "),a("p",[t._v("Return the names (string) of all resource units as a list.")]),t._v(" "),a("h3",{attrs:{id:"get-successors-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-successors-4"}},[t._v("#")]),t._v(" _get_successors "),a("Badge",{attrs:{text:"WithPrecedence",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_successors",sig:{params:[{name:"self"}],return:"Dict[int, List[int]]"}}}),t._v(" "),a("p",[t._v("Return the successors of the tasks. Successors are given as a list for a task given as a key.")]),t._v(" "),a("h3",{attrs:{id:"get-task-existence-conditions-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-task-existence-conditions-4"}},[t._v("#")]),t._v(" _get_task_existence_conditions "),a("Badge",{attrs:{text:"WithConditionalTasks",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_task_existence_conditions",sig:{params:[{name:"self"}],return:"Dict[int, List[int]]"}}}),t._v(" "),a("p",[t._v("Return a dictionary where the key is a task id and the value a list of conditions to be respected (True)\nfor the task to be part of the schedule. If a task has no entry in the dictionary,\nthere is no conditions for that task.")]),t._v(" "),a("p",[t._v("Example:\nreturn\n{\n20: [get_all_condition_items().NC_PART_1_OPERATION_1],\n21: [get_all_condition_items().HARDWARE_ISSUE_MACHINE_A]\n22: [get_all_condition_items().NC_PART_1_OPERATION_1, get_all_condition_items().NC_PART_1_OPERATION_2]\n}e")]),t._v(" "),a("h3",{attrs:{id:"get-task-paused-non-renewable-resource-returned-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-task-paused-non-renewable-resource-returned-4"}},[t._v("#")]),t._v(" _get_task_paused_non_renewable_resource_returned "),a("Badge",{attrs:{text:"WithPreemptivity",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_task_paused_non_renewable_resource_returned",sig:{params:[{name:"self"}],return:"Dict[int, bool]"}}}),t._v(" "),a("p",[t._v("Return a dictionary where the key is a task id and the value is of type bool indicating\nif the non-renewable resources are consumed when the task is paused (False) or made available again (True).\nE.g. {\n2: False # if paused, non-renewable resource will be consumed\n5: True # if paused, the non-renewable resource will be available again\n}")]),t._v(" "),a("h3",{attrs:{id:"get-task-preemptivity-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-task-preemptivity-4"}},[t._v("#")]),t._v(" _get_task_preemptivity "),a("Badge",{attrs:{text:"WithPreemptivity",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_task_preemptivity",sig:{params:[{name:"self"}],return:"Dict[int, bool]"}}}),t._v(" "),a("p",[t._v("Return a dictionary where the key is a task id and the value a boolean indicating\nif the task can be paused or stopped.\nE.g. {\n1: False\n2: True\n3: False\n4: False\n5: True\n6: False\n}")]),t._v(" "),a("h3",{attrs:{id:"get-task-progress-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-task-progress-4"}},[t._v("#")]),t._v(" _get_task_progress "),a("Badge",{attrs:{text:"CustomTaskProgress",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_task_progress",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"t_from",annotation:"int"},{name:"t_to",annotation:"int"},{name:"mode",annotation:"Optional[int]"},{name:"sampled_duration",default:"None",annotation:"Optional[int]"}],return:"float"}}}),t._v(" "),a("h4",{attrs:{id:"returns-271"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-271"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The task progress (float) between t_from and t_to.")]),t._v(" "),a("h3",{attrs:{id:"get-task-resuming-type-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-task-resuming-type-4"}},[t._v("#")]),t._v(" _get_task_resuming_type "),a("Badge",{attrs:{text:"WithPreemptivity",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_task_resuming_type",sig:{params:[{name:"self"}],return:"Dict[int, ResumeType]"}}}),t._v(" "),a("p",[t._v("Return a dictionary where the key is a task id and the value is of type ResumeType indicating\nif the task can be resumed (restarted from where it was paused with no time loss)\nor restarted (restarted from the start).\nE.g. {\n1: ResumeType.NA\n2: ResumeType.Resume\n3: ResumeType.NA\n4: ResumeType.NA\n5: ResumeType.Restart\n6: ResumeType.NA\n}")]),t._v(" "),a("h3",{attrs:{id:"get-tasks-ids-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-tasks-ids-2"}},[t._v("#")]),t._v(" _get_tasks_ids "),a("Badge",{attrs:{text:"MultiMode",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_tasks_ids",sig:{params:[{name:"self"}],return:"Union[Set[int], Dict[int, Any], List[int]]"}}}),t._v(" "),a("p",[t._v("Return a set or dict of int = id of tasks")]),t._v(" "),a("h3",{attrs:{id:"get-tasks-modes-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-tasks-modes-2"}},[t._v("#")]),t._v(" _get_tasks_modes "),a("Badge",{attrs:{text:"MultiMode",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_tasks_modes",sig:{params:[{name:"self"}],return:"Dict[int, Dict[int, ModeConsumption]]"}}}),t._v(" "),a("p",[t._v("Return a nested dictionary where the first key is a task id and the second key is a mode id.\nThe value is a Mode object defining the resource consumption.\nIf the domain is an instance of VariableResourceConsumption, VaryingModeConsumption objects should be used.\nIf this is not the case (i.e. the domain is an instance of ConstantResourceConsumption),\nthen ConstantModeConsumption should be used.")]),t._v(" "),a("p",[t._v("E.g. with constant resource consumption\n{\n12: {\n1: ConstantModeConsumption({'rt_1': 2, 'rt_2': 0, 'ru_1': 1}),\n2: ConstantModeConsumption({'rt_1': 0, 'rt_2': 3, 'ru_1': 1}),\n}\n}")]),t._v(" "),a("p",[t._v("E.g. with time varying resource consumption\n{\n12: {\n1: VaryingModeConsumption({'rt_1': [2,2,2,2,3], 'rt_2': [0,0,0,0,0], 'ru_1': [1,1,1,1,1]}),\n2: VaryingModeConsumption({'rt_1': [1,1,1,1,2,2,2], 'rt_2': [0,0,0,0,0,0,0], 'ru_1': [1,1,1,1,1,1,1]}),\n}\n}")]),t._v(" "),a("h3",{attrs:{id:"get-time-lags-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-time-lags-4"}},[t._v("#")]),t._v(" _get_time_lags "),a("Badge",{attrs:{text:"WithTimeLag",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_time_lags",sig:{params:[{name:"self"}],return:"Dict[int, Dict[int, TimeLag]]"}}}),t._v(" "),a("p",[t._v("Return nested dictionaries where the first key is the id of a task (int)\nand the second key is the id of another task (int).\nThe value is a TimeLag object containing the MINIMUM and MAXIMUM time (int) that needs to separate the end\nof the first task to the start of the second task.")]),t._v(" "),a("p",[t._v("e.g.\n{\n12:{\n15: TimeLag(5, 10),\n16: TimeLag(5, 20),\n17: MinimumOnlyTimeLag(5),\n18: MaximumOnlyTimeLag(15),\n}\n}")]),t._v(" "),a("h4",{attrs:{id:"returns-272"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-272"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("A dictionary of TimeLag objects.")]),t._v(" "),a("h3",{attrs:{id:"get-time-window-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-time-window-4"}},[t._v("#")]),t._v(" _get_time_window "),a("Badge",{attrs:{text:"WithTimeWindow",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_time_window",sig:{params:[{name:"self"}],return:"Dict[int, TimeWindow]"}}}),t._v(" "),a("p",[t._v("Return a dictionary where the key is the id of a task (int)\nand the value is a TimeWindow object.\nNote that the max time horizon needs to be provided to the TimeWindow constructors\ne.g.\n{\n1: TimeWindow(10, 15, 20, 30, self.get_max_horizon())\n2: EmptyTimeWindow(self.get_max_horizon())\n3: EndTimeWindow(20, 25, self.get_max_horizon())\n4: EndBeforeOnlyTimeWindow(40, self.get_max_horizon())\n}")]),t._v(" "),a("h4",{attrs:{id:"returns-273"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-273"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("A dictionary of TimeWindow objects.")]),t._v(" "),a("h3",{attrs:{id:"get-variable-resource-consumption-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-variable-resource-consumption-4"}},[t._v("#")]),t._v(" _get_variable_resource_consumption "),a("Badge",{attrs:{text:"VariableResourceConsumption",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_variable_resource_consumption",sig:{params:[{name:"self"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Return true if the domain has variable resource consumption,\nfalse if the consumption of resource does not vary in time for any of the tasks")]),t._v(" "),a("h3",{attrs:{id:"init-memory-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#init-memory-5"}},[t._v("#")]),t._v(" _init_memory "),a("Badge",{attrs:{text:"History",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_init_memory",sig:{params:[{name:"self"},{name:"state",default:"None",annotation:"Optional[D.T_state]"}],return:"D.T_memory[D.T_state]"}}}),t._v(" "),a("p",[t._v("Initialize memory (possibly with a state) according to its specification and return it.")]),t._v(" "),a("p",[t._v("This function is automatically called by "),a("code",[t._v("Initializable._reset()")]),t._v(" to reinitialize the internal memory whenever\nthe domain is used as an environment.")]),t._v(" "),a("h4",{attrs:{id:"parameters-172"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-172"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": An optional state to initialize the memory with (typically the initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-274"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-274"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The new initialized memory.")]),t._v(" "),a("h3",{attrs:{id:"is-action-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-action-10"}},[t._v("#")]),t._v(" _is_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_action",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an event is an action (i.e. a controllable event for the agents).")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\naction space provided by "),a("code",[t._v("Events._get_action_space()")]),t._v(", but it can be overridden for faster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-173"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-173"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("event")]),t._v(": The event to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-275"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-275"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is an action (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-applicable-action-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-10"}},[t._v("#")]),t._v(" _is_applicable_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_applicable_action",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an action is applicable in the given memory (state or history), or in the internal one if\nomitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._is_applicable_action()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_applicable_action_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-174"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-174"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-276"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-276"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the action is applicable (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-applicable-action-from-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-from-5"}},[t._v("#")]),t._v(" _is_applicable_action_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_applicable_action_from",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an action is applicable in the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._is_applicable_action()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the space of\napplicable actions provided by "),a("code",[t._v("Events._get_applicable_actions_from()")]),t._v(", but it can be overridden for faster\nimplementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-175"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-175"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-277"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-277"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the action is applicable (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-enabled-event-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-10"}},[t._v("#")]),t._v(" _is_enabled_event "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_enabled_event",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an uncontrollable event is enabled in the given memory (state or history), or in the\ninternal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._is_enabled_event()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_enabled_event_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead\nof the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-176"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-176"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-278"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-278"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is enabled (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-enabled-event-from-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-from-5"}},[t._v("#")]),t._v(" _is_enabled_event_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_enabled_event_from",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an event is enabled in the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._is_enabled_event()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the space of\nenabled events provided by "),a("code",[t._v("Events._get_enabled_events_from()")]),t._v(", but it can be overridden for faster\nimplementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-177"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-177"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-279"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-279"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is enabled (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-goal-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-goal-10"}},[t._v("#")]),t._v(" _is_goal "),a("Badge",{attrs:{text:"Goals",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_goal",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"D.T_agent[D.T_predicate]"}}}),t._v(" "),a("p",[t._v("Indicate whether an observation belongs to the goals.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\ngoals space provided by "),a("code",[t._v("Goals._get_goals()")]),t._v(", but it can be overridden for faster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-178"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-178"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-280"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-280"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the observation is a goal (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-observation-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-observation-10"}},[t._v("#")]),t._v(" _is_observation "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_observation",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that an observation indeed belongs to the domain observation space.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\nobservation space provided by "),a("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(", but it can be overridden for\nfaster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-179"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-179"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-281"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-281"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the observation belongs to the domain observation space (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-transition-value-dependent-on-next-state-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-transition-value-dependent-on-next-state-8"}},[t._v("#")]),t._v(" _is_transition_value_dependent_on_next_state "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_transition_value_dependent_on_next_state",sig:{params:[{name:"self"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether _get_transition_value() requires the next_state parameter for its computation (cached).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("UncertainTransitions._is_transition_value_dependent_on_next_state()")]),t._v(" internally\ncalls "),a("code",[t._v("UncertainTransitions._is_transition_value_dependent_on_next_state_()")]),t._v(" the first time and automatically\ncaches its value to make future calls more efficient (since the returned value is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-282"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-282"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the transition value computation depends on next_state (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-transition-value-dependent-on-next-state-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-transition-value-dependent-on-next-state-9"}},[t._v("#")]),t._v(" _is_transition_value_dependent_on_next_state_ "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_transition_value_dependent_on_next_state_",sig:{params:[{name:"self"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether _get_transition_value() requires the next_state parameter for its computation.")]),t._v(" "),a("p",[t._v("This is a helper function called by default\nfrom "),a("code",[t._v("UncertainTransitions._is_transition_value_dependent_on_next_state()")]),t._v(", the difference being that the result\nis not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-283"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-283"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the transition value computation depends on next_state (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"reset-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#reset-10"}},[t._v("#")]),t._v(" _reset "),a("Badge",{attrs:{text:"Initializable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_reset",sig:{params:[{name:"self"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Reset the state of the environment and return an initial observation.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Initializable._reset()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Initializable._state_reset()")]),t._v(" (which returns an initial state). The boilerplate code automatically stores\nthe initial state into the "),a("code",[t._v("_memory")]),t._v(" attribute and samples a corresponding observation.")]),t._v(" "),a("h4",{attrs:{id:"returns-284"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-284"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("An initial observation.")]),t._v(" "),a("h3",{attrs:{id:"sample-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample-10"}},[t._v("#")]),t._v(" _sample "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_sample",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Sample one transition of the simulator's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Simulation._sample()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Simulation._state_sample()")]),t._v(" (which returns a transition outcome). The boilerplate code automatically\nsamples an observation corresponding to the sampled next state.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing simulator needs to be wrapped instead of implemented fully in scikit-decide (e.g. a\nsimulator), it is recommended to overwrite "),a("code",[t._v("Simulation._sample()")]),t._v(" to call the external simulator and not use\nthe "),a("code",[t._v("Simulation._state_sample()")]),t._v(" helper function.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-180"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-180"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-285"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-285"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of the sampled transition.")]),t._v(" "),a("h3",{attrs:{id:"sample-completion-conditions-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample-completion-conditions-4"}},[t._v("#")]),t._v(" _sample_completion_conditions "),a("Badge",{attrs:{text:"WithConditionalTasks",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_sample_completion_conditions",sig:{params:[{name:"self"},{name:"task",annotation:"int"}],return:"List[int]"}}}),t._v(" "),a("p",[t._v("Samples the condition distributions associated with the given task and return a list of sampled\nconditions.")]),t._v(" "),a("h3",{attrs:{id:"sample-quantity-resource-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample-quantity-resource-4"}},[t._v("#")]),t._v(" _sample_quantity_resource "),a("Badge",{attrs:{text:"UncertainResourceAvailabilityChanges",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_sample_quantity_resource",sig:{params:[{name:"self"},{name:"resource",annotation:"str"},{name:"time",annotation:"int"},{name:"**kwargs"}],return:"int"}}}),t._v(" "),a("p",[t._v("Sample an amount of resource availability (int) for the given resource\n(either resource type or resource unit) at the given time. This number should be the sum of the number of\nresource available at time t and the number of resource of this type consumed so far).")]),t._v(" "),a("h3",{attrs:{id:"sample-task-duration-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample-task-duration-4"}},[t._v("#")]),t._v(" _sample_task_duration "),a("Badge",{attrs:{text:"SimulatedTaskDuration",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_sample_task_duration",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"mode",default:"1",annotation:"Optional[int]"},{name:"progress_from",default:"0.0",annotation:"Optional[float]"}],return:"int"}}}),t._v(" "),a("p",[t._v("Return a task duration for the given task in the given mode.")]),t._v(" "),a("h3",{attrs:{id:"set-memory-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#set-memory-10"}},[t._v("#")]),t._v(" _set_memory "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_set_memory",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"None"}}}),t._v(" "),a("p",[t._v("Set internal memory attribute "),a("code",[t._v("_memory")]),t._v(" to given one.")]),t._v(" "),a("p",[t._v('This can be useful to set a specific "starting point" before doing a rollout with\nsuccessive '),a("code",[t._v("Environment._step()")]),t._v(" calls.")]),t._v(" "),a("h4",{attrs:{id:"parameters-181"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-181"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to set internally.")])]),t._v(" "),a("h4",{attrs:{id:"example-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#example-10"}},[t._v("#")]),t._v(" Example")]),t._v(" "),a("div",{staticClass:"language-python extra-class"},[a("pre",{pre:!0,attrs:{class:"language-python"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Set simulation_domain memory to my_state (assuming Markovian domain)")]),t._v("\nsimulation_domain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("_set_memory"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("my_state"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Start a 100-steps rollout from here (applying my_action at every step)")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("for")]),t._v(" _ "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("in")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("range")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n simulation_domain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("_step"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("my_action"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("h3",{attrs:{id:"state-reset-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#state-reset-5"}},[t._v("#")]),t._v(" _state_reset "),a("Badge",{attrs:{text:"Initializable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_state_reset",sig:{params:[{name:"self"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("Reset the state of the environment and return an initial state.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Initializable._reset()")]),t._v(". It focuses on the state level, as\nopposed to the observation one for the latter.")]),t._v(" "),a("h4",{attrs:{id:"returns-286"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-286"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("An initial state.")]),t._v(" "),a("h3",{attrs:{id:"state-sample-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#state-sample-5"}},[t._v("#")]),t._v(" _state_sample "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_state_sample",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"TransitionOutcome[D.T_state, D.T_agent[Value[D.T_value]], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("This function will be used if the domain is defined as a Simulation (i.e. transitions are defined by call to\na simulation). This function may also be used by simulation-based solvers on non-Simulation domains.")]),t._v(" "),a("h3",{attrs:{id:"state-step-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#state-step-5"}},[t._v("#")]),t._v(" _state_step "),a("Badge",{attrs:{text:"Environment",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_state_step",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"TransitionOutcome[D.T_state, D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Compute one step of the transition's dynamics.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Environment._step()")]),t._v(". It focuses on the state level, as opposed\nto the observation one for the latter.")]),t._v(" "),a("h4",{attrs:{id:"parameters-182"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-182"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the current memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-287"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-287"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The transition outcome of this step.")]),t._v(" "),a("h3",{attrs:{id:"step-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#step-10"}},[t._v("#")]),t._v(" _step "),a("Badge",{attrs:{text:"Environment",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_step",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Run one step of the environment's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Environment._step()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Environment._state_step()")]),t._v(" (which returns a transition outcome). The boilerplate code automatically stores\nnext state into the "),a("code",[t._v("_memory")]),t._v(" attribute and samples a corresponding observation.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing environment needs to be wrapped instead of implemented fully in scikit-decide (e.g. compiled\nATARI games), it is recommended to overwrite "),a("code",[t._v("Environment._step()")]),t._v(" to call the external environment and not\nuse the "),a("code",[t._v("Environment._state_step()")]),t._v(" helper function.")])]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Before calling "),a("code",[t._v("Environment._step()")]),t._v(" the first time or when the end of an episode is\nreached, "),a("code",[t._v("Initializable._reset()")]),t._v(" must be called to reset the environment's state.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-183"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-183"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the current memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-288"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-288"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of this step.")]),t._v(" "),a("h2",{attrs:{id:"deterministicschedulingdomain"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#deterministicschedulingdomain"}},[t._v("#")]),t._v(" DeterministicSchedulingDomain")]),t._v(" "),a("p",[t._v("This is the highest level scheduling domain class (inheriting top-level class for each mandatory\ndomain characteristic).")]),t._v(" "),a("h3",{attrs:{id:"add-to-current-conditions-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#add-to-current-conditions-5"}},[t._v("#")]),t._v(" add_to_current_conditions "),a("Badge",{attrs:{text:"WithConditionalTasks",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"add_to_current_conditions",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"state"}]}}}),t._v(" "),a("p",[t._v("Samples completion conditions for a given task and add these conditions to the list of conditions in the\ngiven state. This function should be called when a task complete.")]),t._v(" "),a("h3",{attrs:{id:"all-tasks-possible-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#all-tasks-possible-3"}},[t._v("#")]),t._v(" all_tasks_possible "),a("Badge",{attrs:{text:"MixedRenewable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"all_tasks_possible",sig:{params:[{name:"self"},{name:"state",annotation:"State"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Return a True is for each task there is at least one mode in which the task can be executed, given the\nresource configuration in the state provided as argument. Returns False otherwise.\nIf this function returns False, the scheduling problem is unsolvable from this state.\nThis is to cope with the use of non-renable resources that may lead to state from which a\ntask will not be possible anymore.")]),t._v(" "),a("h3",{attrs:{id:"check-if-action-can-be-started-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#check-if-action-can-be-started-3"}},[t._v("#")]),t._v(" check_if_action_can_be_started "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"check_if_action_can_be_started",sig:{params:[{name:"self"},{name:"state",annotation:"State"},{name:"action",annotation:"SchedulingAction"}],return:"Tuple[bool, Dict[str, int]]"}}}),t._v(" "),a("p",[t._v("Check if a start or resume action can be applied. It returns a boolean and a dictionary of resources to use.")]),t._v(" "),a("h3",{attrs:{id:"check-unique-resource-names-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#check-unique-resource-names-3"}},[t._v("#")]),t._v(" check_unique_resource_names "),a("Badge",{attrs:{text:"UncertainResourceAvailabilityChanges",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"check_unique_resource_names",sig:{params:[{name:"self"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Return True if there are no duplicates in resource names across both resource types\nand resource units name lists.")]),t._v(" "),a("h3",{attrs:{id:"check-value-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#check-value-11"}},[t._v("#")]),t._v(" check_value "),a("Badge",{attrs:{text:"Rewards",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"check_value",sig:{params:[{name:"self"},{name:"value",annotation:"Value[D.T_value]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that a value is compliant with its reward specification.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("This function returns always True by default because any kind of reward should be accepted at this level.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-184"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-184"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("value")]),t._v(": The value to check.")])]),t._v(" "),a("h4",{attrs:{id:"returns-289"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-289"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the value is compliant (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"find-one-ressource-to-do-one-task-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#find-one-ressource-to-do-one-task-3"}},[t._v("#")]),t._v(" find_one_ressource_to_do_one_task "),a("Badge",{attrs:{text:"WithResourceSkills",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"find_one_ressource_to_do_one_task",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"mode",annotation:"int"}],return:"List[str]"}}}),t._v(" "),a("p",[t._v("For the common case when it is possible to do the task by one resource unit.\nFor general case, it might just return no possible ressource unit.")]),t._v(" "),a("h3",{attrs:{id:"get-action-space-16"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-16"}},[t._v("#")]),t._v(" get_action_space "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_action_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) domain action space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.get_action_space()")]),t._v(" internally calls "),a("code",[t._v("Events._get_action_space_()")]),t._v(" the first time and\nautomatically caches its value to make future calls more efficient (since the action space is assumed to be\nconstant).")]),t._v(" "),a("h4",{attrs:{id:"returns-290"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-290"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The action space.")]),t._v(" "),a("h3",{attrs:{id:"get-all-condition-items-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-all-condition-items-3"}},[t._v("#")]),t._v(" get_all_condition_items "),a("Badge",{attrs:{text:"WithConditionalTasks",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_all_condition_items",sig:{params:[{name:"self"}],return:"Enum"}}}),t._v(" "),a("p",[t._v("Return an Enum with all the elements that can be used to define a condition.")]),t._v(" "),a("p",[t._v("Example:\nreturn\nConditionElementsExample(Enum):\nOK = 0\nNC_PART_1_OPERATION_1 = 1\nNC_PART_1_OPERATION_2 = 2\nNC_PART_2_OPERATION_1 = 3\nNC_PART_2_OPERATION_2 = 4\nHARDWARE_ISSUE_MACHINE_A = 5\nHARDWARE_ISSUE_MACHINE_B = 6")]),t._v(" "),a("h3",{attrs:{id:"get-all-resources-skills-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-all-resources-skills-5"}},[t._v("#")]),t._v(" get_all_resources_skills "),a("Badge",{attrs:{text:"WithResourceSkills",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_all_resources_skills",sig:{params:[{name:"self"}],return:"Dict[str, Dict[str, Any]]"}}}),t._v(" "),a("p",[t._v("Return a nested dictionary where the first key is the name of a resource type or resource unit\nand the second key is the name of a skill. The value defines the details of the skill.\nE.g. {unit: {skill: (detail of skill)}}")]),t._v(" "),a("h3",{attrs:{id:"get-all-tasks-skills-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-all-tasks-skills-5"}},[t._v("#")]),t._v(" get_all_tasks_skills "),a("Badge",{attrs:{text:"WithResourceSkills",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_all_tasks_skills",sig:{params:[{name:"self"}],return:"Dict[int, Dict[int, Dict[str, Any]]]"}}}),t._v(" "),a("p",[t._v("Return a nested dictionary where the first key is the name of a task\nand the second key is the name of a skill. The value defines the details of the skill.\nE.g. {task: {skill: (detail of skill)}}")]),t._v(" "),a("h3",{attrs:{id:"get-all-unconditional-tasks-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-all-unconditional-tasks-5"}},[t._v("#")]),t._v(" get_all_unconditional_tasks "),a("Badge",{attrs:{text:"WithConditionalTasks",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_all_unconditional_tasks",sig:{params:[{name:"self"}],return:"Set[int]"}}}),t._v(" "),a("p",[t._v("Returns the set of all task ids for which there are no conditions. These tasks are to be considered at\nthe start of a project (i.e. in the initial state).")]),t._v(" "),a("h3",{attrs:{id:"get-applicable-actions-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-11"}},[t._v("#")]),t._v(" get_applicable_actions "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_applicable_actions",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history), or in\nthe internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.get_applicable_actions()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_applicable_actions()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-185"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-185"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-291"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-291"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of applicable actions.")]),t._v(" "),a("h3",{attrs:{id:"get-available-tasks-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-available-tasks-5"}},[t._v("#")]),t._v(" get_available_tasks "),a("Badge",{attrs:{text:"WithConditionalTasks",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_available_tasks",sig:{params:[{name:"self"},{name:"state"}],return:"Set[int]"}}}),t._v(" "),a("p",[t._v("Returns the set of all task ids that can be considered under the conditions defined in the given state.\nNote that the set will contains all ids for all tasks in the domain that meet the conditions, that is tasks\nthat are remaining, or that have been completed, paused or started / resumed.")]),t._v(" "),a("h3",{attrs:{id:"get-enabled-events-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-11"}},[t._v("#")]),t._v(" get_enabled_events "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_enabled_events",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"Space[D.T_event]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory), or in the internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.get_enabled_events()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_enabled_events()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead of\nthe memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-186"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-186"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-292"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-292"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of enabled events.")]),t._v(" "),a("h3",{attrs:{id:"get-goals-16"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-goals-16"}},[t._v("#")]),t._v(" get_goals "),a("Badge",{attrs:{text:"Goals",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_goals",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) domain goals space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Goals.get_goals()")]),t._v(" internally calls "),a("code",[t._v("Goals._get_goals_()")]),t._v(" the first time and automatically caches its\nvalue to make future calls more efficient (since the goals space is assumed to be constant).")]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Goal states are assumed to be fully observable (i.e. observation = state) so that there is never uncertainty\nabout whether the goal has been reached or not. This assumption guarantees that any policy that does not\nreach the goal with certainty incurs in infinite expected cost. - "),a("em",[t._v("Geffner, 2013: A Concise Introduction to\nModels and Methods for Automated Planning")])])]),t._v(" "),a("h4",{attrs:{id:"returns-293"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-293"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The goals space.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-16"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-16"}},[t._v("#")]),t._v(" get_initial_state "),a("Badge",{attrs:{text:"DeterministicInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_initial_state",sig:{params:[{name:"self"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("Get the (cached) initial state.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("DeterministicInitialized.get_initial_state()")]),t._v(" internally\ncalls "),a("code",[t._v("DeterministicInitialized._get_initial_state_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the initial state is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-294"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-294"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The initial state.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-distribution-16"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-distribution-16"}},[t._v("#")]),t._v(" get_initial_state_distribution "),a("Badge",{attrs:{text:"UncertainInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_initial_state_distribution",sig:{params:[{name:"self"}],return:"Distribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("Get the (cached) probability distribution of initial states.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("UncertainInitialized.get_initial_state_distribution()")]),t._v(" internally\ncalls "),a("code",[t._v("UncertainInitialized._get_initial_state_distribution_()")]),t._v(" the first time and automatically caches its value\nto make future calls more efficient (since the initial state distribution is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-295"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-295"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of initial states.")]),t._v(" "),a("h3",{attrs:{id:"get-max-horizon-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-max-horizon-5"}},[t._v("#")]),t._v(" get_max_horizon "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_max_horizon",sig:{params:[{name:"self"}],return:"int"}}}),t._v(" "),a("p",[t._v("Return the maximum time horizon (int)")]),t._v(" "),a("h3",{attrs:{id:"get-mode-costs-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-mode-costs-5"}},[t._v("#")]),t._v(" get_mode_costs "),a("Badge",{attrs:{text:"WithModeCosts",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_mode_costs",sig:{params:[{name:"self"}],return:"Dict[int, Dict[int, float]]"}}}),t._v(" "),a("p",[t._v("Return a nested dictionary where the first key is the id of a task (int), the second key the id of a mode\nand the value indicates the cost of execution the task in the mode.")]),t._v(" "),a("h3",{attrs:{id:"get-next-state-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-next-state-5"}},[t._v("#")]),t._v(" get_next_state "),a("Badge",{attrs:{text:"DeterministicTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_next_state",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("Get the next state given a memory and action.")]),t._v(" "),a("h4",{attrs:{id:"parameters-187"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-187"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-296"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-296"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The deterministic next state.")]),t._v(" "),a("h3",{attrs:{id:"get-next-state-distribution-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-next-state-distribution-8"}},[t._v("#")]),t._v(" get_next_state_distribution "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_next_state_distribution",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"DiscreteDistribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("Get the discrete probability distribution of next state given a memory and action.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("In the Markovian case (memory only holds last state "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.061ex",height:"1.023ex",viewBox:"0 -442 469 452"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})])])])])]),t._v("), given an action "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.197ex",height:"1.02ex",viewBox:"0 -441 529 451"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})])])])])]),t._v(", this function can\nbe mathematically represented by "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.292ex",height:"2.283ex",viewBox:"0 -759 4107.1 1009"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"50",d:"M287 628Q287 635 230 637Q206 637 199 638T192 648Q192 649 194 659Q200 679 203 681T397 683Q587 682 600 680Q664 669 707 631T751 530Q751 453 685 389Q616 321 507 303Q500 302 402 301H307L277 182Q247 66 247 59Q247 55 248 54T255 50T272 48T305 46H336Q342 37 342 35Q342 19 335 5Q330 0 319 0Q316 0 282 1T182 2Q120 2 87 2T51 1Q33 1 33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM645 554Q645 567 643 575T634 597T609 619T560 635Q553 636 480 637Q463 637 445 637T416 636T404 636Q391 635 386 627Q384 621 367 550T332 412T314 344Q314 342 395 342H407H430Q542 342 590 392Q617 419 631 471T645 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(751, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"msup",transform:"translate(1140, 0)"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"53",d:"M308 24Q367 24 416 76T466 197Q466 260 414 284Q308 311 278 321T236 341Q176 383 176 462Q176 523 208 573T273 648Q302 673 343 688T407 704H418H425Q521 704 564 640Q565 640 577 653T603 682T623 704Q624 704 627 704T632 705Q645 705 645 698T617 577T585 459T569 456Q549 456 549 465Q549 471 550 475Q550 478 551 494T553 520Q553 554 544 579T526 616T501 641Q465 662 419 662Q362 662 313 616T263 510Q263 480 278 458T319 427Q323 425 389 408T456 390Q490 379 522 342T554 242Q554 216 546 186Q541 164 528 137T492 78T426 18T332 -20Q320 -22 298 -22Q199 -22 144 33L134 44L106 13Q83 -14 78 -18T65 -22Q52 -22 52 -14Q52 -11 110 221Q112 227 130 227H143Q149 221 149 216Q149 214 148 207T144 186T142 153Q144 114 160 87T203 47T255 29T308 24Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(613, 363) scale(0.707)"}},[a("path",{attrs:{"data-c":"2032",d:"M79 43Q73 43 52 49T30 61Q30 68 85 293T146 528Q161 560 198 560Q218 560 240 545T262 501Q262 496 260 486Q259 479 173 263T84 45T79 43Z"}})])]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1997.5, 0)"}},[a("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(2275.5, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2744.5, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(3189.1, 0)"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3718.1, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(", where "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.05ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.94ex",height:"1.767ex",viewBox:"0 -759 857.5 781"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"msup"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"53",d:"M308 24Q367 24 416 76T466 197Q466 260 414 284Q308 311 278 321T236 341Q176 383 176 462Q176 523 208 573T273 648Q302 673 343 688T407 704H418H425Q521 704 564 640Q565 640 577 653T603 682T623 704Q624 704 627 704T632 705Q645 705 645 698T617 577T585 459T569 456Q549 456 549 465Q549 471 550 475Q550 478 551 494T553 520Q553 554 544 579T526 616T501 641Q465 662 419 662Q362 662 313 616T263 510Q263 480 278 458T319 427Q323 425 389 408T456 390Q490 379 522 342T554 242Q554 216 546 186Q541 164 528 137T492 78T426 18T332 -20Q320 -22 298 -22Q199 -22 144 33L134 44L106 13Q83 -14 78 -18T65 -22Q52 -22 52 -14Q52 -11 110 221Q112 227 130 227H143Q149 221 149 216Q149 214 148 207T144 186T142 153Q144 114 160 87T203 47T255 29T308 24Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(613, 363) scale(0.707)"}},[a("path",{attrs:{"data-c":"2032",d:"M79 43Q73 43 52 49T30 61Q30 68 85 293T146 528Q161 560 198 560Q218 560 240 545T262 501Q262 496 260 486Q259 479 173 263T84 45T79 43Z"}})])])])])])]),t._v(" is the next state random variable.")],1)]),t._v(" "),a("h4",{attrs:{id:"parameters-188"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-188"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-297"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-297"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The discrete probability distribution of next state.")]),t._v(" "),a("h3",{attrs:{id:"get-objectives-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-objectives-5"}},[t._v("#")]),t._v(" get_objectives "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_objectives",sig:{params:[{name:"self"}],return:"List[SchedulingObjectiveEnum]"}}}),t._v(" "),a("p",[t._v("Return the objectives to consider as a list. The items should be of SchedulingObjectiveEnum type.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-11"}},[t._v("#")]),t._v(" get_observation "),a("Badge",{attrs:{text:"TransformedObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_observation",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Get the deterministic observation given a state and action.")]),t._v(" "),a("h4",{attrs:{id:"parameters-189"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-189"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-298"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-298"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-distribution-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-distribution-11"}},[t._v("#")]),t._v(" get_observation_distribution "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_observation_distribution",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"Distribution[D.T_agent[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the probability distribution of the observation given a state and action.")]),t._v(" "),a("p",[t._v("In mathematical terms (discrete case), given an action "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.197ex",height:"1.02ex",viewBox:"0 -441 529 451"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})])])])])]),t._v(", this function represents: "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.078ex",height:"2.262ex",viewBox:"0 -750 4012.7 1000"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"50",d:"M287 628Q287 635 230 637Q206 637 199 638T192 648Q192 649 194 659Q200 679 203 681T397 683Q587 682 600 680Q664 669 707 631T751 530Q751 453 685 389Q616 321 507 303Q500 302 402 301H307L277 182Q247 66 247 59Q247 55 248 54T255 50T272 48T305 46H336Q342 37 342 35Q342 19 335 5Q330 0 319 0Q316 0 282 1T182 2Q120 2 87 2T51 1Q33 1 33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM645 554Q645 567 643 575T634 597T609 619T560 635Q553 636 480 637Q463 637 445 637T416 636T404 636Q391 635 386 627Q384 621 367 550T332 412T314 344Q314 342 395 342H407H430Q542 342 590 392Q617 419 631 471T645 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(751, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(1140, 0)"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1903, 0)"}},[a("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(2181, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2650, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(3094.7, 0)"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3623.7, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(",\nwhere "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.05ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.726ex",height:"1.643ex",viewBox:"0 -704 763 726"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})])])])])]),t._v(" is the random variable of the observation.")],1),t._v(" "),a("h4",{attrs:{id:"parameters-190"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-190"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-299"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-299"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-space-16"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-16"}},[t._v("#")]),t._v(" get_observation_space "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_observation_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) observation space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("PartiallyObservable.get_observation_space()")]),t._v(" internally\ncalls "),a("code",[t._v("PartiallyObservable._get_observation_space_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the observation space is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-300"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-300"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The observation space.")]),t._v(" "),a("h3",{attrs:{id:"get-preallocations-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-preallocations-5"}},[t._v("#")]),t._v(" get_preallocations "),a("Badge",{attrs:{text:"WithPreallocations",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_preallocations",sig:{params:[{name:"self"}],return:"Dict[int, List[str]]"}}}),t._v(" "),a("p",[t._v("Return a dictionary where the key is the id of a task (int)\nand the value indicates the pre-allocated resources for this task (as a list of str)")]),t._v(" "),a("h3",{attrs:{id:"get-predecessors-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-predecessors-5"}},[t._v("#")]),t._v(" get_predecessors "),a("Badge",{attrs:{text:"WithPrecedence",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_predecessors",sig:{params:[{name:"self"}],return:"Dict[int, List[int]]"}}}),t._v(" "),a("p",[t._v("Return the predecessors of the task. Successors are given as a list for a task given as a key.")]),t._v(" "),a("h3",{attrs:{id:"get-resource-cost-per-time-unit-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-resource-cost-per-time-unit-5"}},[t._v("#")]),t._v(" get_resource_cost_per_time_unit "),a("Badge",{attrs:{text:"WithResourceCosts",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_resource_cost_per_time_unit",sig:{params:[{name:"self"}],return:"Dict[str, float]"}}}),t._v(" "),a("p",[t._v("Return a dictionary where the key is the name of a resource (str)\nand the value indicates the cost of using this resource per time unit.")]),t._v(" "),a("h3",{attrs:{id:"get-resource-renewability-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-resource-renewability-5"}},[t._v("#")]),t._v(" get_resource_renewability "),a("Badge",{attrs:{text:"MixedRenewable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_resource_renewability",sig:{params:[{name:"self"}],return:"Dict[str, bool]"}}}),t._v(" "),a("p",[t._v("Return a dictionary where the key is a resource name (string)\nand the value whether this resource is renewable (True) or not (False).")]),t._v(" "),a("h3",{attrs:{id:"get-resource-type-for-unit-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-resource-type-for-unit-5"}},[t._v("#")]),t._v(" get_resource_type_for_unit "),a("Badge",{attrs:{text:"WithResourceUnits",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_resource_type_for_unit",sig:{params:[{name:"self"}],return:"Dict[str, str]"}}}),t._v(" "),a("p",[t._v("Return a dictionary where the key is a resource unit name and the value a resource type name.\nAn empty dictionary can be used if there are no resource unit matching a resource type.")]),t._v(" "),a("h3",{attrs:{id:"get-resource-types-names-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-resource-types-names-5"}},[t._v("#")]),t._v(" get_resource_types_names "),a("Badge",{attrs:{text:"WithResourceTypes",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_resource_types_names",sig:{params:[{name:"self"}],return:"List[str]"}}}),t._v(" "),a("p",[t._v("Return the names (string) of all resource types as a list.")]),t._v(" "),a("h3",{attrs:{id:"get-resource-units-names-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-resource-units-names-5"}},[t._v("#")]),t._v(" get_resource_units_names "),a("Badge",{attrs:{text:"WithResourceUnits",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_resource_units_names",sig:{params:[{name:"self"}],return:"List[str]"}}}),t._v(" "),a("p",[t._v("Return the names (string) of all resource units as a list.")]),t._v(" "),a("h3",{attrs:{id:"get-skills-names-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-skills-names-3"}},[t._v("#")]),t._v(" get_skills_names "),a("Badge",{attrs:{text:"WithResourceSkills",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_skills_names",sig:{params:[{name:"self"}],return:"Set[str]"}}}),t._v(" "),a("p",[t._v("Return a list of all skill names as a list of str. Skill names are defined in the 2 dictionaries returned\nby the get_all_resources_skills and get_all_tasks_skills functions.")]),t._v(" "),a("h3",{attrs:{id:"get-skills-of-resource-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-skills-of-resource-3"}},[t._v("#")]),t._v(" get_skills_of_resource "),a("Badge",{attrs:{text:"WithResourceSkills",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_skills_of_resource",sig:{params:[{name:"self"},{name:"resource",annotation:"str"}],return:"Dict[str, Any]"}}}),t._v(" "),a("p",[t._v("Return the skills of a given resource")]),t._v(" "),a("h3",{attrs:{id:"get-skills-of-task-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-skills-of-task-3"}},[t._v("#")]),t._v(" get_skills_of_task "),a("Badge",{attrs:{text:"WithResourceSkills",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_skills_of_task",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"mode",annotation:"int"}],return:"Dict[str, Any]"}}}),t._v(" "),a("p",[t._v("Return the skill requirements for a given task")]),t._v(" "),a("h3",{attrs:{id:"get-successors-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-successors-5"}},[t._v("#")]),t._v(" get_successors "),a("Badge",{attrs:{text:"WithPrecedence",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_successors",sig:{params:[{name:"self"}],return:"Dict[int, List[int]]"}}}),t._v(" "),a("p",[t._v("Return the successors of the tasks. Successors are given as a list for a task given as a key.")]),t._v(" "),a("h3",{attrs:{id:"get-task-existence-conditions-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-task-existence-conditions-5"}},[t._v("#")]),t._v(" get_task_existence_conditions "),a("Badge",{attrs:{text:"WithConditionalTasks",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_task_existence_conditions",sig:{params:[{name:"self"}],return:"Dict[int, List[int]]"}}}),t._v(" "),a("p",[t._v("Return a dictionary where the key is a task id and the value a list of conditions to be respected (True)\nfor the task to be part of the schedule. If a task has no entry in the dictionary,\nthere is no conditions for that task.")]),t._v(" "),a("p",[t._v("Example:\nreturn\n{\n20: [get_all_condition_items().NC_PART_1_OPERATION_1],\n21: [get_all_condition_items().HARDWARE_ISSUE_MACHINE_A]\n22: [get_all_condition_items().NC_PART_1_OPERATION_1, get_all_condition_items().NC_PART_1_OPERATION_2]\n}e")]),t._v(" "),a("h3",{attrs:{id:"get-task-on-completion-added-conditions-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-task-on-completion-added-conditions-3"}},[t._v("#")]),t._v(" get_task_on_completion_added_conditions "),a("Badge",{attrs:{text:"WithConditionalTasks",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_task_on_completion_added_conditions",sig:{params:[{name:"self"}],return:"Dict[int, List[Distribution]]"}}}),t._v(" "),a("p",[t._v("Return a dict of list. The key of the dict is the task id and each list is composed of a list of tuples.\nEach tuple contains the probability (first item in tuple) that the conditionElement (second item in tuple)\nis True. The probabilities in the inner list should sum up to 1. The dictionary should only contains the keys\nof tasks that can create conditions.")]),t._v(" "),a("p",[t._v("Example:\nreturn\n{\n12:\n[\nDiscreteDistribution([(ConditionElementsExample.NC_PART_1_OPERATION_1, 0.1), (ConditionElementsExample.OK, 0.9)]),\nDiscreteDistribution([(ConditionElementsExample.HARDWARE_ISSUE_MACHINE_A, 0.05), ('paper', 0.1), (ConditionElementsExample.OK, 0.95)])\n]\n}")]),t._v(" "),a("h3",{attrs:{id:"get-task-paused-non-renewable-resource-returned-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-task-paused-non-renewable-resource-returned-5"}},[t._v("#")]),t._v(" get_task_paused_non_renewable_resource_returned "),a("Badge",{attrs:{text:"WithPreemptivity",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_task_paused_non_renewable_resource_returned",sig:{params:[{name:"self"}],return:"Dict[int, bool]"}}}),t._v(" "),a("p",[t._v("Return a dictionary where the key is a task id and the value is of type bool indicating\nif the non-renewable resources are consumed when the task is paused (False) or made available again (True).\nE.g. {\n2: False # if paused, non-renewable resource will be consumed\n5: True # if paused, the non-renewable resource will be available again\n}")]),t._v(" "),a("h3",{attrs:{id:"get-task-preemptivity-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-task-preemptivity-5"}},[t._v("#")]),t._v(" get_task_preemptivity "),a("Badge",{attrs:{text:"WithPreemptivity",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_task_preemptivity",sig:{params:[{name:"self"}],return:"Dict[int, bool]"}}}),t._v(" "),a("p",[t._v("Return a dictionary where the key is a task id and the value a boolean indicating\nif the task can be paused or stopped.\nE.g. {\n1: False\n2: True\n3: False\n4: False\n5: True\n6: False\n}")]),t._v(" "),a("h3",{attrs:{id:"get-task-progress-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-task-progress-5"}},[t._v("#")]),t._v(" get_task_progress "),a("Badge",{attrs:{text:"CustomTaskProgress",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_task_progress",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"t_from",annotation:"int"},{name:"t_to",annotation:"int"},{name:"mode",annotation:"Optional[int]"},{name:"sampled_duration",default:"None",annotation:"Optional[int]"}],return:"float"}}}),t._v(" "),a("h4",{attrs:{id:"returns-301"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-301"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The task progress (float) between t_from and t_to.")]),t._v(" "),a("h3",{attrs:{id:"get-task-resuming-type-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-task-resuming-type-5"}},[t._v("#")]),t._v(" get_task_resuming_type "),a("Badge",{attrs:{text:"WithPreemptivity",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_task_resuming_type",sig:{params:[{name:"self"}],return:"Dict[int, ResumeType]"}}}),t._v(" "),a("p",[t._v("Return a dictionary where the key is a task id and the value is of type ResumeType indicating\nif the task can be resumed (restarted from where it was paused with no time loss)\nor restarted (restarted from the start).\nE.g. {\n1: ResumeType.NA\n2: ResumeType.Resume\n3: ResumeType.NA\n4: ResumeType.NA\n5: ResumeType.Restart\n6: ResumeType.NA\n}")]),t._v(" "),a("h3",{attrs:{id:"get-time-lags-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-time-lags-5"}},[t._v("#")]),t._v(" get_time_lags "),a("Badge",{attrs:{text:"WithTimeLag",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_time_lags",sig:{params:[{name:"self"}],return:"Dict[int, Dict[int, TimeLag]]"}}}),t._v(" "),a("p",[t._v("Return nested dictionaries where the first key is the id of a task (int)\nand the second key is the id of another task (int).\nThe value is a TimeLag object containing the MINIMUM and MAXIMUM time (int) that needs to separate the end\nof the first task to the start of the second task.")]),t._v(" "),a("p",[t._v("e.g.\n{\n12:{\n15: TimeLag(5, 10),\n16: TimeLag(5, 20),\n17: MinimumOnlyTimeLag(5),\n18: MaximumOnlyTimeLag(15),\n}\n}")]),t._v(" "),a("h4",{attrs:{id:"returns-302"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-302"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("A dictionary of TimeLag objects.")]),t._v(" "),a("h3",{attrs:{id:"get-time-window-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-time-window-5"}},[t._v("#")]),t._v(" get_time_window "),a("Badge",{attrs:{text:"WithTimeWindow",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_time_window",sig:{params:[{name:"self"}],return:"Dict[int, TimeWindow]"}}}),t._v(" "),a("p",[t._v("Return a dictionary where the key is the id of a task (int)\nand the value is a TimeWindow object.\nNote that the max time horizon needs to be provided to the TimeWindow constructors\ne.g.\n{\n1: TimeWindow(10, 15, 20, 30, self.get_max_horizon())\n2: EmptyTimeWindow(self.get_max_horizon())\n3: EndTimeWindow(20, 25, self.get_max_horizon())\n4: EndBeforeOnlyTimeWindow(40, self.get_max_horizon())\n}")]),t._v(" "),a("h4",{attrs:{id:"returns-303"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-303"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("A dictionary of TimeWindow objects.")]),t._v(" "),a("h3",{attrs:{id:"get-transition-value-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-transition-value-6"}},[t._v("#")]),t._v(" get_transition_value "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_transition_value",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"},{name:"next_state",default:"None",annotation:"Optional[D.T_state]"}],return:"D.T_agent[Value[D.T_value]]"}}}),t._v(" "),a("p",[t._v("Get the value (reward or cost) of a transition.")]),t._v(" "),a("p",[t._v("The transition to consider is defined by the function parameters.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("If this function never depends on the next_state parameter for its computation, it is recommended to\nindicate it by overriding "),a("code",[t._v("UncertainTransitions._is_transition_value_dependent_on_next_state_()")]),t._v(" to return\nFalse. This information can then be exploited by solvers to avoid computing next state to evaluate a\ntransition value (more efficient).")])]),t._v(" "),a("h4",{attrs:{id:"parameters-191"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-191"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")]),t._v(" "),a("li",[a("strong",[t._v("next_state")]),t._v(": The next state in which the transition ends (if needed for the computation).")])]),t._v(" "),a("h4",{attrs:{id:"returns-304"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-304"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The transition value (reward or cost).")]),t._v(" "),a("h3",{attrs:{id:"get-variable-resource-consumption-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-variable-resource-consumption-5"}},[t._v("#")]),t._v(" get_variable_resource_consumption "),a("Badge",{attrs:{text:"VariableResourceConsumption",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_variable_resource_consumption",sig:{params:[{name:"self"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Return true if the domain has variable resource consumption,\nfalse if the consumption of resource does not vary in time for any of the tasks")]),t._v(" "),a("h3",{attrs:{id:"initialize-domain-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#initialize-domain-3"}},[t._v("#")]),t._v(" initialize_domain "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"initialize_domain",sig:{params:[{name:"self"}]}}}),t._v(" "),a("p",[t._v("Initialize a scheduling domain. This function needs to be called when instantiating a scheduling domain.")]),t._v(" "),a("h3",{attrs:{id:"is-action-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-action-11"}},[t._v("#")]),t._v(" is_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_action",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an event is an action (i.e. a controllable event for the agents).")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\naction space provided by "),a("code",[t._v("Events.get_action_space()")]),t._v(", but it can be overridden for faster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-192"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-192"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("event")]),t._v(": The event to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-305"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-305"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is an action (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-applicable-action-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-11"}},[t._v("#")]),t._v(" is_applicable_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_applicable_action",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an action is applicable in the given memory (state or history), or in the internal one if\nomitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.is_applicable_action()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_applicable_action()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead\nof the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-193"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-193"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-306"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-306"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the action is applicable (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-enabled-event-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-11"}},[t._v("#")]),t._v(" is_enabled_event "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_enabled_event",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an uncontrollable event is enabled in the given memory (state or history), or in the\ninternal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.is_enabled_event()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_enabled_event()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead of\nthe memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-194"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-194"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-307"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-307"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is enabled (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-goal-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-goal-11"}},[t._v("#")]),t._v(" is_goal "),a("Badge",{attrs:{text:"Goals",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_goal",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"D.T_agent[D.T_predicate]"}}}),t._v(" "),a("p",[t._v("Indicate whether an observation belongs to the goals.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\ngoals space provided by "),a("code",[t._v("Goals.get_goals()")]),t._v(", but it can be overridden for faster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-195"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-195"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-308"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-308"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the observation is a goal (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-observation-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-observation-11"}},[t._v("#")]),t._v(" is_observation "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_observation",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that an observation indeed belongs to the domain observation space.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\nobservation space provided by "),a("code",[t._v("PartiallyObservable.get_observation_space()")]),t._v(", but it can be overridden for\nfaster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-196"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-196"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-309"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-309"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the observation belongs to the domain observation space (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-terminal-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-terminal-6"}},[t._v("#")]),t._v(" is_terminal "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_terminal",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"}],return:"D.T_agent[D.T_predicate]"}}}),t._v(" "),a("p",[t._v("Indicate whether a state is terminal.")]),t._v(" "),a("p",[t._v("A terminal state is a state with no outgoing transition (except to itself with value 0).")]),t._v(" "),a("h4",{attrs:{id:"parameters-197"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-197"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-310"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-310"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the state is terminal (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-transition-value-dependent-on-next-state-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-transition-value-dependent-on-next-state-10"}},[t._v("#")]),t._v(" is_transition_value_dependent_on_next_state "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_transition_value_dependent_on_next_state",sig:{params:[{name:"self"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether get_transition_value() requires the next_state parameter for its computation (cached).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("UncertainTransitions.is_transition_value_dependent_on_next_state()")]),t._v(" internally\ncalls "),a("code",[t._v("UncertainTransitions._is_transition_value_dependent_on_next_state_()")]),t._v(" the first time and automatically\ncaches its value to make future calls more efficient (since the returned value is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-311"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-311"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the transition value computation depends on next_state (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"reset-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#reset-11"}},[t._v("#")]),t._v(" reset "),a("Badge",{attrs:{text:"Initializable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"reset",sig:{params:[{name:"self"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Reset the state of the environment and return an initial observation.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Initializable.reset()")]),t._v(" provides some boilerplate code and internally calls "),a("code",[t._v("Initializable._reset()")]),t._v("\n(which returns an initial state). The boilerplate code automatically stores the initial state into the "),a("code",[t._v("_memory")]),t._v("\nattribute and samples a corresponding observation.")]),t._v(" "),a("h4",{attrs:{id:"returns-312"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-312"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("An initial observation.")]),t._v(" "),a("h3",{attrs:{id:"sample-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample-11"}},[t._v("#")]),t._v(" sample "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"sample",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Sample one transition of the simulator's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Simulation.sample()")]),t._v(" provides some boilerplate code and internally calls "),a("code",[t._v("Simulation._sample()")]),t._v("\n(which returns a transition outcome). The boilerplate code automatically samples an observation corresponding to\nthe sampled next state.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing simulator needs to be wrapped instead of implemented fully in scikit-decide (e.g. a\nsimulator), it is recommended to overwrite "),a("code",[t._v("Simulation.sample()")]),t._v(" to call the external simulator and not use\nthe "),a("code",[t._v("Simulation._sample()")]),t._v(" helper function.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-198"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-198"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-313"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-313"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of the sampled transition.")]),t._v(" "),a("h3",{attrs:{id:"sample-completion-conditions-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample-completion-conditions-5"}},[t._v("#")]),t._v(" sample_completion_conditions "),a("Badge",{attrs:{text:"WithConditionalTasks",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"sample_completion_conditions",sig:{params:[{name:"self"},{name:"task",annotation:"int"}],return:"List[int]"}}}),t._v(" "),a("p",[t._v("Samples the condition distributions associated with the given task and return a list of sampled\nconditions.")]),t._v(" "),a("h3",{attrs:{id:"sample-quantity-resource-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample-quantity-resource-5"}},[t._v("#")]),t._v(" sample_quantity_resource "),a("Badge",{attrs:{text:"UncertainResourceAvailabilityChanges",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"sample_quantity_resource",sig:{params:[{name:"self"},{name:"resource",annotation:"str"},{name:"time",annotation:"int"},{name:"**kwargs"}],return:"int"}}}),t._v(" "),a("p",[t._v("Sample an amount of resource availability (int) for the given resource\n(either resource type or resource unit) at the given time. This number should be the sum of the number of\nresource available at time t and the number of resource of this type consumed so far).")]),t._v(" "),a("h3",{attrs:{id:"sample-task-duration-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample-task-duration-5"}},[t._v("#")]),t._v(" sample_task_duration "),a("Badge",{attrs:{text:"SimulatedTaskDuration",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"sample_task_duration",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"mode",default:"1",annotation:"Optional[int]"},{name:"progress_from",default:"0.0",annotation:"Optional[float]"}],return:"int"}}}),t._v(" "),a("p",[t._v("Sample, store and return task duration for the given task in the given mode.")]),t._v(" "),a("h3",{attrs:{id:"set-inplace-environment-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#set-inplace-environment-3"}},[t._v("#")]),t._v(" set_inplace_environment "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"set_inplace_environment",sig:{params:[{name:"self"},{name:"inplace_environment",annotation:"bool"}]}}}),t._v(" "),a("p",[t._v("Activate or not the fact that the simulator modifies the given state inplace or create a copy before.\nThe inplace version is several times faster but will lead to bugs in graph search solver.")]),t._v(" "),a("h3",{attrs:{id:"set-memory-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#set-memory-11"}},[t._v("#")]),t._v(" set_memory "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"set_memory",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"None"}}}),t._v(" "),a("p",[t._v("Set internal memory attribute "),a("code",[t._v("_memory")]),t._v(" to given one.")]),t._v(" "),a("p",[t._v('This can be useful to set a specific "starting point" before doing a rollout with successive '),a("code",[t._v("Environment.step()")]),t._v("\ncalls.")]),t._v(" "),a("h4",{attrs:{id:"parameters-199"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-199"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to set internally.")])]),t._v(" "),a("h4",{attrs:{id:"example-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#example-11"}},[t._v("#")]),t._v(" Example")]),t._v(" "),a("div",{staticClass:"language-python extra-class"},[a("pre",{pre:!0,attrs:{class:"language-python"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Set simulation_domain memory to my_state (assuming Markovian domain)")]),t._v("\nsimulation_domain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("set_memory"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("my_state"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Start a 100-steps rollout from here (applying my_action at every step)")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("for")]),t._v(" _ "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("in")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("range")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n simulation_domain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("step"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("my_action"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("h3",{attrs:{id:"solve-with-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#solve-with-6"}},[t._v("#")]),t._v(" solve_with "),a("Badge",{attrs:{text:"Domain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"solve_with",sig:{params:[{name:"solver",annotation:"Solver"},{name:"domain_factory",default:"None",annotation:"Optional[Callable[[], Domain]]"},{name:"load_path",default:"None",annotation:"Optional[str]"}],return:"Solver"}}}),t._v(" "),a("p",[t._v("Solve the domain with a new or loaded solver and return it auto-cast to the level of the domain.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Solver.check_domain()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Solver._check_domain_additional()")]),t._v(' (which returns True by default but can be overridden to define\nspecific checks in addition to the "domain requirements"). The boilerplate code automatically checks whether all\ndomain requirements are met.')]),t._v(" "),a("h4",{attrs:{id:"parameters-200"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-200"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("solver")]),t._v(": The solver.")]),t._v(" "),a("li",[a("strong",[t._v("domain_factory")]),t._v(": A callable with no argument returning the domain to solve (factory is the domain class if None).")]),t._v(" "),a("li",[a("strong",[t._v("load_path")]),t._v(": The path to restore the solver state from (if None, the solving process will be launched instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-314"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-314"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The new solver (auto-cast to the level of the domain).")]),t._v(" "),a("h3",{attrs:{id:"step-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#step-11"}},[t._v("#")]),t._v(" step "),a("Badge",{attrs:{text:"Environment",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"step",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Run one step of the environment's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Environment.step()")]),t._v(" provides some boilerplate code and internally calls "),a("code",[t._v("Environment._step()")]),t._v(" (which\nreturns a transition outcome). The boilerplate code automatically stores next state into the "),a("code",[t._v("_memory")]),t._v(" attribute\nand samples a corresponding observation.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing environment needs to be wrapped instead of implemented fully in scikit-decide (e.g. compiled\nATARI games), it is recommended to overwrite "),a("code",[t._v("Environment.step()")]),t._v(" to call the external environment and not\nuse the "),a("code",[t._v("Environment._step()")]),t._v(" helper function.")])]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Before calling "),a("code",[t._v("Environment.step()")]),t._v(" the first time or when the end of an episode is\nreached, "),a("code",[t._v("Initializable.reset()")]),t._v(" must be called to reset the environment's state.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-201"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-201"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the current memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-315"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-315"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of this step.")]),t._v(" "),a("h3",{attrs:{id:"update-complete-dummy-tasks-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-complete-dummy-tasks-3"}},[t._v("#")]),t._v(" update_complete_dummy_tasks "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_complete_dummy_tasks",sig:{params:[{name:"self"},{name:"state",annotation:"State"},{name:"action",annotation:"SchedulingAction"}]}}}),t._v(" "),a("p",[t._v("Update the status of newly started tasks whose duration is 0 from ongoing to complete.")]),t._v(" "),a("h3",{attrs:{id:"update-complete-dummy-tasks-simulation-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-complete-dummy-tasks-simulation-3"}},[t._v("#")]),t._v(" update_complete_dummy_tasks_simulation "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_complete_dummy_tasks_simulation",sig:{params:[{name:"self"},{name:"state",annotation:"State"},{name:"action",annotation:"SchedulingAction"}]}}}),t._v(" "),a("p",[t._v("In a simulated scheduling environment, update the status of newly started tasks whose duration is 0\nfrom ongoing to complete.")]),t._v(" "),a("h3",{attrs:{id:"update-complete-dummy-tasks-uncertain-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-complete-dummy-tasks-uncertain-3"}},[t._v("#")]),t._v(" update_complete_dummy_tasks_uncertain "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_complete_dummy_tasks_uncertain",sig:{params:[{name:"self"},{name:"states",annotation:"DiscreteDistribution[State]"},{name:"action",annotation:"SchedulingAction"}]}}}),t._v(" "),a("p",[t._v("In an uncertain scheduling environment, update the status of newly started tasks whose duration is 0\nfrom ongoing to complete.")]),t._v(" "),a("h3",{attrs:{id:"update-complete-tasks-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-complete-tasks-3"}},[t._v("#")]),t._v(" update_complete_tasks "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_complete_tasks",sig:{params:[{name:"self"},{name:"state",annotation:"State"}]}}}),t._v(" "),a("p",[t._v("Update the status of newly completed tasks in the state from ongoing to complete\nand update resource availability. This function will also log in task_details the time it was complete")]),t._v(" "),a("h3",{attrs:{id:"update-complete-tasks-simulation-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-complete-tasks-simulation-3"}},[t._v("#")]),t._v(" update_complete_tasks_simulation "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_complete_tasks_simulation",sig:{params:[{name:"self"},{name:"state",annotation:"State"}]}}}),t._v(" "),a("p",[t._v("In a simulated scheduling environment, update the status of newly completed tasks in the state from ongoing to complete\nand update resource availability. This function will also log in task_details the time it was complete")]),t._v(" "),a("h3",{attrs:{id:"update-complete-tasks-uncertain-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-complete-tasks-uncertain-3"}},[t._v("#")]),t._v(" update_complete_tasks_uncertain "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_complete_tasks_uncertain",sig:{params:[{name:"self"},{name:"states",annotation:"DiscreteDistribution[State]"}]}}}),t._v(" "),a("p",[t._v("In an uncertain scheduling environment, update the status of newly completed tasks in the state from ongoing\nto complete, update resource availability and update on-completion conditions.\nThis function will also log in task_details the time it was complete.")]),t._v(" "),a("h3",{attrs:{id:"update-conditional-tasks-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-conditional-tasks-3"}},[t._v("#")]),t._v(" update_conditional_tasks "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_conditional_tasks",sig:{params:[{name:"self"},{name:"state",annotation:"State"},{name:"action",annotation:"SchedulingAction"}]}}}),t._v(" "),a("p",[t._v("Update remaining tasks by checking conditions and potentially adding conditional tasks.")]),t._v(" "),a("h3",{attrs:{id:"update-conditional-tasks-simulation-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-conditional-tasks-simulation-3"}},[t._v("#")]),t._v(" update_conditional_tasks_simulation "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_conditional_tasks_simulation",sig:{params:[{name:"self"},{name:"state",annotation:"State"},{name:"action",annotation:"SchedulingAction"}]}}}),t._v(" "),a("p",[t._v("In a simulated scheduling environment, update remaining tasks by checking conditions and potentially\nadding conditional tasks.")]),t._v(" "),a("h3",{attrs:{id:"update-conditional-tasks-uncertain-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-conditional-tasks-uncertain-3"}},[t._v("#")]),t._v(" update_conditional_tasks_uncertain "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_conditional_tasks_uncertain",sig:{params:[{name:"self"},{name:"states",annotation:"DiscreteDistribution[State]"},{name:"action",annotation:"SchedulingAction"}]}}}),t._v(" "),a("p",[t._v("Update remaining tasks by checking conditions and potentially adding conditional tasks.")]),t._v(" "),a("h3",{attrs:{id:"update-pause-tasks-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-pause-tasks-3"}},[t._v("#")]),t._v(" update_pause_tasks "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_pause_tasks",sig:{params:[{name:"self"},{name:"state",annotation:"State"},{name:"action",annotation:"SchedulingAction"}]}}}),t._v(" "),a("p",[t._v("Update the status of a task from ongoing to paused if specified in the action\nand update resource availability. This function will also log in task_details the time it was paused.")]),t._v(" "),a("h3",{attrs:{id:"update-pause-tasks-simulation-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-pause-tasks-simulation-3"}},[t._v("#")]),t._v(" update_pause_tasks_simulation "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_pause_tasks_simulation",sig:{params:[{name:"self"},{name:"state",annotation:"State"},{name:"action",annotation:"SchedulingAction"}]}}}),t._v(" "),a("p",[t._v("In a simulation scheduling environment, update the status of a task from ongoing to paused if\nspecified in the action and update resource availability. This function will also log in task_details\nthe time it was paused.")]),t._v(" "),a("h3",{attrs:{id:"update-pause-tasks-uncertain-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-pause-tasks-uncertain-3"}},[t._v("#")]),t._v(" update_pause_tasks_uncertain "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_pause_tasks_uncertain",sig:{params:[{name:"self"},{name:"state",annotation:"State"},{name:"action",annotation:"SchedulingAction"}]}}}),t._v(" "),a("p",[t._v("In an uncertain scheduling environment, update the status of a task from ongoing to paused if\nspecified in the action and update resource availability. This function will also log in task_details\nthe time it was paused.")]),t._v(" "),a("h3",{attrs:{id:"update-progress-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-progress-3"}},[t._v("#")]),t._v(" update_progress "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_progress",sig:{params:[{name:"self"},{name:"state",annotation:"State"}]}}}),t._v(" "),a("p",[t._v("Update the progress of all ongoing tasks in the state.")]),t._v(" "),a("h3",{attrs:{id:"update-progress-simulation-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-progress-simulation-3"}},[t._v("#")]),t._v(" update_progress_simulation "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_progress_simulation",sig:{params:[{name:"self"},{name:"state",annotation:"State"}]}}}),t._v(" "),a("p",[t._v("In a simulation scheduling environment, update the progress of all ongoing tasks in the state.")]),t._v(" "),a("h3",{attrs:{id:"update-progress-uncertain-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-progress-uncertain-3"}},[t._v("#")]),t._v(" update_progress_uncertain "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_progress_uncertain",sig:{params:[{name:"self"},{name:"states",annotation:"DiscreteDistribution[State]"}]}}}),t._v(" "),a("p",[t._v("In an uncertain scheduling environment, update the progress of all ongoing tasks in the state.")]),t._v(" "),a("h3",{attrs:{id:"update-resource-availability-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-resource-availability-3"}},[t._v("#")]),t._v(" update_resource_availability "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_resource_availability",sig:{params:[{name:"self"},{name:"state",annotation:"State"},{name:"action",annotation:"SchedulingAction"}]}}}),t._v(" "),a("p",[t._v("Update resource availability for next time step. This should be called after update_time().")]),t._v(" "),a("h3",{attrs:{id:"update-resource-availability-simulation-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-resource-availability-simulation-3"}},[t._v("#")]),t._v(" update_resource_availability_simulation "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_resource_availability_simulation",sig:{params:[{name:"self"},{name:"state",annotation:"State"},{name:"action",annotation:"SchedulingAction"}]}}}),t._v(" "),a("p",[t._v("In a simulated scheduling environment, update resource availability for next time step.\nThis should be called after update_time().")]),t._v(" "),a("h3",{attrs:{id:"update-resource-availability-uncertain-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-resource-availability-uncertain-3"}},[t._v("#")]),t._v(" update_resource_availability_uncertain "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_resource_availability_uncertain",sig:{params:[{name:"self"},{name:"states",annotation:"DiscreteDistribution[State]"},{name:"action",annotation:"SchedulingAction"}]}}}),t._v(" "),a("p",[t._v("Update resource availability for next time step. This should be called after update_time().")]),t._v(" "),a("h3",{attrs:{id:"update-resume-tasks-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-resume-tasks-3"}},[t._v("#")]),t._v(" update_resume_tasks "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_resume_tasks",sig:{params:[{name:"self"},{name:"state",annotation:"State"},{name:"action",annotation:"SchedulingAction"}]}}}),t._v(" "),a("p",[t._v("Update the status of a task from paused to ongoing if specified in the action\nand update resource availability. This function will also log in task_details the time it was resumed")]),t._v(" "),a("h3",{attrs:{id:"update-resume-tasks-simulation-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-resume-tasks-simulation-3"}},[t._v("#")]),t._v(" update_resume_tasks_simulation "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_resume_tasks_simulation",sig:{params:[{name:"self"},{name:"state",annotation:"State"},{name:"action",annotation:"SchedulingAction"}]}}}),t._v(" "),a("p",[t._v("In a simulationn scheduling environment, update the status of a task from paused to ongoing if specified\nin the action and update resource availability. This function will also log in task_details the time it was\nresumed.")]),t._v(" "),a("h3",{attrs:{id:"update-resume-tasks-uncertain-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-resume-tasks-uncertain-3"}},[t._v("#")]),t._v(" update_resume_tasks_uncertain "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_resume_tasks_uncertain",sig:{params:[{name:"self"},{name:"state",annotation:"State"},{name:"action",annotation:"SchedulingAction"}]}}}),t._v(" "),a("p",[t._v("In an uncertain scheduling environment, update the status of a task from paused to ongoing if specified\nin the action and update resource availability. This function will also log in task_details the time it was\nresumed.")]),t._v(" "),a("h3",{attrs:{id:"update-start-tasks-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-start-tasks-3"}},[t._v("#")]),t._v(" update_start_tasks "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_start_tasks",sig:{params:[{name:"self"},{name:"state",annotation:"State"},{name:"action",annotation:"SchedulingAction"}]}}}),t._v(" "),a("p",[t._v("Update the status of a task from remaining to ongoing if specified in the action\nand update resource availability. This function will also log in task_details the time it was started.")]),t._v(" "),a("h3",{attrs:{id:"update-start-tasks-simulation-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-start-tasks-simulation-3"}},[t._v("#")]),t._v(" update_start_tasks_simulation "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_start_tasks_simulation",sig:{params:[{name:"self"},{name:"state",annotation:"State"},{name:"action",annotation:"SchedulingAction"}]}}}),t._v(" "),a("p",[t._v("In a simulated scheduling environment, update the status of a task from remaining to ongoing if\nspecified in the action and update resource availability. This function will also log in task_details the\ntime it was started.")]),t._v(" "),a("h3",{attrs:{id:"update-start-tasks-uncertain-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-start-tasks-uncertain-3"}},[t._v("#")]),t._v(" update_start_tasks_uncertain "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_start_tasks_uncertain",sig:{params:[{name:"self"},{name:"state",annotation:"State"},{name:"action",annotation:"SchedulingAction"}]}}}),t._v(" "),a("p",[t._v("In an uncertain scheduling environment, update the status of a task from remaining to ongoing\nif specified in the action and update resource availability.\nThis function returns a DsicreteDistribution of State.\nThis function will also log in task_details the time it was started.")]),t._v(" "),a("h3",{attrs:{id:"update-time-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-time-3"}},[t._v("#")]),t._v(" update_time "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_time",sig:{params:[{name:"self"},{name:"state",annotation:"State"},{name:"action",annotation:"SchedulingAction"}]}}}),t._v(" "),a("p",[t._v("Update the time of the state if the time_progress attribute of the given EnumerableAction is True.")]),t._v(" "),a("h3",{attrs:{id:"update-time-simulation-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-time-simulation-3"}},[t._v("#")]),t._v(" update_time_simulation "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_time_simulation",sig:{params:[{name:"self"},{name:"state",annotation:"State"},{name:"action",annotation:"SchedulingAction"}]}}}),t._v(" "),a("p",[t._v("In a simulated scheduling environment, update the time of the state if the time_progress attribute of the\ngiven EnumerableAction is True.")]),t._v(" "),a("h3",{attrs:{id:"update-time-uncertain-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#update-time-uncertain-3"}},[t._v("#")]),t._v(" update_time_uncertain "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"update_time_uncertain",sig:{params:[{name:"self"},{name:"states",annotation:"DiscreteDistribution[State]"},{name:"action",annotation:"SchedulingAction"}]}}}),t._v(" "),a("p",[t._v("Update the time of the state if the time_progress attribute of the given EnumerableAction is True.")]),t._v(" "),a("h3",{attrs:{id:"add-to-current-conditions-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#add-to-current-conditions-6"}},[t._v("#")]),t._v(" _add_to_current_conditions "),a("Badge",{attrs:{text:"WithConditionalTasks",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_add_to_current_conditions",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"state"}]}}}),t._v(" "),a("p",[t._v("Samples completion conditions for a given task and add these conditions to the list of conditions in the\ngiven state. This function should be called when a task complete.")]),t._v(" "),a("h3",{attrs:{id:"check-value-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#check-value-12"}},[t._v("#")]),t._v(" _check_value "),a("Badge",{attrs:{text:"Rewards",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_check_value",sig:{params:[{name:"self"},{name:"value",annotation:"Value[D.T_value]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that a value is compliant with its reward specification.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("This function returns always True by default because any kind of reward should be accepted at this level.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-202"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-202"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("value")]),t._v(": The value to check.")])]),t._v(" "),a("h4",{attrs:{id:"returns-316"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-316"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the value is compliant (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"get-action-space-17"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-17"}},[t._v("#")]),t._v(" _get_action_space "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_action_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) domain action space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._get_action_space()")]),t._v(" internally calls "),a("code",[t._v("Events._get_action_space_()")]),t._v(" the first time and\nautomatically caches its value to make future calls more efficient (since the action space is assumed to be\nconstant).")]),t._v(" "),a("h4",{attrs:{id:"returns-317"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-317"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The action space.")]),t._v(" "),a("h3",{attrs:{id:"get-action-space-18"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-18"}},[t._v("#")]),t._v(" _get_action_space_ "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_action_space_",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("To be implemented if needed one day.")]),t._v(" "),a("h3",{attrs:{id:"get-all-resources-skills-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-all-resources-skills-6"}},[t._v("#")]),t._v(" _get_all_resources_skills "),a("Badge",{attrs:{text:"WithResourceSkills",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_all_resources_skills",sig:{params:[{name:"self"}],return:"Dict[str, Dict[str, Any]]"}}}),t._v(" "),a("p",[t._v("Return a nested dictionary where the first key is the name of a resource type or resource unit\nand the second key is the name of a skill. The value defines the details of the skill.\nE.g. {unit: {skill: (detail of skill)}}")]),t._v(" "),a("h3",{attrs:{id:"get-all-tasks-skills-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-all-tasks-skills-6"}},[t._v("#")]),t._v(" _get_all_tasks_skills "),a("Badge",{attrs:{text:"WithResourceSkills",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_all_tasks_skills",sig:{params:[{name:"self"}],return:"Dict[int, Dict[int, Dict[str, Any]]]"}}}),t._v(" "),a("p",[t._v("Return a nested dictionary where the first key is the name of a task\nand the second key is the name of a skill. The value defines the details of the skill.\nE.g. {task: {skill: (detail of skill)}}")]),t._v(" "),a("h3",{attrs:{id:"get-all-unconditional-tasks-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-all-unconditional-tasks-6"}},[t._v("#")]),t._v(" _get_all_unconditional_tasks "),a("Badge",{attrs:{text:"WithConditionalTasks",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_all_unconditional_tasks",sig:{params:[{name:"self"}],return:"Set[int]"}}}),t._v(" "),a("p",[t._v("Returns the set of all task ids for which there are no conditions. These tasks are to be considered at\nthe start of a project (i.e. in the initial state).")]),t._v(" "),a("h3",{attrs:{id:"get-applicable-actions-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-12"}},[t._v("#")]),t._v(" _get_applicable_actions "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_applicable_actions",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history), or in\nthe internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._get_applicable_actions()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_applicable_actions_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-203"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-203"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-318"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-318"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of applicable actions.")]),t._v(" "),a("h3",{attrs:{id:"get-applicable-actions-from-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-from-6"}},[t._v("#")]),t._v(" _get_applicable_actions_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_applicable_actions_from",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Returns the action space from a state.\nTODO : think about a way to avoid the instaceof usage.")]),t._v(" "),a("h3",{attrs:{id:"get-available-tasks-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-available-tasks-6"}},[t._v("#")]),t._v(" _get_available_tasks "),a("Badge",{attrs:{text:"WithConditionalTasks",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_available_tasks",sig:{params:[{name:"self"},{name:"state"}],return:"Set[int]"}}}),t._v(" "),a("p",[t._v("Returns the set of all task ids that can be considered under the conditions defined in the given state.\nNote that the set will contains all ids for all tasks in the domain that meet the conditions, that is tasks\nthat are remaining, or that have been completed, paused or started / resumed.")]),t._v(" "),a("h3",{attrs:{id:"get-enabled-events-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-12"}},[t._v("#")]),t._v(" _get_enabled_events "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_enabled_events",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"Space[D.T_event]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory), or in the internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._get_enabled_events()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_enabled_events_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-204"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-204"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-319"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-319"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of enabled events.")]),t._v(" "),a("h3",{attrs:{id:"get-enabled-events-from-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-from-6"}},[t._v("#")]),t._v(" _get_enabled_events_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_enabled_events_from",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"Space[D.T_event]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._get_enabled_events()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("h4",{attrs:{id:"parameters-205"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-205"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-320"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-320"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of enabled events.")]),t._v(" "),a("h3",{attrs:{id:"get-goals-17"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-goals-17"}},[t._v("#")]),t._v(" _get_goals "),a("Badge",{attrs:{text:"Goals",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_goals",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) domain goals space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Goals._get_goals()")]),t._v(" internally calls "),a("code",[t._v("Goals._get_goals_()")]),t._v(" the first time and automatically caches\nits value to make future calls more efficient (since the goals space is assumed to be constant).")]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Goal states are assumed to be fully observable (i.e. observation = state) so that there is never uncertainty\nabout whether the goal has been reached or not. This assumption guarantees that any policy that does not\nreach the goal with certainty incurs in infinite expected cost. - "),a("em",[t._v("Geffner, 2013: A Concise Introduction to\nModels and Methods for Automated Planning")])])]),t._v(" "),a("h4",{attrs:{id:"returns-321"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-321"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The goals space.")]),t._v(" "),a("h3",{attrs:{id:"get-goals-18"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-goals-18"}},[t._v("#")]),t._v(" _get_goals_ "),a("Badge",{attrs:{text:"Goals",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_goals_",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the domain goals space (finite or infinite set).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Goals._get_goals()")]),t._v(", the difference being that the result is\nnot cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-322"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-322"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The goals space.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-17"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-17"}},[t._v("#")]),t._v(" _get_initial_state "),a("Badge",{attrs:{text:"DeterministicInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_initial_state",sig:{params:[{name:"self"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("Get the (cached) initial state.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("DeterministicInitialized._get_initial_state()")]),t._v(" internally\ncalls "),a("code",[t._v("DeterministicInitialized._get_initial_state_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the initial state is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-323"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-323"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The initial state.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-18"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-18"}},[t._v("#")]),t._v(" _get_initial_state_ "),a("Badge",{attrs:{text:"DeterministicInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_initial_state_",sig:{params:[{name:"self"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("Create and return an empty initial state")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-distribution-17"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-distribution-17"}},[t._v("#")]),t._v(" _get_initial_state_distribution "),a("Badge",{attrs:{text:"UncertainInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_initial_state_distribution",sig:{params:[{name:"self"}],return:"Distribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("Get the (cached) probability distribution of initial states.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("UncertainInitialized._get_initial_state_distribution()")]),t._v(" internally\ncalls "),a("code",[t._v("UncertainInitialized._get_initial_state_distribution_()")]),t._v(" the first time and automatically caches its value\nto make future calls more efficient (since the initial state distribution is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-324"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-324"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of initial states.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-distribution-18"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-distribution-18"}},[t._v("#")]),t._v(" _get_initial_state_distribution_ "),a("Badge",{attrs:{text:"UncertainInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_initial_state_distribution_",sig:{params:[{name:"self"}],return:"Distribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("Get the probability distribution of initial states.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("UncertainInitialized._get_initial_state_distribution()")]),t._v(", the\ndifference being that the result is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-325"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-325"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of initial states.")]),t._v(" "),a("h3",{attrs:{id:"get-max-horizon-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-max-horizon-6"}},[t._v("#")]),t._v(" _get_max_horizon "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_max_horizon",sig:{params:[{name:"self"}],return:"int"}}}),t._v(" "),a("p",[t._v("Return the maximum time horizon (int)")]),t._v(" "),a("h3",{attrs:{id:"get-memory-maxlen-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-memory-maxlen-11"}},[t._v("#")]),t._v(" _get_memory_maxlen "),a("Badge",{attrs:{text:"History",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_memory_maxlen",sig:{params:[{name:"self"}],return:"int"}}}),t._v(" "),a("p",[t._v("Get the (cached) memory max length.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("FiniteHistory._get_memory_maxlen()")]),t._v(" internally calls "),a("code",[t._v("FiniteHistory._get_memory_maxlen_()")]),t._v(" the first\ntime and automatically caches its value to make future calls more efficient (since the memory max length is\nassumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-326"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-326"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The memory max length.")]),t._v(" "),a("h3",{attrs:{id:"get-memory-maxlen-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-memory-maxlen-12"}},[t._v("#")]),t._v(" _get_memory_maxlen_ "),a("Badge",{attrs:{text:"FiniteHistory",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_memory_maxlen_",sig:{params:[{name:"self"}],return:"int"}}}),t._v(" "),a("p",[t._v("Get the memory max length.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("FiniteHistory._get_memory_maxlen()")]),t._v(", the difference being that\nthe result is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-327"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-327"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The memory max length.")]),t._v(" "),a("h3",{attrs:{id:"get-mode-costs-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-mode-costs-6"}},[t._v("#")]),t._v(" _get_mode_costs "),a("Badge",{attrs:{text:"WithModeCosts",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_mode_costs",sig:{params:[{name:"self"}],return:"Dict[int, Dict[int, float]]"}}}),t._v(" "),a("p",[t._v("Return a nested dictionary where the first key is the id of a task (int), the second key the id of a mode\nand the value indicates the cost of execution the task in the mode.")]),t._v(" "),a("h3",{attrs:{id:"get-next-state-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-next-state-6"}},[t._v("#")]),t._v(" _get_next_state "),a("Badge",{attrs:{text:"DeterministicTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_next_state",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("This function will be used if the domain is defined with DeterministicTransitions. This function will be ignored\nif the domain is defined as having UncertainTransitions or Simulation.")]),t._v(" "),a("h3",{attrs:{id:"get-next-state-distribution-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-next-state-distribution-9"}},[t._v("#")]),t._v(" _get_next_state_distribution "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_next_state_distribution",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"Distribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("This function will be used if the domain is defined with UncertainTransitions. This function will be ignored\nif the domain is defined as a Simulation. This function may also be used by uncertainty-specialised solvers\non deterministic domains.")]),t._v(" "),a("h3",{attrs:{id:"get-objectives-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-objectives-6"}},[t._v("#")]),t._v(" _get_objectives "),a("Badge",{attrs:{text:"SchedulingDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_objectives",sig:{params:[{name:"self"}],return:"List[SchedulingObjectiveEnum]"}}}),t._v(" "),a("p",[t._v("Return the objectives to consider as a list. The items should be of SchedulingObjectiveEnum type.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-12"}},[t._v("#")]),t._v(" _get_observation "),a("Badge",{attrs:{text:"TransformedObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Get the deterministic observation given a state and action.")]),t._v(" "),a("h4",{attrs:{id:"parameters-206"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-206"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-328"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-328"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-distribution-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-distribution-12"}},[t._v("#")]),t._v(" _get_observation_distribution "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation_distribution",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"Distribution[D.T_agent[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the probability distribution of the observation given a state and action.")]),t._v(" "),a("p",[t._v("In mathematical terms (discrete case), given an action "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.197ex",height:"1.02ex",viewBox:"0 -441 529 451"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})])])])])]),t._v(", this function represents: "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.078ex",height:"2.262ex",viewBox:"0 -750 4012.7 1000"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"50",d:"M287 628Q287 635 230 637Q206 637 199 638T192 648Q192 649 194 659Q200 679 203 681T397 683Q587 682 600 680Q664 669 707 631T751 530Q751 453 685 389Q616 321 507 303Q500 302 402 301H307L277 182Q247 66 247 59Q247 55 248 54T255 50T272 48T305 46H336Q342 37 342 35Q342 19 335 5Q330 0 319 0Q316 0 282 1T182 2Q120 2 87 2T51 1Q33 1 33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM645 554Q645 567 643 575T634 597T609 619T560 635Q553 636 480 637Q463 637 445 637T416 636T404 636Q391 635 386 627Q384 621 367 550T332 412T314 344Q314 342 395 342H407H430Q542 342 590 392Q617 419 631 471T645 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(751, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(1140, 0)"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1903, 0)"}},[a("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(2181, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2650, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(3094.7, 0)"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3623.7, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(",\nwhere "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.05ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.726ex",height:"1.643ex",viewBox:"0 -704 763 726"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})])])])])]),t._v(" is the random variable of the observation.")],1),t._v(" "),a("h4",{attrs:{id:"parameters-207"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-207"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-329"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-329"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-space-17"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-17"}},[t._v("#")]),t._v(" _get_observation_space "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) observation space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(" internally\ncalls "),a("code",[t._v("PartiallyObservable._get_observation_space_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the observation space is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-330"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-330"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The observation space.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-space-18"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-18"}},[t._v("#")]),t._v(" _get_observation_space_ "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation_space_",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("To be implemented if needed one day.")]),t._v(" "),a("h3",{attrs:{id:"get-preallocations-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-preallocations-6"}},[t._v("#")]),t._v(" _get_preallocations "),a("Badge",{attrs:{text:"WithPreallocations",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_preallocations",sig:{params:[{name:"self"}],return:"Dict[int, List[str]]"}}}),t._v(" "),a("p",[t._v("Return a dictionary where the key is the id of a task (int)\nand the value indicates the pre-allocated resources for this task (as a list of str)")]),t._v(" "),a("h3",{attrs:{id:"get-predecessors-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-predecessors-6"}},[t._v("#")]),t._v(" _get_predecessors "),a("Badge",{attrs:{text:"WithPrecedence",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_predecessors",sig:{params:[{name:"self"}],return:"Dict[int, List[int]]"}}}),t._v(" "),a("p",[t._v("Return the predecessors of the task. Successors are given as a list for a task given as a key.")]),t._v(" "),a("h3",{attrs:{id:"get-resource-cost-per-time-unit-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-resource-cost-per-time-unit-6"}},[t._v("#")]),t._v(" _get_resource_cost_per_time_unit "),a("Badge",{attrs:{text:"WithResourceCosts",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_resource_cost_per_time_unit",sig:{params:[{name:"self"}],return:"Dict[str, float]"}}}),t._v(" "),a("p",[t._v("Return a dictionary where the key is the name of a resource (str)\nand the value indicates the cost of using this resource per time unit.")]),t._v(" "),a("h3",{attrs:{id:"get-resource-renewability-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-resource-renewability-6"}},[t._v("#")]),t._v(" _get_resource_renewability "),a("Badge",{attrs:{text:"MixedRenewable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_resource_renewability",sig:{params:[{name:"self"}],return:"Dict[str, bool]"}}}),t._v(" "),a("p",[t._v("Return a dictionary where the key is a resource name (string)\nand the value whether this resource is renewable (True) or not (False).")]),t._v(" "),a("h3",{attrs:{id:"get-resource-type-for-unit-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-resource-type-for-unit-6"}},[t._v("#")]),t._v(" _get_resource_type_for_unit "),a("Badge",{attrs:{text:"WithResourceUnits",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_resource_type_for_unit",sig:{params:[{name:"self"}],return:"Dict[str, str]"}}}),t._v(" "),a("p",[t._v("Return a dictionary where the key is a resource unit name and the value a resource type name.\nAn empty dictionary can be used if there are no resource unit matching a resource type.")]),t._v(" "),a("h3",{attrs:{id:"get-resource-types-names-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-resource-types-names-6"}},[t._v("#")]),t._v(" _get_resource_types_names "),a("Badge",{attrs:{text:"WithResourceTypes",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_resource_types_names",sig:{params:[{name:"self"}],return:"List[str]"}}}),t._v(" "),a("p",[t._v("Return the names (string) of all resource types as a list.")]),t._v(" "),a("h3",{attrs:{id:"get-resource-units-names-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-resource-units-names-6"}},[t._v("#")]),t._v(" _get_resource_units_names "),a("Badge",{attrs:{text:"WithResourceUnits",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_resource_units_names",sig:{params:[{name:"self"}],return:"List[str]"}}}),t._v(" "),a("p",[t._v("Return the names (string) of all resource units as a list.")]),t._v(" "),a("h3",{attrs:{id:"get-successors-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-successors-6"}},[t._v("#")]),t._v(" _get_successors "),a("Badge",{attrs:{text:"WithPrecedence",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_successors",sig:{params:[{name:"self"}],return:"Dict[int, List[int]]"}}}),t._v(" "),a("p",[t._v("Return the successors of the tasks. Successors are given as a list for a task given as a key.")]),t._v(" "),a("h3",{attrs:{id:"get-task-existence-conditions-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-task-existence-conditions-6"}},[t._v("#")]),t._v(" _get_task_existence_conditions "),a("Badge",{attrs:{text:"WithConditionalTasks",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_task_existence_conditions",sig:{params:[{name:"self"}],return:"Dict[int, List[int]]"}}}),t._v(" "),a("p",[t._v("Return a dictionary where the key is a task id and the value a list of conditions to be respected (True)\nfor the task to be part of the schedule. If a task has no entry in the dictionary,\nthere is no conditions for that task.")]),t._v(" "),a("p",[t._v("Example:\nreturn\n{\n20: [get_all_condition_items().NC_PART_1_OPERATION_1],\n21: [get_all_condition_items().HARDWARE_ISSUE_MACHINE_A]\n22: [get_all_condition_items().NC_PART_1_OPERATION_1, get_all_condition_items().NC_PART_1_OPERATION_2]\n}e")]),t._v(" "),a("h3",{attrs:{id:"get-task-paused-non-renewable-resource-returned-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-task-paused-non-renewable-resource-returned-6"}},[t._v("#")]),t._v(" _get_task_paused_non_renewable_resource_returned "),a("Badge",{attrs:{text:"WithPreemptivity",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_task_paused_non_renewable_resource_returned",sig:{params:[{name:"self"}],return:"Dict[int, bool]"}}}),t._v(" "),a("p",[t._v("Return a dictionary where the key is a task id and the value is of type bool indicating\nif the non-renewable resources are consumed when the task is paused (False) or made available again (True).\nE.g. {\n2: False # if paused, non-renewable resource will be consumed\n5: True # if paused, the non-renewable resource will be available again\n}")]),t._v(" "),a("h3",{attrs:{id:"get-task-preemptivity-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-task-preemptivity-6"}},[t._v("#")]),t._v(" _get_task_preemptivity "),a("Badge",{attrs:{text:"WithPreemptivity",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_task_preemptivity",sig:{params:[{name:"self"}],return:"Dict[int, bool]"}}}),t._v(" "),a("p",[t._v("Return a dictionary where the key is a task id and the value a boolean indicating\nif the task can be paused or stopped.\nE.g. {\n1: False\n2: True\n3: False\n4: False\n5: True\n6: False\n}")]),t._v(" "),a("h3",{attrs:{id:"get-task-progress-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-task-progress-6"}},[t._v("#")]),t._v(" _get_task_progress "),a("Badge",{attrs:{text:"CustomTaskProgress",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_task_progress",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"t_from",annotation:"int"},{name:"t_to",annotation:"int"},{name:"mode",annotation:"Optional[int]"},{name:"sampled_duration",default:"None",annotation:"Optional[int]"}],return:"float"}}}),t._v(" "),a("h4",{attrs:{id:"returns-331"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-331"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The task progress (float) between t_from and t_to.")]),t._v(" "),a("h3",{attrs:{id:"get-task-resuming-type-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-task-resuming-type-6"}},[t._v("#")]),t._v(" _get_task_resuming_type "),a("Badge",{attrs:{text:"WithPreemptivity",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_task_resuming_type",sig:{params:[{name:"self"}],return:"Dict[int, ResumeType]"}}}),t._v(" "),a("p",[t._v("Return a dictionary where the key is a task id and the value is of type ResumeType indicating\nif the task can be resumed (restarted from where it was paused with no time loss)\nor restarted (restarted from the start).\nE.g. {\n1: ResumeType.NA\n2: ResumeType.Resume\n3: ResumeType.NA\n4: ResumeType.NA\n5: ResumeType.Restart\n6: ResumeType.NA\n}")]),t._v(" "),a("h3",{attrs:{id:"get-tasks-ids-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-tasks-ids-3"}},[t._v("#")]),t._v(" _get_tasks_ids "),a("Badge",{attrs:{text:"MultiMode",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_tasks_ids",sig:{params:[{name:"self"}],return:"Union[Set[int], Dict[int, Any], List[int]]"}}}),t._v(" "),a("p",[t._v("Return a set or dict of int = id of tasks")]),t._v(" "),a("h3",{attrs:{id:"get-tasks-modes-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-tasks-modes-3"}},[t._v("#")]),t._v(" _get_tasks_modes "),a("Badge",{attrs:{text:"MultiMode",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_tasks_modes",sig:{params:[{name:"self"}],return:"Dict[int, Dict[int, ModeConsumption]]"}}}),t._v(" "),a("p",[t._v("Return a nested dictionary where the first key is a task id and the second key is a mode id.\nThe value is a Mode object defining the resource consumption.\nIf the domain is an instance of VariableResourceConsumption, VaryingModeConsumption objects should be used.\nIf this is not the case (i.e. the domain is an instance of ConstantResourceConsumption),\nthen ConstantModeConsumption should be used.")]),t._v(" "),a("p",[t._v("E.g. with constant resource consumption\n{\n12: {\n1: ConstantModeConsumption({'rt_1': 2, 'rt_2': 0, 'ru_1': 1}),\n2: ConstantModeConsumption({'rt_1': 0, 'rt_2': 3, 'ru_1': 1}),\n}\n}")]),t._v(" "),a("p",[t._v("E.g. with time varying resource consumption\n{\n12: {\n1: VaryingModeConsumption({'rt_1': [2,2,2,2,3], 'rt_2': [0,0,0,0,0], 'ru_1': [1,1,1,1,1]}),\n2: VaryingModeConsumption({'rt_1': [1,1,1,1,2,2,2], 'rt_2': [0,0,0,0,0,0,0], 'ru_1': [1,1,1,1,1,1,1]}),\n}\n}")]),t._v(" "),a("h3",{attrs:{id:"get-time-lags-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-time-lags-6"}},[t._v("#")]),t._v(" _get_time_lags "),a("Badge",{attrs:{text:"WithTimeLag",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_time_lags",sig:{params:[{name:"self"}],return:"Dict[int, Dict[int, TimeLag]]"}}}),t._v(" "),a("p",[t._v("Return nested dictionaries where the first key is the id of a task (int)\nand the second key is the id of another task (int).\nThe value is a TimeLag object containing the MINIMUM and MAXIMUM time (int) that needs to separate the end\nof the first task to the start of the second task.")]),t._v(" "),a("p",[t._v("e.g.\n{\n12:{\n15: TimeLag(5, 10),\n16: TimeLag(5, 20),\n17: MinimumOnlyTimeLag(5),\n18: MaximumOnlyTimeLag(15),\n}\n}")]),t._v(" "),a("h4",{attrs:{id:"returns-332"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-332"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("A dictionary of TimeLag objects.")]),t._v(" "),a("h3",{attrs:{id:"get-time-window-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-time-window-6"}},[t._v("#")]),t._v(" _get_time_window "),a("Badge",{attrs:{text:"WithTimeWindow",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_time_window",sig:{params:[{name:"self"}],return:"Dict[int, TimeWindow]"}}}),t._v(" "),a("p",[t._v("Return a dictionary where the key is the id of a task (int)\nand the value is a TimeWindow object.\nNote that the max time horizon needs to be provided to the TimeWindow constructors\ne.g.\n{\n1: TimeWindow(10, 15, 20, 30, self.get_max_horizon())\n2: EmptyTimeWindow(self.get_max_horizon())\n3: EndTimeWindow(20, 25, self.get_max_horizon())\n4: EndBeforeOnlyTimeWindow(40, self.get_max_horizon())\n}")]),t._v(" "),a("h4",{attrs:{id:"returns-333"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-333"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("A dictionary of TimeWindow objects.")]),t._v(" "),a("h3",{attrs:{id:"get-variable-resource-consumption-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-variable-resource-consumption-6"}},[t._v("#")]),t._v(" _get_variable_resource_consumption "),a("Badge",{attrs:{text:"VariableResourceConsumption",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_variable_resource_consumption",sig:{params:[{name:"self"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Return true if the domain has variable resource consumption,\nfalse if the consumption of resource does not vary in time for any of the tasks")]),t._v(" "),a("h3",{attrs:{id:"init-memory-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#init-memory-6"}},[t._v("#")]),t._v(" _init_memory "),a("Badge",{attrs:{text:"History",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_init_memory",sig:{params:[{name:"self"},{name:"state",default:"None",annotation:"Optional[D.T_state]"}],return:"D.T_memory[D.T_state]"}}}),t._v(" "),a("p",[t._v("Initialize memory (possibly with a state) according to its specification and return it.")]),t._v(" "),a("p",[t._v("This function is automatically called by "),a("code",[t._v("Initializable._reset()")]),t._v(" to reinitialize the internal memory whenever\nthe domain is used as an environment.")]),t._v(" "),a("h4",{attrs:{id:"parameters-208"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-208"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": An optional state to initialize the memory with (typically the initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-334"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-334"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The new initialized memory.")]),t._v(" "),a("h3",{attrs:{id:"is-action-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-action-12"}},[t._v("#")]),t._v(" _is_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_action",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an event is an action (i.e. a controllable event for the agents).")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\naction space provided by "),a("code",[t._v("Events._get_action_space()")]),t._v(", but it can be overridden for faster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-209"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-209"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("event")]),t._v(": The event to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-335"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-335"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is an action (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-applicable-action-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-12"}},[t._v("#")]),t._v(" _is_applicable_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_applicable_action",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an action is applicable in the given memory (state or history), or in the internal one if\nomitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._is_applicable_action()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_applicable_action_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-210"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-210"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-336"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-336"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the action is applicable (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-applicable-action-from-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-from-6"}},[t._v("#")]),t._v(" _is_applicable_action_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_applicable_action_from",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an action is applicable in the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._is_applicable_action()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the space of\napplicable actions provided by "),a("code",[t._v("Events._get_applicable_actions_from()")]),t._v(", but it can be overridden for faster\nimplementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-211"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-211"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-337"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-337"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the action is applicable (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-enabled-event-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-12"}},[t._v("#")]),t._v(" _is_enabled_event "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_enabled_event",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an uncontrollable event is enabled in the given memory (state or history), or in the\ninternal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._is_enabled_event()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_enabled_event_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead\nof the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-212"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-212"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-338"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-338"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is enabled (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-enabled-event-from-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-from-6"}},[t._v("#")]),t._v(" _is_enabled_event_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_enabled_event_from",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an event is enabled in the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._is_enabled_event()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the space of\nenabled events provided by "),a("code",[t._v("Events._get_enabled_events_from()")]),t._v(", but it can be overridden for faster\nimplementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-213"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-213"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-339"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-339"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is enabled (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-goal-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-goal-12"}},[t._v("#")]),t._v(" _is_goal "),a("Badge",{attrs:{text:"Goals",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_goal",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"D.T_agent[D.T_predicate]"}}}),t._v(" "),a("p",[t._v("Indicate whether an observation belongs to the goals.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\ngoals space provided by "),a("code",[t._v("Goals._get_goals()")]),t._v(", but it can be overridden for faster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-214"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-214"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-340"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-340"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the observation is a goal (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-observation-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-observation-12"}},[t._v("#")]),t._v(" _is_observation "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_observation",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that an observation indeed belongs to the domain observation space.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\nobservation space provided by "),a("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(", but it can be overridden for\nfaster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-215"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-215"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-341"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-341"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the observation belongs to the domain observation space (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-transition-value-dependent-on-next-state-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-transition-value-dependent-on-next-state-11"}},[t._v("#")]),t._v(" _is_transition_value_dependent_on_next_state "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_transition_value_dependent_on_next_state",sig:{params:[{name:"self"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether _get_transition_value() requires the next_state parameter for its computation (cached).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("UncertainTransitions._is_transition_value_dependent_on_next_state()")]),t._v(" internally\ncalls "),a("code",[t._v("UncertainTransitions._is_transition_value_dependent_on_next_state_()")]),t._v(" the first time and automatically\ncaches its value to make future calls more efficient (since the returned value is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-342"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-342"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the transition value computation depends on next_state (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-transition-value-dependent-on-next-state-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-transition-value-dependent-on-next-state-12"}},[t._v("#")]),t._v(" _is_transition_value_dependent_on_next_state_ "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_transition_value_dependent_on_next_state_",sig:{params:[{name:"self"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether _get_transition_value() requires the next_state parameter for its computation.")]),t._v(" "),a("p",[t._v("This is a helper function called by default\nfrom "),a("code",[t._v("UncertainTransitions._is_transition_value_dependent_on_next_state()")]),t._v(", the difference being that the result\nis not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-343"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-343"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the transition value computation depends on next_state (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"reset-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#reset-12"}},[t._v("#")]),t._v(" _reset "),a("Badge",{attrs:{text:"Initializable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_reset",sig:{params:[{name:"self"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Reset the state of the environment and return an initial observation.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Initializable._reset()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Initializable._state_reset()")]),t._v(" (which returns an initial state). The boilerplate code automatically stores\nthe initial state into the "),a("code",[t._v("_memory")]),t._v(" attribute and samples a corresponding observation.")]),t._v(" "),a("h4",{attrs:{id:"returns-344"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-344"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("An initial observation.")]),t._v(" "),a("h3",{attrs:{id:"sample-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample-12"}},[t._v("#")]),t._v(" _sample "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_sample",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Sample one transition of the simulator's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Simulation._sample()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Simulation._state_sample()")]),t._v(" (which returns a transition outcome). The boilerplate code automatically\nsamples an observation corresponding to the sampled next state.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing simulator needs to be wrapped instead of implemented fully in scikit-decide (e.g. a\nsimulator), it is recommended to overwrite "),a("code",[t._v("Simulation._sample()")]),t._v(" to call the external simulator and not use\nthe "),a("code",[t._v("Simulation._state_sample()")]),t._v(" helper function.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-216"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-216"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-345"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-345"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of the sampled transition.")]),t._v(" "),a("h3",{attrs:{id:"sample-completion-conditions-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample-completion-conditions-6"}},[t._v("#")]),t._v(" _sample_completion_conditions "),a("Badge",{attrs:{text:"WithConditionalTasks",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_sample_completion_conditions",sig:{params:[{name:"self"},{name:"task",annotation:"int"}],return:"List[int]"}}}),t._v(" "),a("p",[t._v("Samples the condition distributions associated with the given task and return a list of sampled\nconditions.")]),t._v(" "),a("h3",{attrs:{id:"sample-quantity-resource-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample-quantity-resource-6"}},[t._v("#")]),t._v(" _sample_quantity_resource "),a("Badge",{attrs:{text:"UncertainResourceAvailabilityChanges",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_sample_quantity_resource",sig:{params:[{name:"self"},{name:"resource",annotation:"str"},{name:"time",annotation:"int"},{name:"**kwargs"}],return:"int"}}}),t._v(" "),a("p",[t._v("Sample an amount of resource availability (int) for the given resource\n(either resource type or resource unit) at the given time. This number should be the sum of the number of\nresource available at time t and the number of resource of this type consumed so far).")]),t._v(" "),a("h3",{attrs:{id:"sample-task-duration-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample-task-duration-6"}},[t._v("#")]),t._v(" _sample_task_duration "),a("Badge",{attrs:{text:"SimulatedTaskDuration",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_sample_task_duration",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"mode",default:"1",annotation:"Optional[int]"},{name:"progress_from",default:"0.0",annotation:"Optional[float]"}],return:"int"}}}),t._v(" "),a("p",[t._v("Return a task duration for the given task in the given mode.")]),t._v(" "),a("h3",{attrs:{id:"set-memory-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#set-memory-12"}},[t._v("#")]),t._v(" _set_memory "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_set_memory",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"None"}}}),t._v(" "),a("p",[t._v("Set internal memory attribute "),a("code",[t._v("_memory")]),t._v(" to given one.")]),t._v(" "),a("p",[t._v('This can be useful to set a specific "starting point" before doing a rollout with\nsuccessive '),a("code",[t._v("Environment._step()")]),t._v(" calls.")]),t._v(" "),a("h4",{attrs:{id:"parameters-217"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-217"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to set internally.")])]),t._v(" "),a("h4",{attrs:{id:"example-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#example-12"}},[t._v("#")]),t._v(" Example")]),t._v(" "),a("div",{staticClass:"language-python extra-class"},[a("pre",{pre:!0,attrs:{class:"language-python"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Set simulation_domain memory to my_state (assuming Markovian domain)")]),t._v("\nsimulation_domain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("_set_memory"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("my_state"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Start a 100-steps rollout from here (applying my_action at every step)")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("for")]),t._v(" _ "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("in")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("range")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n simulation_domain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("_step"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("my_action"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("h3",{attrs:{id:"state-reset-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#state-reset-6"}},[t._v("#")]),t._v(" _state_reset "),a("Badge",{attrs:{text:"Initializable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_state_reset",sig:{params:[{name:"self"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("Reset the state of the environment and return an initial state.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Initializable._reset()")]),t._v(". It focuses on the state level, as\nopposed to the observation one for the latter.")]),t._v(" "),a("h4",{attrs:{id:"returns-346"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-346"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("An initial state.")]),t._v(" "),a("h3",{attrs:{id:"state-sample-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#state-sample-6"}},[t._v("#")]),t._v(" _state_sample "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_state_sample",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"TransitionOutcome[D.T_state, D.T_agent[Value[D.T_value]], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("This function will be used if the domain is defined as a Simulation (i.e. transitions are defined by call to\na simulation). This function may also be used by simulation-based solvers on non-Simulation domains.")]),t._v(" "),a("h3",{attrs:{id:"state-step-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#state-step-6"}},[t._v("#")]),t._v(" _state_step "),a("Badge",{attrs:{text:"Environment",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_state_step",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"TransitionOutcome[D.T_state, D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Compute one step of the transition's dynamics.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Environment._step()")]),t._v(". It focuses on the state level, as opposed\nto the observation one for the latter.")]),t._v(" "),a("h4",{attrs:{id:"parameters-218"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-218"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the current memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-347"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-347"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The transition outcome of this step.")]),t._v(" "),a("h3",{attrs:{id:"step-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#step-12"}},[t._v("#")]),t._v(" _step "),a("Badge",{attrs:{text:"Environment",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_step",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Run one step of the environment's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Environment._step()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Environment._state_step()")]),t._v(" (which returns a transition outcome). The boilerplate code automatically stores\nnext state into the "),a("code",[t._v("_memory")]),t._v(" attribute and samples a corresponding observation.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing environment needs to be wrapped instead of implemented fully in scikit-decide (e.g. compiled\nATARI games), it is recommended to overwrite "),a("code",[t._v("Environment._step()")]),t._v(" to call the external environment and not\nuse the "),a("code",[t._v("Environment._state_step()")]),t._v(" helper function.")])]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Before calling "),a("code",[t._v("Environment._step()")]),t._v(" the first time or when the end of an episode is\nreached, "),a("code",[t._v("Initializable._reset()")]),t._v(" must be called to reset the environment's state.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-219"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-219"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the current memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-348"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-348"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of this step.")])],1)}),[],!1,null,null,null);e.default=n.exports}}]); \ No newline at end of file diff --git a/assets/js/45.c9e41fbd.js b/assets/js/45.4b0a420e.js similarity index 98% rename from assets/js/45.c9e41fbd.js rename to assets/js/45.4b0a420e.js index a462fb6a34..8a50618422 100644 --- a/assets/js/45.c9e41fbd.js +++ b/assets/js/45.4b0a420e.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[45],{560:function(e,t,a){"use strict";a.r(t);var s=a(38),n=Object(s.a)({},(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("h1",{attrs:{id:"builders-domain-scheduling-scheduling-domains-modelling"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#builders-domain-scheduling-scheduling-domains-modelling"}},[e._v("#")]),e._v(" builders.domain.scheduling.scheduling_domains_modelling")]),e._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[e._v("Domain specification")]),e._v(" "),a("skdecide-summary")],1),e._v(" "),a("h2",{attrs:{id:"schedulingactionenum"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#schedulingactionenum"}},[e._v("#")]),e._v(" SchedulingActionEnum")]),e._v(" "),a("p",[e._v("Enum defining the different types of scheduling actions:")]),e._v(" "),a("ul",[a("li",[e._v("START: start a task")]),e._v(" "),a("li",[e._v("PAUSE: pause a task")]),e._v(" "),a("li",[e._v("RESUME: resume a task")]),e._v(" "),a("li",[e._v("TIME_PR: do not apply actions on tasks and progress in time")])]),e._v(" "),a("h2",{attrs:{id:"state"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#state"}},[e._v("#")]),e._v(" State")]),e._v(" "),a("p",[e._v("Class modelling a scheduling state and used by sk-decide scheduling domains.")]),e._v(" "),a("p",[e._v("It contains the following information:\nt: the timestamp.\ntask_ids: a list of all task ids in the scheduling domain.\ntasks_unsatisfiable: a set containing the ids of tasks for which canditions are not fulfilled\ntasks_ongoing: a set containing the ids of tasks started and not paused and still to be completed\ntasks_complete: a set containing the ids of tasks that have been completed\ntasks_paused: a set containing the ids of tasks that have been started and paused but not resumed yet\ntasks_progress: a dictionary where the key is a task id (int) and\nthe value the progress of the task between 0 and 1 (float)\ntasks_mode: a dictionary where the key is a task id (int) and\nthe value the mode used to execute the task (int)\nresource_to_task: dictionary where the key is the name of a resource (str) and the value a task\nit is currently assigned to (int)\nresource_availability: dictionary where the key is the name of a resource (str) and the value the number of\nresource units available for this type of resource regardless of the task assignments (int). Where the\nresource name is a resource unit itself, the availability value takes a value of either 1 (available)\nor 0 (unavailable)\nresource_used: dictionary where the key is the name of a resource (str) and the value the number of\nresource units for this resource type used/assigned on tasks at this time (int). Where the resource\nname is a resource unit itself, the value takes a value of either 1 (used) or 0 (not used)\nresource_used_for_task: nested dictionary where the first key is a task id (int), the second key is the name of\na resource (str) and the value is the number of resource units for this resource type used/assigned on tasks\nat this time (int). Where the resource name is a resource unit itself, the value takes a value of either 1\n(used) or 0 (not used).\ntasks_details: dictionary where the key is the id of a task (int) and the value a Task object. This Task object\ncontains information about the task execution and can be used to post-process the run. It is only used\nby the domain to store execution information and not used by scheduling solvers.\ntasks_full_details: like taks_details but containing all taks, even the ones not completed.\n_current_conditions: set of conditions observed so far, to be used by domains with WithConditionalTask\nproperties")]),e._v(" "),a("h3",{attrs:{id:"constructor"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#constructor"}},[e._v("#")]),e._v(" Constructor "),a("Badge",{attrs:{text:"State",type:"tip"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"State",sig:{params:[{name:"task_ids",annotation:"Iterable[int]"},{name:"tasks_available",default:"None",annotation:"Set[int]"}]}}}),e._v(" "),a("p",[e._v("Initialize a scheduling state.")]),e._v(" "),a("h4",{attrs:{id:"parameters"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),a("ul",[a("li",[a("strong",[e._v("task_ids")]),e._v(": a list of all task ids in the scheduling domain.")]),e._v(" "),a("li",[a("strong",[e._v("tasks_available")]),e._v(": a set of task ids that are available for scheduling. This may differ from task_ids if the\ndomain contains conditional tasks.")])]),e._v(" "),a("h2",{attrs:{id:"schedulingaction"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#schedulingaction"}},[e._v("#")]),e._v(" SchedulingAction")]),e._v(" "),a("p",[e._v("Can be used to define actions on single task. Resource allocation can only be managed through changes in the mode.\nThe time_progress attribute triggers a change in time (i.e. triggers the domain to increment its current time).\nIt should thus be used as the last action to be applied at any point in time\nThese actions are enumerable due to their coarse grain definition.")]),e._v(" "),a("p",[e._v("E.g.\ntask = 12 (start action 12 in mode 1)\naction = EnumerableActionEnum.START\nmode = 1\ntime_progress = False")]),e._v(" "),a("p",[e._v("E.g. (pause action 13, NB: mode info is not useful here)\ntask = 13\naction = EnumerableActionEnum.PAUSE\nmode = None\ntime_progress = False")]),e._v(" "),a("p",[e._v("E.g. (do nothing and progress in time)\ntask = None\naction = None\nmode = None\ntime_progress = True")]),e._v(" "),a("h3",{attrs:{id:"constructor-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#constructor-2"}},[e._v("#")]),e._v(" Constructor "),a("Badge",{attrs:{text:"SchedulingAction",type:"tip"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"SchedulingAction",sig:{params:[{name:"task",annotation:"Union[int, None]"},{name:"action",annotation:"SchedulingActionEnum"},{name:"mode",annotation:"Union[int, None]"},{name:"time_progress",annotation:"bool"},{name:"resource_unit_names",default:"None",annotation:"Optional[Set[str]]"}]}}}),e._v(" "),a("p",[e._v("Initialize self. See help(type(self)) for accurate signature.")])],1)}),[],!1,null,null,null);t.default=n.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[45],{559:function(e,t,a){"use strict";a.r(t);var s=a(38),n=Object(s.a)({},(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[a("h1",{attrs:{id:"builders-domain-scheduling-scheduling-domains-modelling"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#builders-domain-scheduling-scheduling-domains-modelling"}},[e._v("#")]),e._v(" builders.domain.scheduling.scheduling_domains_modelling")]),e._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[e._v("Domain specification")]),e._v(" "),a("skdecide-summary")],1),e._v(" "),a("h2",{attrs:{id:"schedulingactionenum"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#schedulingactionenum"}},[e._v("#")]),e._v(" SchedulingActionEnum")]),e._v(" "),a("p",[e._v("Enum defining the different types of scheduling actions:")]),e._v(" "),a("ul",[a("li",[e._v("START: start a task")]),e._v(" "),a("li",[e._v("PAUSE: pause a task")]),e._v(" "),a("li",[e._v("RESUME: resume a task")]),e._v(" "),a("li",[e._v("TIME_PR: do not apply actions on tasks and progress in time")])]),e._v(" "),a("h2",{attrs:{id:"state"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#state"}},[e._v("#")]),e._v(" State")]),e._v(" "),a("p",[e._v("Class modelling a scheduling state and used by sk-decide scheduling domains.")]),e._v(" "),a("p",[e._v("It contains the following information:\nt: the timestamp.\ntask_ids: a list of all task ids in the scheduling domain.\ntasks_unsatisfiable: a set containing the ids of tasks for which canditions are not fulfilled\ntasks_ongoing: a set containing the ids of tasks started and not paused and still to be completed\ntasks_complete: a set containing the ids of tasks that have been completed\ntasks_paused: a set containing the ids of tasks that have been started and paused but not resumed yet\ntasks_progress: a dictionary where the key is a task id (int) and\nthe value the progress of the task between 0 and 1 (float)\ntasks_mode: a dictionary where the key is a task id (int) and\nthe value the mode used to execute the task (int)\nresource_to_task: dictionary where the key is the name of a resource (str) and the value a task\nit is currently assigned to (int)\nresource_availability: dictionary where the key is the name of a resource (str) and the value the number of\nresource units available for this type of resource regardless of the task assignments (int). Where the\nresource name is a resource unit itself, the availability value takes a value of either 1 (available)\nor 0 (unavailable)\nresource_used: dictionary where the key is the name of a resource (str) and the value the number of\nresource units for this resource type used/assigned on tasks at this time (int). Where the resource\nname is a resource unit itself, the value takes a value of either 1 (used) or 0 (not used)\nresource_used_for_task: nested dictionary where the first key is a task id (int), the second key is the name of\na resource (str) and the value is the number of resource units for this resource type used/assigned on tasks\nat this time (int). Where the resource name is a resource unit itself, the value takes a value of either 1\n(used) or 0 (not used).\ntasks_details: dictionary where the key is the id of a task (int) and the value a Task object. This Task object\ncontains information about the task execution and can be used to post-process the run. It is only used\nby the domain to store execution information and not used by scheduling solvers.\ntasks_full_details: like taks_details but containing all taks, even the ones not completed.\n_current_conditions: set of conditions observed so far, to be used by domains with WithConditionalTask\nproperties")]),e._v(" "),a("h3",{attrs:{id:"constructor"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#constructor"}},[e._v("#")]),e._v(" Constructor "),a("Badge",{attrs:{text:"State",type:"tip"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"State",sig:{params:[{name:"task_ids",annotation:"Iterable[int]"},{name:"tasks_available",default:"None",annotation:"Set[int]"}]}}}),e._v(" "),a("p",[e._v("Initialize a scheduling state.")]),e._v(" "),a("h4",{attrs:{id:"parameters"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),a("ul",[a("li",[a("strong",[e._v("task_ids")]),e._v(": a list of all task ids in the scheduling domain.")]),e._v(" "),a("li",[a("strong",[e._v("tasks_available")]),e._v(": a set of task ids that are available for scheduling. This may differ from task_ids if the\ndomain contains conditional tasks.")])]),e._v(" "),a("h2",{attrs:{id:"schedulingaction"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#schedulingaction"}},[e._v("#")]),e._v(" SchedulingAction")]),e._v(" "),a("p",[e._v("Can be used to define actions on single task. Resource allocation can only be managed through changes in the mode.\nThe time_progress attribute triggers a change in time (i.e. triggers the domain to increment its current time).\nIt should thus be used as the last action to be applied at any point in time\nThese actions are enumerable due to their coarse grain definition.")]),e._v(" "),a("p",[e._v("E.g.\ntask = 12 (start action 12 in mode 1)\naction = EnumerableActionEnum.START\nmode = 1\ntime_progress = False")]),e._v(" "),a("p",[e._v("E.g. (pause action 13, NB: mode info is not useful here)\ntask = 13\naction = EnumerableActionEnum.PAUSE\nmode = None\ntime_progress = False")]),e._v(" "),a("p",[e._v("E.g. (do nothing and progress in time)\ntask = None\naction = None\nmode = None\ntime_progress = True")]),e._v(" "),a("h3",{attrs:{id:"constructor-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#constructor-2"}},[e._v("#")]),e._v(" Constructor "),a("Badge",{attrs:{text:"SchedulingAction",type:"tip"}})],1),e._v(" "),a("skdecide-signature",{attrs:{name:"SchedulingAction",sig:{params:[{name:"task",annotation:"Union[int, None]"},{name:"action",annotation:"SchedulingActionEnum"},{name:"mode",annotation:"Union[int, None]"},{name:"time_progress",annotation:"bool"},{name:"resource_unit_names",default:"None",annotation:"Optional[Set[str]]"}]}}}),e._v(" "),a("p",[e._v("Initialize self. See help(type(self)) for accurate signature.")])],1)}),[],!1,null,null,null);t.default=n.exports}}]); \ No newline at end of file diff --git a/assets/js/46.c5372345.js b/assets/js/46.ec3f0af0.js similarity index 99% rename from assets/js/46.c5372345.js rename to assets/js/46.ec3f0af0.js index dd125c11f7..5dc7268858 100644 --- a/assets/js/46.c5372345.js +++ b/assets/js/46.ec3f0af0.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[46],{562:function(e,s,t){"use strict";t.r(s);var a=t(38),i=Object(a.a)({},(function(){var e=this,s=e.$createElement,t=e._self._c||s;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"builders-domain-scheduling-skills"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#builders-domain-scheduling-skills"}},[e._v("#")]),e._v(" builders.domain.scheduling.skills")]),e._v(" "),t("div",{staticClass:"custom-block tip"},[t("p",{staticClass:"custom-block-title"},[e._v("Domain specification")]),e._v(" "),t("skdecide-summary")],1),e._v(" "),t("h2",{attrs:{id:"withresourceskills"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#withresourceskills"}},[e._v("#")]),e._v(" WithResourceSkills")]),e._v(" "),t("p",[e._v("A domain must inherit this class if its resources (either resource types or resource units)\nhave different set of skills.")]),e._v(" "),t("h3",{attrs:{id:"find-one-ressource-to-do-one-task"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#find-one-ressource-to-do-one-task"}},[e._v("#")]),e._v(" find_one_ressource_to_do_one_task "),t("Badge",{attrs:{text:"WithResourceSkills",type:"tip"}})],1),e._v(" "),t("skdecide-signature",{attrs:{name:"find_one_ressource_to_do_one_task",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"mode",annotation:"int"}],return:"List[str]"}}}),e._v(" "),t("p",[e._v("For the common case when it is possible to do the task by one resource unit.\nFor general case, it might just return no possible ressource unit.")]),e._v(" "),t("h3",{attrs:{id:"get-all-resources-skills"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#get-all-resources-skills"}},[e._v("#")]),e._v(" get_all_resources_skills "),t("Badge",{attrs:{text:"WithResourceSkills",type:"tip"}})],1),e._v(" "),t("skdecide-signature",{attrs:{name:"get_all_resources_skills",sig:{params:[{name:"self"}],return:"Dict[str, Dict[str, Any]]"}}}),e._v(" "),t("p",[e._v("Return a nested dictionary where the first key is the name of a resource type or resource unit\nand the second key is the name of a skill. The value defines the details of the skill.\nE.g. {unit: {skill: (detail of skill)}}")]),e._v(" "),t("h3",{attrs:{id:"get-all-tasks-skills"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#get-all-tasks-skills"}},[e._v("#")]),e._v(" get_all_tasks_skills "),t("Badge",{attrs:{text:"WithResourceSkills",type:"tip"}})],1),e._v(" "),t("skdecide-signature",{attrs:{name:"get_all_tasks_skills",sig:{params:[{name:"self"}],return:"Dict[int, Dict[int, Dict[str, Any]]]"}}}),e._v(" "),t("p",[e._v("Return a nested dictionary where the first key is the name of a task\nand the second key is the name of a skill. The value defines the details of the skill.\nE.g. {task: {skill: (detail of skill)}}")]),e._v(" "),t("h3",{attrs:{id:"get-skills-names"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#get-skills-names"}},[e._v("#")]),e._v(" get_skills_names "),t("Badge",{attrs:{text:"WithResourceSkills",type:"tip"}})],1),e._v(" "),t("skdecide-signature",{attrs:{name:"get_skills_names",sig:{params:[{name:"self"}],return:"Set[str]"}}}),e._v(" "),t("p",[e._v("Return a list of all skill names as a list of str. Skill names are defined in the 2 dictionaries returned\nby the get_all_resources_skills and get_all_tasks_skills functions.")]),e._v(" "),t("h3",{attrs:{id:"get-skills-of-resource"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#get-skills-of-resource"}},[e._v("#")]),e._v(" get_skills_of_resource "),t("Badge",{attrs:{text:"WithResourceSkills",type:"tip"}})],1),e._v(" "),t("skdecide-signature",{attrs:{name:"get_skills_of_resource",sig:{params:[{name:"self"},{name:"resource",annotation:"str"}],return:"Dict[str, Any]"}}}),e._v(" "),t("p",[e._v("Return the skills of a given resource")]),e._v(" "),t("h3",{attrs:{id:"get-skills-of-task"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#get-skills-of-task"}},[e._v("#")]),e._v(" get_skills_of_task "),t("Badge",{attrs:{text:"WithResourceSkills",type:"tip"}})],1),e._v(" "),t("skdecide-signature",{attrs:{name:"get_skills_of_task",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"mode",annotation:"int"}],return:"Dict[str, Any]"}}}),e._v(" "),t("p",[e._v("Return the skill requirements for a given task")]),e._v(" "),t("h3",{attrs:{id:"get-all-resources-skills-2"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#get-all-resources-skills-2"}},[e._v("#")]),e._v(" _get_all_resources_skills "),t("Badge",{attrs:{text:"WithResourceSkills",type:"tip"}})],1),e._v(" "),t("skdecide-signature",{attrs:{name:"_get_all_resources_skills",sig:{params:[{name:"self"}],return:"Dict[str, Dict[str, Any]]"}}}),e._v(" "),t("p",[e._v("Return a nested dictionary where the first key is the name of a resource type or resource unit\nand the second key is the name of a skill. The value defines the details of the skill.\nE.g. {unit: {skill: (detail of skill)}}")]),e._v(" "),t("h3",{attrs:{id:"get-all-tasks-skills-2"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#get-all-tasks-skills-2"}},[e._v("#")]),e._v(" _get_all_tasks_skills "),t("Badge",{attrs:{text:"WithResourceSkills",type:"tip"}})],1),e._v(" "),t("skdecide-signature",{attrs:{name:"_get_all_tasks_skills",sig:{params:[{name:"self"}],return:"Dict[int, Dict[int, Dict[str, Any]]]"}}}),e._v(" "),t("p",[e._v("Return a nested dictionary where the first key is the name of a task\nand the second key is the name of a skill. The value defines the details of the skill.\nE.g. {task: {skill: (detail of skill)}}")]),e._v(" "),t("h2",{attrs:{id:"withoutresourceskills"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#withoutresourceskills"}},[e._v("#")]),e._v(" WithoutResourceSkills")]),e._v(" "),t("p",[e._v("A domain must inherit this class if no resources skills have to be considered.")]),e._v(" "),t("h3",{attrs:{id:"find-one-ressource-to-do-one-task-2"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#find-one-ressource-to-do-one-task-2"}},[e._v("#")]),e._v(" find_one_ressource_to_do_one_task "),t("Badge",{attrs:{text:"WithResourceSkills",type:"warn"}})],1),e._v(" "),t("skdecide-signature",{attrs:{name:"find_one_ressource_to_do_one_task",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"mode",annotation:"int"}],return:"List[str]"}}}),e._v(" "),t("p",[e._v("For the common case when it is possible to do the task by one resource unit.\nFor general case, it might just return no possible ressource unit.")]),e._v(" "),t("h3",{attrs:{id:"get-all-resources-skills-3"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#get-all-resources-skills-3"}},[e._v("#")]),e._v(" get_all_resources_skills "),t("Badge",{attrs:{text:"WithResourceSkills",type:"warn"}})],1),e._v(" "),t("skdecide-signature",{attrs:{name:"get_all_resources_skills",sig:{params:[{name:"self"}],return:"Dict[str, Dict[str, Any]]"}}}),e._v(" "),t("p",[e._v("Return a nested dictionary where the first key is the name of a resource type or resource unit\nand the second key is the name of a skill. The value defines the details of the skill.\nE.g. {unit: {skill: (detail of skill)}}")]),e._v(" "),t("h3",{attrs:{id:"get-all-tasks-skills-3"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#get-all-tasks-skills-3"}},[e._v("#")]),e._v(" get_all_tasks_skills "),t("Badge",{attrs:{text:"WithResourceSkills",type:"warn"}})],1),e._v(" "),t("skdecide-signature",{attrs:{name:"get_all_tasks_skills",sig:{params:[{name:"self"}],return:"Dict[int, Dict[int, Dict[str, Any]]]"}}}),e._v(" "),t("p",[e._v("Return a nested dictionary where the first key is the name of a task\nand the second key is the name of a skill. The value defines the details of the skill.\nE.g. {task: {skill: (detail of skill)}}")]),e._v(" "),t("h3",{attrs:{id:"get-skills-names-2"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#get-skills-names-2"}},[e._v("#")]),e._v(" get_skills_names "),t("Badge",{attrs:{text:"WithResourceSkills",type:"warn"}})],1),e._v(" "),t("skdecide-signature",{attrs:{name:"get_skills_names",sig:{params:[{name:"self"}],return:"Set[str]"}}}),e._v(" "),t("p",[e._v("Return a list of all skill names as a list of str. Skill names are defined in the 2 dictionaries returned\nby the get_all_resources_skills and get_all_tasks_skills functions.")]),e._v(" "),t("h3",{attrs:{id:"get-skills-of-resource-2"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#get-skills-of-resource-2"}},[e._v("#")]),e._v(" get_skills_of_resource "),t("Badge",{attrs:{text:"WithResourceSkills",type:"warn"}})],1),e._v(" "),t("skdecide-signature",{attrs:{name:"get_skills_of_resource",sig:{params:[{name:"self"},{name:"resource",annotation:"str"}],return:"Dict[str, Any]"}}}),e._v(" "),t("p",[e._v("Return the skills of a given resource")]),e._v(" "),t("h3",{attrs:{id:"get-skills-of-task-2"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#get-skills-of-task-2"}},[e._v("#")]),e._v(" get_skills_of_task "),t("Badge",{attrs:{text:"WithResourceSkills",type:"warn"}})],1),e._v(" "),t("skdecide-signature",{attrs:{name:"get_skills_of_task",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"mode",annotation:"int"}],return:"Dict[str, Any]"}}}),e._v(" "),t("p",[e._v("Return the skill requirements for a given task")]),e._v(" "),t("h3",{attrs:{id:"get-all-resources-skills-4"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#get-all-resources-skills-4"}},[e._v("#")]),e._v(" _get_all_resources_skills "),t("Badge",{attrs:{text:"WithResourceSkills",type:"warn"}})],1),e._v(" "),t("skdecide-signature",{attrs:{name:"_get_all_resources_skills",sig:{params:[{name:"self"}],return:"Dict[str, Dict[str, Any]]"}}}),e._v(" "),t("p",[e._v("Return a nested dictionary where the first key is the name of a resource type or resource unit\nand the second key is the name of a skill. The value defines the details of the skill.\nE.g. {unit: {skill: (detail of skill)}}")]),e._v(" "),t("h3",{attrs:{id:"get-all-tasks-skills-4"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#get-all-tasks-skills-4"}},[e._v("#")]),e._v(" _get_all_tasks_skills "),t("Badge",{attrs:{text:"WithResourceSkills",type:"warn"}})],1),e._v(" "),t("skdecide-signature",{attrs:{name:"_get_all_tasks_skills",sig:{params:[{name:"self"}],return:"Dict[int, Dict[str, Any]]"}}}),e._v(" "),t("p",[e._v("Return a nested dictionary where the first key is the name of a task\nand the second key is the name of a skill. The value defines the details of the skill.\nE.g. {task: {skill: (detail of skill)}}")])],1)}),[],!1,null,null,null);s.default=i.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[46],{561:function(e,s,t){"use strict";t.r(s);var a=t(38),i=Object(a.a)({},(function(){var e=this,s=e.$createElement,t=e._self._c||s;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"builders-domain-scheduling-skills"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#builders-domain-scheduling-skills"}},[e._v("#")]),e._v(" builders.domain.scheduling.skills")]),e._v(" "),t("div",{staticClass:"custom-block tip"},[t("p",{staticClass:"custom-block-title"},[e._v("Domain specification")]),e._v(" "),t("skdecide-summary")],1),e._v(" "),t("h2",{attrs:{id:"withresourceskills"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#withresourceskills"}},[e._v("#")]),e._v(" WithResourceSkills")]),e._v(" "),t("p",[e._v("A domain must inherit this class if its resources (either resource types or resource units)\nhave different set of skills.")]),e._v(" "),t("h3",{attrs:{id:"find-one-ressource-to-do-one-task"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#find-one-ressource-to-do-one-task"}},[e._v("#")]),e._v(" find_one_ressource_to_do_one_task "),t("Badge",{attrs:{text:"WithResourceSkills",type:"tip"}})],1),e._v(" "),t("skdecide-signature",{attrs:{name:"find_one_ressource_to_do_one_task",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"mode",annotation:"int"}],return:"List[str]"}}}),e._v(" "),t("p",[e._v("For the common case when it is possible to do the task by one resource unit.\nFor general case, it might just return no possible ressource unit.")]),e._v(" "),t("h3",{attrs:{id:"get-all-resources-skills"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#get-all-resources-skills"}},[e._v("#")]),e._v(" get_all_resources_skills "),t("Badge",{attrs:{text:"WithResourceSkills",type:"tip"}})],1),e._v(" "),t("skdecide-signature",{attrs:{name:"get_all_resources_skills",sig:{params:[{name:"self"}],return:"Dict[str, Dict[str, Any]]"}}}),e._v(" "),t("p",[e._v("Return a nested dictionary where the first key is the name of a resource type or resource unit\nand the second key is the name of a skill. The value defines the details of the skill.\nE.g. {unit: {skill: (detail of skill)}}")]),e._v(" "),t("h3",{attrs:{id:"get-all-tasks-skills"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#get-all-tasks-skills"}},[e._v("#")]),e._v(" get_all_tasks_skills "),t("Badge",{attrs:{text:"WithResourceSkills",type:"tip"}})],1),e._v(" "),t("skdecide-signature",{attrs:{name:"get_all_tasks_skills",sig:{params:[{name:"self"}],return:"Dict[int, Dict[int, Dict[str, Any]]]"}}}),e._v(" "),t("p",[e._v("Return a nested dictionary where the first key is the name of a task\nand the second key is the name of a skill. The value defines the details of the skill.\nE.g. {task: {skill: (detail of skill)}}")]),e._v(" "),t("h3",{attrs:{id:"get-skills-names"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#get-skills-names"}},[e._v("#")]),e._v(" get_skills_names "),t("Badge",{attrs:{text:"WithResourceSkills",type:"tip"}})],1),e._v(" "),t("skdecide-signature",{attrs:{name:"get_skills_names",sig:{params:[{name:"self"}],return:"Set[str]"}}}),e._v(" "),t("p",[e._v("Return a list of all skill names as a list of str. Skill names are defined in the 2 dictionaries returned\nby the get_all_resources_skills and get_all_tasks_skills functions.")]),e._v(" "),t("h3",{attrs:{id:"get-skills-of-resource"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#get-skills-of-resource"}},[e._v("#")]),e._v(" get_skills_of_resource "),t("Badge",{attrs:{text:"WithResourceSkills",type:"tip"}})],1),e._v(" "),t("skdecide-signature",{attrs:{name:"get_skills_of_resource",sig:{params:[{name:"self"},{name:"resource",annotation:"str"}],return:"Dict[str, Any]"}}}),e._v(" "),t("p",[e._v("Return the skills of a given resource")]),e._v(" "),t("h3",{attrs:{id:"get-skills-of-task"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#get-skills-of-task"}},[e._v("#")]),e._v(" get_skills_of_task "),t("Badge",{attrs:{text:"WithResourceSkills",type:"tip"}})],1),e._v(" "),t("skdecide-signature",{attrs:{name:"get_skills_of_task",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"mode",annotation:"int"}],return:"Dict[str, Any]"}}}),e._v(" "),t("p",[e._v("Return the skill requirements for a given task")]),e._v(" "),t("h3",{attrs:{id:"get-all-resources-skills-2"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#get-all-resources-skills-2"}},[e._v("#")]),e._v(" _get_all_resources_skills "),t("Badge",{attrs:{text:"WithResourceSkills",type:"tip"}})],1),e._v(" "),t("skdecide-signature",{attrs:{name:"_get_all_resources_skills",sig:{params:[{name:"self"}],return:"Dict[str, Dict[str, Any]]"}}}),e._v(" "),t("p",[e._v("Return a nested dictionary where the first key is the name of a resource type or resource unit\nand the second key is the name of a skill. The value defines the details of the skill.\nE.g. {unit: {skill: (detail of skill)}}")]),e._v(" "),t("h3",{attrs:{id:"get-all-tasks-skills-2"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#get-all-tasks-skills-2"}},[e._v("#")]),e._v(" _get_all_tasks_skills "),t("Badge",{attrs:{text:"WithResourceSkills",type:"tip"}})],1),e._v(" "),t("skdecide-signature",{attrs:{name:"_get_all_tasks_skills",sig:{params:[{name:"self"}],return:"Dict[int, Dict[int, Dict[str, Any]]]"}}}),e._v(" "),t("p",[e._v("Return a nested dictionary where the first key is the name of a task\nand the second key is the name of a skill. The value defines the details of the skill.\nE.g. {task: {skill: (detail of skill)}}")]),e._v(" "),t("h2",{attrs:{id:"withoutresourceskills"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#withoutresourceskills"}},[e._v("#")]),e._v(" WithoutResourceSkills")]),e._v(" "),t("p",[e._v("A domain must inherit this class if no resources skills have to be considered.")]),e._v(" "),t("h3",{attrs:{id:"find-one-ressource-to-do-one-task-2"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#find-one-ressource-to-do-one-task-2"}},[e._v("#")]),e._v(" find_one_ressource_to_do_one_task "),t("Badge",{attrs:{text:"WithResourceSkills",type:"warn"}})],1),e._v(" "),t("skdecide-signature",{attrs:{name:"find_one_ressource_to_do_one_task",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"mode",annotation:"int"}],return:"List[str]"}}}),e._v(" "),t("p",[e._v("For the common case when it is possible to do the task by one resource unit.\nFor general case, it might just return no possible ressource unit.")]),e._v(" "),t("h3",{attrs:{id:"get-all-resources-skills-3"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#get-all-resources-skills-3"}},[e._v("#")]),e._v(" get_all_resources_skills "),t("Badge",{attrs:{text:"WithResourceSkills",type:"warn"}})],1),e._v(" "),t("skdecide-signature",{attrs:{name:"get_all_resources_skills",sig:{params:[{name:"self"}],return:"Dict[str, Dict[str, Any]]"}}}),e._v(" "),t("p",[e._v("Return a nested dictionary where the first key is the name of a resource type or resource unit\nand the second key is the name of a skill. The value defines the details of the skill.\nE.g. {unit: {skill: (detail of skill)}}")]),e._v(" "),t("h3",{attrs:{id:"get-all-tasks-skills-3"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#get-all-tasks-skills-3"}},[e._v("#")]),e._v(" get_all_tasks_skills "),t("Badge",{attrs:{text:"WithResourceSkills",type:"warn"}})],1),e._v(" "),t("skdecide-signature",{attrs:{name:"get_all_tasks_skills",sig:{params:[{name:"self"}],return:"Dict[int, Dict[int, Dict[str, Any]]]"}}}),e._v(" "),t("p",[e._v("Return a nested dictionary where the first key is the name of a task\nand the second key is the name of a skill. The value defines the details of the skill.\nE.g. {task: {skill: (detail of skill)}}")]),e._v(" "),t("h3",{attrs:{id:"get-skills-names-2"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#get-skills-names-2"}},[e._v("#")]),e._v(" get_skills_names "),t("Badge",{attrs:{text:"WithResourceSkills",type:"warn"}})],1),e._v(" "),t("skdecide-signature",{attrs:{name:"get_skills_names",sig:{params:[{name:"self"}],return:"Set[str]"}}}),e._v(" "),t("p",[e._v("Return a list of all skill names as a list of str. Skill names are defined in the 2 dictionaries returned\nby the get_all_resources_skills and get_all_tasks_skills functions.")]),e._v(" "),t("h3",{attrs:{id:"get-skills-of-resource-2"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#get-skills-of-resource-2"}},[e._v("#")]),e._v(" get_skills_of_resource "),t("Badge",{attrs:{text:"WithResourceSkills",type:"warn"}})],1),e._v(" "),t("skdecide-signature",{attrs:{name:"get_skills_of_resource",sig:{params:[{name:"self"},{name:"resource",annotation:"str"}],return:"Dict[str, Any]"}}}),e._v(" "),t("p",[e._v("Return the skills of a given resource")]),e._v(" "),t("h3",{attrs:{id:"get-skills-of-task-2"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#get-skills-of-task-2"}},[e._v("#")]),e._v(" get_skills_of_task "),t("Badge",{attrs:{text:"WithResourceSkills",type:"warn"}})],1),e._v(" "),t("skdecide-signature",{attrs:{name:"get_skills_of_task",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"mode",annotation:"int"}],return:"Dict[str, Any]"}}}),e._v(" "),t("p",[e._v("Return the skill requirements for a given task")]),e._v(" "),t("h3",{attrs:{id:"get-all-resources-skills-4"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#get-all-resources-skills-4"}},[e._v("#")]),e._v(" _get_all_resources_skills "),t("Badge",{attrs:{text:"WithResourceSkills",type:"warn"}})],1),e._v(" "),t("skdecide-signature",{attrs:{name:"_get_all_resources_skills",sig:{params:[{name:"self"}],return:"Dict[str, Dict[str, Any]]"}}}),e._v(" "),t("p",[e._v("Return a nested dictionary where the first key is the name of a resource type or resource unit\nand the second key is the name of a skill. The value defines the details of the skill.\nE.g. {unit: {skill: (detail of skill)}}")]),e._v(" "),t("h3",{attrs:{id:"get-all-tasks-skills-4"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#get-all-tasks-skills-4"}},[e._v("#")]),e._v(" _get_all_tasks_skills "),t("Badge",{attrs:{text:"WithResourceSkills",type:"warn"}})],1),e._v(" "),t("skdecide-signature",{attrs:{name:"_get_all_tasks_skills",sig:{params:[{name:"self"}],return:"Dict[int, Dict[str, Any]]"}}}),e._v(" "),t("p",[e._v("Return a nested dictionary where the first key is the name of a task\nand the second key is the name of a skill. The value defines the details of the skill.\nE.g. {task: {skill: (detail of skill)}}")])],1)}),[],!1,null,null,null);s.default=i.exports}}]); \ No newline at end of file diff --git a/assets/js/47.41ce156f.js b/assets/js/47.f624f9b6.js similarity index 90% rename from assets/js/47.41ce156f.js rename to assets/js/47.f624f9b6.js index 2e11bfac66..47e7c49887 100644 --- a/assets/js/47.41ce156f.js +++ b/assets/js/47.f624f9b6.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[47],{561:function(t,s,i){"use strict";i.r(s);var a=i(38),e=Object(a.a)({},(function(){var t=this.$createElement,s=this._self._c||t;return s("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[s("h1",{attrs:{id:"builders-domain-scheduling-task"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#builders-domain-scheduling-task"}},[this._v("#")]),this._v(" builders.domain.scheduling.task")]),this._v(" "),s("div",{staticClass:"custom-block tip"},[s("p",{staticClass:"custom-block-title"},[this._v("Domain specification")]),this._v(" "),s("skdecide-summary")],1)])}),[],!1,null,null,null);s.default=e.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[47],{562:function(t,s,i){"use strict";i.r(s);var a=i(38),e=Object(a.a)({},(function(){var t=this.$createElement,s=this._self._c||t;return s("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[s("h1",{attrs:{id:"builders-domain-scheduling-task"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#builders-domain-scheduling-task"}},[this._v("#")]),this._v(" builders.domain.scheduling.task")]),this._v(" "),s("div",{staticClass:"custom-block tip"},[s("p",{staticClass:"custom-block-title"},[this._v("Domain specification")]),this._v(" "),s("skdecide-summary")],1)])}),[],!1,null,null,null);s.default=e.exports}}]); \ No newline at end of file diff --git a/assets/js/48.5ef1a85f.js b/assets/js/48.c8d14038.js similarity index 99% rename from assets/js/48.5ef1a85f.js rename to assets/js/48.c8d14038.js index 7bd0454121..a99d37b0bd 100644 --- a/assets/js/48.5ef1a85f.js +++ b/assets/js/48.c8d14038.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[48],{564:function(t,a,n){"use strict";n.r(a);var e=n(38),i=Object(e.a)({},(function(){var t=this,a=t.$createElement,n=t._self._c||a;return n("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[n("h1",{attrs:{id:"builders-domain-scheduling-task-duration"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#builders-domain-scheduling-task-duration"}},[t._v("#")]),t._v(" builders.domain.scheduling.task_duration")]),t._v(" "),n("div",{staticClass:"custom-block tip"},[n("p",{staticClass:"custom-block-title"},[t._v("Domain specification")]),t._v(" "),n("skdecide-summary")],1),t._v(" "),n("h2",{attrs:{id:"simulatedtaskduration"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#simulatedtaskduration"}},[t._v("#")]),t._v(" SimulatedTaskDuration")]),t._v(" "),n("p",[t._v("A domain must inherit this class if the task duration requires sampling from a simulation.")]),t._v(" "),n("h3",{attrs:{id:"sample-task-duration"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#sample-task-duration"}},[t._v("#")]),t._v(" sample_task_duration "),n("Badge",{attrs:{text:"SimulatedTaskDuration",type:"tip"}})],1),t._v(" "),n("skdecide-signature",{attrs:{name:"sample_task_duration",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"mode",default:"1",annotation:"Optional[int]"},{name:"progress_from",default:"0.0",annotation:"Optional[float]"}],return:"int"}}}),t._v(" "),n("p",[t._v("Sample, store and return task duration for the given task in the given mode.")]),t._v(" "),n("h3",{attrs:{id:"sample-task-duration-2"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#sample-task-duration-2"}},[t._v("#")]),t._v(" _sample_task_duration "),n("Badge",{attrs:{text:"SimulatedTaskDuration",type:"tip"}})],1),t._v(" "),n("skdecide-signature",{attrs:{name:"_sample_task_duration",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"mode",default:"1",annotation:"Optional[int]"},{name:"progress_from",default:"0.0",annotation:"Optional[float]"}],return:"int"}}}),t._v(" "),n("p",[t._v("Return a task duration for the given task in the given mode.")]),t._v(" "),n("h2",{attrs:{id:"uncertainmultivariatetaskduration"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#uncertainmultivariatetaskduration"}},[t._v("#")]),t._v(" UncertainMultivariateTaskDuration")]),t._v(" "),n("p",[t._v("A domain must inherit this class if the task duration is uncertain and follows a know multivariate\ndistribution.")]),t._v(" "),n("h3",{attrs:{id:"get-task-duration-distribution"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#get-task-duration-distribution"}},[t._v("#")]),t._v(" get_task_duration_distribution "),n("Badge",{attrs:{text:"UncertainMultivariateTaskDuration",type:"tip"}})],1),t._v(" "),n("skdecide-signature",{attrs:{name:"get_task_duration_distribution",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"mode",default:"1",annotation:"Optional[int]"},{name:"progress_from",default:"0.0",annotation:"Optional[float]"},{name:"multivariate_settings",default:"None",annotation:"Optional[Dict[str, int]]"}],return:"Distribution"}}}),t._v(" "),n("p",[t._v("Return the multivariate Distribution of the duration of the given task in the given mode.\nMultivariate seetings need to be provided.")]),t._v(" "),n("h3",{attrs:{id:"sample-task-duration-3"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#sample-task-duration-3"}},[t._v("#")]),t._v(" sample_task_duration "),n("Badge",{attrs:{text:"SimulatedTaskDuration",type:"warn"}})],1),t._v(" "),n("skdecide-signature",{attrs:{name:"sample_task_duration",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"mode",default:"1",annotation:"Optional[int]"},{name:"progress_from",default:"0.0",annotation:"Optional[float]"}],return:"int"}}}),t._v(" "),n("p",[t._v("Return a task duration for the given task in the given mode,\nsampled from the underlying multiivariate distribution.")]),t._v(" "),n("h3",{attrs:{id:"get-task-duration-distribution-2"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#get-task-duration-distribution-2"}},[t._v("#")]),t._v(" _get_task_duration_distribution "),n("Badge",{attrs:{text:"UncertainMultivariateTaskDuration",type:"tip"}})],1),t._v(" "),n("skdecide-signature",{attrs:{name:"_get_task_duration_distribution",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"mode",default:"1",annotation:"Optional[int]"},{name:"progress_from",default:"0.0",annotation:"Optional[float]"},{name:"multivariate_settings",default:"None",annotation:"Optional[Dict[str, int]]"}],return:"Distribution"}}}),t._v(" "),n("p",[t._v("Return the multivariate Distribution of the duration of the given task in the given mode.\nMultivariate seetings need to be provided.")]),t._v(" "),n("h3",{attrs:{id:"sample-task-duration-4"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#sample-task-duration-4"}},[t._v("#")]),t._v(" _sample_task_duration "),n("Badge",{attrs:{text:"SimulatedTaskDuration",type:"warn"}})],1),t._v(" "),n("skdecide-signature",{attrs:{name:"_sample_task_duration",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"mode",default:"1",annotation:"Optional[int]"},{name:"progress_from",default:"0.0",annotation:"Optional[float]"}],return:"int"}}}),t._v(" "),n("p",[t._v("Return a task duration for the given task in the given mode,\nsampled from the underlying multiivariate distribution.")]),t._v(" "),n("h2",{attrs:{id:"uncertainunivariatetaskduration"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#uncertainunivariatetaskduration"}},[t._v("#")]),t._v(" UncertainUnivariateTaskDuration")]),t._v(" "),n("p",[t._v("A domain must inherit this class if the task duration is uncertain and follows a know univariate distribution.")]),t._v(" "),n("h3",{attrs:{id:"get-task-duration-distribution-3"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#get-task-duration-distribution-3"}},[t._v("#")]),t._v(" get_task_duration_distribution "),n("Badge",{attrs:{text:"UncertainMultivariateTaskDuration",type:"warn"}})],1),t._v(" "),n("skdecide-signature",{attrs:{name:"get_task_duration_distribution",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"mode",default:"1",annotation:"Optional[int]"},{name:"progress_from",default:"0.0",annotation:"Optional[float]"},{name:"multivariate_settings",default:"None",annotation:"Optional[Dict[str, int]]"}],return:"Distribution"}}}),t._v(" "),n("p",[t._v("Return the multivariate Distribution of the duration of the given task in the given mode.\nMultivariate seetings need to be provided.")]),t._v(" "),n("h3",{attrs:{id:"sample-task-duration-5"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#sample-task-duration-5"}},[t._v("#")]),t._v(" sample_task_duration "),n("Badge",{attrs:{text:"SimulatedTaskDuration",type:"warn"}})],1),t._v(" "),n("skdecide-signature",{attrs:{name:"sample_task_duration",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"mode",default:"1",annotation:"Optional[int]"},{name:"progress_from",default:"0.0",annotation:"Optional[float]"}],return:"int"}}}),t._v(" "),n("p",[t._v("Return a task duration for the given task in the given mode,\nsampled from the underlying multiivariate distribution.")]),t._v(" "),n("h3",{attrs:{id:"get-task-duration-distribution-4"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#get-task-duration-distribution-4"}},[t._v("#")]),t._v(" _get_task_duration_distribution "),n("Badge",{attrs:{text:"UncertainMultivariateTaskDuration",type:"warn"}})],1),t._v(" "),n("skdecide-signature",{attrs:{name:"_get_task_duration_distribution",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"mode",default:"1",annotation:"Optional[int]"},{name:"progress_from",default:"0.0",annotation:"Optional[float]"},{name:"multivariate_settings",default:"None",annotation:"Optional[Dict[str, int]]"}],return:"Distribution"}}}),t._v(" "),n("p",[t._v("Return the univariate Distribution of the duration of the given task in the given mode.")]),t._v(" "),n("h3",{attrs:{id:"sample-task-duration-6"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#sample-task-duration-6"}},[t._v("#")]),t._v(" _sample_task_duration "),n("Badge",{attrs:{text:"SimulatedTaskDuration",type:"warn"}})],1),t._v(" "),n("skdecide-signature",{attrs:{name:"_sample_task_duration",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"mode",default:"1",annotation:"Optional[int]"},{name:"progress_from",default:"0.0",annotation:"Optional[float]"}],return:"int"}}}),t._v(" "),n("p",[t._v("Return a task duration for the given task in the given mode,\nsampled from the underlying univariate distribution.")]),t._v(" "),n("h2",{attrs:{id:"uncertainboundedtaskduration"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#uncertainboundedtaskduration"}},[t._v("#")]),t._v(" UncertainBoundedTaskDuration")]),t._v(" "),n("p",[t._v("A domain must inherit this class if the task duration is known to be between a lower and upper bound\nand follows a known distribution between these bounds.")]),t._v(" "),n("h3",{attrs:{id:"get-task-duration-distribution-5"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#get-task-duration-distribution-5"}},[t._v("#")]),t._v(" get_task_duration_distribution "),n("Badge",{attrs:{text:"UncertainMultivariateTaskDuration",type:"warn"}})],1),t._v(" "),n("skdecide-signature",{attrs:{name:"get_task_duration_distribution",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"mode",default:"1",annotation:"Optional[int]"},{name:"progress_from",default:"0.0",annotation:"Optional[float]"},{name:"multivariate_settings",default:"None",annotation:"Optional[Dict[str, int]]"}],return:"Distribution"}}}),t._v(" "),n("p",[t._v("Return the multivariate Distribution of the duration of the given task in the given mode.\nMultivariate seetings need to be provided.")]),t._v(" "),n("h3",{attrs:{id:"get-task-duration-lower-bound"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#get-task-duration-lower-bound"}},[t._v("#")]),t._v(" get_task_duration_lower_bound "),n("Badge",{attrs:{text:"UncertainBoundedTaskDuration",type:"tip"}})],1),t._v(" "),n("skdecide-signature",{attrs:{name:"get_task_duration_lower_bound",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"mode",default:"1",annotation:"Optional[int]"},{name:"progress_from",default:"0.0",annotation:"Optional[float]"}],return:"int"}}}),t._v(" "),n("p",[t._v("Return the lower bound for the task duration of the given task in the given mode.")]),t._v(" "),n("h3",{attrs:{id:"get-task-duration-upper-bound"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#get-task-duration-upper-bound"}},[t._v("#")]),t._v(" get_task_duration_upper_bound "),n("Badge",{attrs:{text:"UncertainBoundedTaskDuration",type:"tip"}})],1),t._v(" "),n("skdecide-signature",{attrs:{name:"get_task_duration_upper_bound",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"mode",default:"1",annotation:"Optional[int]"},{name:"progress_from",default:"0.0",annotation:"Optional[float]"}],return:"int"}}}),t._v(" "),n("p",[t._v("Return the upper bound for the task duration of the given task in the given mode.")]),t._v(" "),n("h3",{attrs:{id:"sample-task-duration-7"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#sample-task-duration-7"}},[t._v("#")]),t._v(" sample_task_duration "),n("Badge",{attrs:{text:"SimulatedTaskDuration",type:"warn"}})],1),t._v(" "),n("skdecide-signature",{attrs:{name:"sample_task_duration",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"mode",default:"1",annotation:"Optional[int]"},{name:"progress_from",default:"0.0",annotation:"Optional[float]"}],return:"int"}}}),t._v(" "),n("p",[t._v("Return a task duration for the given task in the given mode,\nsampled from the underlying multiivariate distribution.")]),t._v(" "),n("h3",{attrs:{id:"get-task-duration-distribution-6"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#get-task-duration-distribution-6"}},[t._v("#")]),t._v(" _get_task_duration_distribution "),n("Badge",{attrs:{text:"UncertainMultivariateTaskDuration",type:"warn"}})],1),t._v(" "),n("skdecide-signature",{attrs:{name:"_get_task_duration_distribution",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"mode",default:"1",annotation:"Optional[int]"},{name:"progress_from",default:"0.0",annotation:"Optional[float]"},{name:"multivariate_settings",default:"None",annotation:"Optional[Dict[str, int]]"}],return:"DiscreteDistribution"}}}),t._v(" "),n("p",[t._v("Return the Distribution of the duration of the given task in the given mode.\nThe distribution returns values beween the defined lower and upper bounds.")]),t._v(" "),n("h3",{attrs:{id:"get-task-duration-lower-bound-2"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#get-task-duration-lower-bound-2"}},[t._v("#")]),t._v(" _get_task_duration_lower_bound "),n("Badge",{attrs:{text:"UncertainBoundedTaskDuration",type:"tip"}})],1),t._v(" "),n("skdecide-signature",{attrs:{name:"_get_task_duration_lower_bound",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"mode",default:"1",annotation:"Optional[int]"},{name:"progress_from",default:"0.0",annotation:"Optional[float]"}],return:"int"}}}),t._v(" "),n("p",[t._v("Return the lower bound for the task duration of the given task in the given mode.")]),t._v(" "),n("h3",{attrs:{id:"get-task-duration-upper-bound-2"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#get-task-duration-upper-bound-2"}},[t._v("#")]),t._v(" _get_task_duration_upper_bound "),n("Badge",{attrs:{text:"UncertainBoundedTaskDuration",type:"tip"}})],1),t._v(" "),n("skdecide-signature",{attrs:{name:"_get_task_duration_upper_bound",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"mode",default:"1",annotation:"Optional[int]"},{name:"progress_from",default:"0.0",annotation:"Optional[float]"}],return:"int"}}}),t._v(" "),n("p",[t._v("Return the upper bound for the task duration of the given task in the given mode.")]),t._v(" "),n("h3",{attrs:{id:"sample-task-duration-8"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#sample-task-duration-8"}},[t._v("#")]),t._v(" _sample_task_duration "),n("Badge",{attrs:{text:"SimulatedTaskDuration",type:"warn"}})],1),t._v(" "),n("skdecide-signature",{attrs:{name:"_sample_task_duration",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"mode",default:"1",annotation:"Optional[int]"},{name:"progress_from",default:"0.0",annotation:"Optional[float]"}],return:"int"}}}),t._v(" "),n("p",[t._v("Return a task duration for the given task in the given mode,\nsampled from the underlying univariate bounded distribution.")]),t._v(" "),n("h2",{attrs:{id:"uniformboundedtaskduration"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#uniformboundedtaskduration"}},[t._v("#")]),t._v(" UniformBoundedTaskDuration")]),t._v(" "),n("p",[t._v("A domain must inherit this class if the task duration is known to be between a lower and upper bound\nand follows a uniform distribution between these bounds.")]),t._v(" "),n("h3",{attrs:{id:"get-task-duration-distribution-7"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#get-task-duration-distribution-7"}},[t._v("#")]),t._v(" get_task_duration_distribution "),n("Badge",{attrs:{text:"UncertainMultivariateTaskDuration",type:"warn"}})],1),t._v(" "),n("skdecide-signature",{attrs:{name:"get_task_duration_distribution",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"mode",default:"1",annotation:"Optional[int]"},{name:"progress_from",default:"0.0",annotation:"Optional[float]"},{name:"multivariate_settings",default:"None",annotation:"Optional[Dict[str, int]]"}],return:"Distribution"}}}),t._v(" "),n("p",[t._v("Return the multivariate Distribution of the duration of the given task in the given mode.\nMultivariate seetings need to be provided.")]),t._v(" "),n("h3",{attrs:{id:"get-task-duration-lower-bound-3"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#get-task-duration-lower-bound-3"}},[t._v("#")]),t._v(" get_task_duration_lower_bound "),n("Badge",{attrs:{text:"UncertainBoundedTaskDuration",type:"warn"}})],1),t._v(" "),n("skdecide-signature",{attrs:{name:"get_task_duration_lower_bound",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"mode",default:"1",annotation:"Optional[int]"},{name:"progress_from",default:"0.0",annotation:"Optional[float]"}],return:"int"}}}),t._v(" "),n("p",[t._v("Return the lower bound for the task duration of the given task in the given mode.")]),t._v(" "),n("h3",{attrs:{id:"get-task-duration-upper-bound-3"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#get-task-duration-upper-bound-3"}},[t._v("#")]),t._v(" get_task_duration_upper_bound "),n("Badge",{attrs:{text:"UncertainBoundedTaskDuration",type:"warn"}})],1),t._v(" "),n("skdecide-signature",{attrs:{name:"get_task_duration_upper_bound",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"mode",default:"1",annotation:"Optional[int]"},{name:"progress_from",default:"0.0",annotation:"Optional[float]"}],return:"int"}}}),t._v(" "),n("p",[t._v("Return the upper bound for the task duration of the given task in the given mode.")]),t._v(" "),n("h3",{attrs:{id:"sample-task-duration-9"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#sample-task-duration-9"}},[t._v("#")]),t._v(" sample_task_duration "),n("Badge",{attrs:{text:"SimulatedTaskDuration",type:"warn"}})],1),t._v(" "),n("skdecide-signature",{attrs:{name:"sample_task_duration",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"mode",default:"1",annotation:"Optional[int]"},{name:"progress_from",default:"0.0",annotation:"Optional[float]"}],return:"int"}}}),t._v(" "),n("p",[t._v("Return a task duration for the given task in the given mode,\nsampled from the underlying multiivariate distribution.")]),t._v(" "),n("h3",{attrs:{id:"get-task-duration-distribution-8"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#get-task-duration-distribution-8"}},[t._v("#")]),t._v(" _get_task_duration_distribution "),n("Badge",{attrs:{text:"UncertainMultivariateTaskDuration",type:"warn"}})],1),t._v(" "),n("skdecide-signature",{attrs:{name:"_get_task_duration_distribution",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"mode",default:"1",annotation:"Optional[int]"},{name:"progress_from",default:"0.0",annotation:"Optional[float]"},{name:"multivariate_settings",default:"None",annotation:"Optional[Dict[str, int]]"}],return:"DiscreteDistribution"}}}),t._v(" "),n("p",[t._v("Return the Distribution of the duration of the given task in the given mode.\nThe distribution is uniform between the defined lower and upper bounds.")]),t._v(" "),n("h3",{attrs:{id:"get-task-duration-lower-bound-4"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#get-task-duration-lower-bound-4"}},[t._v("#")]),t._v(" _get_task_duration_lower_bound "),n("Badge",{attrs:{text:"UncertainBoundedTaskDuration",type:"warn"}})],1),t._v(" "),n("skdecide-signature",{attrs:{name:"_get_task_duration_lower_bound",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"mode",default:"1",annotation:"Optional[int]"},{name:"progress_from",default:"0.0",annotation:"Optional[float]"}],return:"int"}}}),t._v(" "),n("p",[t._v("Return the lower bound for the task duration of the given task in the given mode.")]),t._v(" "),n("h3",{attrs:{id:"get-task-duration-upper-bound-4"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#get-task-duration-upper-bound-4"}},[t._v("#")]),t._v(" _get_task_duration_upper_bound "),n("Badge",{attrs:{text:"UncertainBoundedTaskDuration",type:"warn"}})],1),t._v(" "),n("skdecide-signature",{attrs:{name:"_get_task_duration_upper_bound",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"mode",default:"1",annotation:"Optional[int]"},{name:"progress_from",default:"0.0",annotation:"Optional[float]"}],return:"int"}}}),t._v(" "),n("p",[t._v("Return the upper bound for the task duration of the given task in the given mode.")]),t._v(" "),n("h3",{attrs:{id:"sample-task-duration-10"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#sample-task-duration-10"}},[t._v("#")]),t._v(" _sample_task_duration "),n("Badge",{attrs:{text:"SimulatedTaskDuration",type:"warn"}})],1),t._v(" "),n("skdecide-signature",{attrs:{name:"_sample_task_duration",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"mode",default:"1",annotation:"Optional[int]"},{name:"progress_from",default:"0.0",annotation:"Optional[float]"}],return:"int"}}}),t._v(" "),n("p",[t._v("Return a task duration for the given task in the given mode,\nsampled from the underlying univariate uniform bounded distribution.")]),t._v(" "),n("h2",{attrs:{id:"enumerabletaskduration"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#enumerabletaskduration"}},[t._v("#")]),t._v(" EnumerableTaskDuration")]),t._v(" "),n("p",[t._v("A domain must inherit this class if the task duration for each task is enumerable.")]),t._v(" "),n("h3",{attrs:{id:"get-task-duration-distribution-9"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#get-task-duration-distribution-9"}},[t._v("#")]),t._v(" get_task_duration_distribution "),n("Badge",{attrs:{text:"UncertainMultivariateTaskDuration",type:"warn"}})],1),t._v(" "),n("skdecide-signature",{attrs:{name:"get_task_duration_distribution",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"mode",default:"1",annotation:"Optional[int]"},{name:"progress_from",default:"0.0",annotation:"Optional[float]"},{name:"multivariate_settings",default:"None",annotation:"Optional[Dict[str, int]]"}],return:"Distribution"}}}),t._v(" "),n("p",[t._v("Return the multivariate Distribution of the duration of the given task in the given mode.\nMultivariate seetings need to be provided.")]),t._v(" "),n("h3",{attrs:{id:"get-task-duration-lower-bound-5"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#get-task-duration-lower-bound-5"}},[t._v("#")]),t._v(" get_task_duration_lower_bound "),n("Badge",{attrs:{text:"UncertainBoundedTaskDuration",type:"warn"}})],1),t._v(" "),n("skdecide-signature",{attrs:{name:"get_task_duration_lower_bound",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"mode",default:"1",annotation:"Optional[int]"},{name:"progress_from",default:"0.0",annotation:"Optional[float]"}],return:"int"}}}),t._v(" "),n("p",[t._v("Return the lower bound for the task duration of the given task in the given mode.")]),t._v(" "),n("h3",{attrs:{id:"get-task-duration-upper-bound-5"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#get-task-duration-upper-bound-5"}},[t._v("#")]),t._v(" get_task_duration_upper_bound "),n("Badge",{attrs:{text:"UncertainBoundedTaskDuration",type:"warn"}})],1),t._v(" "),n("skdecide-signature",{attrs:{name:"get_task_duration_upper_bound",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"mode",default:"1",annotation:"Optional[int]"},{name:"progress_from",default:"0.0",annotation:"Optional[float]"}],return:"int"}}}),t._v(" "),n("p",[t._v("Return the upper bound for the task duration of the given task in the given mode.")]),t._v(" "),n("h3",{attrs:{id:"sample-task-duration-11"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#sample-task-duration-11"}},[t._v("#")]),t._v(" sample_task_duration "),n("Badge",{attrs:{text:"SimulatedTaskDuration",type:"warn"}})],1),t._v(" "),n("skdecide-signature",{attrs:{name:"sample_task_duration",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"mode",default:"1",annotation:"Optional[int]"},{name:"progress_from",default:"0.0",annotation:"Optional[float]"}],return:"int"}}}),t._v(" "),n("p",[t._v("Return a task duration for the given task in the given mode,\nsampled from the underlying multiivariate distribution.")]),t._v(" "),n("h3",{attrs:{id:"get-task-duration-distribution-10"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#get-task-duration-distribution-10"}},[t._v("#")]),t._v(" _get_task_duration_distribution "),n("Badge",{attrs:{text:"UncertainMultivariateTaskDuration",type:"warn"}})],1),t._v(" "),n("skdecide-signature",{attrs:{name:"_get_task_duration_distribution",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"mode",default:"1",annotation:"Optional[int]"},{name:"progress_from",default:"0.0",annotation:"Optional[float]"},{name:"multivariate_settings",default:"None",annotation:"Optional[Dict[str, int]]"}],return:"DiscreteDistribution"}}}),t._v(" "),n("p",[t._v("Return the Distribution of the duration of the given task in the given mode.\nas an Enumerable.")]),t._v(" "),n("h3",{attrs:{id:"get-task-duration-lower-bound-6"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#get-task-duration-lower-bound-6"}},[t._v("#")]),t._v(" _get_task_duration_lower_bound "),n("Badge",{attrs:{text:"UncertainBoundedTaskDuration",type:"warn"}})],1),t._v(" "),n("skdecide-signature",{attrs:{name:"_get_task_duration_lower_bound",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"mode",default:"1",annotation:"Optional[int]"},{name:"progress_from",default:"0.0",annotation:"Optional[float]"}],return:"int"}}}),t._v(" "),n("p",[t._v("Return the lower bound for the task duration of the given task in the given mode.")]),t._v(" "),n("h3",{attrs:{id:"get-task-duration-upper-bound-6"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#get-task-duration-upper-bound-6"}},[t._v("#")]),t._v(" _get_task_duration_upper_bound "),n("Badge",{attrs:{text:"UncertainBoundedTaskDuration",type:"warn"}})],1),t._v(" "),n("skdecide-signature",{attrs:{name:"_get_task_duration_upper_bound",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"mode",default:"1",annotation:"Optional[int]"},{name:"progress_from",default:"0.0",annotation:"Optional[float]"}],return:"int"}}}),t._v(" "),n("p",[t._v("Return the upper bound for the task duration of the given task in the given mode.")]),t._v(" "),n("h3",{attrs:{id:"sample-task-duration-12"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#sample-task-duration-12"}},[t._v("#")]),t._v(" _sample_task_duration "),n("Badge",{attrs:{text:"SimulatedTaskDuration",type:"warn"}})],1),t._v(" "),n("skdecide-signature",{attrs:{name:"_sample_task_duration",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"mode",default:"1",annotation:"Optional[int]"},{name:"progress_from",default:"0.0",annotation:"Optional[float]"}],return:"int"}}}),t._v(" "),n("p",[t._v("Return a task duration for the given task in the given mode.")]),t._v(" "),n("h2",{attrs:{id:"deterministictaskduration"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#deterministictaskduration"}},[t._v("#")]),t._v(" DeterministicTaskDuration")]),t._v(" "),n("p",[t._v("A domain must inherit this class if the task durations are known and deterministic.")]),t._v(" "),n("h3",{attrs:{id:"get-task-duration"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#get-task-duration"}},[t._v("#")]),t._v(" get_task_duration "),n("Badge",{attrs:{text:"DeterministicTaskDuration",type:"tip"}})],1),t._v(" "),n("skdecide-signature",{attrs:{name:"get_task_duration",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"mode",default:"1",annotation:"Optional[int]"},{name:"progress_from",default:"0.0",annotation:"Optional[float]"}],return:"int"}}}),t._v(" "),n("p",[t._v("Return the fixed deterministic task duration of the given task in the given mode.")]),t._v(" "),n("h3",{attrs:{id:"get-task-duration-distribution-11"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#get-task-duration-distribution-11"}},[t._v("#")]),t._v(" get_task_duration_distribution "),n("Badge",{attrs:{text:"UncertainMultivariateTaskDuration",type:"warn"}})],1),t._v(" "),n("skdecide-signature",{attrs:{name:"get_task_duration_distribution",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"mode",default:"1",annotation:"Optional[int]"},{name:"progress_from",default:"0.0",annotation:"Optional[float]"},{name:"multivariate_settings",default:"None",annotation:"Optional[Dict[str, int]]"}],return:"Distribution"}}}),t._v(" "),n("p",[t._v("Return the multivariate Distribution of the duration of the given task in the given mode.\nMultivariate seetings need to be provided.")]),t._v(" "),n("h3",{attrs:{id:"get-task-duration-lower-bound-7"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#get-task-duration-lower-bound-7"}},[t._v("#")]),t._v(" get_task_duration_lower_bound "),n("Badge",{attrs:{text:"UncertainBoundedTaskDuration",type:"warn"}})],1),t._v(" "),n("skdecide-signature",{attrs:{name:"get_task_duration_lower_bound",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"mode",default:"1",annotation:"Optional[int]"},{name:"progress_from",default:"0.0",annotation:"Optional[float]"}],return:"int"}}}),t._v(" "),n("p",[t._v("Return the lower bound for the task duration of the given task in the given mode.")]),t._v(" "),n("h3",{attrs:{id:"get-task-duration-upper-bound-7"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#get-task-duration-upper-bound-7"}},[t._v("#")]),t._v(" get_task_duration_upper_bound "),n("Badge",{attrs:{text:"UncertainBoundedTaskDuration",type:"warn"}})],1),t._v(" "),n("skdecide-signature",{attrs:{name:"get_task_duration_upper_bound",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"mode",default:"1",annotation:"Optional[int]"},{name:"progress_from",default:"0.0",annotation:"Optional[float]"}],return:"int"}}}),t._v(" "),n("p",[t._v("Return the upper bound for the task duration of the given task in the given mode.")]),t._v(" "),n("h3",{attrs:{id:"sample-task-duration-13"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#sample-task-duration-13"}},[t._v("#")]),t._v(" sample_task_duration "),n("Badge",{attrs:{text:"SimulatedTaskDuration",type:"warn"}})],1),t._v(" "),n("skdecide-signature",{attrs:{name:"sample_task_duration",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"mode",default:"1",annotation:"Optional[int]"},{name:"progress_from",default:"0.0",annotation:"Optional[float]"}],return:"int"}}}),t._v(" "),n("p",[t._v("Return a task duration for the given task in the given mode,\nsampled from the underlying multiivariate distribution.")]),t._v(" "),n("h3",{attrs:{id:"get-task-duration-2"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#get-task-duration-2"}},[t._v("#")]),t._v(" _get_task_duration "),n("Badge",{attrs:{text:"DeterministicTaskDuration",type:"tip"}})],1),t._v(" "),n("skdecide-signature",{attrs:{name:"_get_task_duration",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"mode",default:"1",annotation:"Optional[int]"},{name:"progress_from",default:"0.0",annotation:"Optional[float]"}],return:"int"}}}),t._v(" "),n("p",[t._v("Return the fixed deterministic task duration of the given task in the given mode.")]),t._v(" "),n("h3",{attrs:{id:"get-task-duration-distribution-12"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#get-task-duration-distribution-12"}},[t._v("#")]),t._v(" _get_task_duration_distribution "),n("Badge",{attrs:{text:"UncertainMultivariateTaskDuration",type:"warn"}})],1),t._v(" "),n("skdecide-signature",{attrs:{name:"_get_task_duration_distribution",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"mode",default:"1",annotation:"Optional[int]"},{name:"progress_from",default:"0.0",annotation:"Optional[float]"},{name:"multivariate_settings",default:"None",annotation:"Optional[Dict[str, int]]"}]}}}),t._v(" "),n("p",[t._v("Return the Distribution of the duration of the given task in the given mode.\nBecause the duration is deterministic, the distribution always returns the same duration.")]),t._v(" "),n("h3",{attrs:{id:"get-task-duration-lower-bound-8"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#get-task-duration-lower-bound-8"}},[t._v("#")]),t._v(" _get_task_duration_lower_bound "),n("Badge",{attrs:{text:"UncertainBoundedTaskDuration",type:"warn"}})],1),t._v(" "),n("skdecide-signature",{attrs:{name:"_get_task_duration_lower_bound",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"mode",default:"1",annotation:"Optional[int]"},{name:"progress_from",default:"0.0",annotation:"Optional[float]"}],return:"int"}}}),t._v(" "),n("p",[t._v("Return the lower bound for the task duration of the given task in the given mode.")]),t._v(" "),n("h3",{attrs:{id:"get-task-duration-upper-bound-8"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#get-task-duration-upper-bound-8"}},[t._v("#")]),t._v(" _get_task_duration_upper_bound "),n("Badge",{attrs:{text:"UncertainBoundedTaskDuration",type:"warn"}})],1),t._v(" "),n("skdecide-signature",{attrs:{name:"_get_task_duration_upper_bound",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"mode",default:"1",annotation:"Optional[int]"},{name:"progress_from",default:"0.0",annotation:"Optional[float]"}],return:"int"}}}),t._v(" "),n("p",[t._v("Return the upper bound for the task duration of the given task in the given mode.")]),t._v(" "),n("h3",{attrs:{id:"sample-task-duration-14"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#sample-task-duration-14"}},[t._v("#")]),t._v(" _sample_task_duration "),n("Badge",{attrs:{text:"SimulatedTaskDuration",type:"warn"}})],1),t._v(" "),n("skdecide-signature",{attrs:{name:"_sample_task_duration",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"mode",default:"1",annotation:"Optional[int]"},{name:"progress_from",default:"0.0",annotation:"Optional[float]"}],return:"int"}}}),t._v(" "),n("p",[t._v("Return a task duration for the given task in the given mode.")])],1)}),[],!1,null,null,null);a.default=i.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[48],{565:function(t,a,n){"use strict";n.r(a);var e=n(38),i=Object(e.a)({},(function(){var t=this,a=t.$createElement,n=t._self._c||a;return n("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[n("h1",{attrs:{id:"builders-domain-scheduling-task-duration"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#builders-domain-scheduling-task-duration"}},[t._v("#")]),t._v(" builders.domain.scheduling.task_duration")]),t._v(" "),n("div",{staticClass:"custom-block tip"},[n("p",{staticClass:"custom-block-title"},[t._v("Domain specification")]),t._v(" "),n("skdecide-summary")],1),t._v(" "),n("h2",{attrs:{id:"simulatedtaskduration"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#simulatedtaskduration"}},[t._v("#")]),t._v(" SimulatedTaskDuration")]),t._v(" "),n("p",[t._v("A domain must inherit this class if the task duration requires sampling from a simulation.")]),t._v(" "),n("h3",{attrs:{id:"sample-task-duration"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#sample-task-duration"}},[t._v("#")]),t._v(" sample_task_duration "),n("Badge",{attrs:{text:"SimulatedTaskDuration",type:"tip"}})],1),t._v(" "),n("skdecide-signature",{attrs:{name:"sample_task_duration",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"mode",default:"1",annotation:"Optional[int]"},{name:"progress_from",default:"0.0",annotation:"Optional[float]"}],return:"int"}}}),t._v(" "),n("p",[t._v("Sample, store and return task duration for the given task in the given mode.")]),t._v(" "),n("h3",{attrs:{id:"sample-task-duration-2"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#sample-task-duration-2"}},[t._v("#")]),t._v(" _sample_task_duration "),n("Badge",{attrs:{text:"SimulatedTaskDuration",type:"tip"}})],1),t._v(" "),n("skdecide-signature",{attrs:{name:"_sample_task_duration",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"mode",default:"1",annotation:"Optional[int]"},{name:"progress_from",default:"0.0",annotation:"Optional[float]"}],return:"int"}}}),t._v(" "),n("p",[t._v("Return a task duration for the given task in the given mode.")]),t._v(" "),n("h2",{attrs:{id:"uncertainmultivariatetaskduration"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#uncertainmultivariatetaskduration"}},[t._v("#")]),t._v(" UncertainMultivariateTaskDuration")]),t._v(" "),n("p",[t._v("A domain must inherit this class if the task duration is uncertain and follows a know multivariate\ndistribution.")]),t._v(" "),n("h3",{attrs:{id:"get-task-duration-distribution"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#get-task-duration-distribution"}},[t._v("#")]),t._v(" get_task_duration_distribution "),n("Badge",{attrs:{text:"UncertainMultivariateTaskDuration",type:"tip"}})],1),t._v(" "),n("skdecide-signature",{attrs:{name:"get_task_duration_distribution",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"mode",default:"1",annotation:"Optional[int]"},{name:"progress_from",default:"0.0",annotation:"Optional[float]"},{name:"multivariate_settings",default:"None",annotation:"Optional[Dict[str, int]]"}],return:"Distribution"}}}),t._v(" "),n("p",[t._v("Return the multivariate Distribution of the duration of the given task in the given mode.\nMultivariate seetings need to be provided.")]),t._v(" "),n("h3",{attrs:{id:"sample-task-duration-3"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#sample-task-duration-3"}},[t._v("#")]),t._v(" sample_task_duration "),n("Badge",{attrs:{text:"SimulatedTaskDuration",type:"warn"}})],1),t._v(" "),n("skdecide-signature",{attrs:{name:"sample_task_duration",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"mode",default:"1",annotation:"Optional[int]"},{name:"progress_from",default:"0.0",annotation:"Optional[float]"}],return:"int"}}}),t._v(" "),n("p",[t._v("Return a task duration for the given task in the given mode,\nsampled from the underlying multiivariate distribution.")]),t._v(" "),n("h3",{attrs:{id:"get-task-duration-distribution-2"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#get-task-duration-distribution-2"}},[t._v("#")]),t._v(" _get_task_duration_distribution "),n("Badge",{attrs:{text:"UncertainMultivariateTaskDuration",type:"tip"}})],1),t._v(" "),n("skdecide-signature",{attrs:{name:"_get_task_duration_distribution",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"mode",default:"1",annotation:"Optional[int]"},{name:"progress_from",default:"0.0",annotation:"Optional[float]"},{name:"multivariate_settings",default:"None",annotation:"Optional[Dict[str, int]]"}],return:"Distribution"}}}),t._v(" "),n("p",[t._v("Return the multivariate Distribution of the duration of the given task in the given mode.\nMultivariate seetings need to be provided.")]),t._v(" "),n("h3",{attrs:{id:"sample-task-duration-4"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#sample-task-duration-4"}},[t._v("#")]),t._v(" _sample_task_duration "),n("Badge",{attrs:{text:"SimulatedTaskDuration",type:"warn"}})],1),t._v(" "),n("skdecide-signature",{attrs:{name:"_sample_task_duration",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"mode",default:"1",annotation:"Optional[int]"},{name:"progress_from",default:"0.0",annotation:"Optional[float]"}],return:"int"}}}),t._v(" "),n("p",[t._v("Return a task duration for the given task in the given mode,\nsampled from the underlying multiivariate distribution.")]),t._v(" "),n("h2",{attrs:{id:"uncertainunivariatetaskduration"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#uncertainunivariatetaskduration"}},[t._v("#")]),t._v(" UncertainUnivariateTaskDuration")]),t._v(" "),n("p",[t._v("A domain must inherit this class if the task duration is uncertain and follows a know univariate distribution.")]),t._v(" "),n("h3",{attrs:{id:"get-task-duration-distribution-3"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#get-task-duration-distribution-3"}},[t._v("#")]),t._v(" get_task_duration_distribution "),n("Badge",{attrs:{text:"UncertainMultivariateTaskDuration",type:"warn"}})],1),t._v(" "),n("skdecide-signature",{attrs:{name:"get_task_duration_distribution",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"mode",default:"1",annotation:"Optional[int]"},{name:"progress_from",default:"0.0",annotation:"Optional[float]"},{name:"multivariate_settings",default:"None",annotation:"Optional[Dict[str, int]]"}],return:"Distribution"}}}),t._v(" "),n("p",[t._v("Return the multivariate Distribution of the duration of the given task in the given mode.\nMultivariate seetings need to be provided.")]),t._v(" "),n("h3",{attrs:{id:"sample-task-duration-5"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#sample-task-duration-5"}},[t._v("#")]),t._v(" sample_task_duration "),n("Badge",{attrs:{text:"SimulatedTaskDuration",type:"warn"}})],1),t._v(" "),n("skdecide-signature",{attrs:{name:"sample_task_duration",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"mode",default:"1",annotation:"Optional[int]"},{name:"progress_from",default:"0.0",annotation:"Optional[float]"}],return:"int"}}}),t._v(" "),n("p",[t._v("Return a task duration for the given task in the given mode,\nsampled from the underlying multiivariate distribution.")]),t._v(" "),n("h3",{attrs:{id:"get-task-duration-distribution-4"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#get-task-duration-distribution-4"}},[t._v("#")]),t._v(" _get_task_duration_distribution "),n("Badge",{attrs:{text:"UncertainMultivariateTaskDuration",type:"warn"}})],1),t._v(" "),n("skdecide-signature",{attrs:{name:"_get_task_duration_distribution",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"mode",default:"1",annotation:"Optional[int]"},{name:"progress_from",default:"0.0",annotation:"Optional[float]"},{name:"multivariate_settings",default:"None",annotation:"Optional[Dict[str, int]]"}],return:"Distribution"}}}),t._v(" "),n("p",[t._v("Return the univariate Distribution of the duration of the given task in the given mode.")]),t._v(" "),n("h3",{attrs:{id:"sample-task-duration-6"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#sample-task-duration-6"}},[t._v("#")]),t._v(" _sample_task_duration "),n("Badge",{attrs:{text:"SimulatedTaskDuration",type:"warn"}})],1),t._v(" "),n("skdecide-signature",{attrs:{name:"_sample_task_duration",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"mode",default:"1",annotation:"Optional[int]"},{name:"progress_from",default:"0.0",annotation:"Optional[float]"}],return:"int"}}}),t._v(" "),n("p",[t._v("Return a task duration for the given task in the given mode,\nsampled from the underlying univariate distribution.")]),t._v(" "),n("h2",{attrs:{id:"uncertainboundedtaskduration"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#uncertainboundedtaskduration"}},[t._v("#")]),t._v(" UncertainBoundedTaskDuration")]),t._v(" "),n("p",[t._v("A domain must inherit this class if the task duration is known to be between a lower and upper bound\nand follows a known distribution between these bounds.")]),t._v(" "),n("h3",{attrs:{id:"get-task-duration-distribution-5"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#get-task-duration-distribution-5"}},[t._v("#")]),t._v(" get_task_duration_distribution "),n("Badge",{attrs:{text:"UncertainMultivariateTaskDuration",type:"warn"}})],1),t._v(" "),n("skdecide-signature",{attrs:{name:"get_task_duration_distribution",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"mode",default:"1",annotation:"Optional[int]"},{name:"progress_from",default:"0.0",annotation:"Optional[float]"},{name:"multivariate_settings",default:"None",annotation:"Optional[Dict[str, int]]"}],return:"Distribution"}}}),t._v(" "),n("p",[t._v("Return the multivariate Distribution of the duration of the given task in the given mode.\nMultivariate seetings need to be provided.")]),t._v(" "),n("h3",{attrs:{id:"get-task-duration-lower-bound"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#get-task-duration-lower-bound"}},[t._v("#")]),t._v(" get_task_duration_lower_bound "),n("Badge",{attrs:{text:"UncertainBoundedTaskDuration",type:"tip"}})],1),t._v(" "),n("skdecide-signature",{attrs:{name:"get_task_duration_lower_bound",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"mode",default:"1",annotation:"Optional[int]"},{name:"progress_from",default:"0.0",annotation:"Optional[float]"}],return:"int"}}}),t._v(" "),n("p",[t._v("Return the lower bound for the task duration of the given task in the given mode.")]),t._v(" "),n("h3",{attrs:{id:"get-task-duration-upper-bound"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#get-task-duration-upper-bound"}},[t._v("#")]),t._v(" get_task_duration_upper_bound "),n("Badge",{attrs:{text:"UncertainBoundedTaskDuration",type:"tip"}})],1),t._v(" "),n("skdecide-signature",{attrs:{name:"get_task_duration_upper_bound",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"mode",default:"1",annotation:"Optional[int]"},{name:"progress_from",default:"0.0",annotation:"Optional[float]"}],return:"int"}}}),t._v(" "),n("p",[t._v("Return the upper bound for the task duration of the given task in the given mode.")]),t._v(" "),n("h3",{attrs:{id:"sample-task-duration-7"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#sample-task-duration-7"}},[t._v("#")]),t._v(" sample_task_duration "),n("Badge",{attrs:{text:"SimulatedTaskDuration",type:"warn"}})],1),t._v(" "),n("skdecide-signature",{attrs:{name:"sample_task_duration",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"mode",default:"1",annotation:"Optional[int]"},{name:"progress_from",default:"0.0",annotation:"Optional[float]"}],return:"int"}}}),t._v(" "),n("p",[t._v("Return a task duration for the given task in the given mode,\nsampled from the underlying multiivariate distribution.")]),t._v(" "),n("h3",{attrs:{id:"get-task-duration-distribution-6"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#get-task-duration-distribution-6"}},[t._v("#")]),t._v(" _get_task_duration_distribution "),n("Badge",{attrs:{text:"UncertainMultivariateTaskDuration",type:"warn"}})],1),t._v(" "),n("skdecide-signature",{attrs:{name:"_get_task_duration_distribution",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"mode",default:"1",annotation:"Optional[int]"},{name:"progress_from",default:"0.0",annotation:"Optional[float]"},{name:"multivariate_settings",default:"None",annotation:"Optional[Dict[str, int]]"}],return:"DiscreteDistribution"}}}),t._v(" "),n("p",[t._v("Return the Distribution of the duration of the given task in the given mode.\nThe distribution returns values beween the defined lower and upper bounds.")]),t._v(" "),n("h3",{attrs:{id:"get-task-duration-lower-bound-2"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#get-task-duration-lower-bound-2"}},[t._v("#")]),t._v(" _get_task_duration_lower_bound "),n("Badge",{attrs:{text:"UncertainBoundedTaskDuration",type:"tip"}})],1),t._v(" "),n("skdecide-signature",{attrs:{name:"_get_task_duration_lower_bound",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"mode",default:"1",annotation:"Optional[int]"},{name:"progress_from",default:"0.0",annotation:"Optional[float]"}],return:"int"}}}),t._v(" "),n("p",[t._v("Return the lower bound for the task duration of the given task in the given mode.")]),t._v(" "),n("h3",{attrs:{id:"get-task-duration-upper-bound-2"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#get-task-duration-upper-bound-2"}},[t._v("#")]),t._v(" _get_task_duration_upper_bound "),n("Badge",{attrs:{text:"UncertainBoundedTaskDuration",type:"tip"}})],1),t._v(" "),n("skdecide-signature",{attrs:{name:"_get_task_duration_upper_bound",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"mode",default:"1",annotation:"Optional[int]"},{name:"progress_from",default:"0.0",annotation:"Optional[float]"}],return:"int"}}}),t._v(" "),n("p",[t._v("Return the upper bound for the task duration of the given task in the given mode.")]),t._v(" "),n("h3",{attrs:{id:"sample-task-duration-8"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#sample-task-duration-8"}},[t._v("#")]),t._v(" _sample_task_duration "),n("Badge",{attrs:{text:"SimulatedTaskDuration",type:"warn"}})],1),t._v(" "),n("skdecide-signature",{attrs:{name:"_sample_task_duration",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"mode",default:"1",annotation:"Optional[int]"},{name:"progress_from",default:"0.0",annotation:"Optional[float]"}],return:"int"}}}),t._v(" "),n("p",[t._v("Return a task duration for the given task in the given mode,\nsampled from the underlying univariate bounded distribution.")]),t._v(" "),n("h2",{attrs:{id:"uniformboundedtaskduration"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#uniformboundedtaskduration"}},[t._v("#")]),t._v(" UniformBoundedTaskDuration")]),t._v(" "),n("p",[t._v("A domain must inherit this class if the task duration is known to be between a lower and upper bound\nand follows a uniform distribution between these bounds.")]),t._v(" "),n("h3",{attrs:{id:"get-task-duration-distribution-7"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#get-task-duration-distribution-7"}},[t._v("#")]),t._v(" get_task_duration_distribution "),n("Badge",{attrs:{text:"UncertainMultivariateTaskDuration",type:"warn"}})],1),t._v(" "),n("skdecide-signature",{attrs:{name:"get_task_duration_distribution",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"mode",default:"1",annotation:"Optional[int]"},{name:"progress_from",default:"0.0",annotation:"Optional[float]"},{name:"multivariate_settings",default:"None",annotation:"Optional[Dict[str, int]]"}],return:"Distribution"}}}),t._v(" "),n("p",[t._v("Return the multivariate Distribution of the duration of the given task in the given mode.\nMultivariate seetings need to be provided.")]),t._v(" "),n("h3",{attrs:{id:"get-task-duration-lower-bound-3"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#get-task-duration-lower-bound-3"}},[t._v("#")]),t._v(" get_task_duration_lower_bound "),n("Badge",{attrs:{text:"UncertainBoundedTaskDuration",type:"warn"}})],1),t._v(" "),n("skdecide-signature",{attrs:{name:"get_task_duration_lower_bound",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"mode",default:"1",annotation:"Optional[int]"},{name:"progress_from",default:"0.0",annotation:"Optional[float]"}],return:"int"}}}),t._v(" "),n("p",[t._v("Return the lower bound for the task duration of the given task in the given mode.")]),t._v(" "),n("h3",{attrs:{id:"get-task-duration-upper-bound-3"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#get-task-duration-upper-bound-3"}},[t._v("#")]),t._v(" get_task_duration_upper_bound "),n("Badge",{attrs:{text:"UncertainBoundedTaskDuration",type:"warn"}})],1),t._v(" "),n("skdecide-signature",{attrs:{name:"get_task_duration_upper_bound",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"mode",default:"1",annotation:"Optional[int]"},{name:"progress_from",default:"0.0",annotation:"Optional[float]"}],return:"int"}}}),t._v(" "),n("p",[t._v("Return the upper bound for the task duration of the given task in the given mode.")]),t._v(" "),n("h3",{attrs:{id:"sample-task-duration-9"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#sample-task-duration-9"}},[t._v("#")]),t._v(" sample_task_duration "),n("Badge",{attrs:{text:"SimulatedTaskDuration",type:"warn"}})],1),t._v(" "),n("skdecide-signature",{attrs:{name:"sample_task_duration",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"mode",default:"1",annotation:"Optional[int]"},{name:"progress_from",default:"0.0",annotation:"Optional[float]"}],return:"int"}}}),t._v(" "),n("p",[t._v("Return a task duration for the given task in the given mode,\nsampled from the underlying multiivariate distribution.")]),t._v(" "),n("h3",{attrs:{id:"get-task-duration-distribution-8"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#get-task-duration-distribution-8"}},[t._v("#")]),t._v(" _get_task_duration_distribution "),n("Badge",{attrs:{text:"UncertainMultivariateTaskDuration",type:"warn"}})],1),t._v(" "),n("skdecide-signature",{attrs:{name:"_get_task_duration_distribution",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"mode",default:"1",annotation:"Optional[int]"},{name:"progress_from",default:"0.0",annotation:"Optional[float]"},{name:"multivariate_settings",default:"None",annotation:"Optional[Dict[str, int]]"}],return:"DiscreteDistribution"}}}),t._v(" "),n("p",[t._v("Return the Distribution of the duration of the given task in the given mode.\nThe distribution is uniform between the defined lower and upper bounds.")]),t._v(" "),n("h3",{attrs:{id:"get-task-duration-lower-bound-4"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#get-task-duration-lower-bound-4"}},[t._v("#")]),t._v(" _get_task_duration_lower_bound "),n("Badge",{attrs:{text:"UncertainBoundedTaskDuration",type:"warn"}})],1),t._v(" "),n("skdecide-signature",{attrs:{name:"_get_task_duration_lower_bound",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"mode",default:"1",annotation:"Optional[int]"},{name:"progress_from",default:"0.0",annotation:"Optional[float]"}],return:"int"}}}),t._v(" "),n("p",[t._v("Return the lower bound for the task duration of the given task in the given mode.")]),t._v(" "),n("h3",{attrs:{id:"get-task-duration-upper-bound-4"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#get-task-duration-upper-bound-4"}},[t._v("#")]),t._v(" _get_task_duration_upper_bound "),n("Badge",{attrs:{text:"UncertainBoundedTaskDuration",type:"warn"}})],1),t._v(" "),n("skdecide-signature",{attrs:{name:"_get_task_duration_upper_bound",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"mode",default:"1",annotation:"Optional[int]"},{name:"progress_from",default:"0.0",annotation:"Optional[float]"}],return:"int"}}}),t._v(" "),n("p",[t._v("Return the upper bound for the task duration of the given task in the given mode.")]),t._v(" "),n("h3",{attrs:{id:"sample-task-duration-10"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#sample-task-duration-10"}},[t._v("#")]),t._v(" _sample_task_duration "),n("Badge",{attrs:{text:"SimulatedTaskDuration",type:"warn"}})],1),t._v(" "),n("skdecide-signature",{attrs:{name:"_sample_task_duration",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"mode",default:"1",annotation:"Optional[int]"},{name:"progress_from",default:"0.0",annotation:"Optional[float]"}],return:"int"}}}),t._v(" "),n("p",[t._v("Return a task duration for the given task in the given mode,\nsampled from the underlying univariate uniform bounded distribution.")]),t._v(" "),n("h2",{attrs:{id:"enumerabletaskduration"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#enumerabletaskduration"}},[t._v("#")]),t._v(" EnumerableTaskDuration")]),t._v(" "),n("p",[t._v("A domain must inherit this class if the task duration for each task is enumerable.")]),t._v(" "),n("h3",{attrs:{id:"get-task-duration-distribution-9"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#get-task-duration-distribution-9"}},[t._v("#")]),t._v(" get_task_duration_distribution "),n("Badge",{attrs:{text:"UncertainMultivariateTaskDuration",type:"warn"}})],1),t._v(" "),n("skdecide-signature",{attrs:{name:"get_task_duration_distribution",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"mode",default:"1",annotation:"Optional[int]"},{name:"progress_from",default:"0.0",annotation:"Optional[float]"},{name:"multivariate_settings",default:"None",annotation:"Optional[Dict[str, int]]"}],return:"Distribution"}}}),t._v(" "),n("p",[t._v("Return the multivariate Distribution of the duration of the given task in the given mode.\nMultivariate seetings need to be provided.")]),t._v(" "),n("h3",{attrs:{id:"get-task-duration-lower-bound-5"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#get-task-duration-lower-bound-5"}},[t._v("#")]),t._v(" get_task_duration_lower_bound "),n("Badge",{attrs:{text:"UncertainBoundedTaskDuration",type:"warn"}})],1),t._v(" "),n("skdecide-signature",{attrs:{name:"get_task_duration_lower_bound",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"mode",default:"1",annotation:"Optional[int]"},{name:"progress_from",default:"0.0",annotation:"Optional[float]"}],return:"int"}}}),t._v(" "),n("p",[t._v("Return the lower bound for the task duration of the given task in the given mode.")]),t._v(" "),n("h3",{attrs:{id:"get-task-duration-upper-bound-5"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#get-task-duration-upper-bound-5"}},[t._v("#")]),t._v(" get_task_duration_upper_bound "),n("Badge",{attrs:{text:"UncertainBoundedTaskDuration",type:"warn"}})],1),t._v(" "),n("skdecide-signature",{attrs:{name:"get_task_duration_upper_bound",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"mode",default:"1",annotation:"Optional[int]"},{name:"progress_from",default:"0.0",annotation:"Optional[float]"}],return:"int"}}}),t._v(" "),n("p",[t._v("Return the upper bound for the task duration of the given task in the given mode.")]),t._v(" "),n("h3",{attrs:{id:"sample-task-duration-11"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#sample-task-duration-11"}},[t._v("#")]),t._v(" sample_task_duration "),n("Badge",{attrs:{text:"SimulatedTaskDuration",type:"warn"}})],1),t._v(" "),n("skdecide-signature",{attrs:{name:"sample_task_duration",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"mode",default:"1",annotation:"Optional[int]"},{name:"progress_from",default:"0.0",annotation:"Optional[float]"}],return:"int"}}}),t._v(" "),n("p",[t._v("Return a task duration for the given task in the given mode,\nsampled from the underlying multiivariate distribution.")]),t._v(" "),n("h3",{attrs:{id:"get-task-duration-distribution-10"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#get-task-duration-distribution-10"}},[t._v("#")]),t._v(" _get_task_duration_distribution "),n("Badge",{attrs:{text:"UncertainMultivariateTaskDuration",type:"warn"}})],1),t._v(" "),n("skdecide-signature",{attrs:{name:"_get_task_duration_distribution",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"mode",default:"1",annotation:"Optional[int]"},{name:"progress_from",default:"0.0",annotation:"Optional[float]"},{name:"multivariate_settings",default:"None",annotation:"Optional[Dict[str, int]]"}],return:"DiscreteDistribution"}}}),t._v(" "),n("p",[t._v("Return the Distribution of the duration of the given task in the given mode.\nas an Enumerable.")]),t._v(" "),n("h3",{attrs:{id:"get-task-duration-lower-bound-6"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#get-task-duration-lower-bound-6"}},[t._v("#")]),t._v(" _get_task_duration_lower_bound "),n("Badge",{attrs:{text:"UncertainBoundedTaskDuration",type:"warn"}})],1),t._v(" "),n("skdecide-signature",{attrs:{name:"_get_task_duration_lower_bound",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"mode",default:"1",annotation:"Optional[int]"},{name:"progress_from",default:"0.0",annotation:"Optional[float]"}],return:"int"}}}),t._v(" "),n("p",[t._v("Return the lower bound for the task duration of the given task in the given mode.")]),t._v(" "),n("h3",{attrs:{id:"get-task-duration-upper-bound-6"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#get-task-duration-upper-bound-6"}},[t._v("#")]),t._v(" _get_task_duration_upper_bound "),n("Badge",{attrs:{text:"UncertainBoundedTaskDuration",type:"warn"}})],1),t._v(" "),n("skdecide-signature",{attrs:{name:"_get_task_duration_upper_bound",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"mode",default:"1",annotation:"Optional[int]"},{name:"progress_from",default:"0.0",annotation:"Optional[float]"}],return:"int"}}}),t._v(" "),n("p",[t._v("Return the upper bound for the task duration of the given task in the given mode.")]),t._v(" "),n("h3",{attrs:{id:"sample-task-duration-12"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#sample-task-duration-12"}},[t._v("#")]),t._v(" _sample_task_duration "),n("Badge",{attrs:{text:"SimulatedTaskDuration",type:"warn"}})],1),t._v(" "),n("skdecide-signature",{attrs:{name:"_sample_task_duration",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"mode",default:"1",annotation:"Optional[int]"},{name:"progress_from",default:"0.0",annotation:"Optional[float]"}],return:"int"}}}),t._v(" "),n("p",[t._v("Return a task duration for the given task in the given mode.")]),t._v(" "),n("h2",{attrs:{id:"deterministictaskduration"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#deterministictaskduration"}},[t._v("#")]),t._v(" DeterministicTaskDuration")]),t._v(" "),n("p",[t._v("A domain must inherit this class if the task durations are known and deterministic.")]),t._v(" "),n("h3",{attrs:{id:"get-task-duration"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#get-task-duration"}},[t._v("#")]),t._v(" get_task_duration "),n("Badge",{attrs:{text:"DeterministicTaskDuration",type:"tip"}})],1),t._v(" "),n("skdecide-signature",{attrs:{name:"get_task_duration",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"mode",default:"1",annotation:"Optional[int]"},{name:"progress_from",default:"0.0",annotation:"Optional[float]"}],return:"int"}}}),t._v(" "),n("p",[t._v("Return the fixed deterministic task duration of the given task in the given mode.")]),t._v(" "),n("h3",{attrs:{id:"get-task-duration-distribution-11"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#get-task-duration-distribution-11"}},[t._v("#")]),t._v(" get_task_duration_distribution "),n("Badge",{attrs:{text:"UncertainMultivariateTaskDuration",type:"warn"}})],1),t._v(" "),n("skdecide-signature",{attrs:{name:"get_task_duration_distribution",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"mode",default:"1",annotation:"Optional[int]"},{name:"progress_from",default:"0.0",annotation:"Optional[float]"},{name:"multivariate_settings",default:"None",annotation:"Optional[Dict[str, int]]"}],return:"Distribution"}}}),t._v(" "),n("p",[t._v("Return the multivariate Distribution of the duration of the given task in the given mode.\nMultivariate seetings need to be provided.")]),t._v(" "),n("h3",{attrs:{id:"get-task-duration-lower-bound-7"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#get-task-duration-lower-bound-7"}},[t._v("#")]),t._v(" get_task_duration_lower_bound "),n("Badge",{attrs:{text:"UncertainBoundedTaskDuration",type:"warn"}})],1),t._v(" "),n("skdecide-signature",{attrs:{name:"get_task_duration_lower_bound",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"mode",default:"1",annotation:"Optional[int]"},{name:"progress_from",default:"0.0",annotation:"Optional[float]"}],return:"int"}}}),t._v(" "),n("p",[t._v("Return the lower bound for the task duration of the given task in the given mode.")]),t._v(" "),n("h3",{attrs:{id:"get-task-duration-upper-bound-7"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#get-task-duration-upper-bound-7"}},[t._v("#")]),t._v(" get_task_duration_upper_bound "),n("Badge",{attrs:{text:"UncertainBoundedTaskDuration",type:"warn"}})],1),t._v(" "),n("skdecide-signature",{attrs:{name:"get_task_duration_upper_bound",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"mode",default:"1",annotation:"Optional[int]"},{name:"progress_from",default:"0.0",annotation:"Optional[float]"}],return:"int"}}}),t._v(" "),n("p",[t._v("Return the upper bound for the task duration of the given task in the given mode.")]),t._v(" "),n("h3",{attrs:{id:"sample-task-duration-13"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#sample-task-duration-13"}},[t._v("#")]),t._v(" sample_task_duration "),n("Badge",{attrs:{text:"SimulatedTaskDuration",type:"warn"}})],1),t._v(" "),n("skdecide-signature",{attrs:{name:"sample_task_duration",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"mode",default:"1",annotation:"Optional[int]"},{name:"progress_from",default:"0.0",annotation:"Optional[float]"}],return:"int"}}}),t._v(" "),n("p",[t._v("Return a task duration for the given task in the given mode,\nsampled from the underlying multiivariate distribution.")]),t._v(" "),n("h3",{attrs:{id:"get-task-duration-2"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#get-task-duration-2"}},[t._v("#")]),t._v(" _get_task_duration "),n("Badge",{attrs:{text:"DeterministicTaskDuration",type:"tip"}})],1),t._v(" "),n("skdecide-signature",{attrs:{name:"_get_task_duration",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"mode",default:"1",annotation:"Optional[int]"},{name:"progress_from",default:"0.0",annotation:"Optional[float]"}],return:"int"}}}),t._v(" "),n("p",[t._v("Return the fixed deterministic task duration of the given task in the given mode.")]),t._v(" "),n("h3",{attrs:{id:"get-task-duration-distribution-12"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#get-task-duration-distribution-12"}},[t._v("#")]),t._v(" _get_task_duration_distribution "),n("Badge",{attrs:{text:"UncertainMultivariateTaskDuration",type:"warn"}})],1),t._v(" "),n("skdecide-signature",{attrs:{name:"_get_task_duration_distribution",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"mode",default:"1",annotation:"Optional[int]"},{name:"progress_from",default:"0.0",annotation:"Optional[float]"},{name:"multivariate_settings",default:"None",annotation:"Optional[Dict[str, int]]"}]}}}),t._v(" "),n("p",[t._v("Return the Distribution of the duration of the given task in the given mode.\nBecause the duration is deterministic, the distribution always returns the same duration.")]),t._v(" "),n("h3",{attrs:{id:"get-task-duration-lower-bound-8"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#get-task-duration-lower-bound-8"}},[t._v("#")]),t._v(" _get_task_duration_lower_bound "),n("Badge",{attrs:{text:"UncertainBoundedTaskDuration",type:"warn"}})],1),t._v(" "),n("skdecide-signature",{attrs:{name:"_get_task_duration_lower_bound",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"mode",default:"1",annotation:"Optional[int]"},{name:"progress_from",default:"0.0",annotation:"Optional[float]"}],return:"int"}}}),t._v(" "),n("p",[t._v("Return the lower bound for the task duration of the given task in the given mode.")]),t._v(" "),n("h3",{attrs:{id:"get-task-duration-upper-bound-8"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#get-task-duration-upper-bound-8"}},[t._v("#")]),t._v(" _get_task_duration_upper_bound "),n("Badge",{attrs:{text:"UncertainBoundedTaskDuration",type:"warn"}})],1),t._v(" "),n("skdecide-signature",{attrs:{name:"_get_task_duration_upper_bound",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"mode",default:"1",annotation:"Optional[int]"},{name:"progress_from",default:"0.0",annotation:"Optional[float]"}],return:"int"}}}),t._v(" "),n("p",[t._v("Return the upper bound for the task duration of the given task in the given mode.")]),t._v(" "),n("h3",{attrs:{id:"sample-task-duration-14"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#sample-task-duration-14"}},[t._v("#")]),t._v(" _sample_task_duration "),n("Badge",{attrs:{text:"SimulatedTaskDuration",type:"warn"}})],1),t._v(" "),n("skdecide-signature",{attrs:{name:"_sample_task_duration",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"mode",default:"1",annotation:"Optional[int]"},{name:"progress_from",default:"0.0",annotation:"Optional[float]"}],return:"int"}}}),t._v(" "),n("p",[t._v("Return a task duration for the given task in the given mode.")])],1)}),[],!1,null,null,null);a.default=i.exports}}]); \ No newline at end of file diff --git a/assets/js/49.18fad982.js b/assets/js/49.78c3cf02.js similarity index 98% rename from assets/js/49.18fad982.js rename to assets/js/49.78c3cf02.js index e074c9e624..57665de10b 100644 --- a/assets/js/49.18fad982.js +++ b/assets/js/49.78c3cf02.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[49],{565:function(t,a,s){"use strict";s.r(a);var e=s(38),r=Object(e.a)({},(function(){var t=this,a=t.$createElement,s=t._self._c||a;return s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("h1",{attrs:{id:"builders-domain-scheduling-task-progress"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#builders-domain-scheduling-task-progress"}},[t._v("#")]),t._v(" builders.domain.scheduling.task_progress")]),t._v(" "),s("div",{staticClass:"custom-block tip"},[s("p",{staticClass:"custom-block-title"},[t._v("Domain specification")]),t._v(" "),s("skdecide-summary")],1),t._v(" "),s("h2",{attrs:{id:"customtaskprogress"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#customtaskprogress"}},[t._v("#")]),t._v(" CustomTaskProgress")]),t._v(" "),s("p",[t._v("A domain must inherit this class if the task progress is uncertain.")]),t._v(" "),s("h3",{attrs:{id:"get-task-progress"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#get-task-progress"}},[t._v("#")]),t._v(" get_task_progress "),s("Badge",{attrs:{text:"CustomTaskProgress",type:"tip"}})],1),t._v(" "),s("skdecide-signature",{attrs:{name:"get_task_progress",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"t_from",annotation:"int"},{name:"t_to",annotation:"int"},{name:"mode",annotation:"Optional[int]"},{name:"sampled_duration",default:"None",annotation:"Optional[int]"}],return:"float"}}}),t._v(" "),s("h4",{attrs:{id:"returns"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#returns"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),s("p",[t._v("The task progress (float) between t_from and t_to.")]),t._v(" "),s("h3",{attrs:{id:"get-task-progress-2"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#get-task-progress-2"}},[t._v("#")]),t._v(" _get_task_progress "),s("Badge",{attrs:{text:"CustomTaskProgress",type:"tip"}})],1),t._v(" "),s("skdecide-signature",{attrs:{name:"_get_task_progress",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"t_from",annotation:"int"},{name:"t_to",annotation:"int"},{name:"mode",annotation:"Optional[int]"},{name:"sampled_duration",default:"None",annotation:"Optional[int]"}],return:"float"}}}),t._v(" "),s("h4",{attrs:{id:"returns-2"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#returns-2"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),s("p",[t._v("The task progress (float) between t_from and t_to.")]),t._v(" "),s("h2",{attrs:{id:"deterministictaskprogress"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#deterministictaskprogress"}},[t._v("#")]),t._v(" DeterministicTaskProgress")]),t._v(" "),s("p",[t._v("A domain must inherit this class if the task progress is deterministic and can be considered as linear\nover the duration of the task.")]),t._v(" "),s("h3",{attrs:{id:"get-task-progress-3"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#get-task-progress-3"}},[t._v("#")]),t._v(" get_task_progress "),s("Badge",{attrs:{text:"CustomTaskProgress",type:"warn"}})],1),t._v(" "),s("skdecide-signature",{attrs:{name:"get_task_progress",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"t_from",annotation:"int"},{name:"t_to",annotation:"int"},{name:"mode",annotation:"Optional[int]"},{name:"sampled_duration",default:"None",annotation:"Optional[int]"}],return:"float"}}}),t._v(" "),s("h4",{attrs:{id:"returns-3"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#returns-3"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),s("p",[t._v("The task progress (float) between t_from and t_to.")]),t._v(" "),s("h3",{attrs:{id:"get-task-progress-4"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#get-task-progress-4"}},[t._v("#")]),t._v(" _get_task_progress "),s("Badge",{attrs:{text:"CustomTaskProgress",type:"warn"}})],1),t._v(" "),s("skdecide-signature",{attrs:{name:"_get_task_progress",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"t_from",annotation:"int"},{name:"t_to",annotation:"int"},{name:"mode",annotation:"Optional[int]"},{name:"sampled_duration",default:"None",annotation:"Optional[int]"}],return:"float"}}}),t._v(" "),s("h4",{attrs:{id:"returns-4"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#returns-4"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),s("p",[t._v("The task progress (float) between t_from and t_to based on the task duration\nand assuming linear progress.")])],1)}),[],!1,null,null,null);a.default=r.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[49],{563:function(t,a,s){"use strict";s.r(a);var e=s(38),r=Object(e.a)({},(function(){var t=this,a=t.$createElement,s=t._self._c||a;return s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("h1",{attrs:{id:"builders-domain-scheduling-task-progress"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#builders-domain-scheduling-task-progress"}},[t._v("#")]),t._v(" builders.domain.scheduling.task_progress")]),t._v(" "),s("div",{staticClass:"custom-block tip"},[s("p",{staticClass:"custom-block-title"},[t._v("Domain specification")]),t._v(" "),s("skdecide-summary")],1),t._v(" "),s("h2",{attrs:{id:"customtaskprogress"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#customtaskprogress"}},[t._v("#")]),t._v(" CustomTaskProgress")]),t._v(" "),s("p",[t._v("A domain must inherit this class if the task progress is uncertain.")]),t._v(" "),s("h3",{attrs:{id:"get-task-progress"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#get-task-progress"}},[t._v("#")]),t._v(" get_task_progress "),s("Badge",{attrs:{text:"CustomTaskProgress",type:"tip"}})],1),t._v(" "),s("skdecide-signature",{attrs:{name:"get_task_progress",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"t_from",annotation:"int"},{name:"t_to",annotation:"int"},{name:"mode",annotation:"Optional[int]"},{name:"sampled_duration",default:"None",annotation:"Optional[int]"}],return:"float"}}}),t._v(" "),s("h4",{attrs:{id:"returns"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#returns"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),s("p",[t._v("The task progress (float) between t_from and t_to.")]),t._v(" "),s("h3",{attrs:{id:"get-task-progress-2"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#get-task-progress-2"}},[t._v("#")]),t._v(" _get_task_progress "),s("Badge",{attrs:{text:"CustomTaskProgress",type:"tip"}})],1),t._v(" "),s("skdecide-signature",{attrs:{name:"_get_task_progress",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"t_from",annotation:"int"},{name:"t_to",annotation:"int"},{name:"mode",annotation:"Optional[int]"},{name:"sampled_duration",default:"None",annotation:"Optional[int]"}],return:"float"}}}),t._v(" "),s("h4",{attrs:{id:"returns-2"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#returns-2"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),s("p",[t._v("The task progress (float) between t_from and t_to.")]),t._v(" "),s("h2",{attrs:{id:"deterministictaskprogress"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#deterministictaskprogress"}},[t._v("#")]),t._v(" DeterministicTaskProgress")]),t._v(" "),s("p",[t._v("A domain must inherit this class if the task progress is deterministic and can be considered as linear\nover the duration of the task.")]),t._v(" "),s("h3",{attrs:{id:"get-task-progress-3"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#get-task-progress-3"}},[t._v("#")]),t._v(" get_task_progress "),s("Badge",{attrs:{text:"CustomTaskProgress",type:"warn"}})],1),t._v(" "),s("skdecide-signature",{attrs:{name:"get_task_progress",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"t_from",annotation:"int"},{name:"t_to",annotation:"int"},{name:"mode",annotation:"Optional[int]"},{name:"sampled_duration",default:"None",annotation:"Optional[int]"}],return:"float"}}}),t._v(" "),s("h4",{attrs:{id:"returns-3"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#returns-3"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),s("p",[t._v("The task progress (float) between t_from and t_to.")]),t._v(" "),s("h3",{attrs:{id:"get-task-progress-4"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#get-task-progress-4"}},[t._v("#")]),t._v(" _get_task_progress "),s("Badge",{attrs:{text:"CustomTaskProgress",type:"warn"}})],1),t._v(" "),s("skdecide-signature",{attrs:{name:"_get_task_progress",sig:{params:[{name:"self"},{name:"task",annotation:"int"},{name:"t_from",annotation:"int"},{name:"t_to",annotation:"int"},{name:"mode",annotation:"Optional[int]"},{name:"sampled_duration",default:"None",annotation:"Optional[int]"}],return:"float"}}}),t._v(" "),s("h4",{attrs:{id:"returns-4"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#returns-4"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),s("p",[t._v("The task progress (float) between t_from and t_to based on the task duration\nand assuming linear progress.")])],1)}),[],!1,null,null,null);a.default=r.exports}}]); \ No newline at end of file diff --git a/assets/js/50.e038058b.js b/assets/js/50.9af5c247.js similarity index 99% rename from assets/js/50.e038058b.js rename to assets/js/50.9af5c247.js index d907ee7494..c055301a40 100644 --- a/assets/js/50.e038058b.js +++ b/assets/js/50.9af5c247.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[50],{567:function(t,e,a){"use strict";a.r(e);var i=a(38),s=Object(i.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"builders-domain-scheduling-time-lag"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#builders-domain-scheduling-time-lag"}},[t._v("#")]),t._v(" builders.domain.scheduling.time_lag")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("Domain specification")]),t._v(" "),a("skdecide-summary")],1),t._v(" "),a("h2",{attrs:{id:"timelag"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#timelag"}},[t._v("#")]),t._v(" TimeLag")]),t._v(" "),a("p",[t._v("Defines a time lag with both a minimum time lag and maximum time lag.")]),t._v(" "),a("h3",{attrs:{id:"constructor"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#constructor"}},[t._v("#")]),t._v(" Constructor "),a("Badge",{attrs:{text:"TimeLag",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"TimeLag",sig:{params:[{name:"minimum_time_lag"},{name:"maximum_time_lags"}]}}}),t._v(" "),a("p",[t._v("Initialize self. See help(type(self)) for accurate signature.")]),t._v(" "),a("h2",{attrs:{id:"minimumonlytimelag"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#minimumonlytimelag"}},[t._v("#")]),t._v(" MinimumOnlyTimeLag")]),t._v(" "),a("p",[t._v("Defines a minimum time lag.")]),t._v(" "),a("h3",{attrs:{id:"constructor-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#constructor-2"}},[t._v("#")]),t._v(" Constructor "),a("Badge",{attrs:{text:"MinimumOnlyTimeLag",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"MinimumOnlyTimeLag",sig:{params:[{name:"minimum_time_lag"}]}}}),t._v(" "),a("p",[t._v("Initialize self. See help(type(self)) for accurate signature.")]),t._v(" "),a("h2",{attrs:{id:"maximumonlytimelag"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#maximumonlytimelag"}},[t._v("#")]),t._v(" MaximumOnlyTimeLag")]),t._v(" "),a("p",[t._v("Defines a maximum time lag.")]),t._v(" "),a("h3",{attrs:{id:"constructor-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#constructor-3"}},[t._v("#")]),t._v(" Constructor "),a("Badge",{attrs:{text:"MaximumOnlyTimeLag",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"MaximumOnlyTimeLag",sig:{params:[{name:"maximum_time_lags"}]}}}),t._v(" "),a("p",[t._v("Initialize self. See help(type(self)) for accurate signature.")]),t._v(" "),a("h2",{attrs:{id:"withtimelag"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#withtimelag"}},[t._v("#")]),t._v(" WithTimeLag")]),t._v(" "),a("p",[t._v("A domain must inherit this class if there are minimum and maximum time lags between some of its tasks.")]),t._v(" "),a("h3",{attrs:{id:"get-time-lags"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-time-lags"}},[t._v("#")]),t._v(" get_time_lags "),a("Badge",{attrs:{text:"WithTimeLag",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_time_lags",sig:{params:[{name:"self"}],return:"Dict[int, Dict[int, TimeLag]]"}}}),t._v(" "),a("p",[t._v("Return nested dictionaries where the first key is the id of a task (int)\nand the second key is the id of another task (int).\nThe value is a TimeLag object containing the MINIMUM and MAXIMUM time (int) that needs to separate the end\nof the first task to the start of the second task.")]),t._v(" "),a("p",[t._v("e.g.\n{\n12:{\n15: TimeLag(5, 10),\n16: TimeLag(5, 20),\n17: MinimumOnlyTimeLag(5),\n18: MaximumOnlyTimeLag(15),\n}\n}")]),t._v(" "),a("h4",{attrs:{id:"returns"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("A dictionary of TimeLag objects.")]),t._v(" "),a("h3",{attrs:{id:"get-time-lags-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-time-lags-2"}},[t._v("#")]),t._v(" _get_time_lags "),a("Badge",{attrs:{text:"WithTimeLag",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_time_lags",sig:{params:[{name:"self"}],return:"Dict[int, Dict[int, TimeLag]]"}}}),t._v(" "),a("p",[t._v("Return nested dictionaries where the first key is the id of a task (int)\nand the second key is the id of another task (int).\nThe value is a TimeLag object containing the MINIMUM and MAXIMUM time (int) that needs to separate the end\nof the first task to the start of the second task.")]),t._v(" "),a("p",[t._v("e.g.\n{\n12:{\n15: TimeLag(5, 10),\n16: TimeLag(5, 20),\n17: MinimumOnlyTimeLag(5),\n18: MaximumOnlyTimeLag(15),\n}\n}")]),t._v(" "),a("h4",{attrs:{id:"returns-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-2"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("A dictionary of TimeLag objects.")]),t._v(" "),a("h2",{attrs:{id:"withouttimelag"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#withouttimelag"}},[t._v("#")]),t._v(" WithoutTimeLag")]),t._v(" "),a("p",[t._v("A domain must inherit this class if there is no required time lag between its tasks.")]),t._v(" "),a("h3",{attrs:{id:"get-time-lags-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-time-lags-3"}},[t._v("#")]),t._v(" get_time_lags "),a("Badge",{attrs:{text:"WithTimeLag",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_time_lags",sig:{params:[{name:"self"}],return:"Dict[int, Dict[int, TimeLag]]"}}}),t._v(" "),a("p",[t._v("Return nested dictionaries where the first key is the id of a task (int)\nand the second key is the id of another task (int).\nThe value is a TimeLag object containing the MINIMUM and MAXIMUM time (int) that needs to separate the end\nof the first task to the start of the second task.")]),t._v(" "),a("p",[t._v("e.g.\n{\n12:{\n15: TimeLag(5, 10),\n16: TimeLag(5, 20),\n17: MinimumOnlyTimeLag(5),\n18: MaximumOnlyTimeLag(15),\n}\n}")]),t._v(" "),a("h4",{attrs:{id:"returns-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-3"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("A dictionary of TimeLag objects.")]),t._v(" "),a("h3",{attrs:{id:"get-time-lags-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-time-lags-4"}},[t._v("#")]),t._v(" _get_time_lags "),a("Badge",{attrs:{text:"WithTimeLag",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_time_lags",sig:{params:[{name:"self"}],return:"Dict[int, Dict[int, TimeLag]]"}}}),t._v(" "),a("p",[t._v("Return nested dictionaries where the first key is the id of a task (int)\nand the second key is the id of another task (int).\nThe value is a TimeLag object containing the MINIMUM and MAXIMUM time (int) that needs to separate the end\nof the first task to the start of the second task.")])],1)}),[],!1,null,null,null);e.default=s.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[50],{564:function(t,e,a){"use strict";a.r(e);var i=a(38),s=Object(i.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"builders-domain-scheduling-time-lag"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#builders-domain-scheduling-time-lag"}},[t._v("#")]),t._v(" builders.domain.scheduling.time_lag")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("Domain specification")]),t._v(" "),a("skdecide-summary")],1),t._v(" "),a("h2",{attrs:{id:"timelag"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#timelag"}},[t._v("#")]),t._v(" TimeLag")]),t._v(" "),a("p",[t._v("Defines a time lag with both a minimum time lag and maximum time lag.")]),t._v(" "),a("h3",{attrs:{id:"constructor"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#constructor"}},[t._v("#")]),t._v(" Constructor "),a("Badge",{attrs:{text:"TimeLag",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"TimeLag",sig:{params:[{name:"minimum_time_lag"},{name:"maximum_time_lags"}]}}}),t._v(" "),a("p",[t._v("Initialize self. See help(type(self)) for accurate signature.")]),t._v(" "),a("h2",{attrs:{id:"minimumonlytimelag"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#minimumonlytimelag"}},[t._v("#")]),t._v(" MinimumOnlyTimeLag")]),t._v(" "),a("p",[t._v("Defines a minimum time lag.")]),t._v(" "),a("h3",{attrs:{id:"constructor-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#constructor-2"}},[t._v("#")]),t._v(" Constructor "),a("Badge",{attrs:{text:"MinimumOnlyTimeLag",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"MinimumOnlyTimeLag",sig:{params:[{name:"minimum_time_lag"}]}}}),t._v(" "),a("p",[t._v("Initialize self. See help(type(self)) for accurate signature.")]),t._v(" "),a("h2",{attrs:{id:"maximumonlytimelag"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#maximumonlytimelag"}},[t._v("#")]),t._v(" MaximumOnlyTimeLag")]),t._v(" "),a("p",[t._v("Defines a maximum time lag.")]),t._v(" "),a("h3",{attrs:{id:"constructor-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#constructor-3"}},[t._v("#")]),t._v(" Constructor "),a("Badge",{attrs:{text:"MaximumOnlyTimeLag",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"MaximumOnlyTimeLag",sig:{params:[{name:"maximum_time_lags"}]}}}),t._v(" "),a("p",[t._v("Initialize self. See help(type(self)) for accurate signature.")]),t._v(" "),a("h2",{attrs:{id:"withtimelag"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#withtimelag"}},[t._v("#")]),t._v(" WithTimeLag")]),t._v(" "),a("p",[t._v("A domain must inherit this class if there are minimum and maximum time lags between some of its tasks.")]),t._v(" "),a("h3",{attrs:{id:"get-time-lags"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-time-lags"}},[t._v("#")]),t._v(" get_time_lags "),a("Badge",{attrs:{text:"WithTimeLag",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_time_lags",sig:{params:[{name:"self"}],return:"Dict[int, Dict[int, TimeLag]]"}}}),t._v(" "),a("p",[t._v("Return nested dictionaries where the first key is the id of a task (int)\nand the second key is the id of another task (int).\nThe value is a TimeLag object containing the MINIMUM and MAXIMUM time (int) that needs to separate the end\nof the first task to the start of the second task.")]),t._v(" "),a("p",[t._v("e.g.\n{\n12:{\n15: TimeLag(5, 10),\n16: TimeLag(5, 20),\n17: MinimumOnlyTimeLag(5),\n18: MaximumOnlyTimeLag(15),\n}\n}")]),t._v(" "),a("h4",{attrs:{id:"returns"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("A dictionary of TimeLag objects.")]),t._v(" "),a("h3",{attrs:{id:"get-time-lags-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-time-lags-2"}},[t._v("#")]),t._v(" _get_time_lags "),a("Badge",{attrs:{text:"WithTimeLag",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_time_lags",sig:{params:[{name:"self"}],return:"Dict[int, Dict[int, TimeLag]]"}}}),t._v(" "),a("p",[t._v("Return nested dictionaries where the first key is the id of a task (int)\nand the second key is the id of another task (int).\nThe value is a TimeLag object containing the MINIMUM and MAXIMUM time (int) that needs to separate the end\nof the first task to the start of the second task.")]),t._v(" "),a("p",[t._v("e.g.\n{\n12:{\n15: TimeLag(5, 10),\n16: TimeLag(5, 20),\n17: MinimumOnlyTimeLag(5),\n18: MaximumOnlyTimeLag(15),\n}\n}")]),t._v(" "),a("h4",{attrs:{id:"returns-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-2"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("A dictionary of TimeLag objects.")]),t._v(" "),a("h2",{attrs:{id:"withouttimelag"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#withouttimelag"}},[t._v("#")]),t._v(" WithoutTimeLag")]),t._v(" "),a("p",[t._v("A domain must inherit this class if there is no required time lag between its tasks.")]),t._v(" "),a("h3",{attrs:{id:"get-time-lags-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-time-lags-3"}},[t._v("#")]),t._v(" get_time_lags "),a("Badge",{attrs:{text:"WithTimeLag",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_time_lags",sig:{params:[{name:"self"}],return:"Dict[int, Dict[int, TimeLag]]"}}}),t._v(" "),a("p",[t._v("Return nested dictionaries where the first key is the id of a task (int)\nand the second key is the id of another task (int).\nThe value is a TimeLag object containing the MINIMUM and MAXIMUM time (int) that needs to separate the end\nof the first task to the start of the second task.")]),t._v(" "),a("p",[t._v("e.g.\n{\n12:{\n15: TimeLag(5, 10),\n16: TimeLag(5, 20),\n17: MinimumOnlyTimeLag(5),\n18: MaximumOnlyTimeLag(15),\n}\n}")]),t._v(" "),a("h4",{attrs:{id:"returns-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-3"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("A dictionary of TimeLag objects.")]),t._v(" "),a("h3",{attrs:{id:"get-time-lags-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-time-lags-4"}},[t._v("#")]),t._v(" _get_time_lags "),a("Badge",{attrs:{text:"WithTimeLag",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_time_lags",sig:{params:[{name:"self"}],return:"Dict[int, Dict[int, TimeLag]]"}}}),t._v(" "),a("p",[t._v("Return nested dictionaries where the first key is the id of a task (int)\nand the second key is the id of another task (int).\nThe value is a TimeLag object containing the MINIMUM and MAXIMUM time (int) that needs to separate the end\nof the first task to the start of the second task.")])],1)}),[],!1,null,null,null);e.default=s.exports}}]); \ No newline at end of file diff --git a/assets/js/52.b1796220.js b/assets/js/52.bb4a463b.js similarity index 99% rename from assets/js/52.b1796220.js rename to assets/js/52.bb4a463b.js index 17f8607754..26d9bbf3fb 100644 --- a/assets/js/52.b1796220.js +++ b/assets/js/52.bb4a463b.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[52],{568:function(a,e,t){"use strict";t.r(e);var s=t(38),r=Object(s.a)({},(function(){var a=this,e=a.$createElement,t=a._self._c||e;return t("ContentSlotsDistributor",{attrs:{"slot-key":a.$parent.slotKey}},[t("h1",{attrs:{id:"builders-domain-value"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#builders-domain-value"}},[a._v("#")]),a._v(" builders.domain.value")]),a._v(" "),t("div",{staticClass:"custom-block tip"},[t("p",{staticClass:"custom-block-title"},[a._v("Domain specification")]),a._v(" "),t("skdecide-summary")],1),a._v(" "),t("h2",{attrs:{id:"rewards"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#rewards"}},[a._v("#")]),a._v(" Rewards")]),a._v(" "),t("p",[a._v("A domain must inherit this class if it sends rewards (positive and/or negative).")]),a._v(" "),t("h3",{attrs:{id:"check-value"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#check-value"}},[a._v("#")]),a._v(" check_value "),t("Badge",{attrs:{text:"Rewards",type:"tip"}})],1),a._v(" "),t("skdecide-signature",{attrs:{name:"check_value",sig:{params:[{name:"self"},{name:"value",annotation:"Value[D.T_value]"}],return:"bool"}}}),a._v(" "),t("p",[a._v("Check that a value is compliant with its reward specification.")]),a._v(" "),t("div",{staticClass:"custom-block tip"},[t("p",{staticClass:"custom-block-title"},[a._v("TIP")]),a._v(" "),t("p",[a._v("This function returns always True by default because any kind of reward should be accepted at this level.")])]),a._v(" "),t("h4",{attrs:{id:"parameters"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#parameters"}},[a._v("#")]),a._v(" Parameters")]),a._v(" "),t("ul",[t("li",[t("strong",[a._v("value")]),a._v(": The value to check.")])]),a._v(" "),t("h4",{attrs:{id:"returns"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#returns"}},[a._v("#")]),a._v(" Returns")]),a._v(" "),t("p",[a._v("True if the value is compliant (False otherwise).")]),a._v(" "),t("h3",{attrs:{id:"check-value-2"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#check-value-2"}},[a._v("#")]),a._v(" _check_value "),t("Badge",{attrs:{text:"Rewards",type:"tip"}})],1),a._v(" "),t("skdecide-signature",{attrs:{name:"_check_value",sig:{params:[{name:"self"},{name:"value",annotation:"Value[D.T_value]"}],return:"bool"}}}),a._v(" "),t("p",[a._v("Check that a value is compliant with its reward specification.")]),a._v(" "),t("div",{staticClass:"custom-block tip"},[t("p",{staticClass:"custom-block-title"},[a._v("TIP")]),a._v(" "),t("p",[a._v("This function returns always True by default because any kind of reward should be accepted at this level.")])]),a._v(" "),t("h4",{attrs:{id:"parameters-2"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#parameters-2"}},[a._v("#")]),a._v(" Parameters")]),a._v(" "),t("ul",[t("li",[t("strong",[a._v("value")]),a._v(": The value to check.")])]),a._v(" "),t("h4",{attrs:{id:"returns-2"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#returns-2"}},[a._v("#")]),a._v(" Returns")]),a._v(" "),t("p",[a._v("True if the value is compliant (False otherwise).")]),a._v(" "),t("h2",{attrs:{id:"positivecosts"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#positivecosts"}},[a._v("#")]),a._v(" PositiveCosts")]),a._v(" "),t("p",[a._v("A domain must inherit this class if it sends only positive costs (i.e. negative rewards).")]),a._v(" "),t("p",[a._v("Having only positive costs is a required assumption for certain solvers to work, such as classical planners.")]),a._v(" "),t("h3",{attrs:{id:"check-value-3"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#check-value-3"}},[a._v("#")]),a._v(" check_value "),t("Badge",{attrs:{text:"Rewards",type:"warn"}})],1),a._v(" "),t("skdecide-signature",{attrs:{name:"check_value",sig:{params:[{name:"self"},{name:"value",annotation:"Value[D.T_value]"}],return:"bool"}}}),a._v(" "),t("p",[a._v("Check that a value is compliant with its reward specification.")]),a._v(" "),t("div",{staticClass:"custom-block tip"},[t("p",{staticClass:"custom-block-title"},[a._v("TIP")]),a._v(" "),t("p",[a._v("This function returns always True by default because any kind of reward should be accepted at this level.")])]),a._v(" "),t("h4",{attrs:{id:"parameters-3"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#parameters-3"}},[a._v("#")]),a._v(" Parameters")]),a._v(" "),t("ul",[t("li",[t("strong",[a._v("value")]),a._v(": The value to check.")])]),a._v(" "),t("h4",{attrs:{id:"returns-3"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#returns-3"}},[a._v("#")]),a._v(" Returns")]),a._v(" "),t("p",[a._v("True if the value is compliant (False otherwise).")]),a._v(" "),t("h3",{attrs:{id:"check-value-4"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#check-value-4"}},[a._v("#")]),a._v(" _check_value "),t("Badge",{attrs:{text:"Rewards",type:"warn"}})],1),a._v(" "),t("skdecide-signature",{attrs:{name:"_check_value",sig:{params:[{name:"self"},{name:"value",annotation:"Value[D.T_value]"}],return:"bool"}}}),a._v(" "),t("p",[a._v("Check that a value is compliant with its cost specification (must be positive).")]),a._v(" "),t("div",{staticClass:"custom-block tip"},[t("p",{staticClass:"custom-block-title"},[a._v("TIP")]),a._v(" "),t("p",[a._v("This function calls "),t("code",[a._v("PositiveCost._is_positive()")]),a._v(" to determine if a value is positive (can be overridden for\nadvanced value types).")])]),a._v(" "),t("h4",{attrs:{id:"parameters-4"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#parameters-4"}},[a._v("#")]),a._v(" Parameters")]),a._v(" "),t("ul",[t("li",[t("strong",[a._v("value")]),a._v(": The value to check.")])]),a._v(" "),t("h4",{attrs:{id:"returns-4"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#returns-4"}},[a._v("#")]),a._v(" Returns")]),a._v(" "),t("p",[a._v("True if the value is compliant (False otherwise).")]),a._v(" "),t("h3",{attrs:{id:"is-positive"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#is-positive"}},[a._v("#")]),a._v(" _is_positive "),t("Badge",{attrs:{text:"PositiveCosts",type:"tip"}})],1),a._v(" "),t("skdecide-signature",{attrs:{name:"_is_positive",sig:{params:[{name:"self"},{name:"cost",annotation:"D.T_value"}],return:"bool"}}}),a._v(" "),t("p",[a._v("Determine if a value is positive (can be overridden for advanced value types).")]),a._v(" "),t("h4",{attrs:{id:"parameters-5"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#parameters-5"}},[a._v("#")]),a._v(" Parameters")]),a._v(" "),t("ul",[t("li",[t("strong",[a._v("cost")]),a._v(": The cost to evaluate.")])]),a._v(" "),t("h4",{attrs:{id:"returns-5"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#returns-5"}},[a._v("#")]),a._v(" Returns")]),a._v(" "),t("p",[a._v("True if the cost is positive (False otherwise).")])],1)}),[],!1,null,null,null);e.default=r.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[52],{567:function(a,e,t){"use strict";t.r(e);var s=t(38),r=Object(s.a)({},(function(){var a=this,e=a.$createElement,t=a._self._c||e;return t("ContentSlotsDistributor",{attrs:{"slot-key":a.$parent.slotKey}},[t("h1",{attrs:{id:"builders-domain-value"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#builders-domain-value"}},[a._v("#")]),a._v(" builders.domain.value")]),a._v(" "),t("div",{staticClass:"custom-block tip"},[t("p",{staticClass:"custom-block-title"},[a._v("Domain specification")]),a._v(" "),t("skdecide-summary")],1),a._v(" "),t("h2",{attrs:{id:"rewards"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#rewards"}},[a._v("#")]),a._v(" Rewards")]),a._v(" "),t("p",[a._v("A domain must inherit this class if it sends rewards (positive and/or negative).")]),a._v(" "),t("h3",{attrs:{id:"check-value"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#check-value"}},[a._v("#")]),a._v(" check_value "),t("Badge",{attrs:{text:"Rewards",type:"tip"}})],1),a._v(" "),t("skdecide-signature",{attrs:{name:"check_value",sig:{params:[{name:"self"},{name:"value",annotation:"Value[D.T_value]"}],return:"bool"}}}),a._v(" "),t("p",[a._v("Check that a value is compliant with its reward specification.")]),a._v(" "),t("div",{staticClass:"custom-block tip"},[t("p",{staticClass:"custom-block-title"},[a._v("TIP")]),a._v(" "),t("p",[a._v("This function returns always True by default because any kind of reward should be accepted at this level.")])]),a._v(" "),t("h4",{attrs:{id:"parameters"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#parameters"}},[a._v("#")]),a._v(" Parameters")]),a._v(" "),t("ul",[t("li",[t("strong",[a._v("value")]),a._v(": The value to check.")])]),a._v(" "),t("h4",{attrs:{id:"returns"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#returns"}},[a._v("#")]),a._v(" Returns")]),a._v(" "),t("p",[a._v("True if the value is compliant (False otherwise).")]),a._v(" "),t("h3",{attrs:{id:"check-value-2"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#check-value-2"}},[a._v("#")]),a._v(" _check_value "),t("Badge",{attrs:{text:"Rewards",type:"tip"}})],1),a._v(" "),t("skdecide-signature",{attrs:{name:"_check_value",sig:{params:[{name:"self"},{name:"value",annotation:"Value[D.T_value]"}],return:"bool"}}}),a._v(" "),t("p",[a._v("Check that a value is compliant with its reward specification.")]),a._v(" "),t("div",{staticClass:"custom-block tip"},[t("p",{staticClass:"custom-block-title"},[a._v("TIP")]),a._v(" "),t("p",[a._v("This function returns always True by default because any kind of reward should be accepted at this level.")])]),a._v(" "),t("h4",{attrs:{id:"parameters-2"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#parameters-2"}},[a._v("#")]),a._v(" Parameters")]),a._v(" "),t("ul",[t("li",[t("strong",[a._v("value")]),a._v(": The value to check.")])]),a._v(" "),t("h4",{attrs:{id:"returns-2"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#returns-2"}},[a._v("#")]),a._v(" Returns")]),a._v(" "),t("p",[a._v("True if the value is compliant (False otherwise).")]),a._v(" "),t("h2",{attrs:{id:"positivecosts"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#positivecosts"}},[a._v("#")]),a._v(" PositiveCosts")]),a._v(" "),t("p",[a._v("A domain must inherit this class if it sends only positive costs (i.e. negative rewards).")]),a._v(" "),t("p",[a._v("Having only positive costs is a required assumption for certain solvers to work, such as classical planners.")]),a._v(" "),t("h3",{attrs:{id:"check-value-3"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#check-value-3"}},[a._v("#")]),a._v(" check_value "),t("Badge",{attrs:{text:"Rewards",type:"warn"}})],1),a._v(" "),t("skdecide-signature",{attrs:{name:"check_value",sig:{params:[{name:"self"},{name:"value",annotation:"Value[D.T_value]"}],return:"bool"}}}),a._v(" "),t("p",[a._v("Check that a value is compliant with its reward specification.")]),a._v(" "),t("div",{staticClass:"custom-block tip"},[t("p",{staticClass:"custom-block-title"},[a._v("TIP")]),a._v(" "),t("p",[a._v("This function returns always True by default because any kind of reward should be accepted at this level.")])]),a._v(" "),t("h4",{attrs:{id:"parameters-3"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#parameters-3"}},[a._v("#")]),a._v(" Parameters")]),a._v(" "),t("ul",[t("li",[t("strong",[a._v("value")]),a._v(": The value to check.")])]),a._v(" "),t("h4",{attrs:{id:"returns-3"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#returns-3"}},[a._v("#")]),a._v(" Returns")]),a._v(" "),t("p",[a._v("True if the value is compliant (False otherwise).")]),a._v(" "),t("h3",{attrs:{id:"check-value-4"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#check-value-4"}},[a._v("#")]),a._v(" _check_value "),t("Badge",{attrs:{text:"Rewards",type:"warn"}})],1),a._v(" "),t("skdecide-signature",{attrs:{name:"_check_value",sig:{params:[{name:"self"},{name:"value",annotation:"Value[D.T_value]"}],return:"bool"}}}),a._v(" "),t("p",[a._v("Check that a value is compliant with its cost specification (must be positive).")]),a._v(" "),t("div",{staticClass:"custom-block tip"},[t("p",{staticClass:"custom-block-title"},[a._v("TIP")]),a._v(" "),t("p",[a._v("This function calls "),t("code",[a._v("PositiveCost._is_positive()")]),a._v(" to determine if a value is positive (can be overridden for\nadvanced value types).")])]),a._v(" "),t("h4",{attrs:{id:"parameters-4"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#parameters-4"}},[a._v("#")]),a._v(" Parameters")]),a._v(" "),t("ul",[t("li",[t("strong",[a._v("value")]),a._v(": The value to check.")])]),a._v(" "),t("h4",{attrs:{id:"returns-4"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#returns-4"}},[a._v("#")]),a._v(" Returns")]),a._v(" "),t("p",[a._v("True if the value is compliant (False otherwise).")]),a._v(" "),t("h3",{attrs:{id:"is-positive"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#is-positive"}},[a._v("#")]),a._v(" _is_positive "),t("Badge",{attrs:{text:"PositiveCosts",type:"tip"}})],1),a._v(" "),t("skdecide-signature",{attrs:{name:"_is_positive",sig:{params:[{name:"self"},{name:"cost",annotation:"D.T_value"}],return:"bool"}}}),a._v(" "),t("p",[a._v("Determine if a value is positive (can be overridden for advanced value types).")]),a._v(" "),t("h4",{attrs:{id:"parameters-5"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#parameters-5"}},[a._v("#")]),a._v(" Parameters")]),a._v(" "),t("ul",[t("li",[t("strong",[a._v("cost")]),a._v(": The cost to evaluate.")])]),a._v(" "),t("h4",{attrs:{id:"returns-5"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#returns-5"}},[a._v("#")]),a._v(" Returns")]),a._v(" "),t("p",[a._v("True if the cost is positive (False otherwise).")])],1)}),[],!1,null,null,null);e.default=r.exports}}]); \ No newline at end of file diff --git a/assets/js/53.5e1f2b8e.js b/assets/js/53.0cc6d034.js similarity index 99% rename from assets/js/53.5e1f2b8e.js rename to assets/js/53.0cc6d034.js index 756412dcb4..20435d48c2 100644 --- a/assets/js/53.5e1f2b8e.js +++ b/assets/js/53.0cc6d034.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[53],{571:function(t,Q,a){"use strict";a.r(Q);var T=a(38),r=Object(T.a)({},(function(){var t=this,Q=t.$createElement,a=t._self._c||Q;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"builders-solver-assessability"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#builders-solver-assessability"}},[t._v("#")]),t._v(" builders.solver.assessability")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("Domain specification")]),t._v(" "),a("skdecide-summary")],1),t._v(" "),a("h2",{attrs:{id:"utilities"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#utilities"}},[t._v("#")]),t._v(" Utilities")]),t._v(" "),a("p",[t._v("A solver must inherit this class if it can provide the utility function (i.e. value function).")]),t._v(" "),a("h3",{attrs:{id:"get-utility"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-utility"}},[t._v("#")]),t._v(" get_utility "),a("Badge",{attrs:{text:"Utilities",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_utility",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"D.T_value"}}}),t._v(" "),a("p",[t._v("Get the estimated on-policy utility of the given observation.")]),t._v(" "),a("p",[t._v("In mathematical terms, for a fully observable domain, this function estimates:\n")]),a("p",[a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG",display:"true"}},[a("svg",{staticStyle:{"vertical-align":"-1.605ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"23.742ex",height:"3.301ex",viewBox:"0 -750 10493.9 1459.2"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"msup"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"56",d:"M52 648Q52 670 65 683H76Q118 680 181 680Q299 680 320 683H330Q336 677 336 674T334 656Q329 641 325 637H304Q282 635 274 635Q245 630 242 620Q242 618 271 369T301 118L374 235Q447 352 520 471T595 594Q599 601 599 609Q599 633 555 637Q537 637 537 648Q537 649 539 661Q542 675 545 679T558 683Q560 683 570 683T604 682T668 681Q737 681 755 683H762Q769 676 769 672Q769 655 760 640Q757 637 743 637Q730 636 719 635T698 630T682 623T670 615T660 608T652 599T645 592L452 282Q272 -9 266 -16Q263 -18 259 -21L241 -22H234Q216 -22 216 -15Q213 -9 177 305Q139 623 138 626Q133 637 76 637H59Q52 642 52 648Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(856.2, 413) scale(0.707)"}},[a("path",{attrs:{"data-c":"3C0",d:"M132 -11Q98 -11 98 22V33L111 61Q186 219 220 334L228 358H196Q158 358 142 355T103 336Q92 329 81 318T62 297T53 285Q51 284 38 284Q19 284 19 294Q19 300 38 329T93 391T164 429Q171 431 389 431Q549 431 553 430Q573 423 573 402Q573 371 541 360Q535 358 472 358H408L405 341Q393 269 393 222Q393 170 402 129T421 65T431 37Q431 20 417 5T381 -10Q370 -10 363 -7T347 17T331 77Q330 86 330 121Q330 170 339 226T357 318T367 358H269L268 354Q268 351 249 275T206 114T175 17Q164 -11 132 -11Z"}})])]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1309.3, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(1698.3, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2167.3, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2834, 0)"}},[a("path",{attrs:{"data-c":"3D",d:"M56 347Q56 360 70 367H707Q722 359 722 347Q722 336 708 328L390 327H72Q56 332 56 347ZM56 153Q56 168 72 173H708Q722 163 722 153Q722 140 707 133H70Q56 140 56 153Z"}})]),a("g",{attrs:{"data-mml-node":"munder",transform:"translate(3612, 0)"}},[a("g",{attrs:{"data-mml-node":"TeXAtom",transform:"translate(325.9, 0)"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"45",d:"M12 666Q12 675 24 683H582Q590 680 593 672V588Q593 514 591 502T575 490Q567 490 563 495T555 517Q552 556 517 590Q486 623 445 634T340 648H282Q266 636 264 620T260 492V370H277Q329 375 358 391T404 439Q420 480 420 506Q420 529 436 529Q445 529 451 521Q455 517 455 361Q455 333 455 298T456 253Q456 217 453 207T437 197Q420 196 420 217Q420 240 406 270Q377 328 284 335H260V201Q261 174 261 134Q262 73 264 61T278 38Q281 36 282 35H331Q400 35 449 50Q571 93 602 179Q605 203 622 203Q629 203 634 197T640 183Q638 181 624 95T604 3L600 -1H24Q12 5 12 16Q12 35 51 35Q92 38 97 52Q102 60 102 341T97 632Q91 645 51 648Q12 648 12 666ZM137 341Q137 131 136 89T130 37Q129 36 129 35H235Q233 41 231 48L226 61V623L231 635L235 648H129Q132 641 133 638T135 603T137 517T137 341ZM557 603V648H504Q504 646 515 639Q527 634 542 619L557 603ZM420 317V397L406 383Q394 370 380 363L366 355Q373 350 382 346Q400 333 409 328L420 317ZM582 61L586 88Q585 88 582 83Q557 61 526 46L511 37L542 35H577Q577 36 578 39T580 49T582 61Z"}})])]),a("g",{attrs:{"data-mml-node":"mrow",transform:"translate(0, -600) scale(0.707)"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"3C4",d:"M39 284Q18 284 18 294Q18 301 45 338T99 398Q134 425 164 429Q170 431 332 431Q492 431 497 429Q517 424 517 402Q517 388 508 376T485 360Q479 358 389 358T299 356Q298 355 283 274T251 109T233 20Q228 5 215 -4T186 -13Q153 -13 153 20V30L203 192Q214 228 227 272T248 336L254 357Q254 358 208 358Q206 358 197 358T183 359Q105 359 61 295Q56 287 53 286T39 284Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(517, 0)"}},[a("path",{attrs:{"data-c":"223C",d:"M55 166Q55 241 101 304T222 367Q260 367 296 349T362 304T421 252T484 208T554 189Q616 189 655 236T694 338Q694 350 698 358T708 367Q722 367 722 334Q722 260 677 197T562 134H554Q517 134 481 152T414 196T355 248T292 293T223 311Q179 311 145 286Q109 257 96 218T80 156T69 133Q55 133 55 166Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(1295, 0)"}},[a("path",{attrs:{"data-c":"3C0",d:"M132 -11Q98 -11 98 22V33L111 61Q186 219 220 334L228 358H196Q158 358 142 355T103 336Q92 329 81 318T62 297T53 285Q51 284 38 284Q19 284 19 294Q19 300 38 329T93 391T164 429Q171 431 389 431Q549 431 553 430Q573 423 573 402Q573 371 541 360Q535 358 472 358H408L405 341Q393 269 393 222Q393 170 402 129T421 65T431 37Q431 20 417 5T381 -10Q370 -10 363 -7T347 17T331 77Q330 86 330 121Q330 170 339 226T357 318T367 358H269L268 354Q268 351 249 275T206 114T175 17Q164 -11 132 -11Z"}})])])]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(4930.8, 0)"}},[a("path",{attrs:{"data-c":"5B",d:"M118 -250V750H255V710H158V-210H255V-250H118Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(5208.8, 0)"}},[a("path",{attrs:{"data-c":"52",d:"M230 637Q203 637 198 638T193 649Q193 676 204 682Q206 683 378 683Q550 682 564 680Q620 672 658 652T712 606T733 563T739 529Q739 484 710 445T643 385T576 351T538 338L545 333Q612 295 612 223Q612 212 607 162T602 80V71Q602 53 603 43T614 25T640 16Q668 16 686 38T712 85Q717 99 720 102T735 105Q755 105 755 93Q755 75 731 36Q693 -21 641 -21H632Q571 -21 531 4T487 82Q487 109 502 166T517 239Q517 290 474 313Q459 320 449 321T378 323H309L277 193Q244 61 244 59Q244 55 245 54T252 50T269 48T302 46H333Q339 38 339 37T336 19Q332 6 326 0H311Q275 2 180 2Q146 2 117 2T71 2T50 1Q33 1 33 10Q33 12 36 24Q41 43 46 45Q50 46 61 46H67Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628Q287 635 230 637ZM630 554Q630 586 609 608T523 636Q521 636 500 636T462 637H440Q393 637 386 627Q385 624 352 494T319 361Q319 360 388 360Q466 361 492 367Q556 377 592 426Q608 449 619 486T630 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(5967.8, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(6356.8, 0)"}},[a("path",{attrs:{"data-c":"3C4",d:"M39 284Q18 284 18 294Q18 301 45 338T99 398Q134 425 164 429Q170 431 332 431Q492 431 497 429Q517 424 517 402Q517 388 508 376T485 360Q479 358 389 358T299 356Q298 355 283 274T251 109T233 20Q228 5 215 -4T186 -13Q153 -13 153 20V30L203 192Q214 228 227 272T248 336L254 357Q254 358 208 358Q206 358 197 358T183 359Q105 359 61 295Q56 287 53 286T39 284Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(6873.8, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(7262.8, 0)"}},[a("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),a("g",{attrs:{"data-mml-node":"msub",transform:"translate(7540.8, 0)"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mn",transform:"translate(469, -150) scale(0.707)"}},[a("path",{attrs:{"data-c":"30",d:"M96 585Q152 666 249 666Q297 666 345 640T423 548Q460 465 460 320Q460 165 417 83Q397 41 362 16T301 -15T250 -22Q224 -22 198 -16T137 16T82 83Q39 165 39 320Q39 494 96 585ZM321 597Q291 629 250 629Q208 629 178 597Q153 571 145 525T137 333Q137 175 145 125T181 46Q209 16 250 16Q290 16 318 46Q347 76 354 130T362 333Q362 478 354 524T321 597Z"}})])]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(8691.1, 0)"}},[a("path",{attrs:{"data-c":"3D",d:"M56 347Q56 360 70 367H707Q722 359 722 347Q722 336 708 328L390 327H72Q56 332 56 347ZM56 153Q56 168 72 173H708Q722 163 722 153Q722 140 707 133H70Q56 140 56 153Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(9746.9, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(10215.9, 0)"}},[a("path",{attrs:{"data-c":"5D",d:"M22 710V750H159V-250H22V-210H119V710H22Z"}})])])])])])],1),t._v("\nwhere "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.025ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.29ex",height:"1ex",viewBox:"0 -431 570 442"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"3C0",d:"M132 -11Q98 -11 98 22V33L111 61Q186 219 220 334L228 358H196Q158 358 142 355T103 336Q92 329 81 318T62 297T53 285Q51 284 38 284Q19 284 19 294Q19 300 38 329T93 391T164 429Q171 431 389 431Q549 431 553 430Q573 423 573 402Q573 371 541 360Q535 358 472 358H408L405 341Q393 269 393 222Q393 170 402 129T421 65T431 37Q431 20 417 5T381 -10Q370 -10 363 -7T347 17T331 77Q330 86 330 121Q330 170 339 226T357 318T367 358H269L268 354Q268 351 249 275T206 114T175 17Q164 -11 132 -11Z"}})])])])])]),t._v(" is the current policy, any "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"20.791ex",height:"2.262ex",viewBox:"0 -750 9189.4 1000"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"3C4",d:"M39 284Q18 284 18 294Q18 301 45 338T99 398Q134 425 164 429Q170 431 332 431Q492 431 497 429Q517 424 517 402Q517 388 508 376T485 360Q479 358 389 358T299 356Q298 355 283 274T251 109T233 20Q228 5 215 -4T186 -13Q153 -13 153 20V30L203 192Q214 228 227 272T248 336L254 357Q254 358 208 358Q206 358 197 358T183 359Q105 359 61 295Q56 287 53 286T39 284Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(794.8, 0)"}},[a("path",{attrs:{"data-c":"3D",d:"M56 347Q56 360 70 367H707Q722 359 722 347Q722 336 708 328L390 327H72Q56 332 56 347ZM56 153Q56 168 72 173H708Q722 163 722 153Q722 140 707 133H70Q56 140 56 153Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1850.6, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"msub",transform:"translate(2239.6, 0)"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mn",transform:"translate(469, -150) scale(0.707)"}},[a("path",{attrs:{"data-c":"30",d:"M96 585Q152 666 249 666Q297 666 345 640T423 548Q460 465 460 320Q460 165 417 83Q397 41 362 16T301 -15T250 -22Q224 -22 198 -16T137 16T82 83Q39 165 39 320Q39 494 96 585ZM321 597Q291 629 250 629Q208 629 178 597Q153 571 145 525T137 333Q137 175 145 125T181 46Q209 16 250 16Q290 16 318 46Q347 76 354 130T362 333Q362 478 354 524T321 597Z"}})])]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3112.1, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"msub",transform:"translate(3556.8, 0)"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mn",transform:"translate(529, -150) scale(0.707)"}},[a("path",{attrs:{"data-c":"30",d:"M96 585Q152 666 249 666Q297 666 345 640T423 548Q460 465 460 320Q460 165 417 83Q397 41 362 16T301 -15T250 -22Q224 -22 198 -16T137 16T82 83Q39 165 39 320Q39 494 96 585ZM321 597Q291 629 250 629Q208 629 178 597Q153 571 145 525T137 333Q137 175 145 125T181 46Q209 16 250 16Q290 16 318 46Q347 76 354 130T362 333Q362 478 354 524T321 597Z"}})])]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(4489.3, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"msub",transform:"translate(4934, 0)"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mn",transform:"translate(469, -150) scale(0.707)"}},[a("path",{attrs:{"data-c":"31",d:"M213 578L200 573Q186 568 160 563T102 556H83V602H102Q149 604 189 617T245 641T273 663Q275 666 285 666Q294 666 302 660V361L303 61Q310 54 315 52T339 48T401 46H427V0H416Q395 3 257 3Q121 3 100 0H88V46H114Q136 46 152 46T177 47T193 50T201 52T207 57T213 61V578Z"}})])]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(5806.5, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"msub",transform:"translate(6251.2, 0)"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mn",transform:"translate(529, -150) scale(0.707)"}},[a("path",{attrs:{"data-c":"31",d:"M213 578L200 573Q186 568 160 563T102 556H83V602H102Q149 604 189 617T245 641T273 663Q275 666 285 666Q294 666 302 660V361L303 61Q310 54 315 52T339 48T401 46H427V0H416Q395 3 257 3Q121 3 100 0H88V46H114Q136 46 152 46T177 47T193 50T201 52T207 57T213 61V578Z"}})])]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(7183.8, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(7628.4, 0)"}},[a("path",{attrs:{"data-c":"22EF",d:"M78 250Q78 274 95 292T138 310Q162 310 180 294T199 251Q199 226 182 208T139 190T96 207T78 250ZM525 250Q525 274 542 292T585 310Q609 310 627 294T646 251Q646 226 629 208T586 190T543 207T525 250ZM972 250Q972 274 989 292T1032 310Q1056 310 1074 294T1093 251Q1093 226 1076 208T1033 190T990 207T972 250Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(8800.4, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(" represents a trajectory sampled from\nthe policy, "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"4.647ex",height:"2.262ex",viewBox:"0 -750 2054 1000"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"52",d:"M230 637Q203 637 198 638T193 649Q193 676 204 682Q206 683 378 683Q550 682 564 680Q620 672 658 652T712 606T733 563T739 529Q739 484 710 445T643 385T576 351T538 338L545 333Q612 295 612 223Q612 212 607 162T602 80V71Q602 53 603 43T614 25T640 16Q668 16 686 38T712 85Q717 99 720 102T735 105Q755 105 755 93Q755 75 731 36Q693 -21 641 -21H632Q571 -21 531 4T487 82Q487 109 502 166T517 239Q517 290 474 313Q459 320 449 321T378 323H309L277 193Q244 61 244 59Q244 55 245 54T252 50T269 48T302 46H333Q339 38 339 37T336 19Q332 6 326 0H311Q275 2 180 2Q146 2 117 2T71 2T50 1Q33 1 33 10Q33 12 36 24Q41 43 46 45Q50 46 61 46H67Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628Q287 635 230 637ZM630 554Q630 586 609 608T523 636Q521 636 500 636T462 637H440Q393 637 386 627Q385 624 352 494T319 361Q319 360 388 360Q466 361 492 367Q556 377 592 426Q608 449 619 486T630 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(759, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(1148, 0)"}},[a("path",{attrs:{"data-c":"3C4",d:"M39 284Q18 284 18 294Q18 301 45 338T99 398Q134 425 164 429Q170 431 332 431Q492 431 497 429Q517 424 517 402Q517 388 508 376T485 360Q479 358 389 358T299 356Q298 355 283 274T251 109T233 20Q228 5 215 -4T186 -13Q153 -13 153 20V30L203 192Q214 228 227 272T248 336L254 357Q254 358 208 358Q206 358 197 358T183 359Q105 359 61 295Q56 287 53 286T39 284Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1665, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(" is the return (cumulative reward) and "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.375ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.974ex",height:"1.375ex",viewBox:"0 -442 872.6 607.6"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"msub"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mn",transform:"translate(469, -150) scale(0.707)"}},[a("path",{attrs:{"data-c":"30",d:"M96 585Q152 666 249 666Q297 666 345 640T423 548Q460 465 460 320Q460 165 417 83Q397 41 362 16T301 -15T250 -22Q224 -22 198 -16T137 16T82 83Q39 165 39 320Q39 494 96 585ZM321 597Q291 629 250 629Q208 629 178 597Q153 571 145 525T137 333Q137 175 145 125T181 46Q209 16 250 16Q290 16 318 46Q347 76 354 130T362 333Q362 478 354 524T321 597Z"}})])])])])])]),t._v(" the initial state for the trajectories."),a("p"),t._v(" "),a("h4",{attrs:{id:"parameters"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The estimated on-policy utility of the given observation.")]),t._v(" "),a("h3",{attrs:{id:"get-utility-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-utility-2"}},[t._v("#")]),t._v(" _get_utility "),a("Badge",{attrs:{text:"Utilities",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_utility",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"D.T_value"}}}),t._v(" "),a("p",[t._v("Get the estimated on-policy utility of the given observation.")]),t._v(" "),a("p",[t._v("In mathematical terms, for a fully observable domain, this function estimates:\n")]),a("p",[a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG",display:"true"}},[a("svg",{staticStyle:{"vertical-align":"-1.605ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"23.742ex",height:"3.301ex",viewBox:"0 -750 10493.9 1459.2"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"msup"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"56",d:"M52 648Q52 670 65 683H76Q118 680 181 680Q299 680 320 683H330Q336 677 336 674T334 656Q329 641 325 637H304Q282 635 274 635Q245 630 242 620Q242 618 271 369T301 118L374 235Q447 352 520 471T595 594Q599 601 599 609Q599 633 555 637Q537 637 537 648Q537 649 539 661Q542 675 545 679T558 683Q560 683 570 683T604 682T668 681Q737 681 755 683H762Q769 676 769 672Q769 655 760 640Q757 637 743 637Q730 636 719 635T698 630T682 623T670 615T660 608T652 599T645 592L452 282Q272 -9 266 -16Q263 -18 259 -21L241 -22H234Q216 -22 216 -15Q213 -9 177 305Q139 623 138 626Q133 637 76 637H59Q52 642 52 648Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(856.2, 413) scale(0.707)"}},[a("path",{attrs:{"data-c":"3C0",d:"M132 -11Q98 -11 98 22V33L111 61Q186 219 220 334L228 358H196Q158 358 142 355T103 336Q92 329 81 318T62 297T53 285Q51 284 38 284Q19 284 19 294Q19 300 38 329T93 391T164 429Q171 431 389 431Q549 431 553 430Q573 423 573 402Q573 371 541 360Q535 358 472 358H408L405 341Q393 269 393 222Q393 170 402 129T421 65T431 37Q431 20 417 5T381 -10Q370 -10 363 -7T347 17T331 77Q330 86 330 121Q330 170 339 226T357 318T367 358H269L268 354Q268 351 249 275T206 114T175 17Q164 -11 132 -11Z"}})])]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1309.3, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(1698.3, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2167.3, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2834, 0)"}},[a("path",{attrs:{"data-c":"3D",d:"M56 347Q56 360 70 367H707Q722 359 722 347Q722 336 708 328L390 327H72Q56 332 56 347ZM56 153Q56 168 72 173H708Q722 163 722 153Q722 140 707 133H70Q56 140 56 153Z"}})]),a("g",{attrs:{"data-mml-node":"munder",transform:"translate(3612, 0)"}},[a("g",{attrs:{"data-mml-node":"TeXAtom",transform:"translate(325.9, 0)"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"45",d:"M12 666Q12 675 24 683H582Q590 680 593 672V588Q593 514 591 502T575 490Q567 490 563 495T555 517Q552 556 517 590Q486 623 445 634T340 648H282Q266 636 264 620T260 492V370H277Q329 375 358 391T404 439Q420 480 420 506Q420 529 436 529Q445 529 451 521Q455 517 455 361Q455 333 455 298T456 253Q456 217 453 207T437 197Q420 196 420 217Q420 240 406 270Q377 328 284 335H260V201Q261 174 261 134Q262 73 264 61T278 38Q281 36 282 35H331Q400 35 449 50Q571 93 602 179Q605 203 622 203Q629 203 634 197T640 183Q638 181 624 95T604 3L600 -1H24Q12 5 12 16Q12 35 51 35Q92 38 97 52Q102 60 102 341T97 632Q91 645 51 648Q12 648 12 666ZM137 341Q137 131 136 89T130 37Q129 36 129 35H235Q233 41 231 48L226 61V623L231 635L235 648H129Q132 641 133 638T135 603T137 517T137 341ZM557 603V648H504Q504 646 515 639Q527 634 542 619L557 603ZM420 317V397L406 383Q394 370 380 363L366 355Q373 350 382 346Q400 333 409 328L420 317ZM582 61L586 88Q585 88 582 83Q557 61 526 46L511 37L542 35H577Q577 36 578 39T580 49T582 61Z"}})])]),a("g",{attrs:{"data-mml-node":"mrow",transform:"translate(0, -600) scale(0.707)"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"3C4",d:"M39 284Q18 284 18 294Q18 301 45 338T99 398Q134 425 164 429Q170 431 332 431Q492 431 497 429Q517 424 517 402Q517 388 508 376T485 360Q479 358 389 358T299 356Q298 355 283 274T251 109T233 20Q228 5 215 -4T186 -13Q153 -13 153 20V30L203 192Q214 228 227 272T248 336L254 357Q254 358 208 358Q206 358 197 358T183 359Q105 359 61 295Q56 287 53 286T39 284Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(517, 0)"}},[a("path",{attrs:{"data-c":"223C",d:"M55 166Q55 241 101 304T222 367Q260 367 296 349T362 304T421 252T484 208T554 189Q616 189 655 236T694 338Q694 350 698 358T708 367Q722 367 722 334Q722 260 677 197T562 134H554Q517 134 481 152T414 196T355 248T292 293T223 311Q179 311 145 286Q109 257 96 218T80 156T69 133Q55 133 55 166Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(1295, 0)"}},[a("path",{attrs:{"data-c":"3C0",d:"M132 -11Q98 -11 98 22V33L111 61Q186 219 220 334L228 358H196Q158 358 142 355T103 336Q92 329 81 318T62 297T53 285Q51 284 38 284Q19 284 19 294Q19 300 38 329T93 391T164 429Q171 431 389 431Q549 431 553 430Q573 423 573 402Q573 371 541 360Q535 358 472 358H408L405 341Q393 269 393 222Q393 170 402 129T421 65T431 37Q431 20 417 5T381 -10Q370 -10 363 -7T347 17T331 77Q330 86 330 121Q330 170 339 226T357 318T367 358H269L268 354Q268 351 249 275T206 114T175 17Q164 -11 132 -11Z"}})])])]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(4930.8, 0)"}},[a("path",{attrs:{"data-c":"5B",d:"M118 -250V750H255V710H158V-210H255V-250H118Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(5208.8, 0)"}},[a("path",{attrs:{"data-c":"52",d:"M230 637Q203 637 198 638T193 649Q193 676 204 682Q206 683 378 683Q550 682 564 680Q620 672 658 652T712 606T733 563T739 529Q739 484 710 445T643 385T576 351T538 338L545 333Q612 295 612 223Q612 212 607 162T602 80V71Q602 53 603 43T614 25T640 16Q668 16 686 38T712 85Q717 99 720 102T735 105Q755 105 755 93Q755 75 731 36Q693 -21 641 -21H632Q571 -21 531 4T487 82Q487 109 502 166T517 239Q517 290 474 313Q459 320 449 321T378 323H309L277 193Q244 61 244 59Q244 55 245 54T252 50T269 48T302 46H333Q339 38 339 37T336 19Q332 6 326 0H311Q275 2 180 2Q146 2 117 2T71 2T50 1Q33 1 33 10Q33 12 36 24Q41 43 46 45Q50 46 61 46H67Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628Q287 635 230 637ZM630 554Q630 586 609 608T523 636Q521 636 500 636T462 637H440Q393 637 386 627Q385 624 352 494T319 361Q319 360 388 360Q466 361 492 367Q556 377 592 426Q608 449 619 486T630 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(5967.8, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(6356.8, 0)"}},[a("path",{attrs:{"data-c":"3C4",d:"M39 284Q18 284 18 294Q18 301 45 338T99 398Q134 425 164 429Q170 431 332 431Q492 431 497 429Q517 424 517 402Q517 388 508 376T485 360Q479 358 389 358T299 356Q298 355 283 274T251 109T233 20Q228 5 215 -4T186 -13Q153 -13 153 20V30L203 192Q214 228 227 272T248 336L254 357Q254 358 208 358Q206 358 197 358T183 359Q105 359 61 295Q56 287 53 286T39 284Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(6873.8, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(7262.8, 0)"}},[a("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),a("g",{attrs:{"data-mml-node":"msub",transform:"translate(7540.8, 0)"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mn",transform:"translate(469, -150) scale(0.707)"}},[a("path",{attrs:{"data-c":"30",d:"M96 585Q152 666 249 666Q297 666 345 640T423 548Q460 465 460 320Q460 165 417 83Q397 41 362 16T301 -15T250 -22Q224 -22 198 -16T137 16T82 83Q39 165 39 320Q39 494 96 585ZM321 597Q291 629 250 629Q208 629 178 597Q153 571 145 525T137 333Q137 175 145 125T181 46Q209 16 250 16Q290 16 318 46Q347 76 354 130T362 333Q362 478 354 524T321 597Z"}})])]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(8691.1, 0)"}},[a("path",{attrs:{"data-c":"3D",d:"M56 347Q56 360 70 367H707Q722 359 722 347Q722 336 708 328L390 327H72Q56 332 56 347ZM56 153Q56 168 72 173H708Q722 163 722 153Q722 140 707 133H70Q56 140 56 153Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(9746.9, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(10215.9, 0)"}},[a("path",{attrs:{"data-c":"5D",d:"M22 710V750H159V-250H22V-210H119V710H22Z"}})])])])])])],1),t._v("\nwhere "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.025ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.29ex",height:"1ex",viewBox:"0 -431 570 442"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"3C0",d:"M132 -11Q98 -11 98 22V33L111 61Q186 219 220 334L228 358H196Q158 358 142 355T103 336Q92 329 81 318T62 297T53 285Q51 284 38 284Q19 284 19 294Q19 300 38 329T93 391T164 429Q171 431 389 431Q549 431 553 430Q573 423 573 402Q573 371 541 360Q535 358 472 358H408L405 341Q393 269 393 222Q393 170 402 129T421 65T431 37Q431 20 417 5T381 -10Q370 -10 363 -7T347 17T331 77Q330 86 330 121Q330 170 339 226T357 318T367 358H269L268 354Q268 351 249 275T206 114T175 17Q164 -11 132 -11Z"}})])])])])]),t._v(" is the current policy, any "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"20.791ex",height:"2.262ex",viewBox:"0 -750 9189.4 1000"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"3C4",d:"M39 284Q18 284 18 294Q18 301 45 338T99 398Q134 425 164 429Q170 431 332 431Q492 431 497 429Q517 424 517 402Q517 388 508 376T485 360Q479 358 389 358T299 356Q298 355 283 274T251 109T233 20Q228 5 215 -4T186 -13Q153 -13 153 20V30L203 192Q214 228 227 272T248 336L254 357Q254 358 208 358Q206 358 197 358T183 359Q105 359 61 295Q56 287 53 286T39 284Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(794.8, 0)"}},[a("path",{attrs:{"data-c":"3D",d:"M56 347Q56 360 70 367H707Q722 359 722 347Q722 336 708 328L390 327H72Q56 332 56 347ZM56 153Q56 168 72 173H708Q722 163 722 153Q722 140 707 133H70Q56 140 56 153Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1850.6, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"msub",transform:"translate(2239.6, 0)"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mn",transform:"translate(469, -150) scale(0.707)"}},[a("path",{attrs:{"data-c":"30",d:"M96 585Q152 666 249 666Q297 666 345 640T423 548Q460 465 460 320Q460 165 417 83Q397 41 362 16T301 -15T250 -22Q224 -22 198 -16T137 16T82 83Q39 165 39 320Q39 494 96 585ZM321 597Q291 629 250 629Q208 629 178 597Q153 571 145 525T137 333Q137 175 145 125T181 46Q209 16 250 16Q290 16 318 46Q347 76 354 130T362 333Q362 478 354 524T321 597Z"}})])]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3112.1, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"msub",transform:"translate(3556.8, 0)"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mn",transform:"translate(529, -150) scale(0.707)"}},[a("path",{attrs:{"data-c":"30",d:"M96 585Q152 666 249 666Q297 666 345 640T423 548Q460 465 460 320Q460 165 417 83Q397 41 362 16T301 -15T250 -22Q224 -22 198 -16T137 16T82 83Q39 165 39 320Q39 494 96 585ZM321 597Q291 629 250 629Q208 629 178 597Q153 571 145 525T137 333Q137 175 145 125T181 46Q209 16 250 16Q290 16 318 46Q347 76 354 130T362 333Q362 478 354 524T321 597Z"}})])]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(4489.3, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"msub",transform:"translate(4934, 0)"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mn",transform:"translate(469, -150) scale(0.707)"}},[a("path",{attrs:{"data-c":"31",d:"M213 578L200 573Q186 568 160 563T102 556H83V602H102Q149 604 189 617T245 641T273 663Q275 666 285 666Q294 666 302 660V361L303 61Q310 54 315 52T339 48T401 46H427V0H416Q395 3 257 3Q121 3 100 0H88V46H114Q136 46 152 46T177 47T193 50T201 52T207 57T213 61V578Z"}})])]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(5806.5, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"msub",transform:"translate(6251.2, 0)"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mn",transform:"translate(529, -150) scale(0.707)"}},[a("path",{attrs:{"data-c":"31",d:"M213 578L200 573Q186 568 160 563T102 556H83V602H102Q149 604 189 617T245 641T273 663Q275 666 285 666Q294 666 302 660V361L303 61Q310 54 315 52T339 48T401 46H427V0H416Q395 3 257 3Q121 3 100 0H88V46H114Q136 46 152 46T177 47T193 50T201 52T207 57T213 61V578Z"}})])]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(7183.8, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(7628.4, 0)"}},[a("path",{attrs:{"data-c":"22EF",d:"M78 250Q78 274 95 292T138 310Q162 310 180 294T199 251Q199 226 182 208T139 190T96 207T78 250ZM525 250Q525 274 542 292T585 310Q609 310 627 294T646 251Q646 226 629 208T586 190T543 207T525 250ZM972 250Q972 274 989 292T1032 310Q1056 310 1074 294T1093 251Q1093 226 1076 208T1033 190T990 207T972 250Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(8800.4, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(" represents a trajectory sampled from\nthe policy, "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"4.647ex",height:"2.262ex",viewBox:"0 -750 2054 1000"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"52",d:"M230 637Q203 637 198 638T193 649Q193 676 204 682Q206 683 378 683Q550 682 564 680Q620 672 658 652T712 606T733 563T739 529Q739 484 710 445T643 385T576 351T538 338L545 333Q612 295 612 223Q612 212 607 162T602 80V71Q602 53 603 43T614 25T640 16Q668 16 686 38T712 85Q717 99 720 102T735 105Q755 105 755 93Q755 75 731 36Q693 -21 641 -21H632Q571 -21 531 4T487 82Q487 109 502 166T517 239Q517 290 474 313Q459 320 449 321T378 323H309L277 193Q244 61 244 59Q244 55 245 54T252 50T269 48T302 46H333Q339 38 339 37T336 19Q332 6 326 0H311Q275 2 180 2Q146 2 117 2T71 2T50 1Q33 1 33 10Q33 12 36 24Q41 43 46 45Q50 46 61 46H67Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628Q287 635 230 637ZM630 554Q630 586 609 608T523 636Q521 636 500 636T462 637H440Q393 637 386 627Q385 624 352 494T319 361Q319 360 388 360Q466 361 492 367Q556 377 592 426Q608 449 619 486T630 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(759, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(1148, 0)"}},[a("path",{attrs:{"data-c":"3C4",d:"M39 284Q18 284 18 294Q18 301 45 338T99 398Q134 425 164 429Q170 431 332 431Q492 431 497 429Q517 424 517 402Q517 388 508 376T485 360Q479 358 389 358T299 356Q298 355 283 274T251 109T233 20Q228 5 215 -4T186 -13Q153 -13 153 20V30L203 192Q214 228 227 272T248 336L254 357Q254 358 208 358Q206 358 197 358T183 359Q105 359 61 295Q56 287 53 286T39 284Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1665, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(" is the return (cumulative reward) and "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.375ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.974ex",height:"1.375ex",viewBox:"0 -442 872.6 607.6"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"msub"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mn",transform:"translate(469, -150) scale(0.707)"}},[a("path",{attrs:{"data-c":"30",d:"M96 585Q152 666 249 666Q297 666 345 640T423 548Q460 465 460 320Q460 165 417 83Q397 41 362 16T301 -15T250 -22Q224 -22 198 -16T137 16T82 83Q39 165 39 320Q39 494 96 585ZM321 597Q291 629 250 629Q208 629 178 597Q153 571 145 525T137 333Q137 175 145 125T181 46Q209 16 250 16Q290 16 318 46Q347 76 354 130T362 333Q362 478 354 524T321 597Z"}})])])])])])]),t._v(" the initial state for the trajectories."),a("p"),t._v(" "),a("h4",{attrs:{id:"parameters-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-2"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-2"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The estimated on-policy utility of the given observation.")]),t._v(" "),a("h2",{attrs:{id:"qvalues"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#qvalues"}},[t._v("#")]),t._v(" QValues")]),t._v(" "),a("p",[t._v("A solver must inherit this class if it can provide the Q function (i.e. action-value function).")]),t._v(" "),a("h3",{attrs:{id:"get-q-value"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-q-value"}},[t._v("#")]),t._v(" get_q_value "),a("Badge",{attrs:{text:"QValues",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_q_value",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"D.T_value"}}}),t._v(" "),a("p",[t._v("Get the estimated on-policy Q value of the given observation and action.")]),t._v(" "),a("p",[t._v("In mathematical terms, for a fully observable domain, this function estimates:\n")]),a("p",[a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG",display:"true"}},[a("svg",{staticStyle:{"vertical-align":"-1.605ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"33.127ex",height:"3.301ex",viewBox:"0 -750 14642.1 1459.2"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"msup"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"51",d:"M399 -80Q399 -47 400 -30T402 -11V-7L387 -11Q341 -22 303 -22Q208 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435Q740 255 592 107Q529 47 461 16L444 8V3Q444 2 449 -24T470 -66T516 -82Q551 -82 583 -60T625 -3Q631 11 638 11Q647 11 649 2Q649 -6 639 -34T611 -100T557 -165T481 -194Q399 -194 399 -87V-80ZM636 468Q636 523 621 564T580 625T530 655T477 665Q429 665 379 640Q277 591 215 464T153 216Q153 110 207 59Q231 38 236 38V46Q236 86 269 120T347 155Q372 155 390 144T417 114T429 82T435 55L448 64Q512 108 557 185T619 334T636 468ZM314 18Q362 18 404 39L403 49Q399 104 366 115Q354 117 347 117Q344 117 341 117T337 118Q317 118 296 98T274 52Q274 18 314 18Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(791, 413) scale(0.707)"}},[a("path",{attrs:{"data-c":"3C0",d:"M132 -11Q98 -11 98 22V33L111 61Q186 219 220 334L228 358H196Q158 358 142 355T103 336Q92 329 81 318T62 297T53 285Q51 284 38 284Q19 284 19 294Q19 300 38 329T93 391T164 429Q171 431 389 431Q549 431 553 430Q573 423 573 402Q573 371 541 360Q535 358 472 358H408L405 341Q393 269 393 222Q393 170 402 129T421 65T431 37Q431 20 417 5T381 -10Q370 -10 363 -7T347 17T331 77Q330 86 330 121Q330 170 339 226T357 318T367 358H269L268 354Q268 351 249 275T206 114T175 17Q164 -11 132 -11Z"}})])]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1244.1, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(1633.1, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2102.1, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(2546.7, 0)"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3075.7, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3742.5, 0)"}},[a("path",{attrs:{"data-c":"3D",d:"M56 347Q56 360 70 367H707Q722 359 722 347Q722 336 708 328L390 327H72Q56 332 56 347ZM56 153Q56 168 72 173H708Q722 163 722 153Q722 140 707 133H70Q56 140 56 153Z"}})]),a("g",{attrs:{"data-mml-node":"munder",transform:"translate(4520.5, 0)"}},[a("g",{attrs:{"data-mml-node":"TeXAtom",transform:"translate(325.9, 0)"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"45",d:"M12 666Q12 675 24 683H582Q590 680 593 672V588Q593 514 591 502T575 490Q567 490 563 495T555 517Q552 556 517 590Q486 623 445 634T340 648H282Q266 636 264 620T260 492V370H277Q329 375 358 391T404 439Q420 480 420 506Q420 529 436 529Q445 529 451 521Q455 517 455 361Q455 333 455 298T456 253Q456 217 453 207T437 197Q420 196 420 217Q420 240 406 270Q377 328 284 335H260V201Q261 174 261 134Q262 73 264 61T278 38Q281 36 282 35H331Q400 35 449 50Q571 93 602 179Q605 203 622 203Q629 203 634 197T640 183Q638 181 624 95T604 3L600 -1H24Q12 5 12 16Q12 35 51 35Q92 38 97 52Q102 60 102 341T97 632Q91 645 51 648Q12 648 12 666ZM137 341Q137 131 136 89T130 37Q129 36 129 35H235Q233 41 231 48L226 61V623L231 635L235 648H129Q132 641 133 638T135 603T137 517T137 341ZM557 603V648H504Q504 646 515 639Q527 634 542 619L557 603ZM420 317V397L406 383Q394 370 380 363L366 355Q373 350 382 346Q400 333 409 328L420 317ZM582 61L586 88Q585 88 582 83Q557 61 526 46L511 37L542 35H577Q577 36 578 39T580 49T582 61Z"}})])]),a("g",{attrs:{"data-mml-node":"mrow",transform:"translate(0, -600) scale(0.707)"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"3C4",d:"M39 284Q18 284 18 294Q18 301 45 338T99 398Q134 425 164 429Q170 431 332 431Q492 431 497 429Q517 424 517 402Q517 388 508 376T485 360Q479 358 389 358T299 356Q298 355 283 274T251 109T233 20Q228 5 215 -4T186 -13Q153 -13 153 20V30L203 192Q214 228 227 272T248 336L254 357Q254 358 208 358Q206 358 197 358T183 359Q105 359 61 295Q56 287 53 286T39 284Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(517, 0)"}},[a("path",{attrs:{"data-c":"223C",d:"M55 166Q55 241 101 304T222 367Q260 367 296 349T362 304T421 252T484 208T554 189Q616 189 655 236T694 338Q694 350 698 358T708 367Q722 367 722 334Q722 260 677 197T562 134H554Q517 134 481 152T414 196T355 248T292 293T223 311Q179 311 145 286Q109 257 96 218T80 156T69 133Q55 133 55 166Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(1295, 0)"}},[a("path",{attrs:{"data-c":"3C0",d:"M132 -11Q98 -11 98 22V33L111 61Q186 219 220 334L228 358H196Q158 358 142 355T103 336Q92 329 81 318T62 297T53 285Q51 284 38 284Q19 284 19 294Q19 300 38 329T93 391T164 429Q171 431 389 431Q549 431 553 430Q573 423 573 402Q573 371 541 360Q535 358 472 358H408L405 341Q393 269 393 222Q393 170 402 129T421 65T431 37Q431 20 417 5T381 -10Q370 -10 363 -7T347 17T331 77Q330 86 330 121Q330 170 339 226T357 318T367 358H269L268 354Q268 351 249 275T206 114T175 17Q164 -11 132 -11Z"}})])])]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(5839.2, 0)"}},[a("path",{attrs:{"data-c":"5B",d:"M118 -250V750H255V710H158V-210H255V-250H118Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(6117.2, 0)"}},[a("path",{attrs:{"data-c":"52",d:"M230 637Q203 637 198 638T193 649Q193 676 204 682Q206 683 378 683Q550 682 564 680Q620 672 658 652T712 606T733 563T739 529Q739 484 710 445T643 385T576 351T538 338L545 333Q612 295 612 223Q612 212 607 162T602 80V71Q602 53 603 43T614 25T640 16Q668 16 686 38T712 85Q717 99 720 102T735 105Q755 105 755 93Q755 75 731 36Q693 -21 641 -21H632Q571 -21 531 4T487 82Q487 109 502 166T517 239Q517 290 474 313Q459 320 449 321T378 323H309L277 193Q244 61 244 59Q244 55 245 54T252 50T269 48T302 46H333Q339 38 339 37T336 19Q332 6 326 0H311Q275 2 180 2Q146 2 117 2T71 2T50 1Q33 1 33 10Q33 12 36 24Q41 43 46 45Q50 46 61 46H67Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628Q287 635 230 637ZM630 554Q630 586 609 608T523 636Q521 636 500 636T462 637H440Q393 637 386 627Q385 624 352 494T319 361Q319 360 388 360Q466 361 492 367Q556 377 592 426Q608 449 619 486T630 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(6876.2, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(7265.2, 0)"}},[a("path",{attrs:{"data-c":"3C4",d:"M39 284Q18 284 18 294Q18 301 45 338T99 398Q134 425 164 429Q170 431 332 431Q492 431 497 429Q517 424 517 402Q517 388 508 376T485 360Q479 358 389 358T299 356Q298 355 283 274T251 109T233 20Q228 5 215 -4T186 -13Q153 -13 153 20V30L203 192Q214 228 227 272T248 336L254 357Q254 358 208 358Q206 358 197 358T183 359Q105 359 61 295Q56 287 53 286T39 284Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(7782.2, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(8171.2, 0)"}},[a("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),a("g",{attrs:{"data-mml-node":"msub",transform:"translate(8449.2, 0)"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mn",transform:"translate(469, -150) scale(0.707)"}},[a("path",{attrs:{"data-c":"30",d:"M96 585Q152 666 249 666Q297 666 345 640T423 548Q460 465 460 320Q460 165 417 83Q397 41 362 16T301 -15T250 -22Q224 -22 198 -16T137 16T82 83Q39 165 39 320Q39 494 96 585ZM321 597Q291 629 250 629Q208 629 178 597Q153 571 145 525T137 333Q137 175 145 125T181 46Q209 16 250 16Q290 16 318 46Q347 76 354 130T362 333Q362 478 354 524T321 597Z"}})])]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(9599.6, 0)"}},[a("path",{attrs:{"data-c":"3D",d:"M56 347Q56 360 70 367H707Q722 359 722 347Q722 336 708 328L390 327H72Q56 332 56 347ZM56 153Q56 168 72 173H708Q722 163 722 153Q722 140 707 133H70Q56 140 56 153Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(10655.4, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(11124.4, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"msub",transform:"translate(11569, 0)"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mn",transform:"translate(529, -150) scale(0.707)"}},[a("path",{attrs:{"data-c":"30",d:"M96 585Q152 666 249 666Q297 666 345 640T423 548Q460 465 460 320Q460 165 417 83Q397 41 362 16T301 -15T250 -22Q224 -22 198 -16T137 16T82 83Q39 165 39 320Q39 494 96 585ZM321 597Q291 629 250 629Q208 629 178 597Q153 571 145 525T137 333Q137 175 145 125T181 46Q209 16 250 16Q290 16 318 46Q347 76 354 130T362 333Q362 478 354 524T321 597Z"}})])]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(12779.4, 0)"}},[a("path",{attrs:{"data-c":"3D",d:"M56 347Q56 360 70 367H707Q722 359 722 347Q722 336 708 328L390 327H72Q56 332 56 347ZM56 153Q56 168 72 173H708Q722 163 722 153Q722 140 707 133H70Q56 140 56 153Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(13835.1, 0)"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(14364.1, 0)"}},[a("path",{attrs:{"data-c":"5D",d:"M22 710V750H159V-250H22V-210H119V710H22Z"}})])])])])])],1),t._v("\nwhere "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.025ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.29ex",height:"1ex",viewBox:"0 -431 570 442"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"3C0",d:"M132 -11Q98 -11 98 22V33L111 61Q186 219 220 334L228 358H196Q158 358 142 355T103 336Q92 329 81 318T62 297T53 285Q51 284 38 284Q19 284 19 294Q19 300 38 329T93 391T164 429Q171 431 389 431Q549 431 553 430Q573 423 573 402Q573 371 541 360Q535 358 472 358H408L405 341Q393 269 393 222Q393 170 402 129T421 65T431 37Q431 20 417 5T381 -10Q370 -10 363 -7T347 17T331 77Q330 86 330 121Q330 170 339 226T357 318T367 358H269L268 354Q268 351 249 275T206 114T175 17Q164 -11 132 -11Z"}})])])])])]),t._v(" is the current policy, any "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"20.791ex",height:"2.262ex",viewBox:"0 -750 9189.4 1000"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"3C4",d:"M39 284Q18 284 18 294Q18 301 45 338T99 398Q134 425 164 429Q170 431 332 431Q492 431 497 429Q517 424 517 402Q517 388 508 376T485 360Q479 358 389 358T299 356Q298 355 283 274T251 109T233 20Q228 5 215 -4T186 -13Q153 -13 153 20V30L203 192Q214 228 227 272T248 336L254 357Q254 358 208 358Q206 358 197 358T183 359Q105 359 61 295Q56 287 53 286T39 284Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(794.8, 0)"}},[a("path",{attrs:{"data-c":"3D",d:"M56 347Q56 360 70 367H707Q722 359 722 347Q722 336 708 328L390 327H72Q56 332 56 347ZM56 153Q56 168 72 173H708Q722 163 722 153Q722 140 707 133H70Q56 140 56 153Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1850.6, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"msub",transform:"translate(2239.6, 0)"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mn",transform:"translate(469, -150) scale(0.707)"}},[a("path",{attrs:{"data-c":"30",d:"M96 585Q152 666 249 666Q297 666 345 640T423 548Q460 465 460 320Q460 165 417 83Q397 41 362 16T301 -15T250 -22Q224 -22 198 -16T137 16T82 83Q39 165 39 320Q39 494 96 585ZM321 597Q291 629 250 629Q208 629 178 597Q153 571 145 525T137 333Q137 175 145 125T181 46Q209 16 250 16Q290 16 318 46Q347 76 354 130T362 333Q362 478 354 524T321 597Z"}})])]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3112.1, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"msub",transform:"translate(3556.8, 0)"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mn",transform:"translate(529, -150) scale(0.707)"}},[a("path",{attrs:{"data-c":"30",d:"M96 585Q152 666 249 666Q297 666 345 640T423 548Q460 465 460 320Q460 165 417 83Q397 41 362 16T301 -15T250 -22Q224 -22 198 -16T137 16T82 83Q39 165 39 320Q39 494 96 585ZM321 597Q291 629 250 629Q208 629 178 597Q153 571 145 525T137 333Q137 175 145 125T181 46Q209 16 250 16Q290 16 318 46Q347 76 354 130T362 333Q362 478 354 524T321 597Z"}})])]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(4489.3, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"msub",transform:"translate(4934, 0)"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mn",transform:"translate(469, -150) scale(0.707)"}},[a("path",{attrs:{"data-c":"31",d:"M213 578L200 573Q186 568 160 563T102 556H83V602H102Q149 604 189 617T245 641T273 663Q275 666 285 666Q294 666 302 660V361L303 61Q310 54 315 52T339 48T401 46H427V0H416Q395 3 257 3Q121 3 100 0H88V46H114Q136 46 152 46T177 47T193 50T201 52T207 57T213 61V578Z"}})])]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(5806.5, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"msub",transform:"translate(6251.2, 0)"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mn",transform:"translate(529, -150) scale(0.707)"}},[a("path",{attrs:{"data-c":"31",d:"M213 578L200 573Q186 568 160 563T102 556H83V602H102Q149 604 189 617T245 641T273 663Q275 666 285 666Q294 666 302 660V361L303 61Q310 54 315 52T339 48T401 46H427V0H416Q395 3 257 3Q121 3 100 0H88V46H114Q136 46 152 46T177 47T193 50T201 52T207 57T213 61V578Z"}})])]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(7183.8, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(7628.4, 0)"}},[a("path",{attrs:{"data-c":"22EF",d:"M78 250Q78 274 95 292T138 310Q162 310 180 294T199 251Q199 226 182 208T139 190T96 207T78 250ZM525 250Q525 274 542 292T585 310Q609 310 627 294T646 251Q646 226 629 208T586 190T543 207T525 250ZM972 250Q972 274 989 292T1032 310Q1056 310 1074 294T1093 251Q1093 226 1076 208T1033 190T990 207T972 250Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(8800.4, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(" represents a trajectory sampled from\nthe policy, "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"4.647ex",height:"2.262ex",viewBox:"0 -750 2054 1000"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"52",d:"M230 637Q203 637 198 638T193 649Q193 676 204 682Q206 683 378 683Q550 682 564 680Q620 672 658 652T712 606T733 563T739 529Q739 484 710 445T643 385T576 351T538 338L545 333Q612 295 612 223Q612 212 607 162T602 80V71Q602 53 603 43T614 25T640 16Q668 16 686 38T712 85Q717 99 720 102T735 105Q755 105 755 93Q755 75 731 36Q693 -21 641 -21H632Q571 -21 531 4T487 82Q487 109 502 166T517 239Q517 290 474 313Q459 320 449 321T378 323H309L277 193Q244 61 244 59Q244 55 245 54T252 50T269 48T302 46H333Q339 38 339 37T336 19Q332 6 326 0H311Q275 2 180 2Q146 2 117 2T71 2T50 1Q33 1 33 10Q33 12 36 24Q41 43 46 45Q50 46 61 46H67Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628Q287 635 230 637ZM630 554Q630 586 609 608T523 636Q521 636 500 636T462 637H440Q393 637 386 627Q385 624 352 494T319 361Q319 360 388 360Q466 361 492 367Q556 377 592 426Q608 449 619 486T630 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(759, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(1148, 0)"}},[a("path",{attrs:{"data-c":"3C4",d:"M39 284Q18 284 18 294Q18 301 45 338T99 398Q134 425 164 429Q170 431 332 431Q492 431 497 429Q517 424 517 402Q517 388 508 376T485 360Q479 358 389 358T299 356Q298 355 283 274T251 109T233 20Q228 5 215 -4T186 -13Q153 -13 153 20V30L203 192Q214 228 227 272T248 336L254 357Q254 358 208 358Q206 358 197 358T183 359Q105 359 61 295Q56 287 53 286T39 284Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1665, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(" is the return (cumulative reward) and "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.375ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.974ex",height:"1.375ex",viewBox:"0 -442 872.6 607.6"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"msub"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mn",transform:"translate(469, -150) scale(0.707)"}},[a("path",{attrs:{"data-c":"30",d:"M96 585Q152 666 249 666Q297 666 345 640T423 548Q460 465 460 320Q460 165 417 83Q397 41 362 16T301 -15T250 -22Q224 -22 198 -16T137 16T82 83Q39 165 39 320Q39 494 96 585ZM321 597Q291 629 250 629Q208 629 178 597Q153 571 145 525T137 333Q137 175 145 125T181 46Q209 16 250 16Q290 16 318 46Q347 76 354 130T362 333Q362 478 354 524T321 597Z"}})])])])])])]),t._v("/"),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.375ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"2.11ex",height:"1.372ex",viewBox:"0 -441 932.6 606.6"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"msub"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mn",transform:"translate(529, -150) scale(0.707)"}},[a("path",{attrs:{"data-c":"30",d:"M96 585Q152 666 249 666Q297 666 345 640T423 548Q460 465 460 320Q460 165 417 83Q397 41 362 16T301 -15T250 -22Q224 -22 198 -16T137 16T82 83Q39 165 39 320Q39 494 96 585ZM321 597Q291 629 250 629Q208 629 178 597Q153 571 145 525T137 333Q137 175 145 125T181 46Q209 16 250 16Q290 16 318 46Q347 76 354 130T362 333Q362 478 354 524T321 597Z"}})])])])])])]),t._v(" the initial state/action for the\ntrajectories."),a("p"),t._v(" "),a("h4",{attrs:{id:"parameters-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-3"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-3"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The estimated on-policy Q value of the given observation and action.")]),t._v(" "),a("h3",{attrs:{id:"get-utility-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-utility-3"}},[t._v("#")]),t._v(" get_utility "),a("Badge",{attrs:{text:"Utilities",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_utility",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"D.T_value"}}}),t._v(" "),a("p",[t._v("Get the estimated on-policy utility of the given observation.")]),t._v(" "),a("p",[t._v("In mathematical terms, for a fully observable domain, this function estimates:\n")]),a("p",[a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG",display:"true"}},[a("svg",{staticStyle:{"vertical-align":"-1.605ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"23.742ex",height:"3.301ex",viewBox:"0 -750 10493.9 1459.2"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"msup"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"56",d:"M52 648Q52 670 65 683H76Q118 680 181 680Q299 680 320 683H330Q336 677 336 674T334 656Q329 641 325 637H304Q282 635 274 635Q245 630 242 620Q242 618 271 369T301 118L374 235Q447 352 520 471T595 594Q599 601 599 609Q599 633 555 637Q537 637 537 648Q537 649 539 661Q542 675 545 679T558 683Q560 683 570 683T604 682T668 681Q737 681 755 683H762Q769 676 769 672Q769 655 760 640Q757 637 743 637Q730 636 719 635T698 630T682 623T670 615T660 608T652 599T645 592L452 282Q272 -9 266 -16Q263 -18 259 -21L241 -22H234Q216 -22 216 -15Q213 -9 177 305Q139 623 138 626Q133 637 76 637H59Q52 642 52 648Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(856.2, 413) scale(0.707)"}},[a("path",{attrs:{"data-c":"3C0",d:"M132 -11Q98 -11 98 22V33L111 61Q186 219 220 334L228 358H196Q158 358 142 355T103 336Q92 329 81 318T62 297T53 285Q51 284 38 284Q19 284 19 294Q19 300 38 329T93 391T164 429Q171 431 389 431Q549 431 553 430Q573 423 573 402Q573 371 541 360Q535 358 472 358H408L405 341Q393 269 393 222Q393 170 402 129T421 65T431 37Q431 20 417 5T381 -10Q370 -10 363 -7T347 17T331 77Q330 86 330 121Q330 170 339 226T357 318T367 358H269L268 354Q268 351 249 275T206 114T175 17Q164 -11 132 -11Z"}})])]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1309.3, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(1698.3, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2167.3, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2834, 0)"}},[a("path",{attrs:{"data-c":"3D",d:"M56 347Q56 360 70 367H707Q722 359 722 347Q722 336 708 328L390 327H72Q56 332 56 347ZM56 153Q56 168 72 173H708Q722 163 722 153Q722 140 707 133H70Q56 140 56 153Z"}})]),a("g",{attrs:{"data-mml-node":"munder",transform:"translate(3612, 0)"}},[a("g",{attrs:{"data-mml-node":"TeXAtom",transform:"translate(325.9, 0)"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"45",d:"M12 666Q12 675 24 683H582Q590 680 593 672V588Q593 514 591 502T575 490Q567 490 563 495T555 517Q552 556 517 590Q486 623 445 634T340 648H282Q266 636 264 620T260 492V370H277Q329 375 358 391T404 439Q420 480 420 506Q420 529 436 529Q445 529 451 521Q455 517 455 361Q455 333 455 298T456 253Q456 217 453 207T437 197Q420 196 420 217Q420 240 406 270Q377 328 284 335H260V201Q261 174 261 134Q262 73 264 61T278 38Q281 36 282 35H331Q400 35 449 50Q571 93 602 179Q605 203 622 203Q629 203 634 197T640 183Q638 181 624 95T604 3L600 -1H24Q12 5 12 16Q12 35 51 35Q92 38 97 52Q102 60 102 341T97 632Q91 645 51 648Q12 648 12 666ZM137 341Q137 131 136 89T130 37Q129 36 129 35H235Q233 41 231 48L226 61V623L231 635L235 648H129Q132 641 133 638T135 603T137 517T137 341ZM557 603V648H504Q504 646 515 639Q527 634 542 619L557 603ZM420 317V397L406 383Q394 370 380 363L366 355Q373 350 382 346Q400 333 409 328L420 317ZM582 61L586 88Q585 88 582 83Q557 61 526 46L511 37L542 35H577Q577 36 578 39T580 49T582 61Z"}})])]),a("g",{attrs:{"data-mml-node":"mrow",transform:"translate(0, -600) scale(0.707)"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"3C4",d:"M39 284Q18 284 18 294Q18 301 45 338T99 398Q134 425 164 429Q170 431 332 431Q492 431 497 429Q517 424 517 402Q517 388 508 376T485 360Q479 358 389 358T299 356Q298 355 283 274T251 109T233 20Q228 5 215 -4T186 -13Q153 -13 153 20V30L203 192Q214 228 227 272T248 336L254 357Q254 358 208 358Q206 358 197 358T183 359Q105 359 61 295Q56 287 53 286T39 284Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(517, 0)"}},[a("path",{attrs:{"data-c":"223C",d:"M55 166Q55 241 101 304T222 367Q260 367 296 349T362 304T421 252T484 208T554 189Q616 189 655 236T694 338Q694 350 698 358T708 367Q722 367 722 334Q722 260 677 197T562 134H554Q517 134 481 152T414 196T355 248T292 293T223 311Q179 311 145 286Q109 257 96 218T80 156T69 133Q55 133 55 166Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(1295, 0)"}},[a("path",{attrs:{"data-c":"3C0",d:"M132 -11Q98 -11 98 22V33L111 61Q186 219 220 334L228 358H196Q158 358 142 355T103 336Q92 329 81 318T62 297T53 285Q51 284 38 284Q19 284 19 294Q19 300 38 329T93 391T164 429Q171 431 389 431Q549 431 553 430Q573 423 573 402Q573 371 541 360Q535 358 472 358H408L405 341Q393 269 393 222Q393 170 402 129T421 65T431 37Q431 20 417 5T381 -10Q370 -10 363 -7T347 17T331 77Q330 86 330 121Q330 170 339 226T357 318T367 358H269L268 354Q268 351 249 275T206 114T175 17Q164 -11 132 -11Z"}})])])]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(4930.8, 0)"}},[a("path",{attrs:{"data-c":"5B",d:"M118 -250V750H255V710H158V-210H255V-250H118Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(5208.8, 0)"}},[a("path",{attrs:{"data-c":"52",d:"M230 637Q203 637 198 638T193 649Q193 676 204 682Q206 683 378 683Q550 682 564 680Q620 672 658 652T712 606T733 563T739 529Q739 484 710 445T643 385T576 351T538 338L545 333Q612 295 612 223Q612 212 607 162T602 80V71Q602 53 603 43T614 25T640 16Q668 16 686 38T712 85Q717 99 720 102T735 105Q755 105 755 93Q755 75 731 36Q693 -21 641 -21H632Q571 -21 531 4T487 82Q487 109 502 166T517 239Q517 290 474 313Q459 320 449 321T378 323H309L277 193Q244 61 244 59Q244 55 245 54T252 50T269 48T302 46H333Q339 38 339 37T336 19Q332 6 326 0H311Q275 2 180 2Q146 2 117 2T71 2T50 1Q33 1 33 10Q33 12 36 24Q41 43 46 45Q50 46 61 46H67Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628Q287 635 230 637ZM630 554Q630 586 609 608T523 636Q521 636 500 636T462 637H440Q393 637 386 627Q385 624 352 494T319 361Q319 360 388 360Q466 361 492 367Q556 377 592 426Q608 449 619 486T630 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(5967.8, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(6356.8, 0)"}},[a("path",{attrs:{"data-c":"3C4",d:"M39 284Q18 284 18 294Q18 301 45 338T99 398Q134 425 164 429Q170 431 332 431Q492 431 497 429Q517 424 517 402Q517 388 508 376T485 360Q479 358 389 358T299 356Q298 355 283 274T251 109T233 20Q228 5 215 -4T186 -13Q153 -13 153 20V30L203 192Q214 228 227 272T248 336L254 357Q254 358 208 358Q206 358 197 358T183 359Q105 359 61 295Q56 287 53 286T39 284Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(6873.8, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(7262.8, 0)"}},[a("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),a("g",{attrs:{"data-mml-node":"msub",transform:"translate(7540.8, 0)"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mn",transform:"translate(469, -150) scale(0.707)"}},[a("path",{attrs:{"data-c":"30",d:"M96 585Q152 666 249 666Q297 666 345 640T423 548Q460 465 460 320Q460 165 417 83Q397 41 362 16T301 -15T250 -22Q224 -22 198 -16T137 16T82 83Q39 165 39 320Q39 494 96 585ZM321 597Q291 629 250 629Q208 629 178 597Q153 571 145 525T137 333Q137 175 145 125T181 46Q209 16 250 16Q290 16 318 46Q347 76 354 130T362 333Q362 478 354 524T321 597Z"}})])]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(8691.1, 0)"}},[a("path",{attrs:{"data-c":"3D",d:"M56 347Q56 360 70 367H707Q722 359 722 347Q722 336 708 328L390 327H72Q56 332 56 347ZM56 153Q56 168 72 173H708Q722 163 722 153Q722 140 707 133H70Q56 140 56 153Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(9746.9, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(10215.9, 0)"}},[a("path",{attrs:{"data-c":"5D",d:"M22 710V750H159V-250H22V-210H119V710H22Z"}})])])])])])],1),t._v("\nwhere "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.025ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.29ex",height:"1ex",viewBox:"0 -431 570 442"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"3C0",d:"M132 -11Q98 -11 98 22V33L111 61Q186 219 220 334L228 358H196Q158 358 142 355T103 336Q92 329 81 318T62 297T53 285Q51 284 38 284Q19 284 19 294Q19 300 38 329T93 391T164 429Q171 431 389 431Q549 431 553 430Q573 423 573 402Q573 371 541 360Q535 358 472 358H408L405 341Q393 269 393 222Q393 170 402 129T421 65T431 37Q431 20 417 5T381 -10Q370 -10 363 -7T347 17T331 77Q330 86 330 121Q330 170 339 226T357 318T367 358H269L268 354Q268 351 249 275T206 114T175 17Q164 -11 132 -11Z"}})])])])])]),t._v(" is the current policy, any "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"20.791ex",height:"2.262ex",viewBox:"0 -750 9189.4 1000"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"3C4",d:"M39 284Q18 284 18 294Q18 301 45 338T99 398Q134 425 164 429Q170 431 332 431Q492 431 497 429Q517 424 517 402Q517 388 508 376T485 360Q479 358 389 358T299 356Q298 355 283 274T251 109T233 20Q228 5 215 -4T186 -13Q153 -13 153 20V30L203 192Q214 228 227 272T248 336L254 357Q254 358 208 358Q206 358 197 358T183 359Q105 359 61 295Q56 287 53 286T39 284Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(794.8, 0)"}},[a("path",{attrs:{"data-c":"3D",d:"M56 347Q56 360 70 367H707Q722 359 722 347Q722 336 708 328L390 327H72Q56 332 56 347ZM56 153Q56 168 72 173H708Q722 163 722 153Q722 140 707 133H70Q56 140 56 153Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1850.6, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"msub",transform:"translate(2239.6, 0)"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mn",transform:"translate(469, -150) scale(0.707)"}},[a("path",{attrs:{"data-c":"30",d:"M96 585Q152 666 249 666Q297 666 345 640T423 548Q460 465 460 320Q460 165 417 83Q397 41 362 16T301 -15T250 -22Q224 -22 198 -16T137 16T82 83Q39 165 39 320Q39 494 96 585ZM321 597Q291 629 250 629Q208 629 178 597Q153 571 145 525T137 333Q137 175 145 125T181 46Q209 16 250 16Q290 16 318 46Q347 76 354 130T362 333Q362 478 354 524T321 597Z"}})])]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3112.1, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"msub",transform:"translate(3556.8, 0)"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mn",transform:"translate(529, -150) scale(0.707)"}},[a("path",{attrs:{"data-c":"30",d:"M96 585Q152 666 249 666Q297 666 345 640T423 548Q460 465 460 320Q460 165 417 83Q397 41 362 16T301 -15T250 -22Q224 -22 198 -16T137 16T82 83Q39 165 39 320Q39 494 96 585ZM321 597Q291 629 250 629Q208 629 178 597Q153 571 145 525T137 333Q137 175 145 125T181 46Q209 16 250 16Q290 16 318 46Q347 76 354 130T362 333Q362 478 354 524T321 597Z"}})])]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(4489.3, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"msub",transform:"translate(4934, 0)"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mn",transform:"translate(469, -150) scale(0.707)"}},[a("path",{attrs:{"data-c":"31",d:"M213 578L200 573Q186 568 160 563T102 556H83V602H102Q149 604 189 617T245 641T273 663Q275 666 285 666Q294 666 302 660V361L303 61Q310 54 315 52T339 48T401 46H427V0H416Q395 3 257 3Q121 3 100 0H88V46H114Q136 46 152 46T177 47T193 50T201 52T207 57T213 61V578Z"}})])]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(5806.5, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"msub",transform:"translate(6251.2, 0)"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mn",transform:"translate(529, -150) scale(0.707)"}},[a("path",{attrs:{"data-c":"31",d:"M213 578L200 573Q186 568 160 563T102 556H83V602H102Q149 604 189 617T245 641T273 663Q275 666 285 666Q294 666 302 660V361L303 61Q310 54 315 52T339 48T401 46H427V0H416Q395 3 257 3Q121 3 100 0H88V46H114Q136 46 152 46T177 47T193 50T201 52T207 57T213 61V578Z"}})])]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(7183.8, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(7628.4, 0)"}},[a("path",{attrs:{"data-c":"22EF",d:"M78 250Q78 274 95 292T138 310Q162 310 180 294T199 251Q199 226 182 208T139 190T96 207T78 250ZM525 250Q525 274 542 292T585 310Q609 310 627 294T646 251Q646 226 629 208T586 190T543 207T525 250ZM972 250Q972 274 989 292T1032 310Q1056 310 1074 294T1093 251Q1093 226 1076 208T1033 190T990 207T972 250Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(8800.4, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(" represents a trajectory sampled from\nthe policy, "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"4.647ex",height:"2.262ex",viewBox:"0 -750 2054 1000"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"52",d:"M230 637Q203 637 198 638T193 649Q193 676 204 682Q206 683 378 683Q550 682 564 680Q620 672 658 652T712 606T733 563T739 529Q739 484 710 445T643 385T576 351T538 338L545 333Q612 295 612 223Q612 212 607 162T602 80V71Q602 53 603 43T614 25T640 16Q668 16 686 38T712 85Q717 99 720 102T735 105Q755 105 755 93Q755 75 731 36Q693 -21 641 -21H632Q571 -21 531 4T487 82Q487 109 502 166T517 239Q517 290 474 313Q459 320 449 321T378 323H309L277 193Q244 61 244 59Q244 55 245 54T252 50T269 48T302 46H333Q339 38 339 37T336 19Q332 6 326 0H311Q275 2 180 2Q146 2 117 2T71 2T50 1Q33 1 33 10Q33 12 36 24Q41 43 46 45Q50 46 61 46H67Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628Q287 635 230 637ZM630 554Q630 586 609 608T523 636Q521 636 500 636T462 637H440Q393 637 386 627Q385 624 352 494T319 361Q319 360 388 360Q466 361 492 367Q556 377 592 426Q608 449 619 486T630 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(759, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(1148, 0)"}},[a("path",{attrs:{"data-c":"3C4",d:"M39 284Q18 284 18 294Q18 301 45 338T99 398Q134 425 164 429Q170 431 332 431Q492 431 497 429Q517 424 517 402Q517 388 508 376T485 360Q479 358 389 358T299 356Q298 355 283 274T251 109T233 20Q228 5 215 -4T186 -13Q153 -13 153 20V30L203 192Q214 228 227 272T248 336L254 357Q254 358 208 358Q206 358 197 358T183 359Q105 359 61 295Q56 287 53 286T39 284Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1665, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(" is the return (cumulative reward) and "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.375ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.974ex",height:"1.375ex",viewBox:"0 -442 872.6 607.6"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"msub"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mn",transform:"translate(469, -150) scale(0.707)"}},[a("path",{attrs:{"data-c":"30",d:"M96 585Q152 666 249 666Q297 666 345 640T423 548Q460 465 460 320Q460 165 417 83Q397 41 362 16T301 -15T250 -22Q224 -22 198 -16T137 16T82 83Q39 165 39 320Q39 494 96 585ZM321 597Q291 629 250 629Q208 629 178 597Q153 571 145 525T137 333Q137 175 145 125T181 46Q209 16 250 16Q290 16 318 46Q347 76 354 130T362 333Q362 478 354 524T321 597Z"}})])])])])])]),t._v(" the initial state for the trajectories."),a("p"),t._v(" "),a("h4",{attrs:{id:"parameters-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-4"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-4"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The estimated on-policy utility of the given observation.")]),t._v(" "),a("h3",{attrs:{id:"get-q-value-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-q-value-2"}},[t._v("#")]),t._v(" _get_q_value "),a("Badge",{attrs:{text:"QValues",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_q_value",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"D.T_value"}}}),t._v(" "),a("p",[t._v("Get the estimated on-policy Q value of the given observation and action.")]),t._v(" "),a("p",[t._v("In mathematical terms, for a fully observable domain, this function estimates:\n")]),a("p",[a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG",display:"true"}},[a("svg",{staticStyle:{"vertical-align":"-1.605ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"33.127ex",height:"3.301ex",viewBox:"0 -750 14642.1 1459.2"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"msup"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"51",d:"M399 -80Q399 -47 400 -30T402 -11V-7L387 -11Q341 -22 303 -22Q208 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435Q740 255 592 107Q529 47 461 16L444 8V3Q444 2 449 -24T470 -66T516 -82Q551 -82 583 -60T625 -3Q631 11 638 11Q647 11 649 2Q649 -6 639 -34T611 -100T557 -165T481 -194Q399 -194 399 -87V-80ZM636 468Q636 523 621 564T580 625T530 655T477 665Q429 665 379 640Q277 591 215 464T153 216Q153 110 207 59Q231 38 236 38V46Q236 86 269 120T347 155Q372 155 390 144T417 114T429 82T435 55L448 64Q512 108 557 185T619 334T636 468ZM314 18Q362 18 404 39L403 49Q399 104 366 115Q354 117 347 117Q344 117 341 117T337 118Q317 118 296 98T274 52Q274 18 314 18Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(791, 413) scale(0.707)"}},[a("path",{attrs:{"data-c":"3C0",d:"M132 -11Q98 -11 98 22V33L111 61Q186 219 220 334L228 358H196Q158 358 142 355T103 336Q92 329 81 318T62 297T53 285Q51 284 38 284Q19 284 19 294Q19 300 38 329T93 391T164 429Q171 431 389 431Q549 431 553 430Q573 423 573 402Q573 371 541 360Q535 358 472 358H408L405 341Q393 269 393 222Q393 170 402 129T421 65T431 37Q431 20 417 5T381 -10Q370 -10 363 -7T347 17T331 77Q330 86 330 121Q330 170 339 226T357 318T367 358H269L268 354Q268 351 249 275T206 114T175 17Q164 -11 132 -11Z"}})])]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1244.1, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(1633.1, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2102.1, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(2546.7, 0)"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3075.7, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3742.5, 0)"}},[a("path",{attrs:{"data-c":"3D",d:"M56 347Q56 360 70 367H707Q722 359 722 347Q722 336 708 328L390 327H72Q56 332 56 347ZM56 153Q56 168 72 173H708Q722 163 722 153Q722 140 707 133H70Q56 140 56 153Z"}})]),a("g",{attrs:{"data-mml-node":"munder",transform:"translate(4520.5, 0)"}},[a("g",{attrs:{"data-mml-node":"TeXAtom",transform:"translate(325.9, 0)"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"45",d:"M12 666Q12 675 24 683H582Q590 680 593 672V588Q593 514 591 502T575 490Q567 490 563 495T555 517Q552 556 517 590Q486 623 445 634T340 648H282Q266 636 264 620T260 492V370H277Q329 375 358 391T404 439Q420 480 420 506Q420 529 436 529Q445 529 451 521Q455 517 455 361Q455 333 455 298T456 253Q456 217 453 207T437 197Q420 196 420 217Q420 240 406 270Q377 328 284 335H260V201Q261 174 261 134Q262 73 264 61T278 38Q281 36 282 35H331Q400 35 449 50Q571 93 602 179Q605 203 622 203Q629 203 634 197T640 183Q638 181 624 95T604 3L600 -1H24Q12 5 12 16Q12 35 51 35Q92 38 97 52Q102 60 102 341T97 632Q91 645 51 648Q12 648 12 666ZM137 341Q137 131 136 89T130 37Q129 36 129 35H235Q233 41 231 48L226 61V623L231 635L235 648H129Q132 641 133 638T135 603T137 517T137 341ZM557 603V648H504Q504 646 515 639Q527 634 542 619L557 603ZM420 317V397L406 383Q394 370 380 363L366 355Q373 350 382 346Q400 333 409 328L420 317ZM582 61L586 88Q585 88 582 83Q557 61 526 46L511 37L542 35H577Q577 36 578 39T580 49T582 61Z"}})])]),a("g",{attrs:{"data-mml-node":"mrow",transform:"translate(0, -600) scale(0.707)"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"3C4",d:"M39 284Q18 284 18 294Q18 301 45 338T99 398Q134 425 164 429Q170 431 332 431Q492 431 497 429Q517 424 517 402Q517 388 508 376T485 360Q479 358 389 358T299 356Q298 355 283 274T251 109T233 20Q228 5 215 -4T186 -13Q153 -13 153 20V30L203 192Q214 228 227 272T248 336L254 357Q254 358 208 358Q206 358 197 358T183 359Q105 359 61 295Q56 287 53 286T39 284Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(517, 0)"}},[a("path",{attrs:{"data-c":"223C",d:"M55 166Q55 241 101 304T222 367Q260 367 296 349T362 304T421 252T484 208T554 189Q616 189 655 236T694 338Q694 350 698 358T708 367Q722 367 722 334Q722 260 677 197T562 134H554Q517 134 481 152T414 196T355 248T292 293T223 311Q179 311 145 286Q109 257 96 218T80 156T69 133Q55 133 55 166Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(1295, 0)"}},[a("path",{attrs:{"data-c":"3C0",d:"M132 -11Q98 -11 98 22V33L111 61Q186 219 220 334L228 358H196Q158 358 142 355T103 336Q92 329 81 318T62 297T53 285Q51 284 38 284Q19 284 19 294Q19 300 38 329T93 391T164 429Q171 431 389 431Q549 431 553 430Q573 423 573 402Q573 371 541 360Q535 358 472 358H408L405 341Q393 269 393 222Q393 170 402 129T421 65T431 37Q431 20 417 5T381 -10Q370 -10 363 -7T347 17T331 77Q330 86 330 121Q330 170 339 226T357 318T367 358H269L268 354Q268 351 249 275T206 114T175 17Q164 -11 132 -11Z"}})])])]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(5839.2, 0)"}},[a("path",{attrs:{"data-c":"5B",d:"M118 -250V750H255V710H158V-210H255V-250H118Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(6117.2, 0)"}},[a("path",{attrs:{"data-c":"52",d:"M230 637Q203 637 198 638T193 649Q193 676 204 682Q206 683 378 683Q550 682 564 680Q620 672 658 652T712 606T733 563T739 529Q739 484 710 445T643 385T576 351T538 338L545 333Q612 295 612 223Q612 212 607 162T602 80V71Q602 53 603 43T614 25T640 16Q668 16 686 38T712 85Q717 99 720 102T735 105Q755 105 755 93Q755 75 731 36Q693 -21 641 -21H632Q571 -21 531 4T487 82Q487 109 502 166T517 239Q517 290 474 313Q459 320 449 321T378 323H309L277 193Q244 61 244 59Q244 55 245 54T252 50T269 48T302 46H333Q339 38 339 37T336 19Q332 6 326 0H311Q275 2 180 2Q146 2 117 2T71 2T50 1Q33 1 33 10Q33 12 36 24Q41 43 46 45Q50 46 61 46H67Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628Q287 635 230 637ZM630 554Q630 586 609 608T523 636Q521 636 500 636T462 637H440Q393 637 386 627Q385 624 352 494T319 361Q319 360 388 360Q466 361 492 367Q556 377 592 426Q608 449 619 486T630 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(6876.2, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(7265.2, 0)"}},[a("path",{attrs:{"data-c":"3C4",d:"M39 284Q18 284 18 294Q18 301 45 338T99 398Q134 425 164 429Q170 431 332 431Q492 431 497 429Q517 424 517 402Q517 388 508 376T485 360Q479 358 389 358T299 356Q298 355 283 274T251 109T233 20Q228 5 215 -4T186 -13Q153 -13 153 20V30L203 192Q214 228 227 272T248 336L254 357Q254 358 208 358Q206 358 197 358T183 359Q105 359 61 295Q56 287 53 286T39 284Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(7782.2, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(8171.2, 0)"}},[a("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),a("g",{attrs:{"data-mml-node":"msub",transform:"translate(8449.2, 0)"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mn",transform:"translate(469, -150) scale(0.707)"}},[a("path",{attrs:{"data-c":"30",d:"M96 585Q152 666 249 666Q297 666 345 640T423 548Q460 465 460 320Q460 165 417 83Q397 41 362 16T301 -15T250 -22Q224 -22 198 -16T137 16T82 83Q39 165 39 320Q39 494 96 585ZM321 597Q291 629 250 629Q208 629 178 597Q153 571 145 525T137 333Q137 175 145 125T181 46Q209 16 250 16Q290 16 318 46Q347 76 354 130T362 333Q362 478 354 524T321 597Z"}})])]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(9599.6, 0)"}},[a("path",{attrs:{"data-c":"3D",d:"M56 347Q56 360 70 367H707Q722 359 722 347Q722 336 708 328L390 327H72Q56 332 56 347ZM56 153Q56 168 72 173H708Q722 163 722 153Q722 140 707 133H70Q56 140 56 153Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(10655.4, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(11124.4, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"msub",transform:"translate(11569, 0)"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mn",transform:"translate(529, -150) scale(0.707)"}},[a("path",{attrs:{"data-c":"30",d:"M96 585Q152 666 249 666Q297 666 345 640T423 548Q460 465 460 320Q460 165 417 83Q397 41 362 16T301 -15T250 -22Q224 -22 198 -16T137 16T82 83Q39 165 39 320Q39 494 96 585ZM321 597Q291 629 250 629Q208 629 178 597Q153 571 145 525T137 333Q137 175 145 125T181 46Q209 16 250 16Q290 16 318 46Q347 76 354 130T362 333Q362 478 354 524T321 597Z"}})])]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(12779.4, 0)"}},[a("path",{attrs:{"data-c":"3D",d:"M56 347Q56 360 70 367H707Q722 359 722 347Q722 336 708 328L390 327H72Q56 332 56 347ZM56 153Q56 168 72 173H708Q722 163 722 153Q722 140 707 133H70Q56 140 56 153Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(13835.1, 0)"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(14364.1, 0)"}},[a("path",{attrs:{"data-c":"5D",d:"M22 710V750H159V-250H22V-210H119V710H22Z"}})])])])])])],1),t._v("\nwhere "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.025ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.29ex",height:"1ex",viewBox:"0 -431 570 442"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"3C0",d:"M132 -11Q98 -11 98 22V33L111 61Q186 219 220 334L228 358H196Q158 358 142 355T103 336Q92 329 81 318T62 297T53 285Q51 284 38 284Q19 284 19 294Q19 300 38 329T93 391T164 429Q171 431 389 431Q549 431 553 430Q573 423 573 402Q573 371 541 360Q535 358 472 358H408L405 341Q393 269 393 222Q393 170 402 129T421 65T431 37Q431 20 417 5T381 -10Q370 -10 363 -7T347 17T331 77Q330 86 330 121Q330 170 339 226T357 318T367 358H269L268 354Q268 351 249 275T206 114T175 17Q164 -11 132 -11Z"}})])])])])]),t._v(" is the current policy, any "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"20.791ex",height:"2.262ex",viewBox:"0 -750 9189.4 1000"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"3C4",d:"M39 284Q18 284 18 294Q18 301 45 338T99 398Q134 425 164 429Q170 431 332 431Q492 431 497 429Q517 424 517 402Q517 388 508 376T485 360Q479 358 389 358T299 356Q298 355 283 274T251 109T233 20Q228 5 215 -4T186 -13Q153 -13 153 20V30L203 192Q214 228 227 272T248 336L254 357Q254 358 208 358Q206 358 197 358T183 359Q105 359 61 295Q56 287 53 286T39 284Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(794.8, 0)"}},[a("path",{attrs:{"data-c":"3D",d:"M56 347Q56 360 70 367H707Q722 359 722 347Q722 336 708 328L390 327H72Q56 332 56 347ZM56 153Q56 168 72 173H708Q722 163 722 153Q722 140 707 133H70Q56 140 56 153Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1850.6, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"msub",transform:"translate(2239.6, 0)"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mn",transform:"translate(469, -150) scale(0.707)"}},[a("path",{attrs:{"data-c":"30",d:"M96 585Q152 666 249 666Q297 666 345 640T423 548Q460 465 460 320Q460 165 417 83Q397 41 362 16T301 -15T250 -22Q224 -22 198 -16T137 16T82 83Q39 165 39 320Q39 494 96 585ZM321 597Q291 629 250 629Q208 629 178 597Q153 571 145 525T137 333Q137 175 145 125T181 46Q209 16 250 16Q290 16 318 46Q347 76 354 130T362 333Q362 478 354 524T321 597Z"}})])]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3112.1, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"msub",transform:"translate(3556.8, 0)"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mn",transform:"translate(529, -150) scale(0.707)"}},[a("path",{attrs:{"data-c":"30",d:"M96 585Q152 666 249 666Q297 666 345 640T423 548Q460 465 460 320Q460 165 417 83Q397 41 362 16T301 -15T250 -22Q224 -22 198 -16T137 16T82 83Q39 165 39 320Q39 494 96 585ZM321 597Q291 629 250 629Q208 629 178 597Q153 571 145 525T137 333Q137 175 145 125T181 46Q209 16 250 16Q290 16 318 46Q347 76 354 130T362 333Q362 478 354 524T321 597Z"}})])]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(4489.3, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"msub",transform:"translate(4934, 0)"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mn",transform:"translate(469, -150) scale(0.707)"}},[a("path",{attrs:{"data-c":"31",d:"M213 578L200 573Q186 568 160 563T102 556H83V602H102Q149 604 189 617T245 641T273 663Q275 666 285 666Q294 666 302 660V361L303 61Q310 54 315 52T339 48T401 46H427V0H416Q395 3 257 3Q121 3 100 0H88V46H114Q136 46 152 46T177 47T193 50T201 52T207 57T213 61V578Z"}})])]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(5806.5, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"msub",transform:"translate(6251.2, 0)"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mn",transform:"translate(529, -150) scale(0.707)"}},[a("path",{attrs:{"data-c":"31",d:"M213 578L200 573Q186 568 160 563T102 556H83V602H102Q149 604 189 617T245 641T273 663Q275 666 285 666Q294 666 302 660V361L303 61Q310 54 315 52T339 48T401 46H427V0H416Q395 3 257 3Q121 3 100 0H88V46H114Q136 46 152 46T177 47T193 50T201 52T207 57T213 61V578Z"}})])]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(7183.8, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(7628.4, 0)"}},[a("path",{attrs:{"data-c":"22EF",d:"M78 250Q78 274 95 292T138 310Q162 310 180 294T199 251Q199 226 182 208T139 190T96 207T78 250ZM525 250Q525 274 542 292T585 310Q609 310 627 294T646 251Q646 226 629 208T586 190T543 207T525 250ZM972 250Q972 274 989 292T1032 310Q1056 310 1074 294T1093 251Q1093 226 1076 208T1033 190T990 207T972 250Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(8800.4, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(" represents a trajectory sampled from\nthe policy, "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"4.647ex",height:"2.262ex",viewBox:"0 -750 2054 1000"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"52",d:"M230 637Q203 637 198 638T193 649Q193 676 204 682Q206 683 378 683Q550 682 564 680Q620 672 658 652T712 606T733 563T739 529Q739 484 710 445T643 385T576 351T538 338L545 333Q612 295 612 223Q612 212 607 162T602 80V71Q602 53 603 43T614 25T640 16Q668 16 686 38T712 85Q717 99 720 102T735 105Q755 105 755 93Q755 75 731 36Q693 -21 641 -21H632Q571 -21 531 4T487 82Q487 109 502 166T517 239Q517 290 474 313Q459 320 449 321T378 323H309L277 193Q244 61 244 59Q244 55 245 54T252 50T269 48T302 46H333Q339 38 339 37T336 19Q332 6 326 0H311Q275 2 180 2Q146 2 117 2T71 2T50 1Q33 1 33 10Q33 12 36 24Q41 43 46 45Q50 46 61 46H67Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628Q287 635 230 637ZM630 554Q630 586 609 608T523 636Q521 636 500 636T462 637H440Q393 637 386 627Q385 624 352 494T319 361Q319 360 388 360Q466 361 492 367Q556 377 592 426Q608 449 619 486T630 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(759, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(1148, 0)"}},[a("path",{attrs:{"data-c":"3C4",d:"M39 284Q18 284 18 294Q18 301 45 338T99 398Q134 425 164 429Q170 431 332 431Q492 431 497 429Q517 424 517 402Q517 388 508 376T485 360Q479 358 389 358T299 356Q298 355 283 274T251 109T233 20Q228 5 215 -4T186 -13Q153 -13 153 20V30L203 192Q214 228 227 272T248 336L254 357Q254 358 208 358Q206 358 197 358T183 359Q105 359 61 295Q56 287 53 286T39 284Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1665, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(" is the return (cumulative reward) and "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.375ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.974ex",height:"1.375ex",viewBox:"0 -442 872.6 607.6"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"msub"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mn",transform:"translate(469, -150) scale(0.707)"}},[a("path",{attrs:{"data-c":"30",d:"M96 585Q152 666 249 666Q297 666 345 640T423 548Q460 465 460 320Q460 165 417 83Q397 41 362 16T301 -15T250 -22Q224 -22 198 -16T137 16T82 83Q39 165 39 320Q39 494 96 585ZM321 597Q291 629 250 629Q208 629 178 597Q153 571 145 525T137 333Q137 175 145 125T181 46Q209 16 250 16Q290 16 318 46Q347 76 354 130T362 333Q362 478 354 524T321 597Z"}})])])])])])]),t._v("/"),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.375ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"2.11ex",height:"1.372ex",viewBox:"0 -441 932.6 606.6"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"msub"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mn",transform:"translate(529, -150) scale(0.707)"}},[a("path",{attrs:{"data-c":"30",d:"M96 585Q152 666 249 666Q297 666 345 640T423 548Q460 465 460 320Q460 165 417 83Q397 41 362 16T301 -15T250 -22Q224 -22 198 -16T137 16T82 83Q39 165 39 320Q39 494 96 585ZM321 597Q291 629 250 629Q208 629 178 597Q153 571 145 525T137 333Q137 175 145 125T181 46Q209 16 250 16Q290 16 318 46Q347 76 354 130T362 333Q362 478 354 524T321 597Z"}})])])])])])]),t._v(" the initial state/action for the\ntrajectories."),a("p"),t._v(" "),a("h4",{attrs:{id:"parameters-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-5"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-5"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The estimated on-policy Q value of the given observation and action.")]),t._v(" "),a("h3",{attrs:{id:"get-utility-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-utility-4"}},[t._v("#")]),t._v(" _get_utility "),a("Badge",{attrs:{text:"Utilities",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_utility",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"D.T_value"}}}),t._v(" "),a("p",[t._v("Get the estimated on-policy utility of the given observation.")]),t._v(" "),a("p",[t._v("In mathematical terms, for a fully observable domain, this function estimates:\n")]),a("p",[a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG",display:"true"}},[a("svg",{staticStyle:{"vertical-align":"-1.605ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"23.742ex",height:"3.301ex",viewBox:"0 -750 10493.9 1459.2"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"msup"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"56",d:"M52 648Q52 670 65 683H76Q118 680 181 680Q299 680 320 683H330Q336 677 336 674T334 656Q329 641 325 637H304Q282 635 274 635Q245 630 242 620Q242 618 271 369T301 118L374 235Q447 352 520 471T595 594Q599 601 599 609Q599 633 555 637Q537 637 537 648Q537 649 539 661Q542 675 545 679T558 683Q560 683 570 683T604 682T668 681Q737 681 755 683H762Q769 676 769 672Q769 655 760 640Q757 637 743 637Q730 636 719 635T698 630T682 623T670 615T660 608T652 599T645 592L452 282Q272 -9 266 -16Q263 -18 259 -21L241 -22H234Q216 -22 216 -15Q213 -9 177 305Q139 623 138 626Q133 637 76 637H59Q52 642 52 648Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(856.2, 413) scale(0.707)"}},[a("path",{attrs:{"data-c":"3C0",d:"M132 -11Q98 -11 98 22V33L111 61Q186 219 220 334L228 358H196Q158 358 142 355T103 336Q92 329 81 318T62 297T53 285Q51 284 38 284Q19 284 19 294Q19 300 38 329T93 391T164 429Q171 431 389 431Q549 431 553 430Q573 423 573 402Q573 371 541 360Q535 358 472 358H408L405 341Q393 269 393 222Q393 170 402 129T421 65T431 37Q431 20 417 5T381 -10Q370 -10 363 -7T347 17T331 77Q330 86 330 121Q330 170 339 226T357 318T367 358H269L268 354Q268 351 249 275T206 114T175 17Q164 -11 132 -11Z"}})])]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1309.3, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(1698.3, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2167.3, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2834, 0)"}},[a("path",{attrs:{"data-c":"3D",d:"M56 347Q56 360 70 367H707Q722 359 722 347Q722 336 708 328L390 327H72Q56 332 56 347ZM56 153Q56 168 72 173H708Q722 163 722 153Q722 140 707 133H70Q56 140 56 153Z"}})]),a("g",{attrs:{"data-mml-node":"munder",transform:"translate(3612, 0)"}},[a("g",{attrs:{"data-mml-node":"TeXAtom",transform:"translate(325.9, 0)"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"45",d:"M12 666Q12 675 24 683H582Q590 680 593 672V588Q593 514 591 502T575 490Q567 490 563 495T555 517Q552 556 517 590Q486 623 445 634T340 648H282Q266 636 264 620T260 492V370H277Q329 375 358 391T404 439Q420 480 420 506Q420 529 436 529Q445 529 451 521Q455 517 455 361Q455 333 455 298T456 253Q456 217 453 207T437 197Q420 196 420 217Q420 240 406 270Q377 328 284 335H260V201Q261 174 261 134Q262 73 264 61T278 38Q281 36 282 35H331Q400 35 449 50Q571 93 602 179Q605 203 622 203Q629 203 634 197T640 183Q638 181 624 95T604 3L600 -1H24Q12 5 12 16Q12 35 51 35Q92 38 97 52Q102 60 102 341T97 632Q91 645 51 648Q12 648 12 666ZM137 341Q137 131 136 89T130 37Q129 36 129 35H235Q233 41 231 48L226 61V623L231 635L235 648H129Q132 641 133 638T135 603T137 517T137 341ZM557 603V648H504Q504 646 515 639Q527 634 542 619L557 603ZM420 317V397L406 383Q394 370 380 363L366 355Q373 350 382 346Q400 333 409 328L420 317ZM582 61L586 88Q585 88 582 83Q557 61 526 46L511 37L542 35H577Q577 36 578 39T580 49T582 61Z"}})])]),a("g",{attrs:{"data-mml-node":"mrow",transform:"translate(0, -600) scale(0.707)"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"3C4",d:"M39 284Q18 284 18 294Q18 301 45 338T99 398Q134 425 164 429Q170 431 332 431Q492 431 497 429Q517 424 517 402Q517 388 508 376T485 360Q479 358 389 358T299 356Q298 355 283 274T251 109T233 20Q228 5 215 -4T186 -13Q153 -13 153 20V30L203 192Q214 228 227 272T248 336L254 357Q254 358 208 358Q206 358 197 358T183 359Q105 359 61 295Q56 287 53 286T39 284Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(517, 0)"}},[a("path",{attrs:{"data-c":"223C",d:"M55 166Q55 241 101 304T222 367Q260 367 296 349T362 304T421 252T484 208T554 189Q616 189 655 236T694 338Q694 350 698 358T708 367Q722 367 722 334Q722 260 677 197T562 134H554Q517 134 481 152T414 196T355 248T292 293T223 311Q179 311 145 286Q109 257 96 218T80 156T69 133Q55 133 55 166Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(1295, 0)"}},[a("path",{attrs:{"data-c":"3C0",d:"M132 -11Q98 -11 98 22V33L111 61Q186 219 220 334L228 358H196Q158 358 142 355T103 336Q92 329 81 318T62 297T53 285Q51 284 38 284Q19 284 19 294Q19 300 38 329T93 391T164 429Q171 431 389 431Q549 431 553 430Q573 423 573 402Q573 371 541 360Q535 358 472 358H408L405 341Q393 269 393 222Q393 170 402 129T421 65T431 37Q431 20 417 5T381 -10Q370 -10 363 -7T347 17T331 77Q330 86 330 121Q330 170 339 226T357 318T367 358H269L268 354Q268 351 249 275T206 114T175 17Q164 -11 132 -11Z"}})])])]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(4930.8, 0)"}},[a("path",{attrs:{"data-c":"5B",d:"M118 -250V750H255V710H158V-210H255V-250H118Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(5208.8, 0)"}},[a("path",{attrs:{"data-c":"52",d:"M230 637Q203 637 198 638T193 649Q193 676 204 682Q206 683 378 683Q550 682 564 680Q620 672 658 652T712 606T733 563T739 529Q739 484 710 445T643 385T576 351T538 338L545 333Q612 295 612 223Q612 212 607 162T602 80V71Q602 53 603 43T614 25T640 16Q668 16 686 38T712 85Q717 99 720 102T735 105Q755 105 755 93Q755 75 731 36Q693 -21 641 -21H632Q571 -21 531 4T487 82Q487 109 502 166T517 239Q517 290 474 313Q459 320 449 321T378 323H309L277 193Q244 61 244 59Q244 55 245 54T252 50T269 48T302 46H333Q339 38 339 37T336 19Q332 6 326 0H311Q275 2 180 2Q146 2 117 2T71 2T50 1Q33 1 33 10Q33 12 36 24Q41 43 46 45Q50 46 61 46H67Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628Q287 635 230 637ZM630 554Q630 586 609 608T523 636Q521 636 500 636T462 637H440Q393 637 386 627Q385 624 352 494T319 361Q319 360 388 360Q466 361 492 367Q556 377 592 426Q608 449 619 486T630 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(5967.8, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(6356.8, 0)"}},[a("path",{attrs:{"data-c":"3C4",d:"M39 284Q18 284 18 294Q18 301 45 338T99 398Q134 425 164 429Q170 431 332 431Q492 431 497 429Q517 424 517 402Q517 388 508 376T485 360Q479 358 389 358T299 356Q298 355 283 274T251 109T233 20Q228 5 215 -4T186 -13Q153 -13 153 20V30L203 192Q214 228 227 272T248 336L254 357Q254 358 208 358Q206 358 197 358T183 359Q105 359 61 295Q56 287 53 286T39 284Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(6873.8, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(7262.8, 0)"}},[a("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),a("g",{attrs:{"data-mml-node":"msub",transform:"translate(7540.8, 0)"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mn",transform:"translate(469, -150) scale(0.707)"}},[a("path",{attrs:{"data-c":"30",d:"M96 585Q152 666 249 666Q297 666 345 640T423 548Q460 465 460 320Q460 165 417 83Q397 41 362 16T301 -15T250 -22Q224 -22 198 -16T137 16T82 83Q39 165 39 320Q39 494 96 585ZM321 597Q291 629 250 629Q208 629 178 597Q153 571 145 525T137 333Q137 175 145 125T181 46Q209 16 250 16Q290 16 318 46Q347 76 354 130T362 333Q362 478 354 524T321 597Z"}})])]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(8691.1, 0)"}},[a("path",{attrs:{"data-c":"3D",d:"M56 347Q56 360 70 367H707Q722 359 722 347Q722 336 708 328L390 327H72Q56 332 56 347ZM56 153Q56 168 72 173H708Q722 163 722 153Q722 140 707 133H70Q56 140 56 153Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(9746.9, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(10215.9, 0)"}},[a("path",{attrs:{"data-c":"5D",d:"M22 710V750H159V-250H22V-210H119V710H22Z"}})])])])])])],1),t._v("\nwhere "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.025ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.29ex",height:"1ex",viewBox:"0 -431 570 442"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"3C0",d:"M132 -11Q98 -11 98 22V33L111 61Q186 219 220 334L228 358H196Q158 358 142 355T103 336Q92 329 81 318T62 297T53 285Q51 284 38 284Q19 284 19 294Q19 300 38 329T93 391T164 429Q171 431 389 431Q549 431 553 430Q573 423 573 402Q573 371 541 360Q535 358 472 358H408L405 341Q393 269 393 222Q393 170 402 129T421 65T431 37Q431 20 417 5T381 -10Q370 -10 363 -7T347 17T331 77Q330 86 330 121Q330 170 339 226T357 318T367 358H269L268 354Q268 351 249 275T206 114T175 17Q164 -11 132 -11Z"}})])])])])]),t._v(" is the current policy, any "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"20.791ex",height:"2.262ex",viewBox:"0 -750 9189.4 1000"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"3C4",d:"M39 284Q18 284 18 294Q18 301 45 338T99 398Q134 425 164 429Q170 431 332 431Q492 431 497 429Q517 424 517 402Q517 388 508 376T485 360Q479 358 389 358T299 356Q298 355 283 274T251 109T233 20Q228 5 215 -4T186 -13Q153 -13 153 20V30L203 192Q214 228 227 272T248 336L254 357Q254 358 208 358Q206 358 197 358T183 359Q105 359 61 295Q56 287 53 286T39 284Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(794.8, 0)"}},[a("path",{attrs:{"data-c":"3D",d:"M56 347Q56 360 70 367H707Q722 359 722 347Q722 336 708 328L390 327H72Q56 332 56 347ZM56 153Q56 168 72 173H708Q722 163 722 153Q722 140 707 133H70Q56 140 56 153Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1850.6, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"msub",transform:"translate(2239.6, 0)"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mn",transform:"translate(469, -150) scale(0.707)"}},[a("path",{attrs:{"data-c":"30",d:"M96 585Q152 666 249 666Q297 666 345 640T423 548Q460 465 460 320Q460 165 417 83Q397 41 362 16T301 -15T250 -22Q224 -22 198 -16T137 16T82 83Q39 165 39 320Q39 494 96 585ZM321 597Q291 629 250 629Q208 629 178 597Q153 571 145 525T137 333Q137 175 145 125T181 46Q209 16 250 16Q290 16 318 46Q347 76 354 130T362 333Q362 478 354 524T321 597Z"}})])]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3112.1, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"msub",transform:"translate(3556.8, 0)"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mn",transform:"translate(529, -150) scale(0.707)"}},[a("path",{attrs:{"data-c":"30",d:"M96 585Q152 666 249 666Q297 666 345 640T423 548Q460 465 460 320Q460 165 417 83Q397 41 362 16T301 -15T250 -22Q224 -22 198 -16T137 16T82 83Q39 165 39 320Q39 494 96 585ZM321 597Q291 629 250 629Q208 629 178 597Q153 571 145 525T137 333Q137 175 145 125T181 46Q209 16 250 16Q290 16 318 46Q347 76 354 130T362 333Q362 478 354 524T321 597Z"}})])]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(4489.3, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"msub",transform:"translate(4934, 0)"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mn",transform:"translate(469, -150) scale(0.707)"}},[a("path",{attrs:{"data-c":"31",d:"M213 578L200 573Q186 568 160 563T102 556H83V602H102Q149 604 189 617T245 641T273 663Q275 666 285 666Q294 666 302 660V361L303 61Q310 54 315 52T339 48T401 46H427V0H416Q395 3 257 3Q121 3 100 0H88V46H114Q136 46 152 46T177 47T193 50T201 52T207 57T213 61V578Z"}})])]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(5806.5, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"msub",transform:"translate(6251.2, 0)"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mn",transform:"translate(529, -150) scale(0.707)"}},[a("path",{attrs:{"data-c":"31",d:"M213 578L200 573Q186 568 160 563T102 556H83V602H102Q149 604 189 617T245 641T273 663Q275 666 285 666Q294 666 302 660V361L303 61Q310 54 315 52T339 48T401 46H427V0H416Q395 3 257 3Q121 3 100 0H88V46H114Q136 46 152 46T177 47T193 50T201 52T207 57T213 61V578Z"}})])]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(7183.8, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(7628.4, 0)"}},[a("path",{attrs:{"data-c":"22EF",d:"M78 250Q78 274 95 292T138 310Q162 310 180 294T199 251Q199 226 182 208T139 190T96 207T78 250ZM525 250Q525 274 542 292T585 310Q609 310 627 294T646 251Q646 226 629 208T586 190T543 207T525 250ZM972 250Q972 274 989 292T1032 310Q1056 310 1074 294T1093 251Q1093 226 1076 208T1033 190T990 207T972 250Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(8800.4, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(" represents a trajectory sampled from\nthe policy, "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"4.647ex",height:"2.262ex",viewBox:"0 -750 2054 1000"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"52",d:"M230 637Q203 637 198 638T193 649Q193 676 204 682Q206 683 378 683Q550 682 564 680Q620 672 658 652T712 606T733 563T739 529Q739 484 710 445T643 385T576 351T538 338L545 333Q612 295 612 223Q612 212 607 162T602 80V71Q602 53 603 43T614 25T640 16Q668 16 686 38T712 85Q717 99 720 102T735 105Q755 105 755 93Q755 75 731 36Q693 -21 641 -21H632Q571 -21 531 4T487 82Q487 109 502 166T517 239Q517 290 474 313Q459 320 449 321T378 323H309L277 193Q244 61 244 59Q244 55 245 54T252 50T269 48T302 46H333Q339 38 339 37T336 19Q332 6 326 0H311Q275 2 180 2Q146 2 117 2T71 2T50 1Q33 1 33 10Q33 12 36 24Q41 43 46 45Q50 46 61 46H67Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628Q287 635 230 637ZM630 554Q630 586 609 608T523 636Q521 636 500 636T462 637H440Q393 637 386 627Q385 624 352 494T319 361Q319 360 388 360Q466 361 492 367Q556 377 592 426Q608 449 619 486T630 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(759, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(1148, 0)"}},[a("path",{attrs:{"data-c":"3C4",d:"M39 284Q18 284 18 294Q18 301 45 338T99 398Q134 425 164 429Q170 431 332 431Q492 431 497 429Q517 424 517 402Q517 388 508 376T485 360Q479 358 389 358T299 356Q298 355 283 274T251 109T233 20Q228 5 215 -4T186 -13Q153 -13 153 20V30L203 192Q214 228 227 272T248 336L254 357Q254 358 208 358Q206 358 197 358T183 359Q105 359 61 295Q56 287 53 286T39 284Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1665, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(" is the return (cumulative reward) and "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.375ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.974ex",height:"1.375ex",viewBox:"0 -442 872.6 607.6"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"msub"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mn",transform:"translate(469, -150) scale(0.707)"}},[a("path",{attrs:{"data-c":"30",d:"M96 585Q152 666 249 666Q297 666 345 640T423 548Q460 465 460 320Q460 165 417 83Q397 41 362 16T301 -15T250 -22Q224 -22 198 -16T137 16T82 83Q39 165 39 320Q39 494 96 585ZM321 597Q291 629 250 629Q208 629 178 597Q153 571 145 525T137 333Q137 175 145 125T181 46Q209 16 250 16Q290 16 318 46Q347 76 354 130T362 333Q362 478 354 524T321 597Z"}})])])])])])]),t._v(" the initial state for the trajectories."),a("p"),t._v(" "),a("h4",{attrs:{id:"parameters-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-6"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-6"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The estimated on-policy utility of the given observation.")])],1)}),[],!1,null,null,null);Q.default=r.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[53],{568:function(t,Q,a){"use strict";a.r(Q);var T=a(38),r=Object(T.a)({},(function(){var t=this,Q=t.$createElement,a=t._self._c||Q;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"builders-solver-assessability"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#builders-solver-assessability"}},[t._v("#")]),t._v(" builders.solver.assessability")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("Domain specification")]),t._v(" "),a("skdecide-summary")],1),t._v(" "),a("h2",{attrs:{id:"utilities"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#utilities"}},[t._v("#")]),t._v(" Utilities")]),t._v(" "),a("p",[t._v("A solver must inherit this class if it can provide the utility function (i.e. value function).")]),t._v(" "),a("h3",{attrs:{id:"get-utility"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-utility"}},[t._v("#")]),t._v(" get_utility "),a("Badge",{attrs:{text:"Utilities",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_utility",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"D.T_value"}}}),t._v(" "),a("p",[t._v("Get the estimated on-policy utility of the given observation.")]),t._v(" "),a("p",[t._v("In mathematical terms, for a fully observable domain, this function estimates:\n")]),a("p",[a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG",display:"true"}},[a("svg",{staticStyle:{"vertical-align":"-1.605ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"23.742ex",height:"3.301ex",viewBox:"0 -750 10493.9 1459.2"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"msup"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"56",d:"M52 648Q52 670 65 683H76Q118 680 181 680Q299 680 320 683H330Q336 677 336 674T334 656Q329 641 325 637H304Q282 635 274 635Q245 630 242 620Q242 618 271 369T301 118L374 235Q447 352 520 471T595 594Q599 601 599 609Q599 633 555 637Q537 637 537 648Q537 649 539 661Q542 675 545 679T558 683Q560 683 570 683T604 682T668 681Q737 681 755 683H762Q769 676 769 672Q769 655 760 640Q757 637 743 637Q730 636 719 635T698 630T682 623T670 615T660 608T652 599T645 592L452 282Q272 -9 266 -16Q263 -18 259 -21L241 -22H234Q216 -22 216 -15Q213 -9 177 305Q139 623 138 626Q133 637 76 637H59Q52 642 52 648Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(856.2, 413) scale(0.707)"}},[a("path",{attrs:{"data-c":"3C0",d:"M132 -11Q98 -11 98 22V33L111 61Q186 219 220 334L228 358H196Q158 358 142 355T103 336Q92 329 81 318T62 297T53 285Q51 284 38 284Q19 284 19 294Q19 300 38 329T93 391T164 429Q171 431 389 431Q549 431 553 430Q573 423 573 402Q573 371 541 360Q535 358 472 358H408L405 341Q393 269 393 222Q393 170 402 129T421 65T431 37Q431 20 417 5T381 -10Q370 -10 363 -7T347 17T331 77Q330 86 330 121Q330 170 339 226T357 318T367 358H269L268 354Q268 351 249 275T206 114T175 17Q164 -11 132 -11Z"}})])]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1309.3, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(1698.3, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2167.3, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2834, 0)"}},[a("path",{attrs:{"data-c":"3D",d:"M56 347Q56 360 70 367H707Q722 359 722 347Q722 336 708 328L390 327H72Q56 332 56 347ZM56 153Q56 168 72 173H708Q722 163 722 153Q722 140 707 133H70Q56 140 56 153Z"}})]),a("g",{attrs:{"data-mml-node":"munder",transform:"translate(3612, 0)"}},[a("g",{attrs:{"data-mml-node":"TeXAtom",transform:"translate(325.9, 0)"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"45",d:"M12 666Q12 675 24 683H582Q590 680 593 672V588Q593 514 591 502T575 490Q567 490 563 495T555 517Q552 556 517 590Q486 623 445 634T340 648H282Q266 636 264 620T260 492V370H277Q329 375 358 391T404 439Q420 480 420 506Q420 529 436 529Q445 529 451 521Q455 517 455 361Q455 333 455 298T456 253Q456 217 453 207T437 197Q420 196 420 217Q420 240 406 270Q377 328 284 335H260V201Q261 174 261 134Q262 73 264 61T278 38Q281 36 282 35H331Q400 35 449 50Q571 93 602 179Q605 203 622 203Q629 203 634 197T640 183Q638 181 624 95T604 3L600 -1H24Q12 5 12 16Q12 35 51 35Q92 38 97 52Q102 60 102 341T97 632Q91 645 51 648Q12 648 12 666ZM137 341Q137 131 136 89T130 37Q129 36 129 35H235Q233 41 231 48L226 61V623L231 635L235 648H129Q132 641 133 638T135 603T137 517T137 341ZM557 603V648H504Q504 646 515 639Q527 634 542 619L557 603ZM420 317V397L406 383Q394 370 380 363L366 355Q373 350 382 346Q400 333 409 328L420 317ZM582 61L586 88Q585 88 582 83Q557 61 526 46L511 37L542 35H577Q577 36 578 39T580 49T582 61Z"}})])]),a("g",{attrs:{"data-mml-node":"mrow",transform:"translate(0, -600) scale(0.707)"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"3C4",d:"M39 284Q18 284 18 294Q18 301 45 338T99 398Q134 425 164 429Q170 431 332 431Q492 431 497 429Q517 424 517 402Q517 388 508 376T485 360Q479 358 389 358T299 356Q298 355 283 274T251 109T233 20Q228 5 215 -4T186 -13Q153 -13 153 20V30L203 192Q214 228 227 272T248 336L254 357Q254 358 208 358Q206 358 197 358T183 359Q105 359 61 295Q56 287 53 286T39 284Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(517, 0)"}},[a("path",{attrs:{"data-c":"223C",d:"M55 166Q55 241 101 304T222 367Q260 367 296 349T362 304T421 252T484 208T554 189Q616 189 655 236T694 338Q694 350 698 358T708 367Q722 367 722 334Q722 260 677 197T562 134H554Q517 134 481 152T414 196T355 248T292 293T223 311Q179 311 145 286Q109 257 96 218T80 156T69 133Q55 133 55 166Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(1295, 0)"}},[a("path",{attrs:{"data-c":"3C0",d:"M132 -11Q98 -11 98 22V33L111 61Q186 219 220 334L228 358H196Q158 358 142 355T103 336Q92 329 81 318T62 297T53 285Q51 284 38 284Q19 284 19 294Q19 300 38 329T93 391T164 429Q171 431 389 431Q549 431 553 430Q573 423 573 402Q573 371 541 360Q535 358 472 358H408L405 341Q393 269 393 222Q393 170 402 129T421 65T431 37Q431 20 417 5T381 -10Q370 -10 363 -7T347 17T331 77Q330 86 330 121Q330 170 339 226T357 318T367 358H269L268 354Q268 351 249 275T206 114T175 17Q164 -11 132 -11Z"}})])])]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(4930.8, 0)"}},[a("path",{attrs:{"data-c":"5B",d:"M118 -250V750H255V710H158V-210H255V-250H118Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(5208.8, 0)"}},[a("path",{attrs:{"data-c":"52",d:"M230 637Q203 637 198 638T193 649Q193 676 204 682Q206 683 378 683Q550 682 564 680Q620 672 658 652T712 606T733 563T739 529Q739 484 710 445T643 385T576 351T538 338L545 333Q612 295 612 223Q612 212 607 162T602 80V71Q602 53 603 43T614 25T640 16Q668 16 686 38T712 85Q717 99 720 102T735 105Q755 105 755 93Q755 75 731 36Q693 -21 641 -21H632Q571 -21 531 4T487 82Q487 109 502 166T517 239Q517 290 474 313Q459 320 449 321T378 323H309L277 193Q244 61 244 59Q244 55 245 54T252 50T269 48T302 46H333Q339 38 339 37T336 19Q332 6 326 0H311Q275 2 180 2Q146 2 117 2T71 2T50 1Q33 1 33 10Q33 12 36 24Q41 43 46 45Q50 46 61 46H67Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628Q287 635 230 637ZM630 554Q630 586 609 608T523 636Q521 636 500 636T462 637H440Q393 637 386 627Q385 624 352 494T319 361Q319 360 388 360Q466 361 492 367Q556 377 592 426Q608 449 619 486T630 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(5967.8, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(6356.8, 0)"}},[a("path",{attrs:{"data-c":"3C4",d:"M39 284Q18 284 18 294Q18 301 45 338T99 398Q134 425 164 429Q170 431 332 431Q492 431 497 429Q517 424 517 402Q517 388 508 376T485 360Q479 358 389 358T299 356Q298 355 283 274T251 109T233 20Q228 5 215 -4T186 -13Q153 -13 153 20V30L203 192Q214 228 227 272T248 336L254 357Q254 358 208 358Q206 358 197 358T183 359Q105 359 61 295Q56 287 53 286T39 284Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(6873.8, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(7262.8, 0)"}},[a("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),a("g",{attrs:{"data-mml-node":"msub",transform:"translate(7540.8, 0)"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mn",transform:"translate(469, -150) scale(0.707)"}},[a("path",{attrs:{"data-c":"30",d:"M96 585Q152 666 249 666Q297 666 345 640T423 548Q460 465 460 320Q460 165 417 83Q397 41 362 16T301 -15T250 -22Q224 -22 198 -16T137 16T82 83Q39 165 39 320Q39 494 96 585ZM321 597Q291 629 250 629Q208 629 178 597Q153 571 145 525T137 333Q137 175 145 125T181 46Q209 16 250 16Q290 16 318 46Q347 76 354 130T362 333Q362 478 354 524T321 597Z"}})])]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(8691.1, 0)"}},[a("path",{attrs:{"data-c":"3D",d:"M56 347Q56 360 70 367H707Q722 359 722 347Q722 336 708 328L390 327H72Q56 332 56 347ZM56 153Q56 168 72 173H708Q722 163 722 153Q722 140 707 133H70Q56 140 56 153Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(9746.9, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(10215.9, 0)"}},[a("path",{attrs:{"data-c":"5D",d:"M22 710V750H159V-250H22V-210H119V710H22Z"}})])])])])])],1),t._v("\nwhere "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.025ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.29ex",height:"1ex",viewBox:"0 -431 570 442"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"3C0",d:"M132 -11Q98 -11 98 22V33L111 61Q186 219 220 334L228 358H196Q158 358 142 355T103 336Q92 329 81 318T62 297T53 285Q51 284 38 284Q19 284 19 294Q19 300 38 329T93 391T164 429Q171 431 389 431Q549 431 553 430Q573 423 573 402Q573 371 541 360Q535 358 472 358H408L405 341Q393 269 393 222Q393 170 402 129T421 65T431 37Q431 20 417 5T381 -10Q370 -10 363 -7T347 17T331 77Q330 86 330 121Q330 170 339 226T357 318T367 358H269L268 354Q268 351 249 275T206 114T175 17Q164 -11 132 -11Z"}})])])])])]),t._v(" is the current policy, any "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"20.791ex",height:"2.262ex",viewBox:"0 -750 9189.4 1000"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"3C4",d:"M39 284Q18 284 18 294Q18 301 45 338T99 398Q134 425 164 429Q170 431 332 431Q492 431 497 429Q517 424 517 402Q517 388 508 376T485 360Q479 358 389 358T299 356Q298 355 283 274T251 109T233 20Q228 5 215 -4T186 -13Q153 -13 153 20V30L203 192Q214 228 227 272T248 336L254 357Q254 358 208 358Q206 358 197 358T183 359Q105 359 61 295Q56 287 53 286T39 284Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(794.8, 0)"}},[a("path",{attrs:{"data-c":"3D",d:"M56 347Q56 360 70 367H707Q722 359 722 347Q722 336 708 328L390 327H72Q56 332 56 347ZM56 153Q56 168 72 173H708Q722 163 722 153Q722 140 707 133H70Q56 140 56 153Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1850.6, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"msub",transform:"translate(2239.6, 0)"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mn",transform:"translate(469, -150) scale(0.707)"}},[a("path",{attrs:{"data-c":"30",d:"M96 585Q152 666 249 666Q297 666 345 640T423 548Q460 465 460 320Q460 165 417 83Q397 41 362 16T301 -15T250 -22Q224 -22 198 -16T137 16T82 83Q39 165 39 320Q39 494 96 585ZM321 597Q291 629 250 629Q208 629 178 597Q153 571 145 525T137 333Q137 175 145 125T181 46Q209 16 250 16Q290 16 318 46Q347 76 354 130T362 333Q362 478 354 524T321 597Z"}})])]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3112.1, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"msub",transform:"translate(3556.8, 0)"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mn",transform:"translate(529, -150) scale(0.707)"}},[a("path",{attrs:{"data-c":"30",d:"M96 585Q152 666 249 666Q297 666 345 640T423 548Q460 465 460 320Q460 165 417 83Q397 41 362 16T301 -15T250 -22Q224 -22 198 -16T137 16T82 83Q39 165 39 320Q39 494 96 585ZM321 597Q291 629 250 629Q208 629 178 597Q153 571 145 525T137 333Q137 175 145 125T181 46Q209 16 250 16Q290 16 318 46Q347 76 354 130T362 333Q362 478 354 524T321 597Z"}})])]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(4489.3, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"msub",transform:"translate(4934, 0)"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mn",transform:"translate(469, -150) scale(0.707)"}},[a("path",{attrs:{"data-c":"31",d:"M213 578L200 573Q186 568 160 563T102 556H83V602H102Q149 604 189 617T245 641T273 663Q275 666 285 666Q294 666 302 660V361L303 61Q310 54 315 52T339 48T401 46H427V0H416Q395 3 257 3Q121 3 100 0H88V46H114Q136 46 152 46T177 47T193 50T201 52T207 57T213 61V578Z"}})])]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(5806.5, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"msub",transform:"translate(6251.2, 0)"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mn",transform:"translate(529, -150) scale(0.707)"}},[a("path",{attrs:{"data-c":"31",d:"M213 578L200 573Q186 568 160 563T102 556H83V602H102Q149 604 189 617T245 641T273 663Q275 666 285 666Q294 666 302 660V361L303 61Q310 54 315 52T339 48T401 46H427V0H416Q395 3 257 3Q121 3 100 0H88V46H114Q136 46 152 46T177 47T193 50T201 52T207 57T213 61V578Z"}})])]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(7183.8, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(7628.4, 0)"}},[a("path",{attrs:{"data-c":"22EF",d:"M78 250Q78 274 95 292T138 310Q162 310 180 294T199 251Q199 226 182 208T139 190T96 207T78 250ZM525 250Q525 274 542 292T585 310Q609 310 627 294T646 251Q646 226 629 208T586 190T543 207T525 250ZM972 250Q972 274 989 292T1032 310Q1056 310 1074 294T1093 251Q1093 226 1076 208T1033 190T990 207T972 250Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(8800.4, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(" represents a trajectory sampled from\nthe policy, "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"4.647ex",height:"2.262ex",viewBox:"0 -750 2054 1000"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"52",d:"M230 637Q203 637 198 638T193 649Q193 676 204 682Q206 683 378 683Q550 682 564 680Q620 672 658 652T712 606T733 563T739 529Q739 484 710 445T643 385T576 351T538 338L545 333Q612 295 612 223Q612 212 607 162T602 80V71Q602 53 603 43T614 25T640 16Q668 16 686 38T712 85Q717 99 720 102T735 105Q755 105 755 93Q755 75 731 36Q693 -21 641 -21H632Q571 -21 531 4T487 82Q487 109 502 166T517 239Q517 290 474 313Q459 320 449 321T378 323H309L277 193Q244 61 244 59Q244 55 245 54T252 50T269 48T302 46H333Q339 38 339 37T336 19Q332 6 326 0H311Q275 2 180 2Q146 2 117 2T71 2T50 1Q33 1 33 10Q33 12 36 24Q41 43 46 45Q50 46 61 46H67Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628Q287 635 230 637ZM630 554Q630 586 609 608T523 636Q521 636 500 636T462 637H440Q393 637 386 627Q385 624 352 494T319 361Q319 360 388 360Q466 361 492 367Q556 377 592 426Q608 449 619 486T630 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(759, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(1148, 0)"}},[a("path",{attrs:{"data-c":"3C4",d:"M39 284Q18 284 18 294Q18 301 45 338T99 398Q134 425 164 429Q170 431 332 431Q492 431 497 429Q517 424 517 402Q517 388 508 376T485 360Q479 358 389 358T299 356Q298 355 283 274T251 109T233 20Q228 5 215 -4T186 -13Q153 -13 153 20V30L203 192Q214 228 227 272T248 336L254 357Q254 358 208 358Q206 358 197 358T183 359Q105 359 61 295Q56 287 53 286T39 284Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1665, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(" is the return (cumulative reward) and "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.375ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.974ex",height:"1.375ex",viewBox:"0 -442 872.6 607.6"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"msub"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mn",transform:"translate(469, -150) scale(0.707)"}},[a("path",{attrs:{"data-c":"30",d:"M96 585Q152 666 249 666Q297 666 345 640T423 548Q460 465 460 320Q460 165 417 83Q397 41 362 16T301 -15T250 -22Q224 -22 198 -16T137 16T82 83Q39 165 39 320Q39 494 96 585ZM321 597Q291 629 250 629Q208 629 178 597Q153 571 145 525T137 333Q137 175 145 125T181 46Q209 16 250 16Q290 16 318 46Q347 76 354 130T362 333Q362 478 354 524T321 597Z"}})])])])])])]),t._v(" the initial state for the trajectories."),a("p"),t._v(" "),a("h4",{attrs:{id:"parameters"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The estimated on-policy utility of the given observation.")]),t._v(" "),a("h3",{attrs:{id:"get-utility-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-utility-2"}},[t._v("#")]),t._v(" _get_utility "),a("Badge",{attrs:{text:"Utilities",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_utility",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"D.T_value"}}}),t._v(" "),a("p",[t._v("Get the estimated on-policy utility of the given observation.")]),t._v(" "),a("p",[t._v("In mathematical terms, for a fully observable domain, this function estimates:\n")]),a("p",[a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG",display:"true"}},[a("svg",{staticStyle:{"vertical-align":"-1.605ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"23.742ex",height:"3.301ex",viewBox:"0 -750 10493.9 1459.2"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"msup"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"56",d:"M52 648Q52 670 65 683H76Q118 680 181 680Q299 680 320 683H330Q336 677 336 674T334 656Q329 641 325 637H304Q282 635 274 635Q245 630 242 620Q242 618 271 369T301 118L374 235Q447 352 520 471T595 594Q599 601 599 609Q599 633 555 637Q537 637 537 648Q537 649 539 661Q542 675 545 679T558 683Q560 683 570 683T604 682T668 681Q737 681 755 683H762Q769 676 769 672Q769 655 760 640Q757 637 743 637Q730 636 719 635T698 630T682 623T670 615T660 608T652 599T645 592L452 282Q272 -9 266 -16Q263 -18 259 -21L241 -22H234Q216 -22 216 -15Q213 -9 177 305Q139 623 138 626Q133 637 76 637H59Q52 642 52 648Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(856.2, 413) scale(0.707)"}},[a("path",{attrs:{"data-c":"3C0",d:"M132 -11Q98 -11 98 22V33L111 61Q186 219 220 334L228 358H196Q158 358 142 355T103 336Q92 329 81 318T62 297T53 285Q51 284 38 284Q19 284 19 294Q19 300 38 329T93 391T164 429Q171 431 389 431Q549 431 553 430Q573 423 573 402Q573 371 541 360Q535 358 472 358H408L405 341Q393 269 393 222Q393 170 402 129T421 65T431 37Q431 20 417 5T381 -10Q370 -10 363 -7T347 17T331 77Q330 86 330 121Q330 170 339 226T357 318T367 358H269L268 354Q268 351 249 275T206 114T175 17Q164 -11 132 -11Z"}})])]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1309.3, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(1698.3, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2167.3, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2834, 0)"}},[a("path",{attrs:{"data-c":"3D",d:"M56 347Q56 360 70 367H707Q722 359 722 347Q722 336 708 328L390 327H72Q56 332 56 347ZM56 153Q56 168 72 173H708Q722 163 722 153Q722 140 707 133H70Q56 140 56 153Z"}})]),a("g",{attrs:{"data-mml-node":"munder",transform:"translate(3612, 0)"}},[a("g",{attrs:{"data-mml-node":"TeXAtom",transform:"translate(325.9, 0)"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"45",d:"M12 666Q12 675 24 683H582Q590 680 593 672V588Q593 514 591 502T575 490Q567 490 563 495T555 517Q552 556 517 590Q486 623 445 634T340 648H282Q266 636 264 620T260 492V370H277Q329 375 358 391T404 439Q420 480 420 506Q420 529 436 529Q445 529 451 521Q455 517 455 361Q455 333 455 298T456 253Q456 217 453 207T437 197Q420 196 420 217Q420 240 406 270Q377 328 284 335H260V201Q261 174 261 134Q262 73 264 61T278 38Q281 36 282 35H331Q400 35 449 50Q571 93 602 179Q605 203 622 203Q629 203 634 197T640 183Q638 181 624 95T604 3L600 -1H24Q12 5 12 16Q12 35 51 35Q92 38 97 52Q102 60 102 341T97 632Q91 645 51 648Q12 648 12 666ZM137 341Q137 131 136 89T130 37Q129 36 129 35H235Q233 41 231 48L226 61V623L231 635L235 648H129Q132 641 133 638T135 603T137 517T137 341ZM557 603V648H504Q504 646 515 639Q527 634 542 619L557 603ZM420 317V397L406 383Q394 370 380 363L366 355Q373 350 382 346Q400 333 409 328L420 317ZM582 61L586 88Q585 88 582 83Q557 61 526 46L511 37L542 35H577Q577 36 578 39T580 49T582 61Z"}})])]),a("g",{attrs:{"data-mml-node":"mrow",transform:"translate(0, -600) scale(0.707)"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"3C4",d:"M39 284Q18 284 18 294Q18 301 45 338T99 398Q134 425 164 429Q170 431 332 431Q492 431 497 429Q517 424 517 402Q517 388 508 376T485 360Q479 358 389 358T299 356Q298 355 283 274T251 109T233 20Q228 5 215 -4T186 -13Q153 -13 153 20V30L203 192Q214 228 227 272T248 336L254 357Q254 358 208 358Q206 358 197 358T183 359Q105 359 61 295Q56 287 53 286T39 284Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(517, 0)"}},[a("path",{attrs:{"data-c":"223C",d:"M55 166Q55 241 101 304T222 367Q260 367 296 349T362 304T421 252T484 208T554 189Q616 189 655 236T694 338Q694 350 698 358T708 367Q722 367 722 334Q722 260 677 197T562 134H554Q517 134 481 152T414 196T355 248T292 293T223 311Q179 311 145 286Q109 257 96 218T80 156T69 133Q55 133 55 166Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(1295, 0)"}},[a("path",{attrs:{"data-c":"3C0",d:"M132 -11Q98 -11 98 22V33L111 61Q186 219 220 334L228 358H196Q158 358 142 355T103 336Q92 329 81 318T62 297T53 285Q51 284 38 284Q19 284 19 294Q19 300 38 329T93 391T164 429Q171 431 389 431Q549 431 553 430Q573 423 573 402Q573 371 541 360Q535 358 472 358H408L405 341Q393 269 393 222Q393 170 402 129T421 65T431 37Q431 20 417 5T381 -10Q370 -10 363 -7T347 17T331 77Q330 86 330 121Q330 170 339 226T357 318T367 358H269L268 354Q268 351 249 275T206 114T175 17Q164 -11 132 -11Z"}})])])]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(4930.8, 0)"}},[a("path",{attrs:{"data-c":"5B",d:"M118 -250V750H255V710H158V-210H255V-250H118Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(5208.8, 0)"}},[a("path",{attrs:{"data-c":"52",d:"M230 637Q203 637 198 638T193 649Q193 676 204 682Q206 683 378 683Q550 682 564 680Q620 672 658 652T712 606T733 563T739 529Q739 484 710 445T643 385T576 351T538 338L545 333Q612 295 612 223Q612 212 607 162T602 80V71Q602 53 603 43T614 25T640 16Q668 16 686 38T712 85Q717 99 720 102T735 105Q755 105 755 93Q755 75 731 36Q693 -21 641 -21H632Q571 -21 531 4T487 82Q487 109 502 166T517 239Q517 290 474 313Q459 320 449 321T378 323H309L277 193Q244 61 244 59Q244 55 245 54T252 50T269 48T302 46H333Q339 38 339 37T336 19Q332 6 326 0H311Q275 2 180 2Q146 2 117 2T71 2T50 1Q33 1 33 10Q33 12 36 24Q41 43 46 45Q50 46 61 46H67Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628Q287 635 230 637ZM630 554Q630 586 609 608T523 636Q521 636 500 636T462 637H440Q393 637 386 627Q385 624 352 494T319 361Q319 360 388 360Q466 361 492 367Q556 377 592 426Q608 449 619 486T630 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(5967.8, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(6356.8, 0)"}},[a("path",{attrs:{"data-c":"3C4",d:"M39 284Q18 284 18 294Q18 301 45 338T99 398Q134 425 164 429Q170 431 332 431Q492 431 497 429Q517 424 517 402Q517 388 508 376T485 360Q479 358 389 358T299 356Q298 355 283 274T251 109T233 20Q228 5 215 -4T186 -13Q153 -13 153 20V30L203 192Q214 228 227 272T248 336L254 357Q254 358 208 358Q206 358 197 358T183 359Q105 359 61 295Q56 287 53 286T39 284Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(6873.8, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(7262.8, 0)"}},[a("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),a("g",{attrs:{"data-mml-node":"msub",transform:"translate(7540.8, 0)"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mn",transform:"translate(469, -150) scale(0.707)"}},[a("path",{attrs:{"data-c":"30",d:"M96 585Q152 666 249 666Q297 666 345 640T423 548Q460 465 460 320Q460 165 417 83Q397 41 362 16T301 -15T250 -22Q224 -22 198 -16T137 16T82 83Q39 165 39 320Q39 494 96 585ZM321 597Q291 629 250 629Q208 629 178 597Q153 571 145 525T137 333Q137 175 145 125T181 46Q209 16 250 16Q290 16 318 46Q347 76 354 130T362 333Q362 478 354 524T321 597Z"}})])]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(8691.1, 0)"}},[a("path",{attrs:{"data-c":"3D",d:"M56 347Q56 360 70 367H707Q722 359 722 347Q722 336 708 328L390 327H72Q56 332 56 347ZM56 153Q56 168 72 173H708Q722 163 722 153Q722 140 707 133H70Q56 140 56 153Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(9746.9, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(10215.9, 0)"}},[a("path",{attrs:{"data-c":"5D",d:"M22 710V750H159V-250H22V-210H119V710H22Z"}})])])])])])],1),t._v("\nwhere "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.025ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.29ex",height:"1ex",viewBox:"0 -431 570 442"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"3C0",d:"M132 -11Q98 -11 98 22V33L111 61Q186 219 220 334L228 358H196Q158 358 142 355T103 336Q92 329 81 318T62 297T53 285Q51 284 38 284Q19 284 19 294Q19 300 38 329T93 391T164 429Q171 431 389 431Q549 431 553 430Q573 423 573 402Q573 371 541 360Q535 358 472 358H408L405 341Q393 269 393 222Q393 170 402 129T421 65T431 37Q431 20 417 5T381 -10Q370 -10 363 -7T347 17T331 77Q330 86 330 121Q330 170 339 226T357 318T367 358H269L268 354Q268 351 249 275T206 114T175 17Q164 -11 132 -11Z"}})])])])])]),t._v(" is the current policy, any "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"20.791ex",height:"2.262ex",viewBox:"0 -750 9189.4 1000"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"3C4",d:"M39 284Q18 284 18 294Q18 301 45 338T99 398Q134 425 164 429Q170 431 332 431Q492 431 497 429Q517 424 517 402Q517 388 508 376T485 360Q479 358 389 358T299 356Q298 355 283 274T251 109T233 20Q228 5 215 -4T186 -13Q153 -13 153 20V30L203 192Q214 228 227 272T248 336L254 357Q254 358 208 358Q206 358 197 358T183 359Q105 359 61 295Q56 287 53 286T39 284Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(794.8, 0)"}},[a("path",{attrs:{"data-c":"3D",d:"M56 347Q56 360 70 367H707Q722 359 722 347Q722 336 708 328L390 327H72Q56 332 56 347ZM56 153Q56 168 72 173H708Q722 163 722 153Q722 140 707 133H70Q56 140 56 153Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1850.6, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"msub",transform:"translate(2239.6, 0)"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mn",transform:"translate(469, -150) scale(0.707)"}},[a("path",{attrs:{"data-c":"30",d:"M96 585Q152 666 249 666Q297 666 345 640T423 548Q460 465 460 320Q460 165 417 83Q397 41 362 16T301 -15T250 -22Q224 -22 198 -16T137 16T82 83Q39 165 39 320Q39 494 96 585ZM321 597Q291 629 250 629Q208 629 178 597Q153 571 145 525T137 333Q137 175 145 125T181 46Q209 16 250 16Q290 16 318 46Q347 76 354 130T362 333Q362 478 354 524T321 597Z"}})])]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3112.1, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"msub",transform:"translate(3556.8, 0)"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mn",transform:"translate(529, -150) scale(0.707)"}},[a("path",{attrs:{"data-c":"30",d:"M96 585Q152 666 249 666Q297 666 345 640T423 548Q460 465 460 320Q460 165 417 83Q397 41 362 16T301 -15T250 -22Q224 -22 198 -16T137 16T82 83Q39 165 39 320Q39 494 96 585ZM321 597Q291 629 250 629Q208 629 178 597Q153 571 145 525T137 333Q137 175 145 125T181 46Q209 16 250 16Q290 16 318 46Q347 76 354 130T362 333Q362 478 354 524T321 597Z"}})])]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(4489.3, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"msub",transform:"translate(4934, 0)"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mn",transform:"translate(469, -150) scale(0.707)"}},[a("path",{attrs:{"data-c":"31",d:"M213 578L200 573Q186 568 160 563T102 556H83V602H102Q149 604 189 617T245 641T273 663Q275 666 285 666Q294 666 302 660V361L303 61Q310 54 315 52T339 48T401 46H427V0H416Q395 3 257 3Q121 3 100 0H88V46H114Q136 46 152 46T177 47T193 50T201 52T207 57T213 61V578Z"}})])]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(5806.5, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"msub",transform:"translate(6251.2, 0)"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mn",transform:"translate(529, -150) scale(0.707)"}},[a("path",{attrs:{"data-c":"31",d:"M213 578L200 573Q186 568 160 563T102 556H83V602H102Q149 604 189 617T245 641T273 663Q275 666 285 666Q294 666 302 660V361L303 61Q310 54 315 52T339 48T401 46H427V0H416Q395 3 257 3Q121 3 100 0H88V46H114Q136 46 152 46T177 47T193 50T201 52T207 57T213 61V578Z"}})])]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(7183.8, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(7628.4, 0)"}},[a("path",{attrs:{"data-c":"22EF",d:"M78 250Q78 274 95 292T138 310Q162 310 180 294T199 251Q199 226 182 208T139 190T96 207T78 250ZM525 250Q525 274 542 292T585 310Q609 310 627 294T646 251Q646 226 629 208T586 190T543 207T525 250ZM972 250Q972 274 989 292T1032 310Q1056 310 1074 294T1093 251Q1093 226 1076 208T1033 190T990 207T972 250Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(8800.4, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(" represents a trajectory sampled from\nthe policy, "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"4.647ex",height:"2.262ex",viewBox:"0 -750 2054 1000"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"52",d:"M230 637Q203 637 198 638T193 649Q193 676 204 682Q206 683 378 683Q550 682 564 680Q620 672 658 652T712 606T733 563T739 529Q739 484 710 445T643 385T576 351T538 338L545 333Q612 295 612 223Q612 212 607 162T602 80V71Q602 53 603 43T614 25T640 16Q668 16 686 38T712 85Q717 99 720 102T735 105Q755 105 755 93Q755 75 731 36Q693 -21 641 -21H632Q571 -21 531 4T487 82Q487 109 502 166T517 239Q517 290 474 313Q459 320 449 321T378 323H309L277 193Q244 61 244 59Q244 55 245 54T252 50T269 48T302 46H333Q339 38 339 37T336 19Q332 6 326 0H311Q275 2 180 2Q146 2 117 2T71 2T50 1Q33 1 33 10Q33 12 36 24Q41 43 46 45Q50 46 61 46H67Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628Q287 635 230 637ZM630 554Q630 586 609 608T523 636Q521 636 500 636T462 637H440Q393 637 386 627Q385 624 352 494T319 361Q319 360 388 360Q466 361 492 367Q556 377 592 426Q608 449 619 486T630 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(759, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(1148, 0)"}},[a("path",{attrs:{"data-c":"3C4",d:"M39 284Q18 284 18 294Q18 301 45 338T99 398Q134 425 164 429Q170 431 332 431Q492 431 497 429Q517 424 517 402Q517 388 508 376T485 360Q479 358 389 358T299 356Q298 355 283 274T251 109T233 20Q228 5 215 -4T186 -13Q153 -13 153 20V30L203 192Q214 228 227 272T248 336L254 357Q254 358 208 358Q206 358 197 358T183 359Q105 359 61 295Q56 287 53 286T39 284Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1665, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(" is the return (cumulative reward) and "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.375ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.974ex",height:"1.375ex",viewBox:"0 -442 872.6 607.6"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"msub"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mn",transform:"translate(469, -150) scale(0.707)"}},[a("path",{attrs:{"data-c":"30",d:"M96 585Q152 666 249 666Q297 666 345 640T423 548Q460 465 460 320Q460 165 417 83Q397 41 362 16T301 -15T250 -22Q224 -22 198 -16T137 16T82 83Q39 165 39 320Q39 494 96 585ZM321 597Q291 629 250 629Q208 629 178 597Q153 571 145 525T137 333Q137 175 145 125T181 46Q209 16 250 16Q290 16 318 46Q347 76 354 130T362 333Q362 478 354 524T321 597Z"}})])])])])])]),t._v(" the initial state for the trajectories."),a("p"),t._v(" "),a("h4",{attrs:{id:"parameters-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-2"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-2"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The estimated on-policy utility of the given observation.")]),t._v(" "),a("h2",{attrs:{id:"qvalues"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#qvalues"}},[t._v("#")]),t._v(" QValues")]),t._v(" "),a("p",[t._v("A solver must inherit this class if it can provide the Q function (i.e. action-value function).")]),t._v(" "),a("h3",{attrs:{id:"get-q-value"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-q-value"}},[t._v("#")]),t._v(" get_q_value "),a("Badge",{attrs:{text:"QValues",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_q_value",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"D.T_value"}}}),t._v(" "),a("p",[t._v("Get the estimated on-policy Q value of the given observation and action.")]),t._v(" "),a("p",[t._v("In mathematical terms, for a fully observable domain, this function estimates:\n")]),a("p",[a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG",display:"true"}},[a("svg",{staticStyle:{"vertical-align":"-1.605ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"33.127ex",height:"3.301ex",viewBox:"0 -750 14642.1 1459.2"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"msup"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"51",d:"M399 -80Q399 -47 400 -30T402 -11V-7L387 -11Q341 -22 303 -22Q208 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435Q740 255 592 107Q529 47 461 16L444 8V3Q444 2 449 -24T470 -66T516 -82Q551 -82 583 -60T625 -3Q631 11 638 11Q647 11 649 2Q649 -6 639 -34T611 -100T557 -165T481 -194Q399 -194 399 -87V-80ZM636 468Q636 523 621 564T580 625T530 655T477 665Q429 665 379 640Q277 591 215 464T153 216Q153 110 207 59Q231 38 236 38V46Q236 86 269 120T347 155Q372 155 390 144T417 114T429 82T435 55L448 64Q512 108 557 185T619 334T636 468ZM314 18Q362 18 404 39L403 49Q399 104 366 115Q354 117 347 117Q344 117 341 117T337 118Q317 118 296 98T274 52Q274 18 314 18Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(791, 413) scale(0.707)"}},[a("path",{attrs:{"data-c":"3C0",d:"M132 -11Q98 -11 98 22V33L111 61Q186 219 220 334L228 358H196Q158 358 142 355T103 336Q92 329 81 318T62 297T53 285Q51 284 38 284Q19 284 19 294Q19 300 38 329T93 391T164 429Q171 431 389 431Q549 431 553 430Q573 423 573 402Q573 371 541 360Q535 358 472 358H408L405 341Q393 269 393 222Q393 170 402 129T421 65T431 37Q431 20 417 5T381 -10Q370 -10 363 -7T347 17T331 77Q330 86 330 121Q330 170 339 226T357 318T367 358H269L268 354Q268 351 249 275T206 114T175 17Q164 -11 132 -11Z"}})])]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1244.1, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(1633.1, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2102.1, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(2546.7, 0)"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3075.7, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3742.5, 0)"}},[a("path",{attrs:{"data-c":"3D",d:"M56 347Q56 360 70 367H707Q722 359 722 347Q722 336 708 328L390 327H72Q56 332 56 347ZM56 153Q56 168 72 173H708Q722 163 722 153Q722 140 707 133H70Q56 140 56 153Z"}})]),a("g",{attrs:{"data-mml-node":"munder",transform:"translate(4520.5, 0)"}},[a("g",{attrs:{"data-mml-node":"TeXAtom",transform:"translate(325.9, 0)"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"45",d:"M12 666Q12 675 24 683H582Q590 680 593 672V588Q593 514 591 502T575 490Q567 490 563 495T555 517Q552 556 517 590Q486 623 445 634T340 648H282Q266 636 264 620T260 492V370H277Q329 375 358 391T404 439Q420 480 420 506Q420 529 436 529Q445 529 451 521Q455 517 455 361Q455 333 455 298T456 253Q456 217 453 207T437 197Q420 196 420 217Q420 240 406 270Q377 328 284 335H260V201Q261 174 261 134Q262 73 264 61T278 38Q281 36 282 35H331Q400 35 449 50Q571 93 602 179Q605 203 622 203Q629 203 634 197T640 183Q638 181 624 95T604 3L600 -1H24Q12 5 12 16Q12 35 51 35Q92 38 97 52Q102 60 102 341T97 632Q91 645 51 648Q12 648 12 666ZM137 341Q137 131 136 89T130 37Q129 36 129 35H235Q233 41 231 48L226 61V623L231 635L235 648H129Q132 641 133 638T135 603T137 517T137 341ZM557 603V648H504Q504 646 515 639Q527 634 542 619L557 603ZM420 317V397L406 383Q394 370 380 363L366 355Q373 350 382 346Q400 333 409 328L420 317ZM582 61L586 88Q585 88 582 83Q557 61 526 46L511 37L542 35H577Q577 36 578 39T580 49T582 61Z"}})])]),a("g",{attrs:{"data-mml-node":"mrow",transform:"translate(0, -600) scale(0.707)"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"3C4",d:"M39 284Q18 284 18 294Q18 301 45 338T99 398Q134 425 164 429Q170 431 332 431Q492 431 497 429Q517 424 517 402Q517 388 508 376T485 360Q479 358 389 358T299 356Q298 355 283 274T251 109T233 20Q228 5 215 -4T186 -13Q153 -13 153 20V30L203 192Q214 228 227 272T248 336L254 357Q254 358 208 358Q206 358 197 358T183 359Q105 359 61 295Q56 287 53 286T39 284Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(517, 0)"}},[a("path",{attrs:{"data-c":"223C",d:"M55 166Q55 241 101 304T222 367Q260 367 296 349T362 304T421 252T484 208T554 189Q616 189 655 236T694 338Q694 350 698 358T708 367Q722 367 722 334Q722 260 677 197T562 134H554Q517 134 481 152T414 196T355 248T292 293T223 311Q179 311 145 286Q109 257 96 218T80 156T69 133Q55 133 55 166Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(1295, 0)"}},[a("path",{attrs:{"data-c":"3C0",d:"M132 -11Q98 -11 98 22V33L111 61Q186 219 220 334L228 358H196Q158 358 142 355T103 336Q92 329 81 318T62 297T53 285Q51 284 38 284Q19 284 19 294Q19 300 38 329T93 391T164 429Q171 431 389 431Q549 431 553 430Q573 423 573 402Q573 371 541 360Q535 358 472 358H408L405 341Q393 269 393 222Q393 170 402 129T421 65T431 37Q431 20 417 5T381 -10Q370 -10 363 -7T347 17T331 77Q330 86 330 121Q330 170 339 226T357 318T367 358H269L268 354Q268 351 249 275T206 114T175 17Q164 -11 132 -11Z"}})])])]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(5839.2, 0)"}},[a("path",{attrs:{"data-c":"5B",d:"M118 -250V750H255V710H158V-210H255V-250H118Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(6117.2, 0)"}},[a("path",{attrs:{"data-c":"52",d:"M230 637Q203 637 198 638T193 649Q193 676 204 682Q206 683 378 683Q550 682 564 680Q620 672 658 652T712 606T733 563T739 529Q739 484 710 445T643 385T576 351T538 338L545 333Q612 295 612 223Q612 212 607 162T602 80V71Q602 53 603 43T614 25T640 16Q668 16 686 38T712 85Q717 99 720 102T735 105Q755 105 755 93Q755 75 731 36Q693 -21 641 -21H632Q571 -21 531 4T487 82Q487 109 502 166T517 239Q517 290 474 313Q459 320 449 321T378 323H309L277 193Q244 61 244 59Q244 55 245 54T252 50T269 48T302 46H333Q339 38 339 37T336 19Q332 6 326 0H311Q275 2 180 2Q146 2 117 2T71 2T50 1Q33 1 33 10Q33 12 36 24Q41 43 46 45Q50 46 61 46H67Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628Q287 635 230 637ZM630 554Q630 586 609 608T523 636Q521 636 500 636T462 637H440Q393 637 386 627Q385 624 352 494T319 361Q319 360 388 360Q466 361 492 367Q556 377 592 426Q608 449 619 486T630 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(6876.2, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(7265.2, 0)"}},[a("path",{attrs:{"data-c":"3C4",d:"M39 284Q18 284 18 294Q18 301 45 338T99 398Q134 425 164 429Q170 431 332 431Q492 431 497 429Q517 424 517 402Q517 388 508 376T485 360Q479 358 389 358T299 356Q298 355 283 274T251 109T233 20Q228 5 215 -4T186 -13Q153 -13 153 20V30L203 192Q214 228 227 272T248 336L254 357Q254 358 208 358Q206 358 197 358T183 359Q105 359 61 295Q56 287 53 286T39 284Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(7782.2, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(8171.2, 0)"}},[a("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),a("g",{attrs:{"data-mml-node":"msub",transform:"translate(8449.2, 0)"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mn",transform:"translate(469, -150) scale(0.707)"}},[a("path",{attrs:{"data-c":"30",d:"M96 585Q152 666 249 666Q297 666 345 640T423 548Q460 465 460 320Q460 165 417 83Q397 41 362 16T301 -15T250 -22Q224 -22 198 -16T137 16T82 83Q39 165 39 320Q39 494 96 585ZM321 597Q291 629 250 629Q208 629 178 597Q153 571 145 525T137 333Q137 175 145 125T181 46Q209 16 250 16Q290 16 318 46Q347 76 354 130T362 333Q362 478 354 524T321 597Z"}})])]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(9599.6, 0)"}},[a("path",{attrs:{"data-c":"3D",d:"M56 347Q56 360 70 367H707Q722 359 722 347Q722 336 708 328L390 327H72Q56 332 56 347ZM56 153Q56 168 72 173H708Q722 163 722 153Q722 140 707 133H70Q56 140 56 153Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(10655.4, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(11124.4, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"msub",transform:"translate(11569, 0)"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mn",transform:"translate(529, -150) scale(0.707)"}},[a("path",{attrs:{"data-c":"30",d:"M96 585Q152 666 249 666Q297 666 345 640T423 548Q460 465 460 320Q460 165 417 83Q397 41 362 16T301 -15T250 -22Q224 -22 198 -16T137 16T82 83Q39 165 39 320Q39 494 96 585ZM321 597Q291 629 250 629Q208 629 178 597Q153 571 145 525T137 333Q137 175 145 125T181 46Q209 16 250 16Q290 16 318 46Q347 76 354 130T362 333Q362 478 354 524T321 597Z"}})])]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(12779.4, 0)"}},[a("path",{attrs:{"data-c":"3D",d:"M56 347Q56 360 70 367H707Q722 359 722 347Q722 336 708 328L390 327H72Q56 332 56 347ZM56 153Q56 168 72 173H708Q722 163 722 153Q722 140 707 133H70Q56 140 56 153Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(13835.1, 0)"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(14364.1, 0)"}},[a("path",{attrs:{"data-c":"5D",d:"M22 710V750H159V-250H22V-210H119V710H22Z"}})])])])])])],1),t._v("\nwhere "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.025ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.29ex",height:"1ex",viewBox:"0 -431 570 442"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"3C0",d:"M132 -11Q98 -11 98 22V33L111 61Q186 219 220 334L228 358H196Q158 358 142 355T103 336Q92 329 81 318T62 297T53 285Q51 284 38 284Q19 284 19 294Q19 300 38 329T93 391T164 429Q171 431 389 431Q549 431 553 430Q573 423 573 402Q573 371 541 360Q535 358 472 358H408L405 341Q393 269 393 222Q393 170 402 129T421 65T431 37Q431 20 417 5T381 -10Q370 -10 363 -7T347 17T331 77Q330 86 330 121Q330 170 339 226T357 318T367 358H269L268 354Q268 351 249 275T206 114T175 17Q164 -11 132 -11Z"}})])])])])]),t._v(" is the current policy, any "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"20.791ex",height:"2.262ex",viewBox:"0 -750 9189.4 1000"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"3C4",d:"M39 284Q18 284 18 294Q18 301 45 338T99 398Q134 425 164 429Q170 431 332 431Q492 431 497 429Q517 424 517 402Q517 388 508 376T485 360Q479 358 389 358T299 356Q298 355 283 274T251 109T233 20Q228 5 215 -4T186 -13Q153 -13 153 20V30L203 192Q214 228 227 272T248 336L254 357Q254 358 208 358Q206 358 197 358T183 359Q105 359 61 295Q56 287 53 286T39 284Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(794.8, 0)"}},[a("path",{attrs:{"data-c":"3D",d:"M56 347Q56 360 70 367H707Q722 359 722 347Q722 336 708 328L390 327H72Q56 332 56 347ZM56 153Q56 168 72 173H708Q722 163 722 153Q722 140 707 133H70Q56 140 56 153Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1850.6, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"msub",transform:"translate(2239.6, 0)"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mn",transform:"translate(469, -150) scale(0.707)"}},[a("path",{attrs:{"data-c":"30",d:"M96 585Q152 666 249 666Q297 666 345 640T423 548Q460 465 460 320Q460 165 417 83Q397 41 362 16T301 -15T250 -22Q224 -22 198 -16T137 16T82 83Q39 165 39 320Q39 494 96 585ZM321 597Q291 629 250 629Q208 629 178 597Q153 571 145 525T137 333Q137 175 145 125T181 46Q209 16 250 16Q290 16 318 46Q347 76 354 130T362 333Q362 478 354 524T321 597Z"}})])]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3112.1, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"msub",transform:"translate(3556.8, 0)"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mn",transform:"translate(529, -150) scale(0.707)"}},[a("path",{attrs:{"data-c":"30",d:"M96 585Q152 666 249 666Q297 666 345 640T423 548Q460 465 460 320Q460 165 417 83Q397 41 362 16T301 -15T250 -22Q224 -22 198 -16T137 16T82 83Q39 165 39 320Q39 494 96 585ZM321 597Q291 629 250 629Q208 629 178 597Q153 571 145 525T137 333Q137 175 145 125T181 46Q209 16 250 16Q290 16 318 46Q347 76 354 130T362 333Q362 478 354 524T321 597Z"}})])]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(4489.3, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"msub",transform:"translate(4934, 0)"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mn",transform:"translate(469, -150) scale(0.707)"}},[a("path",{attrs:{"data-c":"31",d:"M213 578L200 573Q186 568 160 563T102 556H83V602H102Q149 604 189 617T245 641T273 663Q275 666 285 666Q294 666 302 660V361L303 61Q310 54 315 52T339 48T401 46H427V0H416Q395 3 257 3Q121 3 100 0H88V46H114Q136 46 152 46T177 47T193 50T201 52T207 57T213 61V578Z"}})])]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(5806.5, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"msub",transform:"translate(6251.2, 0)"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mn",transform:"translate(529, -150) scale(0.707)"}},[a("path",{attrs:{"data-c":"31",d:"M213 578L200 573Q186 568 160 563T102 556H83V602H102Q149 604 189 617T245 641T273 663Q275 666 285 666Q294 666 302 660V361L303 61Q310 54 315 52T339 48T401 46H427V0H416Q395 3 257 3Q121 3 100 0H88V46H114Q136 46 152 46T177 47T193 50T201 52T207 57T213 61V578Z"}})])]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(7183.8, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(7628.4, 0)"}},[a("path",{attrs:{"data-c":"22EF",d:"M78 250Q78 274 95 292T138 310Q162 310 180 294T199 251Q199 226 182 208T139 190T96 207T78 250ZM525 250Q525 274 542 292T585 310Q609 310 627 294T646 251Q646 226 629 208T586 190T543 207T525 250ZM972 250Q972 274 989 292T1032 310Q1056 310 1074 294T1093 251Q1093 226 1076 208T1033 190T990 207T972 250Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(8800.4, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(" represents a trajectory sampled from\nthe policy, "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"4.647ex",height:"2.262ex",viewBox:"0 -750 2054 1000"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"52",d:"M230 637Q203 637 198 638T193 649Q193 676 204 682Q206 683 378 683Q550 682 564 680Q620 672 658 652T712 606T733 563T739 529Q739 484 710 445T643 385T576 351T538 338L545 333Q612 295 612 223Q612 212 607 162T602 80V71Q602 53 603 43T614 25T640 16Q668 16 686 38T712 85Q717 99 720 102T735 105Q755 105 755 93Q755 75 731 36Q693 -21 641 -21H632Q571 -21 531 4T487 82Q487 109 502 166T517 239Q517 290 474 313Q459 320 449 321T378 323H309L277 193Q244 61 244 59Q244 55 245 54T252 50T269 48T302 46H333Q339 38 339 37T336 19Q332 6 326 0H311Q275 2 180 2Q146 2 117 2T71 2T50 1Q33 1 33 10Q33 12 36 24Q41 43 46 45Q50 46 61 46H67Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628Q287 635 230 637ZM630 554Q630 586 609 608T523 636Q521 636 500 636T462 637H440Q393 637 386 627Q385 624 352 494T319 361Q319 360 388 360Q466 361 492 367Q556 377 592 426Q608 449 619 486T630 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(759, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(1148, 0)"}},[a("path",{attrs:{"data-c":"3C4",d:"M39 284Q18 284 18 294Q18 301 45 338T99 398Q134 425 164 429Q170 431 332 431Q492 431 497 429Q517 424 517 402Q517 388 508 376T485 360Q479 358 389 358T299 356Q298 355 283 274T251 109T233 20Q228 5 215 -4T186 -13Q153 -13 153 20V30L203 192Q214 228 227 272T248 336L254 357Q254 358 208 358Q206 358 197 358T183 359Q105 359 61 295Q56 287 53 286T39 284Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1665, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(" is the return (cumulative reward) and "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.375ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.974ex",height:"1.375ex",viewBox:"0 -442 872.6 607.6"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"msub"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mn",transform:"translate(469, -150) scale(0.707)"}},[a("path",{attrs:{"data-c":"30",d:"M96 585Q152 666 249 666Q297 666 345 640T423 548Q460 465 460 320Q460 165 417 83Q397 41 362 16T301 -15T250 -22Q224 -22 198 -16T137 16T82 83Q39 165 39 320Q39 494 96 585ZM321 597Q291 629 250 629Q208 629 178 597Q153 571 145 525T137 333Q137 175 145 125T181 46Q209 16 250 16Q290 16 318 46Q347 76 354 130T362 333Q362 478 354 524T321 597Z"}})])])])])])]),t._v("/"),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.375ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"2.11ex",height:"1.372ex",viewBox:"0 -441 932.6 606.6"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"msub"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mn",transform:"translate(529, -150) scale(0.707)"}},[a("path",{attrs:{"data-c":"30",d:"M96 585Q152 666 249 666Q297 666 345 640T423 548Q460 465 460 320Q460 165 417 83Q397 41 362 16T301 -15T250 -22Q224 -22 198 -16T137 16T82 83Q39 165 39 320Q39 494 96 585ZM321 597Q291 629 250 629Q208 629 178 597Q153 571 145 525T137 333Q137 175 145 125T181 46Q209 16 250 16Q290 16 318 46Q347 76 354 130T362 333Q362 478 354 524T321 597Z"}})])])])])])]),t._v(" the initial state/action for the\ntrajectories."),a("p"),t._v(" "),a("h4",{attrs:{id:"parameters-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-3"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-3"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The estimated on-policy Q value of the given observation and action.")]),t._v(" "),a("h3",{attrs:{id:"get-utility-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-utility-3"}},[t._v("#")]),t._v(" get_utility "),a("Badge",{attrs:{text:"Utilities",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_utility",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"D.T_value"}}}),t._v(" "),a("p",[t._v("Get the estimated on-policy utility of the given observation.")]),t._v(" "),a("p",[t._v("In mathematical terms, for a fully observable domain, this function estimates:\n")]),a("p",[a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG",display:"true"}},[a("svg",{staticStyle:{"vertical-align":"-1.605ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"23.742ex",height:"3.301ex",viewBox:"0 -750 10493.9 1459.2"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"msup"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"56",d:"M52 648Q52 670 65 683H76Q118 680 181 680Q299 680 320 683H330Q336 677 336 674T334 656Q329 641 325 637H304Q282 635 274 635Q245 630 242 620Q242 618 271 369T301 118L374 235Q447 352 520 471T595 594Q599 601 599 609Q599 633 555 637Q537 637 537 648Q537 649 539 661Q542 675 545 679T558 683Q560 683 570 683T604 682T668 681Q737 681 755 683H762Q769 676 769 672Q769 655 760 640Q757 637 743 637Q730 636 719 635T698 630T682 623T670 615T660 608T652 599T645 592L452 282Q272 -9 266 -16Q263 -18 259 -21L241 -22H234Q216 -22 216 -15Q213 -9 177 305Q139 623 138 626Q133 637 76 637H59Q52 642 52 648Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(856.2, 413) scale(0.707)"}},[a("path",{attrs:{"data-c":"3C0",d:"M132 -11Q98 -11 98 22V33L111 61Q186 219 220 334L228 358H196Q158 358 142 355T103 336Q92 329 81 318T62 297T53 285Q51 284 38 284Q19 284 19 294Q19 300 38 329T93 391T164 429Q171 431 389 431Q549 431 553 430Q573 423 573 402Q573 371 541 360Q535 358 472 358H408L405 341Q393 269 393 222Q393 170 402 129T421 65T431 37Q431 20 417 5T381 -10Q370 -10 363 -7T347 17T331 77Q330 86 330 121Q330 170 339 226T357 318T367 358H269L268 354Q268 351 249 275T206 114T175 17Q164 -11 132 -11Z"}})])]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1309.3, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(1698.3, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2167.3, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2834, 0)"}},[a("path",{attrs:{"data-c":"3D",d:"M56 347Q56 360 70 367H707Q722 359 722 347Q722 336 708 328L390 327H72Q56 332 56 347ZM56 153Q56 168 72 173H708Q722 163 722 153Q722 140 707 133H70Q56 140 56 153Z"}})]),a("g",{attrs:{"data-mml-node":"munder",transform:"translate(3612, 0)"}},[a("g",{attrs:{"data-mml-node":"TeXAtom",transform:"translate(325.9, 0)"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"45",d:"M12 666Q12 675 24 683H582Q590 680 593 672V588Q593 514 591 502T575 490Q567 490 563 495T555 517Q552 556 517 590Q486 623 445 634T340 648H282Q266 636 264 620T260 492V370H277Q329 375 358 391T404 439Q420 480 420 506Q420 529 436 529Q445 529 451 521Q455 517 455 361Q455 333 455 298T456 253Q456 217 453 207T437 197Q420 196 420 217Q420 240 406 270Q377 328 284 335H260V201Q261 174 261 134Q262 73 264 61T278 38Q281 36 282 35H331Q400 35 449 50Q571 93 602 179Q605 203 622 203Q629 203 634 197T640 183Q638 181 624 95T604 3L600 -1H24Q12 5 12 16Q12 35 51 35Q92 38 97 52Q102 60 102 341T97 632Q91 645 51 648Q12 648 12 666ZM137 341Q137 131 136 89T130 37Q129 36 129 35H235Q233 41 231 48L226 61V623L231 635L235 648H129Q132 641 133 638T135 603T137 517T137 341ZM557 603V648H504Q504 646 515 639Q527 634 542 619L557 603ZM420 317V397L406 383Q394 370 380 363L366 355Q373 350 382 346Q400 333 409 328L420 317ZM582 61L586 88Q585 88 582 83Q557 61 526 46L511 37L542 35H577Q577 36 578 39T580 49T582 61Z"}})])]),a("g",{attrs:{"data-mml-node":"mrow",transform:"translate(0, -600) scale(0.707)"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"3C4",d:"M39 284Q18 284 18 294Q18 301 45 338T99 398Q134 425 164 429Q170 431 332 431Q492 431 497 429Q517 424 517 402Q517 388 508 376T485 360Q479 358 389 358T299 356Q298 355 283 274T251 109T233 20Q228 5 215 -4T186 -13Q153 -13 153 20V30L203 192Q214 228 227 272T248 336L254 357Q254 358 208 358Q206 358 197 358T183 359Q105 359 61 295Q56 287 53 286T39 284Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(517, 0)"}},[a("path",{attrs:{"data-c":"223C",d:"M55 166Q55 241 101 304T222 367Q260 367 296 349T362 304T421 252T484 208T554 189Q616 189 655 236T694 338Q694 350 698 358T708 367Q722 367 722 334Q722 260 677 197T562 134H554Q517 134 481 152T414 196T355 248T292 293T223 311Q179 311 145 286Q109 257 96 218T80 156T69 133Q55 133 55 166Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(1295, 0)"}},[a("path",{attrs:{"data-c":"3C0",d:"M132 -11Q98 -11 98 22V33L111 61Q186 219 220 334L228 358H196Q158 358 142 355T103 336Q92 329 81 318T62 297T53 285Q51 284 38 284Q19 284 19 294Q19 300 38 329T93 391T164 429Q171 431 389 431Q549 431 553 430Q573 423 573 402Q573 371 541 360Q535 358 472 358H408L405 341Q393 269 393 222Q393 170 402 129T421 65T431 37Q431 20 417 5T381 -10Q370 -10 363 -7T347 17T331 77Q330 86 330 121Q330 170 339 226T357 318T367 358H269L268 354Q268 351 249 275T206 114T175 17Q164 -11 132 -11Z"}})])])]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(4930.8, 0)"}},[a("path",{attrs:{"data-c":"5B",d:"M118 -250V750H255V710H158V-210H255V-250H118Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(5208.8, 0)"}},[a("path",{attrs:{"data-c":"52",d:"M230 637Q203 637 198 638T193 649Q193 676 204 682Q206 683 378 683Q550 682 564 680Q620 672 658 652T712 606T733 563T739 529Q739 484 710 445T643 385T576 351T538 338L545 333Q612 295 612 223Q612 212 607 162T602 80V71Q602 53 603 43T614 25T640 16Q668 16 686 38T712 85Q717 99 720 102T735 105Q755 105 755 93Q755 75 731 36Q693 -21 641 -21H632Q571 -21 531 4T487 82Q487 109 502 166T517 239Q517 290 474 313Q459 320 449 321T378 323H309L277 193Q244 61 244 59Q244 55 245 54T252 50T269 48T302 46H333Q339 38 339 37T336 19Q332 6 326 0H311Q275 2 180 2Q146 2 117 2T71 2T50 1Q33 1 33 10Q33 12 36 24Q41 43 46 45Q50 46 61 46H67Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628Q287 635 230 637ZM630 554Q630 586 609 608T523 636Q521 636 500 636T462 637H440Q393 637 386 627Q385 624 352 494T319 361Q319 360 388 360Q466 361 492 367Q556 377 592 426Q608 449 619 486T630 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(5967.8, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(6356.8, 0)"}},[a("path",{attrs:{"data-c":"3C4",d:"M39 284Q18 284 18 294Q18 301 45 338T99 398Q134 425 164 429Q170 431 332 431Q492 431 497 429Q517 424 517 402Q517 388 508 376T485 360Q479 358 389 358T299 356Q298 355 283 274T251 109T233 20Q228 5 215 -4T186 -13Q153 -13 153 20V30L203 192Q214 228 227 272T248 336L254 357Q254 358 208 358Q206 358 197 358T183 359Q105 359 61 295Q56 287 53 286T39 284Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(6873.8, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(7262.8, 0)"}},[a("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),a("g",{attrs:{"data-mml-node":"msub",transform:"translate(7540.8, 0)"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mn",transform:"translate(469, -150) scale(0.707)"}},[a("path",{attrs:{"data-c":"30",d:"M96 585Q152 666 249 666Q297 666 345 640T423 548Q460 465 460 320Q460 165 417 83Q397 41 362 16T301 -15T250 -22Q224 -22 198 -16T137 16T82 83Q39 165 39 320Q39 494 96 585ZM321 597Q291 629 250 629Q208 629 178 597Q153 571 145 525T137 333Q137 175 145 125T181 46Q209 16 250 16Q290 16 318 46Q347 76 354 130T362 333Q362 478 354 524T321 597Z"}})])]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(8691.1, 0)"}},[a("path",{attrs:{"data-c":"3D",d:"M56 347Q56 360 70 367H707Q722 359 722 347Q722 336 708 328L390 327H72Q56 332 56 347ZM56 153Q56 168 72 173H708Q722 163 722 153Q722 140 707 133H70Q56 140 56 153Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(9746.9, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(10215.9, 0)"}},[a("path",{attrs:{"data-c":"5D",d:"M22 710V750H159V-250H22V-210H119V710H22Z"}})])])])])])],1),t._v("\nwhere "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.025ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.29ex",height:"1ex",viewBox:"0 -431 570 442"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"3C0",d:"M132 -11Q98 -11 98 22V33L111 61Q186 219 220 334L228 358H196Q158 358 142 355T103 336Q92 329 81 318T62 297T53 285Q51 284 38 284Q19 284 19 294Q19 300 38 329T93 391T164 429Q171 431 389 431Q549 431 553 430Q573 423 573 402Q573 371 541 360Q535 358 472 358H408L405 341Q393 269 393 222Q393 170 402 129T421 65T431 37Q431 20 417 5T381 -10Q370 -10 363 -7T347 17T331 77Q330 86 330 121Q330 170 339 226T357 318T367 358H269L268 354Q268 351 249 275T206 114T175 17Q164 -11 132 -11Z"}})])])])])]),t._v(" is the current policy, any "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"20.791ex",height:"2.262ex",viewBox:"0 -750 9189.4 1000"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"3C4",d:"M39 284Q18 284 18 294Q18 301 45 338T99 398Q134 425 164 429Q170 431 332 431Q492 431 497 429Q517 424 517 402Q517 388 508 376T485 360Q479 358 389 358T299 356Q298 355 283 274T251 109T233 20Q228 5 215 -4T186 -13Q153 -13 153 20V30L203 192Q214 228 227 272T248 336L254 357Q254 358 208 358Q206 358 197 358T183 359Q105 359 61 295Q56 287 53 286T39 284Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(794.8, 0)"}},[a("path",{attrs:{"data-c":"3D",d:"M56 347Q56 360 70 367H707Q722 359 722 347Q722 336 708 328L390 327H72Q56 332 56 347ZM56 153Q56 168 72 173H708Q722 163 722 153Q722 140 707 133H70Q56 140 56 153Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1850.6, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"msub",transform:"translate(2239.6, 0)"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mn",transform:"translate(469, -150) scale(0.707)"}},[a("path",{attrs:{"data-c":"30",d:"M96 585Q152 666 249 666Q297 666 345 640T423 548Q460 465 460 320Q460 165 417 83Q397 41 362 16T301 -15T250 -22Q224 -22 198 -16T137 16T82 83Q39 165 39 320Q39 494 96 585ZM321 597Q291 629 250 629Q208 629 178 597Q153 571 145 525T137 333Q137 175 145 125T181 46Q209 16 250 16Q290 16 318 46Q347 76 354 130T362 333Q362 478 354 524T321 597Z"}})])]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3112.1, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"msub",transform:"translate(3556.8, 0)"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mn",transform:"translate(529, -150) scale(0.707)"}},[a("path",{attrs:{"data-c":"30",d:"M96 585Q152 666 249 666Q297 666 345 640T423 548Q460 465 460 320Q460 165 417 83Q397 41 362 16T301 -15T250 -22Q224 -22 198 -16T137 16T82 83Q39 165 39 320Q39 494 96 585ZM321 597Q291 629 250 629Q208 629 178 597Q153 571 145 525T137 333Q137 175 145 125T181 46Q209 16 250 16Q290 16 318 46Q347 76 354 130T362 333Q362 478 354 524T321 597Z"}})])]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(4489.3, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"msub",transform:"translate(4934, 0)"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mn",transform:"translate(469, -150) scale(0.707)"}},[a("path",{attrs:{"data-c":"31",d:"M213 578L200 573Q186 568 160 563T102 556H83V602H102Q149 604 189 617T245 641T273 663Q275 666 285 666Q294 666 302 660V361L303 61Q310 54 315 52T339 48T401 46H427V0H416Q395 3 257 3Q121 3 100 0H88V46H114Q136 46 152 46T177 47T193 50T201 52T207 57T213 61V578Z"}})])]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(5806.5, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"msub",transform:"translate(6251.2, 0)"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mn",transform:"translate(529, -150) scale(0.707)"}},[a("path",{attrs:{"data-c":"31",d:"M213 578L200 573Q186 568 160 563T102 556H83V602H102Q149 604 189 617T245 641T273 663Q275 666 285 666Q294 666 302 660V361L303 61Q310 54 315 52T339 48T401 46H427V0H416Q395 3 257 3Q121 3 100 0H88V46H114Q136 46 152 46T177 47T193 50T201 52T207 57T213 61V578Z"}})])]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(7183.8, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(7628.4, 0)"}},[a("path",{attrs:{"data-c":"22EF",d:"M78 250Q78 274 95 292T138 310Q162 310 180 294T199 251Q199 226 182 208T139 190T96 207T78 250ZM525 250Q525 274 542 292T585 310Q609 310 627 294T646 251Q646 226 629 208T586 190T543 207T525 250ZM972 250Q972 274 989 292T1032 310Q1056 310 1074 294T1093 251Q1093 226 1076 208T1033 190T990 207T972 250Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(8800.4, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(" represents a trajectory sampled from\nthe policy, "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"4.647ex",height:"2.262ex",viewBox:"0 -750 2054 1000"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"52",d:"M230 637Q203 637 198 638T193 649Q193 676 204 682Q206 683 378 683Q550 682 564 680Q620 672 658 652T712 606T733 563T739 529Q739 484 710 445T643 385T576 351T538 338L545 333Q612 295 612 223Q612 212 607 162T602 80V71Q602 53 603 43T614 25T640 16Q668 16 686 38T712 85Q717 99 720 102T735 105Q755 105 755 93Q755 75 731 36Q693 -21 641 -21H632Q571 -21 531 4T487 82Q487 109 502 166T517 239Q517 290 474 313Q459 320 449 321T378 323H309L277 193Q244 61 244 59Q244 55 245 54T252 50T269 48T302 46H333Q339 38 339 37T336 19Q332 6 326 0H311Q275 2 180 2Q146 2 117 2T71 2T50 1Q33 1 33 10Q33 12 36 24Q41 43 46 45Q50 46 61 46H67Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628Q287 635 230 637ZM630 554Q630 586 609 608T523 636Q521 636 500 636T462 637H440Q393 637 386 627Q385 624 352 494T319 361Q319 360 388 360Q466 361 492 367Q556 377 592 426Q608 449 619 486T630 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(759, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(1148, 0)"}},[a("path",{attrs:{"data-c":"3C4",d:"M39 284Q18 284 18 294Q18 301 45 338T99 398Q134 425 164 429Q170 431 332 431Q492 431 497 429Q517 424 517 402Q517 388 508 376T485 360Q479 358 389 358T299 356Q298 355 283 274T251 109T233 20Q228 5 215 -4T186 -13Q153 -13 153 20V30L203 192Q214 228 227 272T248 336L254 357Q254 358 208 358Q206 358 197 358T183 359Q105 359 61 295Q56 287 53 286T39 284Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1665, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(" is the return (cumulative reward) and "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.375ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.974ex",height:"1.375ex",viewBox:"0 -442 872.6 607.6"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"msub"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mn",transform:"translate(469, -150) scale(0.707)"}},[a("path",{attrs:{"data-c":"30",d:"M96 585Q152 666 249 666Q297 666 345 640T423 548Q460 465 460 320Q460 165 417 83Q397 41 362 16T301 -15T250 -22Q224 -22 198 -16T137 16T82 83Q39 165 39 320Q39 494 96 585ZM321 597Q291 629 250 629Q208 629 178 597Q153 571 145 525T137 333Q137 175 145 125T181 46Q209 16 250 16Q290 16 318 46Q347 76 354 130T362 333Q362 478 354 524T321 597Z"}})])])])])])]),t._v(" the initial state for the trajectories."),a("p"),t._v(" "),a("h4",{attrs:{id:"parameters-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-4"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-4"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The estimated on-policy utility of the given observation.")]),t._v(" "),a("h3",{attrs:{id:"get-q-value-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-q-value-2"}},[t._v("#")]),t._v(" _get_q_value "),a("Badge",{attrs:{text:"QValues",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_q_value",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"D.T_value"}}}),t._v(" "),a("p",[t._v("Get the estimated on-policy Q value of the given observation and action.")]),t._v(" "),a("p",[t._v("In mathematical terms, for a fully observable domain, this function estimates:\n")]),a("p",[a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG",display:"true"}},[a("svg",{staticStyle:{"vertical-align":"-1.605ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"33.127ex",height:"3.301ex",viewBox:"0 -750 14642.1 1459.2"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"msup"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"51",d:"M399 -80Q399 -47 400 -30T402 -11V-7L387 -11Q341 -22 303 -22Q208 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435Q740 255 592 107Q529 47 461 16L444 8V3Q444 2 449 -24T470 -66T516 -82Q551 -82 583 -60T625 -3Q631 11 638 11Q647 11 649 2Q649 -6 639 -34T611 -100T557 -165T481 -194Q399 -194 399 -87V-80ZM636 468Q636 523 621 564T580 625T530 655T477 665Q429 665 379 640Q277 591 215 464T153 216Q153 110 207 59Q231 38 236 38V46Q236 86 269 120T347 155Q372 155 390 144T417 114T429 82T435 55L448 64Q512 108 557 185T619 334T636 468ZM314 18Q362 18 404 39L403 49Q399 104 366 115Q354 117 347 117Q344 117 341 117T337 118Q317 118 296 98T274 52Q274 18 314 18Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(791, 413) scale(0.707)"}},[a("path",{attrs:{"data-c":"3C0",d:"M132 -11Q98 -11 98 22V33L111 61Q186 219 220 334L228 358H196Q158 358 142 355T103 336Q92 329 81 318T62 297T53 285Q51 284 38 284Q19 284 19 294Q19 300 38 329T93 391T164 429Q171 431 389 431Q549 431 553 430Q573 423 573 402Q573 371 541 360Q535 358 472 358H408L405 341Q393 269 393 222Q393 170 402 129T421 65T431 37Q431 20 417 5T381 -10Q370 -10 363 -7T347 17T331 77Q330 86 330 121Q330 170 339 226T357 318T367 358H269L268 354Q268 351 249 275T206 114T175 17Q164 -11 132 -11Z"}})])]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1244.1, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(1633.1, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2102.1, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(2546.7, 0)"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3075.7, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3742.5, 0)"}},[a("path",{attrs:{"data-c":"3D",d:"M56 347Q56 360 70 367H707Q722 359 722 347Q722 336 708 328L390 327H72Q56 332 56 347ZM56 153Q56 168 72 173H708Q722 163 722 153Q722 140 707 133H70Q56 140 56 153Z"}})]),a("g",{attrs:{"data-mml-node":"munder",transform:"translate(4520.5, 0)"}},[a("g",{attrs:{"data-mml-node":"TeXAtom",transform:"translate(325.9, 0)"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"45",d:"M12 666Q12 675 24 683H582Q590 680 593 672V588Q593 514 591 502T575 490Q567 490 563 495T555 517Q552 556 517 590Q486 623 445 634T340 648H282Q266 636 264 620T260 492V370H277Q329 375 358 391T404 439Q420 480 420 506Q420 529 436 529Q445 529 451 521Q455 517 455 361Q455 333 455 298T456 253Q456 217 453 207T437 197Q420 196 420 217Q420 240 406 270Q377 328 284 335H260V201Q261 174 261 134Q262 73 264 61T278 38Q281 36 282 35H331Q400 35 449 50Q571 93 602 179Q605 203 622 203Q629 203 634 197T640 183Q638 181 624 95T604 3L600 -1H24Q12 5 12 16Q12 35 51 35Q92 38 97 52Q102 60 102 341T97 632Q91 645 51 648Q12 648 12 666ZM137 341Q137 131 136 89T130 37Q129 36 129 35H235Q233 41 231 48L226 61V623L231 635L235 648H129Q132 641 133 638T135 603T137 517T137 341ZM557 603V648H504Q504 646 515 639Q527 634 542 619L557 603ZM420 317V397L406 383Q394 370 380 363L366 355Q373 350 382 346Q400 333 409 328L420 317ZM582 61L586 88Q585 88 582 83Q557 61 526 46L511 37L542 35H577Q577 36 578 39T580 49T582 61Z"}})])]),a("g",{attrs:{"data-mml-node":"mrow",transform:"translate(0, -600) scale(0.707)"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"3C4",d:"M39 284Q18 284 18 294Q18 301 45 338T99 398Q134 425 164 429Q170 431 332 431Q492 431 497 429Q517 424 517 402Q517 388 508 376T485 360Q479 358 389 358T299 356Q298 355 283 274T251 109T233 20Q228 5 215 -4T186 -13Q153 -13 153 20V30L203 192Q214 228 227 272T248 336L254 357Q254 358 208 358Q206 358 197 358T183 359Q105 359 61 295Q56 287 53 286T39 284Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(517, 0)"}},[a("path",{attrs:{"data-c":"223C",d:"M55 166Q55 241 101 304T222 367Q260 367 296 349T362 304T421 252T484 208T554 189Q616 189 655 236T694 338Q694 350 698 358T708 367Q722 367 722 334Q722 260 677 197T562 134H554Q517 134 481 152T414 196T355 248T292 293T223 311Q179 311 145 286Q109 257 96 218T80 156T69 133Q55 133 55 166Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(1295, 0)"}},[a("path",{attrs:{"data-c":"3C0",d:"M132 -11Q98 -11 98 22V33L111 61Q186 219 220 334L228 358H196Q158 358 142 355T103 336Q92 329 81 318T62 297T53 285Q51 284 38 284Q19 284 19 294Q19 300 38 329T93 391T164 429Q171 431 389 431Q549 431 553 430Q573 423 573 402Q573 371 541 360Q535 358 472 358H408L405 341Q393 269 393 222Q393 170 402 129T421 65T431 37Q431 20 417 5T381 -10Q370 -10 363 -7T347 17T331 77Q330 86 330 121Q330 170 339 226T357 318T367 358H269L268 354Q268 351 249 275T206 114T175 17Q164 -11 132 -11Z"}})])])]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(5839.2, 0)"}},[a("path",{attrs:{"data-c":"5B",d:"M118 -250V750H255V710H158V-210H255V-250H118Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(6117.2, 0)"}},[a("path",{attrs:{"data-c":"52",d:"M230 637Q203 637 198 638T193 649Q193 676 204 682Q206 683 378 683Q550 682 564 680Q620 672 658 652T712 606T733 563T739 529Q739 484 710 445T643 385T576 351T538 338L545 333Q612 295 612 223Q612 212 607 162T602 80V71Q602 53 603 43T614 25T640 16Q668 16 686 38T712 85Q717 99 720 102T735 105Q755 105 755 93Q755 75 731 36Q693 -21 641 -21H632Q571 -21 531 4T487 82Q487 109 502 166T517 239Q517 290 474 313Q459 320 449 321T378 323H309L277 193Q244 61 244 59Q244 55 245 54T252 50T269 48T302 46H333Q339 38 339 37T336 19Q332 6 326 0H311Q275 2 180 2Q146 2 117 2T71 2T50 1Q33 1 33 10Q33 12 36 24Q41 43 46 45Q50 46 61 46H67Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628Q287 635 230 637ZM630 554Q630 586 609 608T523 636Q521 636 500 636T462 637H440Q393 637 386 627Q385 624 352 494T319 361Q319 360 388 360Q466 361 492 367Q556 377 592 426Q608 449 619 486T630 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(6876.2, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(7265.2, 0)"}},[a("path",{attrs:{"data-c":"3C4",d:"M39 284Q18 284 18 294Q18 301 45 338T99 398Q134 425 164 429Q170 431 332 431Q492 431 497 429Q517 424 517 402Q517 388 508 376T485 360Q479 358 389 358T299 356Q298 355 283 274T251 109T233 20Q228 5 215 -4T186 -13Q153 -13 153 20V30L203 192Q214 228 227 272T248 336L254 357Q254 358 208 358Q206 358 197 358T183 359Q105 359 61 295Q56 287 53 286T39 284Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(7782.2, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(8171.2, 0)"}},[a("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),a("g",{attrs:{"data-mml-node":"msub",transform:"translate(8449.2, 0)"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mn",transform:"translate(469, -150) scale(0.707)"}},[a("path",{attrs:{"data-c":"30",d:"M96 585Q152 666 249 666Q297 666 345 640T423 548Q460 465 460 320Q460 165 417 83Q397 41 362 16T301 -15T250 -22Q224 -22 198 -16T137 16T82 83Q39 165 39 320Q39 494 96 585ZM321 597Q291 629 250 629Q208 629 178 597Q153 571 145 525T137 333Q137 175 145 125T181 46Q209 16 250 16Q290 16 318 46Q347 76 354 130T362 333Q362 478 354 524T321 597Z"}})])]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(9599.6, 0)"}},[a("path",{attrs:{"data-c":"3D",d:"M56 347Q56 360 70 367H707Q722 359 722 347Q722 336 708 328L390 327H72Q56 332 56 347ZM56 153Q56 168 72 173H708Q722 163 722 153Q722 140 707 133H70Q56 140 56 153Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(10655.4, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(11124.4, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"msub",transform:"translate(11569, 0)"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mn",transform:"translate(529, -150) scale(0.707)"}},[a("path",{attrs:{"data-c":"30",d:"M96 585Q152 666 249 666Q297 666 345 640T423 548Q460 465 460 320Q460 165 417 83Q397 41 362 16T301 -15T250 -22Q224 -22 198 -16T137 16T82 83Q39 165 39 320Q39 494 96 585ZM321 597Q291 629 250 629Q208 629 178 597Q153 571 145 525T137 333Q137 175 145 125T181 46Q209 16 250 16Q290 16 318 46Q347 76 354 130T362 333Q362 478 354 524T321 597Z"}})])]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(12779.4, 0)"}},[a("path",{attrs:{"data-c":"3D",d:"M56 347Q56 360 70 367H707Q722 359 722 347Q722 336 708 328L390 327H72Q56 332 56 347ZM56 153Q56 168 72 173H708Q722 163 722 153Q722 140 707 133H70Q56 140 56 153Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(13835.1, 0)"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(14364.1, 0)"}},[a("path",{attrs:{"data-c":"5D",d:"M22 710V750H159V-250H22V-210H119V710H22Z"}})])])])])])],1),t._v("\nwhere "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.025ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.29ex",height:"1ex",viewBox:"0 -431 570 442"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"3C0",d:"M132 -11Q98 -11 98 22V33L111 61Q186 219 220 334L228 358H196Q158 358 142 355T103 336Q92 329 81 318T62 297T53 285Q51 284 38 284Q19 284 19 294Q19 300 38 329T93 391T164 429Q171 431 389 431Q549 431 553 430Q573 423 573 402Q573 371 541 360Q535 358 472 358H408L405 341Q393 269 393 222Q393 170 402 129T421 65T431 37Q431 20 417 5T381 -10Q370 -10 363 -7T347 17T331 77Q330 86 330 121Q330 170 339 226T357 318T367 358H269L268 354Q268 351 249 275T206 114T175 17Q164 -11 132 -11Z"}})])])])])]),t._v(" is the current policy, any "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"20.791ex",height:"2.262ex",viewBox:"0 -750 9189.4 1000"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"3C4",d:"M39 284Q18 284 18 294Q18 301 45 338T99 398Q134 425 164 429Q170 431 332 431Q492 431 497 429Q517 424 517 402Q517 388 508 376T485 360Q479 358 389 358T299 356Q298 355 283 274T251 109T233 20Q228 5 215 -4T186 -13Q153 -13 153 20V30L203 192Q214 228 227 272T248 336L254 357Q254 358 208 358Q206 358 197 358T183 359Q105 359 61 295Q56 287 53 286T39 284Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(794.8, 0)"}},[a("path",{attrs:{"data-c":"3D",d:"M56 347Q56 360 70 367H707Q722 359 722 347Q722 336 708 328L390 327H72Q56 332 56 347ZM56 153Q56 168 72 173H708Q722 163 722 153Q722 140 707 133H70Q56 140 56 153Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1850.6, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"msub",transform:"translate(2239.6, 0)"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mn",transform:"translate(469, -150) scale(0.707)"}},[a("path",{attrs:{"data-c":"30",d:"M96 585Q152 666 249 666Q297 666 345 640T423 548Q460 465 460 320Q460 165 417 83Q397 41 362 16T301 -15T250 -22Q224 -22 198 -16T137 16T82 83Q39 165 39 320Q39 494 96 585ZM321 597Q291 629 250 629Q208 629 178 597Q153 571 145 525T137 333Q137 175 145 125T181 46Q209 16 250 16Q290 16 318 46Q347 76 354 130T362 333Q362 478 354 524T321 597Z"}})])]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3112.1, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"msub",transform:"translate(3556.8, 0)"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mn",transform:"translate(529, -150) scale(0.707)"}},[a("path",{attrs:{"data-c":"30",d:"M96 585Q152 666 249 666Q297 666 345 640T423 548Q460 465 460 320Q460 165 417 83Q397 41 362 16T301 -15T250 -22Q224 -22 198 -16T137 16T82 83Q39 165 39 320Q39 494 96 585ZM321 597Q291 629 250 629Q208 629 178 597Q153 571 145 525T137 333Q137 175 145 125T181 46Q209 16 250 16Q290 16 318 46Q347 76 354 130T362 333Q362 478 354 524T321 597Z"}})])]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(4489.3, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"msub",transform:"translate(4934, 0)"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mn",transform:"translate(469, -150) scale(0.707)"}},[a("path",{attrs:{"data-c":"31",d:"M213 578L200 573Q186 568 160 563T102 556H83V602H102Q149 604 189 617T245 641T273 663Q275 666 285 666Q294 666 302 660V361L303 61Q310 54 315 52T339 48T401 46H427V0H416Q395 3 257 3Q121 3 100 0H88V46H114Q136 46 152 46T177 47T193 50T201 52T207 57T213 61V578Z"}})])]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(5806.5, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"msub",transform:"translate(6251.2, 0)"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mn",transform:"translate(529, -150) scale(0.707)"}},[a("path",{attrs:{"data-c":"31",d:"M213 578L200 573Q186 568 160 563T102 556H83V602H102Q149 604 189 617T245 641T273 663Q275 666 285 666Q294 666 302 660V361L303 61Q310 54 315 52T339 48T401 46H427V0H416Q395 3 257 3Q121 3 100 0H88V46H114Q136 46 152 46T177 47T193 50T201 52T207 57T213 61V578Z"}})])]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(7183.8, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(7628.4, 0)"}},[a("path",{attrs:{"data-c":"22EF",d:"M78 250Q78 274 95 292T138 310Q162 310 180 294T199 251Q199 226 182 208T139 190T96 207T78 250ZM525 250Q525 274 542 292T585 310Q609 310 627 294T646 251Q646 226 629 208T586 190T543 207T525 250ZM972 250Q972 274 989 292T1032 310Q1056 310 1074 294T1093 251Q1093 226 1076 208T1033 190T990 207T972 250Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(8800.4, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(" represents a trajectory sampled from\nthe policy, "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"4.647ex",height:"2.262ex",viewBox:"0 -750 2054 1000"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"52",d:"M230 637Q203 637 198 638T193 649Q193 676 204 682Q206 683 378 683Q550 682 564 680Q620 672 658 652T712 606T733 563T739 529Q739 484 710 445T643 385T576 351T538 338L545 333Q612 295 612 223Q612 212 607 162T602 80V71Q602 53 603 43T614 25T640 16Q668 16 686 38T712 85Q717 99 720 102T735 105Q755 105 755 93Q755 75 731 36Q693 -21 641 -21H632Q571 -21 531 4T487 82Q487 109 502 166T517 239Q517 290 474 313Q459 320 449 321T378 323H309L277 193Q244 61 244 59Q244 55 245 54T252 50T269 48T302 46H333Q339 38 339 37T336 19Q332 6 326 0H311Q275 2 180 2Q146 2 117 2T71 2T50 1Q33 1 33 10Q33 12 36 24Q41 43 46 45Q50 46 61 46H67Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628Q287 635 230 637ZM630 554Q630 586 609 608T523 636Q521 636 500 636T462 637H440Q393 637 386 627Q385 624 352 494T319 361Q319 360 388 360Q466 361 492 367Q556 377 592 426Q608 449 619 486T630 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(759, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(1148, 0)"}},[a("path",{attrs:{"data-c":"3C4",d:"M39 284Q18 284 18 294Q18 301 45 338T99 398Q134 425 164 429Q170 431 332 431Q492 431 497 429Q517 424 517 402Q517 388 508 376T485 360Q479 358 389 358T299 356Q298 355 283 274T251 109T233 20Q228 5 215 -4T186 -13Q153 -13 153 20V30L203 192Q214 228 227 272T248 336L254 357Q254 358 208 358Q206 358 197 358T183 359Q105 359 61 295Q56 287 53 286T39 284Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1665, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(" is the return (cumulative reward) and "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.375ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.974ex",height:"1.375ex",viewBox:"0 -442 872.6 607.6"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"msub"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mn",transform:"translate(469, -150) scale(0.707)"}},[a("path",{attrs:{"data-c":"30",d:"M96 585Q152 666 249 666Q297 666 345 640T423 548Q460 465 460 320Q460 165 417 83Q397 41 362 16T301 -15T250 -22Q224 -22 198 -16T137 16T82 83Q39 165 39 320Q39 494 96 585ZM321 597Q291 629 250 629Q208 629 178 597Q153 571 145 525T137 333Q137 175 145 125T181 46Q209 16 250 16Q290 16 318 46Q347 76 354 130T362 333Q362 478 354 524T321 597Z"}})])])])])])]),t._v("/"),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.375ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"2.11ex",height:"1.372ex",viewBox:"0 -441 932.6 606.6"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"msub"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mn",transform:"translate(529, -150) scale(0.707)"}},[a("path",{attrs:{"data-c":"30",d:"M96 585Q152 666 249 666Q297 666 345 640T423 548Q460 465 460 320Q460 165 417 83Q397 41 362 16T301 -15T250 -22Q224 -22 198 -16T137 16T82 83Q39 165 39 320Q39 494 96 585ZM321 597Q291 629 250 629Q208 629 178 597Q153 571 145 525T137 333Q137 175 145 125T181 46Q209 16 250 16Q290 16 318 46Q347 76 354 130T362 333Q362 478 354 524T321 597Z"}})])])])])])]),t._v(" the initial state/action for the\ntrajectories."),a("p"),t._v(" "),a("h4",{attrs:{id:"parameters-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-5"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-5"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The estimated on-policy Q value of the given observation and action.")]),t._v(" "),a("h3",{attrs:{id:"get-utility-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-utility-4"}},[t._v("#")]),t._v(" _get_utility "),a("Badge",{attrs:{text:"Utilities",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_utility",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"D.T_value"}}}),t._v(" "),a("p",[t._v("Get the estimated on-policy utility of the given observation.")]),t._v(" "),a("p",[t._v("In mathematical terms, for a fully observable domain, this function estimates:\n")]),a("p",[a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG",display:"true"}},[a("svg",{staticStyle:{"vertical-align":"-1.605ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"23.742ex",height:"3.301ex",viewBox:"0 -750 10493.9 1459.2"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"msup"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"56",d:"M52 648Q52 670 65 683H76Q118 680 181 680Q299 680 320 683H330Q336 677 336 674T334 656Q329 641 325 637H304Q282 635 274 635Q245 630 242 620Q242 618 271 369T301 118L374 235Q447 352 520 471T595 594Q599 601 599 609Q599 633 555 637Q537 637 537 648Q537 649 539 661Q542 675 545 679T558 683Q560 683 570 683T604 682T668 681Q737 681 755 683H762Q769 676 769 672Q769 655 760 640Q757 637 743 637Q730 636 719 635T698 630T682 623T670 615T660 608T652 599T645 592L452 282Q272 -9 266 -16Q263 -18 259 -21L241 -22H234Q216 -22 216 -15Q213 -9 177 305Q139 623 138 626Q133 637 76 637H59Q52 642 52 648Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(856.2, 413) scale(0.707)"}},[a("path",{attrs:{"data-c":"3C0",d:"M132 -11Q98 -11 98 22V33L111 61Q186 219 220 334L228 358H196Q158 358 142 355T103 336Q92 329 81 318T62 297T53 285Q51 284 38 284Q19 284 19 294Q19 300 38 329T93 391T164 429Q171 431 389 431Q549 431 553 430Q573 423 573 402Q573 371 541 360Q535 358 472 358H408L405 341Q393 269 393 222Q393 170 402 129T421 65T431 37Q431 20 417 5T381 -10Q370 -10 363 -7T347 17T331 77Q330 86 330 121Q330 170 339 226T357 318T367 358H269L268 354Q268 351 249 275T206 114T175 17Q164 -11 132 -11Z"}})])]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1309.3, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(1698.3, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2167.3, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2834, 0)"}},[a("path",{attrs:{"data-c":"3D",d:"M56 347Q56 360 70 367H707Q722 359 722 347Q722 336 708 328L390 327H72Q56 332 56 347ZM56 153Q56 168 72 173H708Q722 163 722 153Q722 140 707 133H70Q56 140 56 153Z"}})]),a("g",{attrs:{"data-mml-node":"munder",transform:"translate(3612, 0)"}},[a("g",{attrs:{"data-mml-node":"TeXAtom",transform:"translate(325.9, 0)"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"45",d:"M12 666Q12 675 24 683H582Q590 680 593 672V588Q593 514 591 502T575 490Q567 490 563 495T555 517Q552 556 517 590Q486 623 445 634T340 648H282Q266 636 264 620T260 492V370H277Q329 375 358 391T404 439Q420 480 420 506Q420 529 436 529Q445 529 451 521Q455 517 455 361Q455 333 455 298T456 253Q456 217 453 207T437 197Q420 196 420 217Q420 240 406 270Q377 328 284 335H260V201Q261 174 261 134Q262 73 264 61T278 38Q281 36 282 35H331Q400 35 449 50Q571 93 602 179Q605 203 622 203Q629 203 634 197T640 183Q638 181 624 95T604 3L600 -1H24Q12 5 12 16Q12 35 51 35Q92 38 97 52Q102 60 102 341T97 632Q91 645 51 648Q12 648 12 666ZM137 341Q137 131 136 89T130 37Q129 36 129 35H235Q233 41 231 48L226 61V623L231 635L235 648H129Q132 641 133 638T135 603T137 517T137 341ZM557 603V648H504Q504 646 515 639Q527 634 542 619L557 603ZM420 317V397L406 383Q394 370 380 363L366 355Q373 350 382 346Q400 333 409 328L420 317ZM582 61L586 88Q585 88 582 83Q557 61 526 46L511 37L542 35H577Q577 36 578 39T580 49T582 61Z"}})])]),a("g",{attrs:{"data-mml-node":"mrow",transform:"translate(0, -600) scale(0.707)"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"3C4",d:"M39 284Q18 284 18 294Q18 301 45 338T99 398Q134 425 164 429Q170 431 332 431Q492 431 497 429Q517 424 517 402Q517 388 508 376T485 360Q479 358 389 358T299 356Q298 355 283 274T251 109T233 20Q228 5 215 -4T186 -13Q153 -13 153 20V30L203 192Q214 228 227 272T248 336L254 357Q254 358 208 358Q206 358 197 358T183 359Q105 359 61 295Q56 287 53 286T39 284Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(517, 0)"}},[a("path",{attrs:{"data-c":"223C",d:"M55 166Q55 241 101 304T222 367Q260 367 296 349T362 304T421 252T484 208T554 189Q616 189 655 236T694 338Q694 350 698 358T708 367Q722 367 722 334Q722 260 677 197T562 134H554Q517 134 481 152T414 196T355 248T292 293T223 311Q179 311 145 286Q109 257 96 218T80 156T69 133Q55 133 55 166Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(1295, 0)"}},[a("path",{attrs:{"data-c":"3C0",d:"M132 -11Q98 -11 98 22V33L111 61Q186 219 220 334L228 358H196Q158 358 142 355T103 336Q92 329 81 318T62 297T53 285Q51 284 38 284Q19 284 19 294Q19 300 38 329T93 391T164 429Q171 431 389 431Q549 431 553 430Q573 423 573 402Q573 371 541 360Q535 358 472 358H408L405 341Q393 269 393 222Q393 170 402 129T421 65T431 37Q431 20 417 5T381 -10Q370 -10 363 -7T347 17T331 77Q330 86 330 121Q330 170 339 226T357 318T367 358H269L268 354Q268 351 249 275T206 114T175 17Q164 -11 132 -11Z"}})])])]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(4930.8, 0)"}},[a("path",{attrs:{"data-c":"5B",d:"M118 -250V750H255V710H158V-210H255V-250H118Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(5208.8, 0)"}},[a("path",{attrs:{"data-c":"52",d:"M230 637Q203 637 198 638T193 649Q193 676 204 682Q206 683 378 683Q550 682 564 680Q620 672 658 652T712 606T733 563T739 529Q739 484 710 445T643 385T576 351T538 338L545 333Q612 295 612 223Q612 212 607 162T602 80V71Q602 53 603 43T614 25T640 16Q668 16 686 38T712 85Q717 99 720 102T735 105Q755 105 755 93Q755 75 731 36Q693 -21 641 -21H632Q571 -21 531 4T487 82Q487 109 502 166T517 239Q517 290 474 313Q459 320 449 321T378 323H309L277 193Q244 61 244 59Q244 55 245 54T252 50T269 48T302 46H333Q339 38 339 37T336 19Q332 6 326 0H311Q275 2 180 2Q146 2 117 2T71 2T50 1Q33 1 33 10Q33 12 36 24Q41 43 46 45Q50 46 61 46H67Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628Q287 635 230 637ZM630 554Q630 586 609 608T523 636Q521 636 500 636T462 637H440Q393 637 386 627Q385 624 352 494T319 361Q319 360 388 360Q466 361 492 367Q556 377 592 426Q608 449 619 486T630 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(5967.8, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(6356.8, 0)"}},[a("path",{attrs:{"data-c":"3C4",d:"M39 284Q18 284 18 294Q18 301 45 338T99 398Q134 425 164 429Q170 431 332 431Q492 431 497 429Q517 424 517 402Q517 388 508 376T485 360Q479 358 389 358T299 356Q298 355 283 274T251 109T233 20Q228 5 215 -4T186 -13Q153 -13 153 20V30L203 192Q214 228 227 272T248 336L254 357Q254 358 208 358Q206 358 197 358T183 359Q105 359 61 295Q56 287 53 286T39 284Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(6873.8, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(7262.8, 0)"}},[a("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),a("g",{attrs:{"data-mml-node":"msub",transform:"translate(7540.8, 0)"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mn",transform:"translate(469, -150) scale(0.707)"}},[a("path",{attrs:{"data-c":"30",d:"M96 585Q152 666 249 666Q297 666 345 640T423 548Q460 465 460 320Q460 165 417 83Q397 41 362 16T301 -15T250 -22Q224 -22 198 -16T137 16T82 83Q39 165 39 320Q39 494 96 585ZM321 597Q291 629 250 629Q208 629 178 597Q153 571 145 525T137 333Q137 175 145 125T181 46Q209 16 250 16Q290 16 318 46Q347 76 354 130T362 333Q362 478 354 524T321 597Z"}})])]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(8691.1, 0)"}},[a("path",{attrs:{"data-c":"3D",d:"M56 347Q56 360 70 367H707Q722 359 722 347Q722 336 708 328L390 327H72Q56 332 56 347ZM56 153Q56 168 72 173H708Q722 163 722 153Q722 140 707 133H70Q56 140 56 153Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(9746.9, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(10215.9, 0)"}},[a("path",{attrs:{"data-c":"5D",d:"M22 710V750H159V-250H22V-210H119V710H22Z"}})])])])])])],1),t._v("\nwhere "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.025ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.29ex",height:"1ex",viewBox:"0 -431 570 442"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"3C0",d:"M132 -11Q98 -11 98 22V33L111 61Q186 219 220 334L228 358H196Q158 358 142 355T103 336Q92 329 81 318T62 297T53 285Q51 284 38 284Q19 284 19 294Q19 300 38 329T93 391T164 429Q171 431 389 431Q549 431 553 430Q573 423 573 402Q573 371 541 360Q535 358 472 358H408L405 341Q393 269 393 222Q393 170 402 129T421 65T431 37Q431 20 417 5T381 -10Q370 -10 363 -7T347 17T331 77Q330 86 330 121Q330 170 339 226T357 318T367 358H269L268 354Q268 351 249 275T206 114T175 17Q164 -11 132 -11Z"}})])])])])]),t._v(" is the current policy, any "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"20.791ex",height:"2.262ex",viewBox:"0 -750 9189.4 1000"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"3C4",d:"M39 284Q18 284 18 294Q18 301 45 338T99 398Q134 425 164 429Q170 431 332 431Q492 431 497 429Q517 424 517 402Q517 388 508 376T485 360Q479 358 389 358T299 356Q298 355 283 274T251 109T233 20Q228 5 215 -4T186 -13Q153 -13 153 20V30L203 192Q214 228 227 272T248 336L254 357Q254 358 208 358Q206 358 197 358T183 359Q105 359 61 295Q56 287 53 286T39 284Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(794.8, 0)"}},[a("path",{attrs:{"data-c":"3D",d:"M56 347Q56 360 70 367H707Q722 359 722 347Q722 336 708 328L390 327H72Q56 332 56 347ZM56 153Q56 168 72 173H708Q722 163 722 153Q722 140 707 133H70Q56 140 56 153Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1850.6, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"msub",transform:"translate(2239.6, 0)"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mn",transform:"translate(469, -150) scale(0.707)"}},[a("path",{attrs:{"data-c":"30",d:"M96 585Q152 666 249 666Q297 666 345 640T423 548Q460 465 460 320Q460 165 417 83Q397 41 362 16T301 -15T250 -22Q224 -22 198 -16T137 16T82 83Q39 165 39 320Q39 494 96 585ZM321 597Q291 629 250 629Q208 629 178 597Q153 571 145 525T137 333Q137 175 145 125T181 46Q209 16 250 16Q290 16 318 46Q347 76 354 130T362 333Q362 478 354 524T321 597Z"}})])]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3112.1, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"msub",transform:"translate(3556.8, 0)"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mn",transform:"translate(529, -150) scale(0.707)"}},[a("path",{attrs:{"data-c":"30",d:"M96 585Q152 666 249 666Q297 666 345 640T423 548Q460 465 460 320Q460 165 417 83Q397 41 362 16T301 -15T250 -22Q224 -22 198 -16T137 16T82 83Q39 165 39 320Q39 494 96 585ZM321 597Q291 629 250 629Q208 629 178 597Q153 571 145 525T137 333Q137 175 145 125T181 46Q209 16 250 16Q290 16 318 46Q347 76 354 130T362 333Q362 478 354 524T321 597Z"}})])]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(4489.3, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"msub",transform:"translate(4934, 0)"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mn",transform:"translate(469, -150) scale(0.707)"}},[a("path",{attrs:{"data-c":"31",d:"M213 578L200 573Q186 568 160 563T102 556H83V602H102Q149 604 189 617T245 641T273 663Q275 666 285 666Q294 666 302 660V361L303 61Q310 54 315 52T339 48T401 46H427V0H416Q395 3 257 3Q121 3 100 0H88V46H114Q136 46 152 46T177 47T193 50T201 52T207 57T213 61V578Z"}})])]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(5806.5, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"msub",transform:"translate(6251.2, 0)"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mn",transform:"translate(529, -150) scale(0.707)"}},[a("path",{attrs:{"data-c":"31",d:"M213 578L200 573Q186 568 160 563T102 556H83V602H102Q149 604 189 617T245 641T273 663Q275 666 285 666Q294 666 302 660V361L303 61Q310 54 315 52T339 48T401 46H427V0H416Q395 3 257 3Q121 3 100 0H88V46H114Q136 46 152 46T177 47T193 50T201 52T207 57T213 61V578Z"}})])]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(7183.8, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(7628.4, 0)"}},[a("path",{attrs:{"data-c":"22EF",d:"M78 250Q78 274 95 292T138 310Q162 310 180 294T199 251Q199 226 182 208T139 190T96 207T78 250ZM525 250Q525 274 542 292T585 310Q609 310 627 294T646 251Q646 226 629 208T586 190T543 207T525 250ZM972 250Q972 274 989 292T1032 310Q1056 310 1074 294T1093 251Q1093 226 1076 208T1033 190T990 207T972 250Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(8800.4, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(" represents a trajectory sampled from\nthe policy, "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"4.647ex",height:"2.262ex",viewBox:"0 -750 2054 1000"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"52",d:"M230 637Q203 637 198 638T193 649Q193 676 204 682Q206 683 378 683Q550 682 564 680Q620 672 658 652T712 606T733 563T739 529Q739 484 710 445T643 385T576 351T538 338L545 333Q612 295 612 223Q612 212 607 162T602 80V71Q602 53 603 43T614 25T640 16Q668 16 686 38T712 85Q717 99 720 102T735 105Q755 105 755 93Q755 75 731 36Q693 -21 641 -21H632Q571 -21 531 4T487 82Q487 109 502 166T517 239Q517 290 474 313Q459 320 449 321T378 323H309L277 193Q244 61 244 59Q244 55 245 54T252 50T269 48T302 46H333Q339 38 339 37T336 19Q332 6 326 0H311Q275 2 180 2Q146 2 117 2T71 2T50 1Q33 1 33 10Q33 12 36 24Q41 43 46 45Q50 46 61 46H67Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628Q287 635 230 637ZM630 554Q630 586 609 608T523 636Q521 636 500 636T462 637H440Q393 637 386 627Q385 624 352 494T319 361Q319 360 388 360Q466 361 492 367Q556 377 592 426Q608 449 619 486T630 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(759, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(1148, 0)"}},[a("path",{attrs:{"data-c":"3C4",d:"M39 284Q18 284 18 294Q18 301 45 338T99 398Q134 425 164 429Q170 431 332 431Q492 431 497 429Q517 424 517 402Q517 388 508 376T485 360Q479 358 389 358T299 356Q298 355 283 274T251 109T233 20Q228 5 215 -4T186 -13Q153 -13 153 20V30L203 192Q214 228 227 272T248 336L254 357Q254 358 208 358Q206 358 197 358T183 359Q105 359 61 295Q56 287 53 286T39 284Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1665, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(" is the return (cumulative reward) and "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.375ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.974ex",height:"1.375ex",viewBox:"0 -442 872.6 607.6"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"msub"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mn",transform:"translate(469, -150) scale(0.707)"}},[a("path",{attrs:{"data-c":"30",d:"M96 585Q152 666 249 666Q297 666 345 640T423 548Q460 465 460 320Q460 165 417 83Q397 41 362 16T301 -15T250 -22Q224 -22 198 -16T137 16T82 83Q39 165 39 320Q39 494 96 585ZM321 597Q291 629 250 629Q208 629 178 597Q153 571 145 525T137 333Q137 175 145 125T181 46Q209 16 250 16Q290 16 318 46Q347 76 354 130T362 333Q362 478 354 524T321 597Z"}})])])])])])]),t._v(" the initial state for the trajectories."),a("p"),t._v(" "),a("h4",{attrs:{id:"parameters-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-6"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-6"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The estimated on-policy utility of the given observation.")])],1)}),[],!1,null,null,null);Q.default=r.exports}}]); \ No newline at end of file diff --git a/assets/js/54.d821fbe2.js b/assets/js/54.f20d19ed.js similarity index 98% rename from assets/js/54.d821fbe2.js rename to assets/js/54.f20d19ed.js index 3e2dc890dd..7530db4398 100644 --- a/assets/js/54.d821fbe2.js +++ b/assets/js/54.f20d19ed.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[54],{570:function(e,a,t){"use strict";t.r(a);var r=t(38),s=Object(r.a)({},(function(){var e=this,a=e.$createElement,t=e._self._c||a;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"builders-solver-parallelability"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#builders-solver-parallelability"}},[e._v("#")]),e._v(" builders.solver.parallelability")]),e._v(" "),t("div",{staticClass:"custom-block tip"},[t("p",{staticClass:"custom-block-title"},[e._v("Domain specification")]),e._v(" "),t("skdecide-summary")],1),e._v(" "),t("h2",{attrs:{id:"parallelsolver"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#parallelsolver"}},[e._v("#")]),e._v(" ParallelSolver")]),e._v(" "),t("p",[e._v("A solver must inherit this class if it wants to call several cloned parallel domains in separate concurrent processes.\nThe solver is meant to be called either within a 'with' context statement, or to be cleaned up using the close() method.")]),e._v(" "),t("h3",{attrs:{id:"constructor"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#constructor"}},[e._v("#")]),e._v(" Constructor "),t("Badge",{attrs:{text:"ParallelSolver",type:"tip"}})],1),e._v(" "),t("skdecide-signature",{attrs:{name:"ParallelSolver",sig:{params:[{name:"domain_factory",annotation:"Callable[[], Domain]"},{name:"parallel",default:"False",annotation:"bool"},{name:"shared_memory_proxy",default:"None"}]}}}),e._v(" "),t("p",[e._v("Creates a parallelizable solver")]),e._v(" "),t("h4",{attrs:{id:"parameters"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#parameters"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("domain_factory")]),e._v(": A callable with no argument returning the domain to solve (factory is the domain class if None).")]),e._v(" "),t("li",[t("strong",[e._v("parallel")]),e._v(": True if the solver is run in parallel mode.")]),e._v(" "),t("li",[t("strong",[e._v("shared_memory_proxy")]),e._v(": Shared memory proxy to use if not None, otherwise run piped parallel domains.")])]),e._v(" "),t("h3",{attrs:{id:"call-domain-method"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#call-domain-method"}},[e._v("#")]),e._v(" call_domain_method "),t("Badge",{attrs:{text:"ParallelSolver",type:"tip"}})],1),e._v(" "),t("skdecide-signature",{attrs:{name:"call_domain_method",sig:{params:[{name:"self"},{name:"name"},{name:"*args"}]}}}),e._v(" "),t("p",[e._v("Calls a parallel domain's method.\nThis is the only way to get a domain method for a parallel domain.")]),e._v(" "),t("h3",{attrs:{id:"close"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#close"}},[e._v("#")]),e._v(" close "),t("Badge",{attrs:{text:"ParallelSolver",type:"tip"}})],1),e._v(" "),t("skdecide-signature",{attrs:{name:"close",sig:{params:[{name:"self"}]}}}),e._v(" "),t("p",[e._v("Joins the parallel domains' processes.\nNot calling this method (or not using the 'with' context statement)\nresults in the solver forever waiting for the domain processes to exit.")]),e._v(" "),t("h3",{attrs:{id:"get-domain"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#get-domain"}},[e._v("#")]),e._v(" get_domain "),t("Badge",{attrs:{text:"ParallelSolver",type:"tip"}})],1),e._v(" "),t("skdecide-signature",{attrs:{name:"get_domain",sig:{params:[{name:"self"}]}}}),e._v(" "),t("p",[e._v("Returns the domain, optionally creating a parallel domain if not already created.")]),e._v(" "),t("h3",{attrs:{id:"initialize"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#initialize"}},[e._v("#")]),e._v(" _initialize "),t("Badge",{attrs:{text:"ParallelSolver",type:"tip"}})],1),e._v(" "),t("skdecide-signature",{attrs:{name:"_initialize",sig:{params:[{name:"self"}]}}}),e._v(" "),t("p",[e._v("Launches the parallel domains.\nThis method requires to have previously recorded the self._domain_factory (e.g. after calling _init_solve),\nthe set of lambda functions passed to the solver's constructor (e.g. heuristic lambda for heuristic-based solvers),\nand whether the parallel domain jobs should notify their status via the IPC protocol (required when interacting with\nother programming languages like C++)")])],1)}),[],!1,null,null,null);a.default=s.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[54],{569:function(e,a,t){"use strict";t.r(a);var r=t(38),s=Object(r.a)({},(function(){var e=this,a=e.$createElement,t=e._self._c||a;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h1",{attrs:{id:"builders-solver-parallelability"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#builders-solver-parallelability"}},[e._v("#")]),e._v(" builders.solver.parallelability")]),e._v(" "),t("div",{staticClass:"custom-block tip"},[t("p",{staticClass:"custom-block-title"},[e._v("Domain specification")]),e._v(" "),t("skdecide-summary")],1),e._v(" "),t("h2",{attrs:{id:"parallelsolver"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#parallelsolver"}},[e._v("#")]),e._v(" ParallelSolver")]),e._v(" "),t("p",[e._v("A solver must inherit this class if it wants to call several cloned parallel domains in separate concurrent processes.\nThe solver is meant to be called either within a 'with' context statement, or to be cleaned up using the close() method.")]),e._v(" "),t("h3",{attrs:{id:"constructor"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#constructor"}},[e._v("#")]),e._v(" Constructor "),t("Badge",{attrs:{text:"ParallelSolver",type:"tip"}})],1),e._v(" "),t("skdecide-signature",{attrs:{name:"ParallelSolver",sig:{params:[{name:"domain_factory",annotation:"Callable[[], Domain]"},{name:"parallel",default:"False",annotation:"bool"},{name:"shared_memory_proxy",default:"None"}]}}}),e._v(" "),t("p",[e._v("Creates a parallelizable solver")]),e._v(" "),t("h4",{attrs:{id:"parameters"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#parameters"}},[e._v("#")]),e._v(" Parameters")]),e._v(" "),t("ul",[t("li",[t("strong",[e._v("domain_factory")]),e._v(": A callable with no argument returning the domain to solve (factory is the domain class if None).")]),e._v(" "),t("li",[t("strong",[e._v("parallel")]),e._v(": True if the solver is run in parallel mode.")]),e._v(" "),t("li",[t("strong",[e._v("shared_memory_proxy")]),e._v(": Shared memory proxy to use if not None, otherwise run piped parallel domains.")])]),e._v(" "),t("h3",{attrs:{id:"call-domain-method"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#call-domain-method"}},[e._v("#")]),e._v(" call_domain_method "),t("Badge",{attrs:{text:"ParallelSolver",type:"tip"}})],1),e._v(" "),t("skdecide-signature",{attrs:{name:"call_domain_method",sig:{params:[{name:"self"},{name:"name"},{name:"*args"}]}}}),e._v(" "),t("p",[e._v("Calls a parallel domain's method.\nThis is the only way to get a domain method for a parallel domain.")]),e._v(" "),t("h3",{attrs:{id:"close"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#close"}},[e._v("#")]),e._v(" close "),t("Badge",{attrs:{text:"ParallelSolver",type:"tip"}})],1),e._v(" "),t("skdecide-signature",{attrs:{name:"close",sig:{params:[{name:"self"}]}}}),e._v(" "),t("p",[e._v("Joins the parallel domains' processes.\nNot calling this method (or not using the 'with' context statement)\nresults in the solver forever waiting for the domain processes to exit.")]),e._v(" "),t("h3",{attrs:{id:"get-domain"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#get-domain"}},[e._v("#")]),e._v(" get_domain "),t("Badge",{attrs:{text:"ParallelSolver",type:"tip"}})],1),e._v(" "),t("skdecide-signature",{attrs:{name:"get_domain",sig:{params:[{name:"self"}]}}}),e._v(" "),t("p",[e._v("Returns the domain, optionally creating a parallel domain if not already created.")]),e._v(" "),t("h3",{attrs:{id:"initialize"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#initialize"}},[e._v("#")]),e._v(" _initialize "),t("Badge",{attrs:{text:"ParallelSolver",type:"tip"}})],1),e._v(" "),t("skdecide-signature",{attrs:{name:"_initialize",sig:{params:[{name:"self"}]}}}),e._v(" "),t("p",[e._v("Launches the parallel domains.\nThis method requires to have previously recorded the self._domain_factory (e.g. after calling _init_solve),\nthe set of lambda functions passed to the solver's constructor (e.g. heuristic lambda for heuristic-based solvers),\nand whether the parallel domain jobs should notify their status via the IPC protocol (required when interacting with\nother programming languages like C++)")])],1)}),[],!1,null,null,null);a.default=s.exports}}]); \ No newline at end of file diff --git a/assets/js/55.2a49ec6d.js b/assets/js/55.5cdb1a34.js similarity index 99% rename from assets/js/55.2a49ec6d.js rename to assets/js/55.5cdb1a34.js index 8f376a9dc2..18b1e06cfd 100644 --- a/assets/js/55.2a49ec6d.js +++ b/assets/js/55.5cdb1a34.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[55],{569:function(t,e,a){"use strict";a.r(e);var r=a(38),s=Object(r.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"builders-solver-policy"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#builders-solver-policy"}},[t._v("#")]),t._v(" builders.solver.policy")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("Domain specification")]),t._v(" "),a("skdecide-summary")],1),t._v(" "),a("h2",{attrs:{id:"policies"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#policies"}},[t._v("#")]),t._v(" Policies")]),t._v(" "),a("p",[t._v("A solver must inherit this class if it computes a stochastic policy as part of the solving process.")]),t._v(" "),a("h3",{attrs:{id:"is-policy-defined-for"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-policy-defined-for"}},[t._v("#")]),t._v(" is_policy_defined_for "),a("Badge",{attrs:{text:"Policies",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_policy_defined_for",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check whether the solver's current policy is defined for the given observation.")]),t._v(" "),a("h4",{attrs:{id:"parameters"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the policy is defined for the given observation memory (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"sample-action"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample-action"}},[t._v("#")]),t._v(" sample_action "),a("Badge",{attrs:{text:"Policies",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"sample_action",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"D.T_agent[D.T_concurrency[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Sample an action for the given observation (from the solver's current policy).")]),t._v(" "),a("h4",{attrs:{id:"parameters-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-2"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation for which an action must be sampled.")])]),t._v(" "),a("h4",{attrs:{id:"returns-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-2"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The sampled action.")]),t._v(" "),a("h3",{attrs:{id:"is-policy-defined-for-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-policy-defined-for-2"}},[t._v("#")]),t._v(" _is_policy_defined_for "),a("Badge",{attrs:{text:"Policies",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_policy_defined_for",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check whether the solver's current policy is defined for the given observation.")]),t._v(" "),a("h4",{attrs:{id:"parameters-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-3"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-3"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the policy is defined for the given observation memory (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"sample-action-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample-action-2"}},[t._v("#")]),t._v(" _sample_action "),a("Badge",{attrs:{text:"Policies",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_sample_action",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"D.T_agent[D.T_concurrency[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Sample an action for the given observation (from the solver's current policy).")]),t._v(" "),a("h4",{attrs:{id:"parameters-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-4"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation for which an action must be sampled.")])]),t._v(" "),a("h4",{attrs:{id:"returns-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-4"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The sampled action.")]),t._v(" "),a("h2",{attrs:{id:"uncertainpolicies"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#uncertainpolicies"}},[t._v("#")]),t._v(" UncertainPolicies")]),t._v(" "),a("p",[t._v("A solver must inherit this class if it computes a stochastic policy (providing next action distribution\nexplicitly) as part of the solving process.")]),t._v(" "),a("h3",{attrs:{id:"get-next-action-distribution"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-next-action-distribution"}},[t._v("#")]),t._v(" get_next_action_distribution "),a("Badge",{attrs:{text:"UncertainPolicies",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_next_action_distribution",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"Distribution[D.T_agent[D.T_concurrency[D.T_event]]]"}}}),t._v(" "),a("p",[t._v("Get the probabilistic distribution of next action for the given observation (from the solver's current\npolicy).")]),t._v(" "),a("h4",{attrs:{id:"parameters-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-5"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-5"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probabilistic distribution of next action.")]),t._v(" "),a("h3",{attrs:{id:"is-policy-defined-for-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-policy-defined-for-3"}},[t._v("#")]),t._v(" is_policy_defined_for "),a("Badge",{attrs:{text:"Policies",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_policy_defined_for",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check whether the solver's current policy is defined for the given observation.")]),t._v(" "),a("h4",{attrs:{id:"parameters-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-6"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-6"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the policy is defined for the given observation memory (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"sample-action-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample-action-3"}},[t._v("#")]),t._v(" sample_action "),a("Badge",{attrs:{text:"Policies",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"sample_action",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"D.T_agent[D.T_concurrency[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Sample an action for the given observation (from the solver's current policy).")]),t._v(" "),a("h4",{attrs:{id:"parameters-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-7"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation for which an action must be sampled.")])]),t._v(" "),a("h4",{attrs:{id:"returns-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-7"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The sampled action.")]),t._v(" "),a("h3",{attrs:{id:"get-next-action-distribution-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-next-action-distribution-2"}},[t._v("#")]),t._v(" _get_next_action_distribution "),a("Badge",{attrs:{text:"UncertainPolicies",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_next_action_distribution",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"Distribution[D.T_agent[D.T_concurrency[D.T_event]]]"}}}),t._v(" "),a("p",[t._v("Get the probabilistic distribution of next action for the given observation (from the solver's current\npolicy).")]),t._v(" "),a("h4",{attrs:{id:"parameters-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-8"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-8"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probabilistic distribution of next action.")]),t._v(" "),a("h3",{attrs:{id:"is-policy-defined-for-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-policy-defined-for-4"}},[t._v("#")]),t._v(" _is_policy_defined_for "),a("Badge",{attrs:{text:"Policies",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_policy_defined_for",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check whether the solver's current policy is defined for the given observation.")]),t._v(" "),a("h4",{attrs:{id:"parameters-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-9"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-9"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the policy is defined for the given observation memory (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"sample-action-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample-action-4"}},[t._v("#")]),t._v(" _sample_action "),a("Badge",{attrs:{text:"Policies",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_sample_action",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"D.T_agent[D.T_concurrency[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Sample an action for the given observation (from the solver's current policy).")]),t._v(" "),a("h4",{attrs:{id:"parameters-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-10"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation for which an action must be sampled.")])]),t._v(" "),a("h4",{attrs:{id:"returns-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-10"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The sampled action.")]),t._v(" "),a("h2",{attrs:{id:"deterministicpolicies"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#deterministicpolicies"}},[t._v("#")]),t._v(" DeterministicPolicies")]),t._v(" "),a("p",[t._v("A solver must inherit this class if it computes a deterministic policy as part of the solving process.")]),t._v(" "),a("h3",{attrs:{id:"get-next-action"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-next-action"}},[t._v("#")]),t._v(" get_next_action "),a("Badge",{attrs:{text:"DeterministicPolicies",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_next_action",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"D.T_agent[D.T_concurrency[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the next deterministic action (from the solver's current policy).")]),t._v(" "),a("h4",{attrs:{id:"parameters-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-11"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation for which next action is requested.")])]),t._v(" "),a("h4",{attrs:{id:"returns-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-11"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The next deterministic action.")]),t._v(" "),a("h3",{attrs:{id:"get-next-action-distribution-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-next-action-distribution-3"}},[t._v("#")]),t._v(" get_next_action_distribution "),a("Badge",{attrs:{text:"UncertainPolicies",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_next_action_distribution",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"Distribution[D.T_agent[D.T_concurrency[D.T_event]]]"}}}),t._v(" "),a("p",[t._v("Get the probabilistic distribution of next action for the given observation (from the solver's current\npolicy).")]),t._v(" "),a("h4",{attrs:{id:"parameters-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-12"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-12"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probabilistic distribution of next action.")]),t._v(" "),a("h3",{attrs:{id:"is-policy-defined-for-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-policy-defined-for-5"}},[t._v("#")]),t._v(" is_policy_defined_for "),a("Badge",{attrs:{text:"Policies",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_policy_defined_for",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check whether the solver's current policy is defined for the given observation.")]),t._v(" "),a("h4",{attrs:{id:"parameters-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-13"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-13"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the policy is defined for the given observation memory (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"sample-action-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample-action-5"}},[t._v("#")]),t._v(" sample_action "),a("Badge",{attrs:{text:"Policies",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"sample_action",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"D.T_agent[D.T_concurrency[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Sample an action for the given observation (from the solver's current policy).")]),t._v(" "),a("h4",{attrs:{id:"parameters-14"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-14"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation for which an action must be sampled.")])]),t._v(" "),a("h4",{attrs:{id:"returns-14"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-14"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The sampled action.")]),t._v(" "),a("h3",{attrs:{id:"get-next-action-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-next-action-2"}},[t._v("#")]),t._v(" _get_next_action "),a("Badge",{attrs:{text:"DeterministicPolicies",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_next_action",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"D.T_agent[D.T_concurrency[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the next deterministic action (from the solver's current policy).")]),t._v(" "),a("h4",{attrs:{id:"parameters-15"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-15"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation for which next action is requested.")])]),t._v(" "),a("h4",{attrs:{id:"returns-15"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-15"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The next deterministic action.")]),t._v(" "),a("h3",{attrs:{id:"get-next-action-distribution-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-next-action-distribution-4"}},[t._v("#")]),t._v(" _get_next_action_distribution "),a("Badge",{attrs:{text:"UncertainPolicies",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_next_action_distribution",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"Distribution[D.T_agent[D.T_concurrency[D.T_event]]]"}}}),t._v(" "),a("p",[t._v("Get the probabilistic distribution of next action for the given observation (from the solver's current\npolicy).")]),t._v(" "),a("h4",{attrs:{id:"parameters-16"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-16"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-16"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-16"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probabilistic distribution of next action.")]),t._v(" "),a("h3",{attrs:{id:"is-policy-defined-for-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-policy-defined-for-6"}},[t._v("#")]),t._v(" _is_policy_defined_for "),a("Badge",{attrs:{text:"Policies",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_policy_defined_for",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check whether the solver's current policy is defined for the given observation.")]),t._v(" "),a("h4",{attrs:{id:"parameters-17"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-17"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-17"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-17"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the policy is defined for the given observation memory (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"sample-action-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample-action-6"}},[t._v("#")]),t._v(" _sample_action "),a("Badge",{attrs:{text:"Policies",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_sample_action",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"D.T_agent[D.T_concurrency[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Sample an action for the given observation (from the solver's current policy).")]),t._v(" "),a("h4",{attrs:{id:"parameters-18"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-18"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation for which an action must be sampled.")])]),t._v(" "),a("h4",{attrs:{id:"returns-18"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-18"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The sampled action.")])],1)}),[],!1,null,null,null);e.default=s.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[55],{570:function(t,e,a){"use strict";a.r(e);var r=a(38),s=Object(r.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"builders-solver-policy"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#builders-solver-policy"}},[t._v("#")]),t._v(" builders.solver.policy")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("Domain specification")]),t._v(" "),a("skdecide-summary")],1),t._v(" "),a("h2",{attrs:{id:"policies"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#policies"}},[t._v("#")]),t._v(" Policies")]),t._v(" "),a("p",[t._v("A solver must inherit this class if it computes a stochastic policy as part of the solving process.")]),t._v(" "),a("h3",{attrs:{id:"is-policy-defined-for"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-policy-defined-for"}},[t._v("#")]),t._v(" is_policy_defined_for "),a("Badge",{attrs:{text:"Policies",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_policy_defined_for",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check whether the solver's current policy is defined for the given observation.")]),t._v(" "),a("h4",{attrs:{id:"parameters"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the policy is defined for the given observation memory (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"sample-action"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample-action"}},[t._v("#")]),t._v(" sample_action "),a("Badge",{attrs:{text:"Policies",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"sample_action",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"D.T_agent[D.T_concurrency[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Sample an action for the given observation (from the solver's current policy).")]),t._v(" "),a("h4",{attrs:{id:"parameters-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-2"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation for which an action must be sampled.")])]),t._v(" "),a("h4",{attrs:{id:"returns-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-2"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The sampled action.")]),t._v(" "),a("h3",{attrs:{id:"is-policy-defined-for-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-policy-defined-for-2"}},[t._v("#")]),t._v(" _is_policy_defined_for "),a("Badge",{attrs:{text:"Policies",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_policy_defined_for",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check whether the solver's current policy is defined for the given observation.")]),t._v(" "),a("h4",{attrs:{id:"parameters-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-3"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-3"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the policy is defined for the given observation memory (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"sample-action-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample-action-2"}},[t._v("#")]),t._v(" _sample_action "),a("Badge",{attrs:{text:"Policies",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_sample_action",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"D.T_agent[D.T_concurrency[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Sample an action for the given observation (from the solver's current policy).")]),t._v(" "),a("h4",{attrs:{id:"parameters-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-4"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation for which an action must be sampled.")])]),t._v(" "),a("h4",{attrs:{id:"returns-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-4"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The sampled action.")]),t._v(" "),a("h2",{attrs:{id:"uncertainpolicies"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#uncertainpolicies"}},[t._v("#")]),t._v(" UncertainPolicies")]),t._v(" "),a("p",[t._v("A solver must inherit this class if it computes a stochastic policy (providing next action distribution\nexplicitly) as part of the solving process.")]),t._v(" "),a("h3",{attrs:{id:"get-next-action-distribution"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-next-action-distribution"}},[t._v("#")]),t._v(" get_next_action_distribution "),a("Badge",{attrs:{text:"UncertainPolicies",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_next_action_distribution",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"Distribution[D.T_agent[D.T_concurrency[D.T_event]]]"}}}),t._v(" "),a("p",[t._v("Get the probabilistic distribution of next action for the given observation (from the solver's current\npolicy).")]),t._v(" "),a("h4",{attrs:{id:"parameters-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-5"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-5"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probabilistic distribution of next action.")]),t._v(" "),a("h3",{attrs:{id:"is-policy-defined-for-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-policy-defined-for-3"}},[t._v("#")]),t._v(" is_policy_defined_for "),a("Badge",{attrs:{text:"Policies",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_policy_defined_for",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check whether the solver's current policy is defined for the given observation.")]),t._v(" "),a("h4",{attrs:{id:"parameters-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-6"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-6"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the policy is defined for the given observation memory (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"sample-action-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample-action-3"}},[t._v("#")]),t._v(" sample_action "),a("Badge",{attrs:{text:"Policies",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"sample_action",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"D.T_agent[D.T_concurrency[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Sample an action for the given observation (from the solver's current policy).")]),t._v(" "),a("h4",{attrs:{id:"parameters-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-7"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation for which an action must be sampled.")])]),t._v(" "),a("h4",{attrs:{id:"returns-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-7"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The sampled action.")]),t._v(" "),a("h3",{attrs:{id:"get-next-action-distribution-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-next-action-distribution-2"}},[t._v("#")]),t._v(" _get_next_action_distribution "),a("Badge",{attrs:{text:"UncertainPolicies",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_next_action_distribution",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"Distribution[D.T_agent[D.T_concurrency[D.T_event]]]"}}}),t._v(" "),a("p",[t._v("Get the probabilistic distribution of next action for the given observation (from the solver's current\npolicy).")]),t._v(" "),a("h4",{attrs:{id:"parameters-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-8"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-8"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probabilistic distribution of next action.")]),t._v(" "),a("h3",{attrs:{id:"is-policy-defined-for-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-policy-defined-for-4"}},[t._v("#")]),t._v(" _is_policy_defined_for "),a("Badge",{attrs:{text:"Policies",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_policy_defined_for",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check whether the solver's current policy is defined for the given observation.")]),t._v(" "),a("h4",{attrs:{id:"parameters-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-9"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-9"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the policy is defined for the given observation memory (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"sample-action-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample-action-4"}},[t._v("#")]),t._v(" _sample_action "),a("Badge",{attrs:{text:"Policies",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_sample_action",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"D.T_agent[D.T_concurrency[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Sample an action for the given observation (from the solver's current policy).")]),t._v(" "),a("h4",{attrs:{id:"parameters-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-10"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation for which an action must be sampled.")])]),t._v(" "),a("h4",{attrs:{id:"returns-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-10"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The sampled action.")]),t._v(" "),a("h2",{attrs:{id:"deterministicpolicies"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#deterministicpolicies"}},[t._v("#")]),t._v(" DeterministicPolicies")]),t._v(" "),a("p",[t._v("A solver must inherit this class if it computes a deterministic policy as part of the solving process.")]),t._v(" "),a("h3",{attrs:{id:"get-next-action"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-next-action"}},[t._v("#")]),t._v(" get_next_action "),a("Badge",{attrs:{text:"DeterministicPolicies",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_next_action",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"D.T_agent[D.T_concurrency[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the next deterministic action (from the solver's current policy).")]),t._v(" "),a("h4",{attrs:{id:"parameters-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-11"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation for which next action is requested.")])]),t._v(" "),a("h4",{attrs:{id:"returns-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-11"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The next deterministic action.")]),t._v(" "),a("h3",{attrs:{id:"get-next-action-distribution-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-next-action-distribution-3"}},[t._v("#")]),t._v(" get_next_action_distribution "),a("Badge",{attrs:{text:"UncertainPolicies",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_next_action_distribution",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"Distribution[D.T_agent[D.T_concurrency[D.T_event]]]"}}}),t._v(" "),a("p",[t._v("Get the probabilistic distribution of next action for the given observation (from the solver's current\npolicy).")]),t._v(" "),a("h4",{attrs:{id:"parameters-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-12"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-12"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probabilistic distribution of next action.")]),t._v(" "),a("h3",{attrs:{id:"is-policy-defined-for-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-policy-defined-for-5"}},[t._v("#")]),t._v(" is_policy_defined_for "),a("Badge",{attrs:{text:"Policies",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_policy_defined_for",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check whether the solver's current policy is defined for the given observation.")]),t._v(" "),a("h4",{attrs:{id:"parameters-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-13"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-13"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the policy is defined for the given observation memory (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"sample-action-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample-action-5"}},[t._v("#")]),t._v(" sample_action "),a("Badge",{attrs:{text:"Policies",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"sample_action",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"D.T_agent[D.T_concurrency[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Sample an action for the given observation (from the solver's current policy).")]),t._v(" "),a("h4",{attrs:{id:"parameters-14"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-14"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation for which an action must be sampled.")])]),t._v(" "),a("h4",{attrs:{id:"returns-14"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-14"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The sampled action.")]),t._v(" "),a("h3",{attrs:{id:"get-next-action-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-next-action-2"}},[t._v("#")]),t._v(" _get_next_action "),a("Badge",{attrs:{text:"DeterministicPolicies",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_next_action",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"D.T_agent[D.T_concurrency[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the next deterministic action (from the solver's current policy).")]),t._v(" "),a("h4",{attrs:{id:"parameters-15"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-15"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation for which next action is requested.")])]),t._v(" "),a("h4",{attrs:{id:"returns-15"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-15"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The next deterministic action.")]),t._v(" "),a("h3",{attrs:{id:"get-next-action-distribution-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-next-action-distribution-4"}},[t._v("#")]),t._v(" _get_next_action_distribution "),a("Badge",{attrs:{text:"UncertainPolicies",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_next_action_distribution",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"Distribution[D.T_agent[D.T_concurrency[D.T_event]]]"}}}),t._v(" "),a("p",[t._v("Get the probabilistic distribution of next action for the given observation (from the solver's current\npolicy).")]),t._v(" "),a("h4",{attrs:{id:"parameters-16"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-16"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-16"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-16"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probabilistic distribution of next action.")]),t._v(" "),a("h3",{attrs:{id:"is-policy-defined-for-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-policy-defined-for-6"}},[t._v("#")]),t._v(" _is_policy_defined_for "),a("Badge",{attrs:{text:"Policies",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_policy_defined_for",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check whether the solver's current policy is defined for the given observation.")]),t._v(" "),a("h4",{attrs:{id:"parameters-17"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-17"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-17"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-17"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the policy is defined for the given observation memory (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"sample-action-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample-action-6"}},[t._v("#")]),t._v(" _sample_action "),a("Badge",{attrs:{text:"Policies",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_sample_action",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"D.T_agent[D.T_concurrency[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Sample an action for the given observation (from the solver's current policy).")]),t._v(" "),a("h4",{attrs:{id:"parameters-18"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-18"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation for which an action must be sampled.")])]),t._v(" "),a("h4",{attrs:{id:"returns-18"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-18"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The sampled action.")])],1)}),[],!1,null,null,null);e.default=s.exports}}]); \ No newline at end of file diff --git a/assets/js/56.2c288681.js b/assets/js/56.8d05e1a4.js similarity index 98% rename from assets/js/56.2c288681.js rename to assets/js/56.8d05e1a4.js index 66ec79673f..ab7c5ba4af 100644 --- a/assets/js/56.2c288681.js +++ b/assets/js/56.8d05e1a4.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[56],{572:function(t,a,e){"use strict";e.r(a);var s=e(38),r=Object(s.a)({},(function(){var t=this,a=t.$createElement,e=t._self._c||a;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"builders-solver-restorability"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#builders-solver-restorability"}},[t._v("#")]),t._v(" builders.solver.restorability")]),t._v(" "),e("div",{staticClass:"custom-block tip"},[e("p",{staticClass:"custom-block-title"},[t._v("Domain specification")]),t._v(" "),e("skdecide-summary")],1),t._v(" "),e("h2",{attrs:{id:"restorable"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#restorable"}},[t._v("#")]),t._v(" Restorable")]),t._v(" "),e("p",[t._v("A solver must inherit this class if its state can be saved and reloaded (to continue computation later on or\nreuse its solution).")]),t._v(" "),e("h3",{attrs:{id:"load"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#load"}},[t._v("#")]),t._v(" load "),e("Badge",{attrs:{text:"Restorable",type:"tip"}})],1),t._v(" "),e("skdecide-signature",{attrs:{name:"load",sig:{params:[{name:"self"},{name:"path",annotation:"str"},{name:"domain_factory",annotation:"Callable[[], D]"}],return:"None"}}}),t._v(" "),e("p",[t._v("Restore the solver state from given path.")]),t._v(" "),e("h4",{attrs:{id:"parameters"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#parameters"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("path")]),t._v(": The path where the solver state was saved.")]),t._v(" "),e("li",[e("strong",[t._v("domain_factory")]),t._v(": A callable with no argument returning the domain to solve (useful in some implementations).")])]),t._v(" "),e("h3",{attrs:{id:"save"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#save"}},[t._v("#")]),t._v(" save "),e("Badge",{attrs:{text:"Restorable",type:"tip"}})],1),t._v(" "),e("skdecide-signature",{attrs:{name:"save",sig:{params:[{name:"self"},{name:"path",annotation:"str"}],return:"None"}}}),t._v(" "),e("p",[t._v("Save the solver state to given path.")]),t._v(" "),e("h4",{attrs:{id:"parameters-2"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#parameters-2"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("path")]),t._v(": The path to store the saved state.")])]),t._v(" "),e("h3",{attrs:{id:"load-2"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#load-2"}},[t._v("#")]),t._v(" _load "),e("Badge",{attrs:{text:"Restorable",type:"tip"}})],1),t._v(" "),e("skdecide-signature",{attrs:{name:"_load",sig:{params:[{name:"self"},{name:"path",annotation:"str"},{name:"domain_factory",annotation:"Callable[[], D]"}],return:"None"}}}),t._v(" "),e("p",[t._v("Restore the solver state from given path.")]),t._v(" "),e("h4",{attrs:{id:"parameters-3"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#parameters-3"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("path")]),t._v(": The path where the solver state was saved.")]),t._v(" "),e("li",[e("strong",[t._v("domain_factory")]),t._v(": A callable with no argument returning the domain to solve (useful in some implementations).")])]),t._v(" "),e("h3",{attrs:{id:"save-2"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#save-2"}},[t._v("#")]),t._v(" _save "),e("Badge",{attrs:{text:"Restorable",type:"tip"}})],1),t._v(" "),e("skdecide-signature",{attrs:{name:"_save",sig:{params:[{name:"self"},{name:"path",annotation:"str"}],return:"None"}}}),t._v(" "),e("p",[t._v("Save the solver state to given path.")]),t._v(" "),e("h4",{attrs:{id:"parameters-4"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#parameters-4"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("path")]),t._v(": The path to store the saved state.")])])],1)}),[],!1,null,null,null);a.default=r.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[56],{571:function(t,a,e){"use strict";e.r(a);var s=e(38),r=Object(s.a)({},(function(){var t=this,a=t.$createElement,e=t._self._c||a;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"builders-solver-restorability"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#builders-solver-restorability"}},[t._v("#")]),t._v(" builders.solver.restorability")]),t._v(" "),e("div",{staticClass:"custom-block tip"},[e("p",{staticClass:"custom-block-title"},[t._v("Domain specification")]),t._v(" "),e("skdecide-summary")],1),t._v(" "),e("h2",{attrs:{id:"restorable"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#restorable"}},[t._v("#")]),t._v(" Restorable")]),t._v(" "),e("p",[t._v("A solver must inherit this class if its state can be saved and reloaded (to continue computation later on or\nreuse its solution).")]),t._v(" "),e("h3",{attrs:{id:"load"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#load"}},[t._v("#")]),t._v(" load "),e("Badge",{attrs:{text:"Restorable",type:"tip"}})],1),t._v(" "),e("skdecide-signature",{attrs:{name:"load",sig:{params:[{name:"self"},{name:"path",annotation:"str"},{name:"domain_factory",annotation:"Callable[[], D]"}],return:"None"}}}),t._v(" "),e("p",[t._v("Restore the solver state from given path.")]),t._v(" "),e("h4",{attrs:{id:"parameters"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#parameters"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("path")]),t._v(": The path where the solver state was saved.")]),t._v(" "),e("li",[e("strong",[t._v("domain_factory")]),t._v(": A callable with no argument returning the domain to solve (useful in some implementations).")])]),t._v(" "),e("h3",{attrs:{id:"save"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#save"}},[t._v("#")]),t._v(" save "),e("Badge",{attrs:{text:"Restorable",type:"tip"}})],1),t._v(" "),e("skdecide-signature",{attrs:{name:"save",sig:{params:[{name:"self"},{name:"path",annotation:"str"}],return:"None"}}}),t._v(" "),e("p",[t._v("Save the solver state to given path.")]),t._v(" "),e("h4",{attrs:{id:"parameters-2"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#parameters-2"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("path")]),t._v(": The path to store the saved state.")])]),t._v(" "),e("h3",{attrs:{id:"load-2"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#load-2"}},[t._v("#")]),t._v(" _load "),e("Badge",{attrs:{text:"Restorable",type:"tip"}})],1),t._v(" "),e("skdecide-signature",{attrs:{name:"_load",sig:{params:[{name:"self"},{name:"path",annotation:"str"},{name:"domain_factory",annotation:"Callable[[], D]"}],return:"None"}}}),t._v(" "),e("p",[t._v("Restore the solver state from given path.")]),t._v(" "),e("h4",{attrs:{id:"parameters-3"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#parameters-3"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("path")]),t._v(": The path where the solver state was saved.")]),t._v(" "),e("li",[e("strong",[t._v("domain_factory")]),t._v(": A callable with no argument returning the domain to solve (useful in some implementations).")])]),t._v(" "),e("h3",{attrs:{id:"save-2"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#save-2"}},[t._v("#")]),t._v(" _save "),e("Badge",{attrs:{text:"Restorable",type:"tip"}})],1),t._v(" "),e("skdecide-signature",{attrs:{name:"_save",sig:{params:[{name:"self"},{name:"path",annotation:"str"}],return:"None"}}}),t._v(" "),e("p",[t._v("Save the solver state to given path.")]),t._v(" "),e("h4",{attrs:{id:"parameters-4"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#parameters-4"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),e("ul",[e("li",[e("strong",[t._v("path")]),t._v(": The path to store the saved state.")])])],1)}),[],!1,null,null,null);a.default=r.exports}}]); \ No newline at end of file diff --git a/assets/js/57.9bdcb20d.js b/assets/js/57.732c77e0.js similarity index 99% rename from assets/js/57.9bdcb20d.js rename to assets/js/57.732c77e0.js index 26aa031d75..9e4c4fcfa9 100644 --- a/assets/js/57.9bdcb20d.js +++ b/assets/js/57.732c77e0.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[57],{573:function(t,e,a){"use strict";a.r(e);var s=a(38),r=Object(s.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"core"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#core"}},[t._v("#")]),t._v(" core")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("Domain specification")]),t._v(" "),a("skdecide-summary")],1),t._v(" "),a("h2",{attrs:{id:"space"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#space"}},[t._v("#")]),t._v(" Space")]),t._v(" "),a("p",[t._v("A space representing a finite or infinite set.")]),t._v(" "),a("p",[t._v("This class (or any of its descendant) is typically used to specify action, observation or goal spaces.")]),t._v(" "),a("h3",{attrs:{id:"contains"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#contains"}},[t._v("#")]),t._v(" contains "),a("Badge",{attrs:{text:"Space",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"contains",sig:{params:[{name:"self"},{name:"x",annotation:"T"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check whether x is a valid member of this space.")]),t._v(" "),a("h4",{attrs:{id:"parameters"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("x")]),t._v(": The member to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if x is a valid member of this space (False otherwise).")]),t._v(" "),a("h2",{attrs:{id:"implicitspace"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#implicitspace"}},[t._v("#")]),t._v(" ImplicitSpace")]),t._v(" "),a("p",[t._v("A space formalized implicitly, i.e. by a black-box contains() function.")]),t._v(" "),a("h3",{attrs:{id:"constructor"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#constructor"}},[t._v("#")]),t._v(" Constructor "),a("Badge",{attrs:{text:"ImplicitSpace",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"ImplicitSpace",sig:{params:[{name:"contains_function",annotation:"Callable[[T], bool]"}],return:"None"}}}),t._v(" "),a("p",[t._v("Initialize ImplicitSpace.")]),t._v(" "),a("h4",{attrs:{id:"parameters-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-2"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("contains_function")]),t._v(": The contains() function to use.")])]),t._v(" "),a("h4",{attrs:{id:"example"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#example"}},[t._v("#")]),t._v(" Example")]),t._v(" "),a("div",{staticClass:"language-python extra-class"},[a("pre",{pre:!0,attrs:{class:"language-python"}},[a("code",[t._v("my_space "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" ImplicitSpace"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("lambda")]),t._v(" x"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("10")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v(" x"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'position'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("5")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("h3",{attrs:{id:"contains-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#contains-2"}},[t._v("#")]),t._v(" contains "),a("Badge",{attrs:{text:"Space",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"contains",sig:{params:[{name:"self"},{name:"x",annotation:"T"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check whether x is a valid member of this space.")]),t._v(" "),a("h4",{attrs:{id:"parameters-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-3"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("x")]),t._v(": The member to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-2"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if x is a valid member of this space (False otherwise).")]),t._v(" "),a("h2",{attrs:{id:"enumerablespace"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#enumerablespace"}},[t._v("#")]),t._v(" EnumerableSpace")]),t._v(" "),a("p",[t._v("A space which elements can be enumerated.")]),t._v(" "),a("h3",{attrs:{id:"contains-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#contains-3"}},[t._v("#")]),t._v(" contains "),a("Badge",{attrs:{text:"Space",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"contains",sig:{params:[{name:"self"},{name:"x",annotation:"T"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check whether x is a valid member of this space.")]),t._v(" "),a("h4",{attrs:{id:"parameters-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-4"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("x")]),t._v(": The member to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-3"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if x is a valid member of this space (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"get-elements"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-elements"}},[t._v("#")]),t._v(" get_elements "),a("Badge",{attrs:{text:"EnumerableSpace",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_elements",sig:{params:[{name:"self"}],return:"Iterable[T]"}}}),t._v(" "),a("p",[t._v("Get the elements of this space.")]),t._v(" "),a("h4",{attrs:{id:"returns-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-4"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The elements of this space.")]),t._v(" "),a("h2",{attrs:{id:"emptyspace"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#emptyspace"}},[t._v("#")]),t._v(" EmptySpace")]),t._v(" "),a("p",[t._v("An (enumerable) empty space.")]),t._v(" "),a("h3",{attrs:{id:"contains-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#contains-4"}},[t._v("#")]),t._v(" contains "),a("Badge",{attrs:{text:"Space",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"contains",sig:{params:[{name:"self"},{name:"x",annotation:"T"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check whether x is a valid member of this space.")]),t._v(" "),a("h4",{attrs:{id:"parameters-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-5"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("x")]),t._v(": The member to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-5"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if x is a valid member of this space (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"get-elements-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-elements-2"}},[t._v("#")]),t._v(" get_elements "),a("Badge",{attrs:{text:"EnumerableSpace",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_elements",sig:{params:[{name:"self"}],return:"Iterable[T]"}}}),t._v(" "),a("p",[t._v("Get the elements of this space.")]),t._v(" "),a("h4",{attrs:{id:"returns-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-6"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The elements of this space.")]),t._v(" "),a("h2",{attrs:{id:"samplablespace"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#samplablespace"}},[t._v("#")]),t._v(" SamplableSpace")]),t._v(" "),a("p",[t._v("A space which can be sampled (uniformly randomly).")]),t._v(" "),a("h3",{attrs:{id:"contains-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#contains-5"}},[t._v("#")]),t._v(" contains "),a("Badge",{attrs:{text:"Space",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"contains",sig:{params:[{name:"self"},{name:"x",annotation:"T"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check whether x is a valid member of this space.")]),t._v(" "),a("h4",{attrs:{id:"parameters-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-6"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("x")]),t._v(": The member to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-7"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if x is a valid member of this space (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"sample"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample"}},[t._v("#")]),t._v(" sample "),a("Badge",{attrs:{text:"SamplableSpace",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"sample",sig:{params:[{name:"self"}],return:"T"}}}),t._v(" "),a("p",[t._v("Uniformly randomly sample a random element of this space.")]),t._v(" "),a("h4",{attrs:{id:"returns-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-8"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The sampled element.")]),t._v(" "),a("h2",{attrs:{id:"serializablespace"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#serializablespace"}},[t._v("#")]),t._v(" SerializableSpace")]),t._v(" "),a("p",[t._v("A space which can be serialized (to/from JSON).")]),t._v(" "),a("h3",{attrs:{id:"contains-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#contains-6"}},[t._v("#")]),t._v(" contains "),a("Badge",{attrs:{text:"Space",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"contains",sig:{params:[{name:"self"},{name:"x",annotation:"T"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check whether x is a valid member of this space.")]),t._v(" "),a("h4",{attrs:{id:"parameters-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-7"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("x")]),t._v(": The member to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-9"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if x is a valid member of this space (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"from-jsonable"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#from-jsonable"}},[t._v("#")]),t._v(" from_jsonable "),a("Badge",{attrs:{text:"SerializableSpace",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"from_jsonable",sig:{params:[{name:"self"},{name:"sample_n",annotation:"Sequence"}],return:"Iterable[T]"}}}),t._v(" "),a("p",[t._v("Convert a JSONable data type to a batch of samples from this space.")]),t._v(" "),a("h4",{attrs:{id:"parameters-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-8"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("sample_n")]),t._v(": The JSONable data type to convert.")])]),t._v(" "),a("h4",{attrs:{id:"returns-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-10"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The resulting batch of samples.")]),t._v(" "),a("h3",{attrs:{id:"to-jsonable"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#to-jsonable"}},[t._v("#")]),t._v(" to_jsonable "),a("Badge",{attrs:{text:"SerializableSpace",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"to_jsonable",sig:{params:[{name:"self"},{name:"sample_n",annotation:"Iterable[T]"}],return:"Sequence"}}}),t._v(" "),a("p",[t._v("Convert a batch of samples from this space to a JSONable data type.")]),t._v(" "),a("h4",{attrs:{id:"parameters-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-9"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("sample_n")]),t._v(": The batch of samples to convert.")])]),t._v(" "),a("h4",{attrs:{id:"returns-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-11"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The resulting JSONable data type.")]),t._v(" "),a("h2",{attrs:{id:"distribution"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#distribution"}},[t._v("#")]),t._v(" Distribution")]),t._v(" "),a("p",[t._v("A probability distribution.")]),t._v(" "),a("h3",{attrs:{id:"sample-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample-2"}},[t._v("#")]),t._v(" sample "),a("Badge",{attrs:{text:"Distribution",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"sample",sig:{params:[{name:"self"}],return:"T"}}}),t._v(" "),a("p",[t._v("Sample from this distribution.")]),t._v(" "),a("h4",{attrs:{id:"returns-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-12"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The sampled element.")]),t._v(" "),a("h2",{attrs:{id:"implicitdistribution"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#implicitdistribution"}},[t._v("#")]),t._v(" ImplicitDistribution")]),t._v(" "),a("p",[t._v("A probability distribution formalized implicitly, i.e. by a black-box sample() function.")]),t._v(" "),a("h3",{attrs:{id:"constructor-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#constructor-2"}},[t._v("#")]),t._v(" Constructor "),a("Badge",{attrs:{text:"ImplicitDistribution",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"ImplicitDistribution",sig:{params:[{name:"sample_function",annotation:"Callable[[], T]"}],return:"None"}}}),t._v(" "),a("p",[t._v("Initialize ImplicitDistribution.")]),t._v(" "),a("h4",{attrs:{id:"parameters-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-10"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("sample_function")]),t._v(": The sample() function to use.")])]),t._v(" "),a("h4",{attrs:{id:"example-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#example-2"}},[t._v("#")]),t._v(" Example")]),t._v(" "),a("div",{staticClass:"language-python extra-class"},[a("pre",{pre:!0,attrs:{class:"language-python"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" random\n\ndice "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" ImplicitDistribution"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("lambda")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" random"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("randint"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("6")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\nroll "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" dice"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("sample"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("h3",{attrs:{id:"sample-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample-3"}},[t._v("#")]),t._v(" sample "),a("Badge",{attrs:{text:"Distribution",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"sample",sig:{params:[{name:"self"}],return:"T"}}}),t._v(" "),a("p",[t._v("Sample from this distribution.")]),t._v(" "),a("h4",{attrs:{id:"returns-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-13"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The sampled element.")]),t._v(" "),a("h2",{attrs:{id:"discretedistribution"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#discretedistribution"}},[t._v("#")]),t._v(" DiscreteDistribution")]),t._v(" "),a("p",[t._v("A discrete probability distribution.")]),t._v(" "),a("h3",{attrs:{id:"constructor-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#constructor-3"}},[t._v("#")]),t._v(" Constructor "),a("Badge",{attrs:{text:"DiscreteDistribution",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"DiscreteDistribution",sig:{params:[{name:"values",annotation:"List[Tuple[T, float]]"}],return:"None"}}}),t._v(" "),a("p",[t._v("Initialize DiscreteDistribution.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("If the given probabilities do not sum to 1, they are implicitly normalized as such for sampling.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-11"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("values")]),t._v(": The list of (element, probability) pairs.")])]),t._v(" "),a("h4",{attrs:{id:"example-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#example-3"}},[t._v("#")]),t._v(" Example")]),t._v(" "),a("div",{staticClass:"language-python extra-class"},[a("pre",{pre:!0,attrs:{class:"language-python"}},[a("code",[t._v("game_strategy "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" DiscreteDistribution"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'rock'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0.7")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'paper'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0.1")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'scissors'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0.2")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\nmove "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" game_strategy"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("sample"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("h3",{attrs:{id:"get-values"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-values"}},[t._v("#")]),t._v(" get_values "),a("Badge",{attrs:{text:"DiscreteDistribution",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_values",sig:{params:[{name:"self"}],return:"List[Tuple[T, float]]"}}}),t._v(" "),a("p",[t._v("Get the list of (element, probability) pairs.")]),t._v(" "),a("h4",{attrs:{id:"returns-14"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-14"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The (element, probability) pairs.")]),t._v(" "),a("h3",{attrs:{id:"sample-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample-4"}},[t._v("#")]),t._v(" sample "),a("Badge",{attrs:{text:"Distribution",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"sample",sig:{params:[{name:"self"}],return:"T"}}}),t._v(" "),a("p",[t._v("Sample from this distribution.")]),t._v(" "),a("h4",{attrs:{id:"returns-15"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-15"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The sampled element.")]),t._v(" "),a("h2",{attrs:{id:"singlevaluedistribution"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#singlevaluedistribution"}},[t._v("#")]),t._v(" SingleValueDistribution")]),t._v(" "),a("p",[t._v("A single value distribution (i.e. Dirac distribution).")]),t._v(" "),a("h3",{attrs:{id:"constructor-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#constructor-4"}},[t._v("#")]),t._v(" Constructor "),a("Badge",{attrs:{text:"SingleValueDistribution",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"SingleValueDistribution",sig:{params:[{name:"value",annotation:"T"}],return:"None"}}}),t._v(" "),a("p",[t._v("Initialize SingleValueDistribution.")]),t._v(" "),a("h4",{attrs:{id:"parameters-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-12"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("value")]),t._v(": The single value of this distribution.")])]),t._v(" "),a("h3",{attrs:{id:"get-value"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-value"}},[t._v("#")]),t._v(" get_value "),a("Badge",{attrs:{text:"SingleValueDistribution",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_value",sig:{params:[{name:"self"}],return:"T"}}}),t._v(" "),a("p",[t._v("Get the single value of this distribution.")]),t._v(" "),a("h4",{attrs:{id:"returns-16"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-16"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The single value of this distribution.")]),t._v(" "),a("h3",{attrs:{id:"get-values-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-values-2"}},[t._v("#")]),t._v(" get_values "),a("Badge",{attrs:{text:"DiscreteDistribution",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_values",sig:{params:[{name:"self"}],return:"List[Tuple[T, float]]"}}}),t._v(" "),a("p",[t._v("Get the list of (element, probability) pairs.")]),t._v(" "),a("h4",{attrs:{id:"returns-17"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-17"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The (element, probability) pairs.")]),t._v(" "),a("h3",{attrs:{id:"sample-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample-5"}},[t._v("#")]),t._v(" sample "),a("Badge",{attrs:{text:"Distribution",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"sample",sig:{params:[{name:"self"}],return:"T"}}}),t._v(" "),a("p",[t._v("Sample from this distribution.")]),t._v(" "),a("h4",{attrs:{id:"returns-18"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-18"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The sampled element.")]),t._v(" "),a("h2",{attrs:{id:"value"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#value"}},[t._v("#")]),t._v(" Value")]),t._v(" "),a("p",[t._v("A value (reward or cost).")]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("It is recommended to use either the reward or the cost parameter. If no one is used, a reward/cost of 0 is\nassumed. If both are used, reward will be considered and cost ignored. In any case, both reward and cost\nattributes will be defined after initialization.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-13"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("reward")]),t._v(": The optional reward.")]),t._v(" "),a("li",[a("strong",[t._v("cost")]),t._v(": The optional cost.")])]),t._v(" "),a("h4",{attrs:{id:"example-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#example-4"}},[t._v("#")]),t._v(" Example")]),t._v(" "),a("div",{staticClass:"language-python extra-class"},[a("pre",{pre:!0,attrs:{class:"language-python"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# These two lines are equivalent, use the one you prefer")]),t._v("\nvalue_1 "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" Value"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("reward"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("5")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\nvalue_2 "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" Value"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("cost"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("5")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("assert")]),t._v(" value_1"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("reward "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("==")]),t._v(" value_2"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("reward "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("==")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("5")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# True")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("assert")]),t._v(" value_1"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("cost "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("==")]),t._v(" value_2"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("cost "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("==")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("5")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# True")]),t._v("\n")])])]),a("h2",{attrs:{id:"environmentoutcome"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#environmentoutcome"}},[t._v("#")]),t._v(" EnvironmentOutcome")]),t._v(" "),a("p",[t._v("An environment outcome for an internal transition.")]),t._v(" "),a("h4",{attrs:{id:"parameters-14"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-14"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The agent's observation of the current environment.")]),t._v(" "),a("li",[a("strong",[t._v("value")]),t._v(": The value (reward or cost) returned after previous action.")]),t._v(" "),a("li",[a("strong",[t._v("termination")]),t._v(": Whether the episode has ended, in which case further step() calls will return undefined results.")]),t._v(" "),a("li",[a("strong",[t._v("info")]),t._v(": Optional auxiliary diagnostic information (helpful for debugging, and sometimes learning).")])]),t._v(" "),a("h3",{attrs:{id:"asdict"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#asdict"}},[t._v("#")]),t._v(" asdict "),a("Badge",{attrs:{text:"ExtendedDataclass",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"asdict",sig:{params:[{name:"self"}]}}}),t._v(" "),a("p",[t._v("Return the fields of the instance as a new dictionary mapping field names to field values.")]),t._v(" "),a("h3",{attrs:{id:"astuple"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#astuple"}},[t._v("#")]),t._v(" astuple "),a("Badge",{attrs:{text:"ExtendedDataclass",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"astuple",sig:{params:[{name:"self"}]}}}),t._v(" "),a("p",[t._v("Return the fields of the instance as a new tuple of field values.")]),t._v(" "),a("h3",{attrs:{id:"replace"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#replace"}},[t._v("#")]),t._v(" replace "),a("Badge",{attrs:{text:"ExtendedDataclass",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"replace",sig:{params:[{name:"self"},{name:"**changes"}]}}}),t._v(" "),a("p",[t._v("Return a new object replacing specified fields with new values.")]),t._v(" "),a("h2",{attrs:{id:"transitionoutcome"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#transitionoutcome"}},[t._v("#")]),t._v(" TransitionOutcome")]),t._v(" "),a("p",[t._v("A transition outcome.")]),t._v(" "),a("h4",{attrs:{id:"parameters-15"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-15"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The new state after the transition.")]),t._v(" "),a("li",[a("strong",[t._v("value")]),t._v(": The value (reward or cost) returned after previous action.")]),t._v(" "),a("li",[a("strong",[t._v("termination")]),t._v(": Whether the episode has ended, in which case further step() calls will return undefined results.")]),t._v(" "),a("li",[a("strong",[t._v("info")]),t._v(": Optional auxiliary diagnostic information (helpful for debugging, and sometimes learning).")])]),t._v(" "),a("h3",{attrs:{id:"asdict-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#asdict-2"}},[t._v("#")]),t._v(" asdict "),a("Badge",{attrs:{text:"ExtendedDataclass",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"asdict",sig:{params:[{name:"self"}]}}}),t._v(" "),a("p",[t._v("Return the fields of the instance as a new dictionary mapping field names to field values.")]),t._v(" "),a("h3",{attrs:{id:"astuple-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#astuple-2"}},[t._v("#")]),t._v(" astuple "),a("Badge",{attrs:{text:"ExtendedDataclass",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"astuple",sig:{params:[{name:"self"}]}}}),t._v(" "),a("p",[t._v("Return the fields of the instance as a new tuple of field values.")]),t._v(" "),a("h3",{attrs:{id:"replace-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#replace-2"}},[t._v("#")]),t._v(" replace "),a("Badge",{attrs:{text:"ExtendedDataclass",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"replace",sig:{params:[{name:"self"},{name:"**changes"}]}}}),t._v(" "),a("p",[t._v("Return a new object replacing specified fields with new values.")]),t._v(" "),a("h2",{attrs:{id:"strdict"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#strdict"}},[t._v("#")]),t._v(" StrDict")]),t._v(" "),a("p",[t._v("A dictionary with String keys (e.g. agent names).")]),t._v(" "),a("h2",{attrs:{id:"constraint"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#constraint"}},[t._v("#")]),t._v(" Constraint")]),t._v(" "),a("p",[t._v("A constraint.")]),t._v(" "),a("h3",{attrs:{id:"check"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#check"}},[t._v("#")]),t._v(" check "),a("Badge",{attrs:{text:"Constraint",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"check",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory"},{name:"action",annotation:"D.T_event"},{name:"next_state",default:"None",annotation:"Optional[D.T_state]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check this constraint.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("If this function never depends on the next_state parameter for its computation, it is recommended to\nindicate it by overriding "),a("code",[t._v("Constraint._is_constraint_dependent_on_next_state_()")]),t._v(" to return False. This\ninformation can then be exploited by solvers to avoid computing next state to evaluate the constraint (more\nefficient).")])]),t._v(" "),a("h4",{attrs:{id:"parameters-16"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-16"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")]),t._v(" "),a("li",[a("strong",[t._v("next_state")]),t._v(": The next state in which the transition ends (if needed for the computation).")])]),t._v(" "),a("h4",{attrs:{id:"returns-19"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-19"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the constraint is checked (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-constraint-dependent-on-next-state"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-constraint-dependent-on-next-state"}},[t._v("#")]),t._v(" is_constraint_dependent_on_next_state "),a("Badge",{attrs:{text:"Constraint",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_constraint_dependent_on_next_state",sig:{params:[{name:"self"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether this constraint requires the next_state parameter for its computation (cached).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Constraint.is_constraint_dependent_on_next_state()")]),t._v(" internally\ncalls "),a("code",[t._v("Constraint._is_constraint_dependent_on_next_state_()")]),t._v(" the first time and automatically caches its value to\nmake future calls more efficient (since the returned value is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-20"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-20"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the constraint computation depends on next_state (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-constraint-dependent-on-next-state-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-constraint-dependent-on-next-state-2"}},[t._v("#")]),t._v(" _is_constraint_dependent_on_next_state_ "),a("Badge",{attrs:{text:"Constraint",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_constraint_dependent_on_next_state_",sig:{params:[{name:"self"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether this constraint requires the next_state parameter for its computation.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Constraint.is_constraint_dependent_on_next_state()")]),t._v(", the\ndifference being that the result is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-21"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-21"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the constraint computation depends on next_state (False otherwise).")]),t._v(" "),a("h2",{attrs:{id:"implicitconstraint"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#implicitconstraint"}},[t._v("#")]),t._v(" ImplicitConstraint")]),t._v(" "),a("p",[t._v("A constraint formalized implicitly, i.e. by a black-box check() function.")]),t._v(" "),a("h3",{attrs:{id:"constructor-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#constructor-5"}},[t._v("#")]),t._v(" Constructor "),a("Badge",{attrs:{text:"ImplicitConstraint",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"ImplicitConstraint",sig:{params:[{name:"check_function",annotation:"Callable[[D.T_memory, D.T_event, Optional[D.T_state]], bool]"},{name:"depends_on_next_state",default:"True",annotation:"bool"}],return:"None"}}}),t._v(" "),a("p",[t._v("Initialize ImplicitConstraint.")]),t._v(" "),a("h4",{attrs:{id:"parameters-17"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-17"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("check_function")]),t._v(": The check() function to use.")]),t._v(" "),a("li",[a("strong",[t._v("depends_on_next_state")]),t._v(": Whether the check() function requires the next_state parameter for its computation.")])]),t._v(" "),a("h4",{attrs:{id:"example-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#example-5"}},[t._v("#")]),t._v(" Example")]),t._v(" "),a("div",{staticClass:"language-python extra-class"},[a("pre",{pre:!0,attrs:{class:"language-python"}},[a("code",[t._v("constraint "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" ImplicitConstraint"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("lambda")]),t._v(" memory"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" action"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" next_state"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" next_state"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("x "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("%")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("2")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("==")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("h3",{attrs:{id:"check-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#check-2"}},[t._v("#")]),t._v(" check "),a("Badge",{attrs:{text:"Constraint",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"check",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory"},{name:"action",annotation:"D.T_event"},{name:"next_state",default:"None",annotation:"Optional[D.T_state]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check this constraint.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("If this function never depends on the next_state parameter for its computation, it is recommended to\nindicate it by overriding "),a("code",[t._v("Constraint._is_constraint_dependent_on_next_state_()")]),t._v(" to return False. This\ninformation can then be exploited by solvers to avoid computing next state to evaluate the constraint (more\nefficient).")])]),t._v(" "),a("h4",{attrs:{id:"parameters-18"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-18"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")]),t._v(" "),a("li",[a("strong",[t._v("next_state")]),t._v(": The next state in which the transition ends (if needed for the computation).")])]),t._v(" "),a("h4",{attrs:{id:"returns-22"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-22"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the constraint is checked (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-constraint-dependent-on-next-state-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-constraint-dependent-on-next-state-3"}},[t._v("#")]),t._v(" is_constraint_dependent_on_next_state "),a("Badge",{attrs:{text:"Constraint",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_constraint_dependent_on_next_state",sig:{params:[{name:"self"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether this constraint requires the next_state parameter for its computation (cached).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Constraint.is_constraint_dependent_on_next_state()")]),t._v(" internally\ncalls "),a("code",[t._v("Constraint._is_constraint_dependent_on_next_state_()")]),t._v(" the first time and automatically caches its value to\nmake future calls more efficient (since the returned value is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-23"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-23"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the constraint computation depends on next_state (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-constraint-dependent-on-next-state-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-constraint-dependent-on-next-state-4"}},[t._v("#")]),t._v(" _is_constraint_dependent_on_next_state_ "),a("Badge",{attrs:{text:"Constraint",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_constraint_dependent_on_next_state_",sig:{params:[{name:"self"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether this constraint requires the next_state parameter for its computation.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Constraint.is_constraint_dependent_on_next_state()")]),t._v(", the\ndifference being that the result is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-24"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-24"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the constraint computation depends on next_state (False otherwise).")]),t._v(" "),a("h2",{attrs:{id:"boundconstraint"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#boundconstraint"}},[t._v("#")]),t._v(" BoundConstraint")]),t._v(" "),a("p",[t._v("A constraint characterized by an evaluation function, an inequality and a bound.")]),t._v(" "),a("h4",{attrs:{id:"example-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#example-6"}},[t._v("#")]),t._v(" Example")]),t._v(" "),a("p",[t._v("A BoundConstraint with inequality '>=' is checked if (and only if) its "),a("code",[t._v("BoundConstraint.evaluate()")]),t._v(" function returns\na float greater than or equal to its bound.")]),t._v(" "),a("h3",{attrs:{id:"constructor-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#constructor-6"}},[t._v("#")]),t._v(" Constructor "),a("Badge",{attrs:{text:"BoundConstraint",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"BoundConstraint",sig:{params:[{name:"evaluate_function",annotation:"Callable[[D.T_memory, D.T_event, Optional[D.T_state]], float]"},{name:"inequality",annotation:"str"},{name:"bound",annotation:"float"},{name:"depends_on_next_state",default:"True",annotation:"bool"}],return:"None"}}}),t._v(" "),a("p",[t._v("Initialize BoundConstraint.")]),t._v(" "),a("h4",{attrs:{id:"parameters-19"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-19"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("evaluate_function")]),t._v(": The evaluate() function to use.")]),t._v(" "),a("li",[a("strong",[t._v("inequality")]),t._v(": A string ('<', '<=', '>' or '>=') describing the constraint inequality.")]),t._v(" "),a("li",[a("strong",[t._v("bound")]),t._v(": The bound of the constraint.")]),t._v(" "),a("li",[a("strong",[t._v("depends_on_next_state")]),t._v(": Whether the evaluate() function requires the next_state parameter for its computation.")])]),t._v(" "),a("h4",{attrs:{id:"example-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#example-7"}},[t._v("#")]),t._v(" Example")]),t._v(" "),a("div",{staticClass:"language-python extra-class"},[a("pre",{pre:!0,attrs:{class:"language-python"}},[a("code",[t._v("constraint "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" BoundConstraint"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("lambda")]),t._v(" memory"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" action"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" next_state"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" next_state"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("x"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'>'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("5.")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("h3",{attrs:{id:"check-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#check-3"}},[t._v("#")]),t._v(" check "),a("Badge",{attrs:{text:"Constraint",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"check",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory"},{name:"action",annotation:"D.T_event"},{name:"next_state",default:"None",annotation:"Optional[D.T_state]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check this constraint.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("If this function never depends on the next_state parameter for its computation, it is recommended to\nindicate it by overriding "),a("code",[t._v("Constraint._is_constraint_dependent_on_next_state_()")]),t._v(" to return False. This\ninformation can then be exploited by solvers to avoid computing next state to evaluate the constraint (more\nefficient).")])]),t._v(" "),a("h4",{attrs:{id:"parameters-20"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-20"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")]),t._v(" "),a("li",[a("strong",[t._v("next_state")]),t._v(": The next state in which the transition ends (if needed for the computation).")])]),t._v(" "),a("h4",{attrs:{id:"returns-25"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-25"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the constraint is checked (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"evaluate"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#evaluate"}},[t._v("#")]),t._v(" evaluate "),a("Badge",{attrs:{text:"BoundConstraint",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"evaluate",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory"},{name:"action",annotation:"D.T_event"},{name:"next_state",default:"None",annotation:"Optional[D.T_state]"}],return:"float"}}}),t._v(" "),a("p",[t._v("Evaluate the left side of this BoundConstraint.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("If this function never depends on the next_state parameter for its computation, it is recommended to\nindicate it by overriding "),a("code",[t._v("Constraint._is_constraint_dependent_on_next_state_()")]),t._v(" to return False. This\ninformation can then be exploited by solvers to avoid computing next state to evaluate the constraint (more\nefficient).")])]),t._v(" "),a("h4",{attrs:{id:"parameters-21"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-21"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")]),t._v(" "),a("li",[a("strong",[t._v("next_state")]),t._v(": The next state in which the transition ends (if needed for the computation).")])]),t._v(" "),a("h4",{attrs:{id:"returns-26"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-26"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The float value resulting from the evaluation.")]),t._v(" "),a("h3",{attrs:{id:"get-bound"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-bound"}},[t._v("#")]),t._v(" get_bound "),a("Badge",{attrs:{text:"BoundConstraint",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_bound",sig:{params:[{name:"self"}],return:"float"}}}),t._v(" "),a("p",[t._v("Get the bound of the constraint.")]),t._v(" "),a("h4",{attrs:{id:"returns-27"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-27"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The constraint bound.")]),t._v(" "),a("h3",{attrs:{id:"get-inequality"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-inequality"}},[t._v("#")]),t._v(" get_inequality "),a("Badge",{attrs:{text:"BoundConstraint",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_inequality",sig:{params:[{name:"self"}],return:"str"}}}),t._v(" "),a("p",[t._v("Get the string ('<', '<=', '>' or '>=') describing the constraint inequality.")]),t._v(" "),a("h4",{attrs:{id:"returns-28"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-28"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The string describing the inequality.")]),t._v(" "),a("h3",{attrs:{id:"is-constraint-dependent-on-next-state-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-constraint-dependent-on-next-state-5"}},[t._v("#")]),t._v(" is_constraint_dependent_on_next_state "),a("Badge",{attrs:{text:"Constraint",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_constraint_dependent_on_next_state",sig:{params:[{name:"self"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether this constraint requires the next_state parameter for its computation (cached).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Constraint.is_constraint_dependent_on_next_state()")]),t._v(" internally\ncalls "),a("code",[t._v("Constraint._is_constraint_dependent_on_next_state_()")]),t._v(" the first time and automatically caches its value to\nmake future calls more efficient (since the returned value is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-29"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-29"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the constraint computation depends on next_state (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-constraint-dependent-on-next-state-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-constraint-dependent-on-next-state-6"}},[t._v("#")]),t._v(" _is_constraint_dependent_on_next_state_ "),a("Badge",{attrs:{text:"Constraint",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_constraint_dependent_on_next_state_",sig:{params:[{name:"self"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether this constraint requires the next_state parameter for its computation.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Constraint.is_constraint_dependent_on_next_state()")]),t._v(", the\ndifference being that the result is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-30"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-30"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the constraint computation depends on next_state (False otherwise).")])],1)}),[],!1,null,null,null);e.default=r.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[57],{577:function(t,e,a){"use strict";a.r(e);var s=a(38),r=Object(s.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"core"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#core"}},[t._v("#")]),t._v(" core")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("Domain specification")]),t._v(" "),a("skdecide-summary")],1),t._v(" "),a("h2",{attrs:{id:"space"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#space"}},[t._v("#")]),t._v(" Space")]),t._v(" "),a("p",[t._v("A space representing a finite or infinite set.")]),t._v(" "),a("p",[t._v("This class (or any of its descendant) is typically used to specify action, observation or goal spaces.")]),t._v(" "),a("h3",{attrs:{id:"contains"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#contains"}},[t._v("#")]),t._v(" contains "),a("Badge",{attrs:{text:"Space",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"contains",sig:{params:[{name:"self"},{name:"x",annotation:"T"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check whether x is a valid member of this space.")]),t._v(" "),a("h4",{attrs:{id:"parameters"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("x")]),t._v(": The member to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if x is a valid member of this space (False otherwise).")]),t._v(" "),a("h2",{attrs:{id:"implicitspace"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#implicitspace"}},[t._v("#")]),t._v(" ImplicitSpace")]),t._v(" "),a("p",[t._v("A space formalized implicitly, i.e. by a black-box contains() function.")]),t._v(" "),a("h3",{attrs:{id:"constructor"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#constructor"}},[t._v("#")]),t._v(" Constructor "),a("Badge",{attrs:{text:"ImplicitSpace",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"ImplicitSpace",sig:{params:[{name:"contains_function",annotation:"Callable[[T], bool]"}],return:"None"}}}),t._v(" "),a("p",[t._v("Initialize ImplicitSpace.")]),t._v(" "),a("h4",{attrs:{id:"parameters-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-2"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("contains_function")]),t._v(": The contains() function to use.")])]),t._v(" "),a("h4",{attrs:{id:"example"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#example"}},[t._v("#")]),t._v(" Example")]),t._v(" "),a("div",{staticClass:"language-python extra-class"},[a("pre",{pre:!0,attrs:{class:"language-python"}},[a("code",[t._v("my_space "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" ImplicitSpace"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("lambda")]),t._v(" x"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("10")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v(" x"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'position'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("5")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("h3",{attrs:{id:"contains-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#contains-2"}},[t._v("#")]),t._v(" contains "),a("Badge",{attrs:{text:"Space",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"contains",sig:{params:[{name:"self"},{name:"x",annotation:"T"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check whether x is a valid member of this space.")]),t._v(" "),a("h4",{attrs:{id:"parameters-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-3"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("x")]),t._v(": The member to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-2"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if x is a valid member of this space (False otherwise).")]),t._v(" "),a("h2",{attrs:{id:"enumerablespace"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#enumerablespace"}},[t._v("#")]),t._v(" EnumerableSpace")]),t._v(" "),a("p",[t._v("A space which elements can be enumerated.")]),t._v(" "),a("h3",{attrs:{id:"contains-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#contains-3"}},[t._v("#")]),t._v(" contains "),a("Badge",{attrs:{text:"Space",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"contains",sig:{params:[{name:"self"},{name:"x",annotation:"T"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check whether x is a valid member of this space.")]),t._v(" "),a("h4",{attrs:{id:"parameters-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-4"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("x")]),t._v(": The member to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-3"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if x is a valid member of this space (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"get-elements"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-elements"}},[t._v("#")]),t._v(" get_elements "),a("Badge",{attrs:{text:"EnumerableSpace",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_elements",sig:{params:[{name:"self"}],return:"Iterable[T]"}}}),t._v(" "),a("p",[t._v("Get the elements of this space.")]),t._v(" "),a("h4",{attrs:{id:"returns-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-4"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The elements of this space.")]),t._v(" "),a("h2",{attrs:{id:"emptyspace"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#emptyspace"}},[t._v("#")]),t._v(" EmptySpace")]),t._v(" "),a("p",[t._v("An (enumerable) empty space.")]),t._v(" "),a("h3",{attrs:{id:"contains-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#contains-4"}},[t._v("#")]),t._v(" contains "),a("Badge",{attrs:{text:"Space",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"contains",sig:{params:[{name:"self"},{name:"x",annotation:"T"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check whether x is a valid member of this space.")]),t._v(" "),a("h4",{attrs:{id:"parameters-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-5"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("x")]),t._v(": The member to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-5"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if x is a valid member of this space (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"get-elements-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-elements-2"}},[t._v("#")]),t._v(" get_elements "),a("Badge",{attrs:{text:"EnumerableSpace",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_elements",sig:{params:[{name:"self"}],return:"Iterable[T]"}}}),t._v(" "),a("p",[t._v("Get the elements of this space.")]),t._v(" "),a("h4",{attrs:{id:"returns-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-6"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The elements of this space.")]),t._v(" "),a("h2",{attrs:{id:"samplablespace"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#samplablespace"}},[t._v("#")]),t._v(" SamplableSpace")]),t._v(" "),a("p",[t._v("A space which can be sampled (uniformly randomly).")]),t._v(" "),a("h3",{attrs:{id:"contains-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#contains-5"}},[t._v("#")]),t._v(" contains "),a("Badge",{attrs:{text:"Space",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"contains",sig:{params:[{name:"self"},{name:"x",annotation:"T"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check whether x is a valid member of this space.")]),t._v(" "),a("h4",{attrs:{id:"parameters-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-6"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("x")]),t._v(": The member to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-7"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if x is a valid member of this space (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"sample"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample"}},[t._v("#")]),t._v(" sample "),a("Badge",{attrs:{text:"SamplableSpace",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"sample",sig:{params:[{name:"self"}],return:"T"}}}),t._v(" "),a("p",[t._v("Uniformly randomly sample a random element of this space.")]),t._v(" "),a("h4",{attrs:{id:"returns-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-8"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The sampled element.")]),t._v(" "),a("h2",{attrs:{id:"serializablespace"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#serializablespace"}},[t._v("#")]),t._v(" SerializableSpace")]),t._v(" "),a("p",[t._v("A space which can be serialized (to/from JSON).")]),t._v(" "),a("h3",{attrs:{id:"contains-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#contains-6"}},[t._v("#")]),t._v(" contains "),a("Badge",{attrs:{text:"Space",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"contains",sig:{params:[{name:"self"},{name:"x",annotation:"T"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check whether x is a valid member of this space.")]),t._v(" "),a("h4",{attrs:{id:"parameters-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-7"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("x")]),t._v(": The member to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-9"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if x is a valid member of this space (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"from-jsonable"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#from-jsonable"}},[t._v("#")]),t._v(" from_jsonable "),a("Badge",{attrs:{text:"SerializableSpace",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"from_jsonable",sig:{params:[{name:"self"},{name:"sample_n",annotation:"Sequence"}],return:"Iterable[T]"}}}),t._v(" "),a("p",[t._v("Convert a JSONable data type to a batch of samples from this space.")]),t._v(" "),a("h4",{attrs:{id:"parameters-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-8"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("sample_n")]),t._v(": The JSONable data type to convert.")])]),t._v(" "),a("h4",{attrs:{id:"returns-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-10"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The resulting batch of samples.")]),t._v(" "),a("h3",{attrs:{id:"to-jsonable"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#to-jsonable"}},[t._v("#")]),t._v(" to_jsonable "),a("Badge",{attrs:{text:"SerializableSpace",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"to_jsonable",sig:{params:[{name:"self"},{name:"sample_n",annotation:"Iterable[T]"}],return:"Sequence"}}}),t._v(" "),a("p",[t._v("Convert a batch of samples from this space to a JSONable data type.")]),t._v(" "),a("h4",{attrs:{id:"parameters-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-9"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("sample_n")]),t._v(": The batch of samples to convert.")])]),t._v(" "),a("h4",{attrs:{id:"returns-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-11"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The resulting JSONable data type.")]),t._v(" "),a("h2",{attrs:{id:"distribution"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#distribution"}},[t._v("#")]),t._v(" Distribution")]),t._v(" "),a("p",[t._v("A probability distribution.")]),t._v(" "),a("h3",{attrs:{id:"sample-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample-2"}},[t._v("#")]),t._v(" sample "),a("Badge",{attrs:{text:"Distribution",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"sample",sig:{params:[{name:"self"}],return:"T"}}}),t._v(" "),a("p",[t._v("Sample from this distribution.")]),t._v(" "),a("h4",{attrs:{id:"returns-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-12"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The sampled element.")]),t._v(" "),a("h2",{attrs:{id:"implicitdistribution"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#implicitdistribution"}},[t._v("#")]),t._v(" ImplicitDistribution")]),t._v(" "),a("p",[t._v("A probability distribution formalized implicitly, i.e. by a black-box sample() function.")]),t._v(" "),a("h3",{attrs:{id:"constructor-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#constructor-2"}},[t._v("#")]),t._v(" Constructor "),a("Badge",{attrs:{text:"ImplicitDistribution",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"ImplicitDistribution",sig:{params:[{name:"sample_function",annotation:"Callable[[], T]"}],return:"None"}}}),t._v(" "),a("p",[t._v("Initialize ImplicitDistribution.")]),t._v(" "),a("h4",{attrs:{id:"parameters-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-10"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("sample_function")]),t._v(": The sample() function to use.")])]),t._v(" "),a("h4",{attrs:{id:"example-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#example-2"}},[t._v("#")]),t._v(" Example")]),t._v(" "),a("div",{staticClass:"language-python extra-class"},[a("pre",{pre:!0,attrs:{class:"language-python"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" random\n\ndice "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" ImplicitDistribution"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("lambda")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" random"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("randint"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("6")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\nroll "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" dice"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("sample"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("h3",{attrs:{id:"sample-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample-3"}},[t._v("#")]),t._v(" sample "),a("Badge",{attrs:{text:"Distribution",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"sample",sig:{params:[{name:"self"}],return:"T"}}}),t._v(" "),a("p",[t._v("Sample from this distribution.")]),t._v(" "),a("h4",{attrs:{id:"returns-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-13"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The sampled element.")]),t._v(" "),a("h2",{attrs:{id:"discretedistribution"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#discretedistribution"}},[t._v("#")]),t._v(" DiscreteDistribution")]),t._v(" "),a("p",[t._v("A discrete probability distribution.")]),t._v(" "),a("h3",{attrs:{id:"constructor-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#constructor-3"}},[t._v("#")]),t._v(" Constructor "),a("Badge",{attrs:{text:"DiscreteDistribution",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"DiscreteDistribution",sig:{params:[{name:"values",annotation:"List[Tuple[T, float]]"}],return:"None"}}}),t._v(" "),a("p",[t._v("Initialize DiscreteDistribution.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("If the given probabilities do not sum to 1, they are implicitly normalized as such for sampling.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-11"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("values")]),t._v(": The list of (element, probability) pairs.")])]),t._v(" "),a("h4",{attrs:{id:"example-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#example-3"}},[t._v("#")]),t._v(" Example")]),t._v(" "),a("div",{staticClass:"language-python extra-class"},[a("pre",{pre:!0,attrs:{class:"language-python"}},[a("code",[t._v("game_strategy "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" DiscreteDistribution"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'rock'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0.7")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'paper'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0.1")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'scissors'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0.2")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\nmove "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" game_strategy"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("sample"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("h3",{attrs:{id:"get-values"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-values"}},[t._v("#")]),t._v(" get_values "),a("Badge",{attrs:{text:"DiscreteDistribution",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_values",sig:{params:[{name:"self"}],return:"List[Tuple[T, float]]"}}}),t._v(" "),a("p",[t._v("Get the list of (element, probability) pairs.")]),t._v(" "),a("h4",{attrs:{id:"returns-14"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-14"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The (element, probability) pairs.")]),t._v(" "),a("h3",{attrs:{id:"sample-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample-4"}},[t._v("#")]),t._v(" sample "),a("Badge",{attrs:{text:"Distribution",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"sample",sig:{params:[{name:"self"}],return:"T"}}}),t._v(" "),a("p",[t._v("Sample from this distribution.")]),t._v(" "),a("h4",{attrs:{id:"returns-15"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-15"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The sampled element.")]),t._v(" "),a("h2",{attrs:{id:"singlevaluedistribution"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#singlevaluedistribution"}},[t._v("#")]),t._v(" SingleValueDistribution")]),t._v(" "),a("p",[t._v("A single value distribution (i.e. Dirac distribution).")]),t._v(" "),a("h3",{attrs:{id:"constructor-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#constructor-4"}},[t._v("#")]),t._v(" Constructor "),a("Badge",{attrs:{text:"SingleValueDistribution",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"SingleValueDistribution",sig:{params:[{name:"value",annotation:"T"}],return:"None"}}}),t._v(" "),a("p",[t._v("Initialize SingleValueDistribution.")]),t._v(" "),a("h4",{attrs:{id:"parameters-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-12"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("value")]),t._v(": The single value of this distribution.")])]),t._v(" "),a("h3",{attrs:{id:"get-value"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-value"}},[t._v("#")]),t._v(" get_value "),a("Badge",{attrs:{text:"SingleValueDistribution",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_value",sig:{params:[{name:"self"}],return:"T"}}}),t._v(" "),a("p",[t._v("Get the single value of this distribution.")]),t._v(" "),a("h4",{attrs:{id:"returns-16"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-16"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The single value of this distribution.")]),t._v(" "),a("h3",{attrs:{id:"get-values-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-values-2"}},[t._v("#")]),t._v(" get_values "),a("Badge",{attrs:{text:"DiscreteDistribution",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_values",sig:{params:[{name:"self"}],return:"List[Tuple[T, float]]"}}}),t._v(" "),a("p",[t._v("Get the list of (element, probability) pairs.")]),t._v(" "),a("h4",{attrs:{id:"returns-17"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-17"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The (element, probability) pairs.")]),t._v(" "),a("h3",{attrs:{id:"sample-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample-5"}},[t._v("#")]),t._v(" sample "),a("Badge",{attrs:{text:"Distribution",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"sample",sig:{params:[{name:"self"}],return:"T"}}}),t._v(" "),a("p",[t._v("Sample from this distribution.")]),t._v(" "),a("h4",{attrs:{id:"returns-18"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-18"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The sampled element.")]),t._v(" "),a("h2",{attrs:{id:"value"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#value"}},[t._v("#")]),t._v(" Value")]),t._v(" "),a("p",[t._v("A value (reward or cost).")]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("It is recommended to use either the reward or the cost parameter. If no one is used, a reward/cost of 0 is\nassumed. If both are used, reward will be considered and cost ignored. In any case, both reward and cost\nattributes will be defined after initialization.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-13"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("reward")]),t._v(": The optional reward.")]),t._v(" "),a("li",[a("strong",[t._v("cost")]),t._v(": The optional cost.")])]),t._v(" "),a("h4",{attrs:{id:"example-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#example-4"}},[t._v("#")]),t._v(" Example")]),t._v(" "),a("div",{staticClass:"language-python extra-class"},[a("pre",{pre:!0,attrs:{class:"language-python"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# These two lines are equivalent, use the one you prefer")]),t._v("\nvalue_1 "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" Value"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("reward"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("5")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\nvalue_2 "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" Value"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("cost"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("5")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("assert")]),t._v(" value_1"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("reward "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("==")]),t._v(" value_2"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("reward "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("==")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("5")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# True")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("assert")]),t._v(" value_1"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("cost "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("==")]),t._v(" value_2"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("cost "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("==")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("5")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# True")]),t._v("\n")])])]),a("h2",{attrs:{id:"environmentoutcome"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#environmentoutcome"}},[t._v("#")]),t._v(" EnvironmentOutcome")]),t._v(" "),a("p",[t._v("An environment outcome for an internal transition.")]),t._v(" "),a("h4",{attrs:{id:"parameters-14"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-14"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The agent's observation of the current environment.")]),t._v(" "),a("li",[a("strong",[t._v("value")]),t._v(": The value (reward or cost) returned after previous action.")]),t._v(" "),a("li",[a("strong",[t._v("termination")]),t._v(": Whether the episode has ended, in which case further step() calls will return undefined results.")]),t._v(" "),a("li",[a("strong",[t._v("info")]),t._v(": Optional auxiliary diagnostic information (helpful for debugging, and sometimes learning).")])]),t._v(" "),a("h3",{attrs:{id:"asdict"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#asdict"}},[t._v("#")]),t._v(" asdict "),a("Badge",{attrs:{text:"ExtendedDataclass",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"asdict",sig:{params:[{name:"self"}]}}}),t._v(" "),a("p",[t._v("Return the fields of the instance as a new dictionary mapping field names to field values.")]),t._v(" "),a("h3",{attrs:{id:"astuple"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#astuple"}},[t._v("#")]),t._v(" astuple "),a("Badge",{attrs:{text:"ExtendedDataclass",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"astuple",sig:{params:[{name:"self"}]}}}),t._v(" "),a("p",[t._v("Return the fields of the instance as a new tuple of field values.")]),t._v(" "),a("h3",{attrs:{id:"replace"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#replace"}},[t._v("#")]),t._v(" replace "),a("Badge",{attrs:{text:"ExtendedDataclass",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"replace",sig:{params:[{name:"self"},{name:"**changes"}]}}}),t._v(" "),a("p",[t._v("Return a new object replacing specified fields with new values.")]),t._v(" "),a("h2",{attrs:{id:"transitionoutcome"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#transitionoutcome"}},[t._v("#")]),t._v(" TransitionOutcome")]),t._v(" "),a("p",[t._v("A transition outcome.")]),t._v(" "),a("h4",{attrs:{id:"parameters-15"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-15"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The new state after the transition.")]),t._v(" "),a("li",[a("strong",[t._v("value")]),t._v(": The value (reward or cost) returned after previous action.")]),t._v(" "),a("li",[a("strong",[t._v("termination")]),t._v(": Whether the episode has ended, in which case further step() calls will return undefined results.")]),t._v(" "),a("li",[a("strong",[t._v("info")]),t._v(": Optional auxiliary diagnostic information (helpful for debugging, and sometimes learning).")])]),t._v(" "),a("h3",{attrs:{id:"asdict-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#asdict-2"}},[t._v("#")]),t._v(" asdict "),a("Badge",{attrs:{text:"ExtendedDataclass",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"asdict",sig:{params:[{name:"self"}]}}}),t._v(" "),a("p",[t._v("Return the fields of the instance as a new dictionary mapping field names to field values.")]),t._v(" "),a("h3",{attrs:{id:"astuple-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#astuple-2"}},[t._v("#")]),t._v(" astuple "),a("Badge",{attrs:{text:"ExtendedDataclass",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"astuple",sig:{params:[{name:"self"}]}}}),t._v(" "),a("p",[t._v("Return the fields of the instance as a new tuple of field values.")]),t._v(" "),a("h3",{attrs:{id:"replace-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#replace-2"}},[t._v("#")]),t._v(" replace "),a("Badge",{attrs:{text:"ExtendedDataclass",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"replace",sig:{params:[{name:"self"},{name:"**changes"}]}}}),t._v(" "),a("p",[t._v("Return a new object replacing specified fields with new values.")]),t._v(" "),a("h2",{attrs:{id:"strdict"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#strdict"}},[t._v("#")]),t._v(" StrDict")]),t._v(" "),a("p",[t._v("A dictionary with String keys (e.g. agent names).")]),t._v(" "),a("h2",{attrs:{id:"constraint"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#constraint"}},[t._v("#")]),t._v(" Constraint")]),t._v(" "),a("p",[t._v("A constraint.")]),t._v(" "),a("h3",{attrs:{id:"check"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#check"}},[t._v("#")]),t._v(" check "),a("Badge",{attrs:{text:"Constraint",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"check",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory"},{name:"action",annotation:"D.T_event"},{name:"next_state",default:"None",annotation:"Optional[D.T_state]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check this constraint.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("If this function never depends on the next_state parameter for its computation, it is recommended to\nindicate it by overriding "),a("code",[t._v("Constraint._is_constraint_dependent_on_next_state_()")]),t._v(" to return False. This\ninformation can then be exploited by solvers to avoid computing next state to evaluate the constraint (more\nefficient).")])]),t._v(" "),a("h4",{attrs:{id:"parameters-16"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-16"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")]),t._v(" "),a("li",[a("strong",[t._v("next_state")]),t._v(": The next state in which the transition ends (if needed for the computation).")])]),t._v(" "),a("h4",{attrs:{id:"returns-19"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-19"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the constraint is checked (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-constraint-dependent-on-next-state"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-constraint-dependent-on-next-state"}},[t._v("#")]),t._v(" is_constraint_dependent_on_next_state "),a("Badge",{attrs:{text:"Constraint",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_constraint_dependent_on_next_state",sig:{params:[{name:"self"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether this constraint requires the next_state parameter for its computation (cached).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Constraint.is_constraint_dependent_on_next_state()")]),t._v(" internally\ncalls "),a("code",[t._v("Constraint._is_constraint_dependent_on_next_state_()")]),t._v(" the first time and automatically caches its value to\nmake future calls more efficient (since the returned value is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-20"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-20"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the constraint computation depends on next_state (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-constraint-dependent-on-next-state-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-constraint-dependent-on-next-state-2"}},[t._v("#")]),t._v(" _is_constraint_dependent_on_next_state_ "),a("Badge",{attrs:{text:"Constraint",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_constraint_dependent_on_next_state_",sig:{params:[{name:"self"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether this constraint requires the next_state parameter for its computation.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Constraint.is_constraint_dependent_on_next_state()")]),t._v(", the\ndifference being that the result is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-21"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-21"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the constraint computation depends on next_state (False otherwise).")]),t._v(" "),a("h2",{attrs:{id:"implicitconstraint"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#implicitconstraint"}},[t._v("#")]),t._v(" ImplicitConstraint")]),t._v(" "),a("p",[t._v("A constraint formalized implicitly, i.e. by a black-box check() function.")]),t._v(" "),a("h3",{attrs:{id:"constructor-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#constructor-5"}},[t._v("#")]),t._v(" Constructor "),a("Badge",{attrs:{text:"ImplicitConstraint",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"ImplicitConstraint",sig:{params:[{name:"check_function",annotation:"Callable[[D.T_memory, D.T_event, Optional[D.T_state]], bool]"},{name:"depends_on_next_state",default:"True",annotation:"bool"}],return:"None"}}}),t._v(" "),a("p",[t._v("Initialize ImplicitConstraint.")]),t._v(" "),a("h4",{attrs:{id:"parameters-17"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-17"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("check_function")]),t._v(": The check() function to use.")]),t._v(" "),a("li",[a("strong",[t._v("depends_on_next_state")]),t._v(": Whether the check() function requires the next_state parameter for its computation.")])]),t._v(" "),a("h4",{attrs:{id:"example-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#example-5"}},[t._v("#")]),t._v(" Example")]),t._v(" "),a("div",{staticClass:"language-python extra-class"},[a("pre",{pre:!0,attrs:{class:"language-python"}},[a("code",[t._v("constraint "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" ImplicitConstraint"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("lambda")]),t._v(" memory"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" action"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" next_state"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" next_state"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("x "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("%")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("2")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("==")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("h3",{attrs:{id:"check-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#check-2"}},[t._v("#")]),t._v(" check "),a("Badge",{attrs:{text:"Constraint",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"check",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory"},{name:"action",annotation:"D.T_event"},{name:"next_state",default:"None",annotation:"Optional[D.T_state]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check this constraint.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("If this function never depends on the next_state parameter for its computation, it is recommended to\nindicate it by overriding "),a("code",[t._v("Constraint._is_constraint_dependent_on_next_state_()")]),t._v(" to return False. This\ninformation can then be exploited by solvers to avoid computing next state to evaluate the constraint (more\nefficient).")])]),t._v(" "),a("h4",{attrs:{id:"parameters-18"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-18"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")]),t._v(" "),a("li",[a("strong",[t._v("next_state")]),t._v(": The next state in which the transition ends (if needed for the computation).")])]),t._v(" "),a("h4",{attrs:{id:"returns-22"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-22"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the constraint is checked (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-constraint-dependent-on-next-state-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-constraint-dependent-on-next-state-3"}},[t._v("#")]),t._v(" is_constraint_dependent_on_next_state "),a("Badge",{attrs:{text:"Constraint",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_constraint_dependent_on_next_state",sig:{params:[{name:"self"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether this constraint requires the next_state parameter for its computation (cached).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Constraint.is_constraint_dependent_on_next_state()")]),t._v(" internally\ncalls "),a("code",[t._v("Constraint._is_constraint_dependent_on_next_state_()")]),t._v(" the first time and automatically caches its value to\nmake future calls more efficient (since the returned value is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-23"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-23"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the constraint computation depends on next_state (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-constraint-dependent-on-next-state-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-constraint-dependent-on-next-state-4"}},[t._v("#")]),t._v(" _is_constraint_dependent_on_next_state_ "),a("Badge",{attrs:{text:"Constraint",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_constraint_dependent_on_next_state_",sig:{params:[{name:"self"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether this constraint requires the next_state parameter for its computation.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Constraint.is_constraint_dependent_on_next_state()")]),t._v(", the\ndifference being that the result is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-24"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-24"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the constraint computation depends on next_state (False otherwise).")]),t._v(" "),a("h2",{attrs:{id:"boundconstraint"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#boundconstraint"}},[t._v("#")]),t._v(" BoundConstraint")]),t._v(" "),a("p",[t._v("A constraint characterized by an evaluation function, an inequality and a bound.")]),t._v(" "),a("h4",{attrs:{id:"example-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#example-6"}},[t._v("#")]),t._v(" Example")]),t._v(" "),a("p",[t._v("A BoundConstraint with inequality '>=' is checked if (and only if) its "),a("code",[t._v("BoundConstraint.evaluate()")]),t._v(" function returns\na float greater than or equal to its bound.")]),t._v(" "),a("h3",{attrs:{id:"constructor-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#constructor-6"}},[t._v("#")]),t._v(" Constructor "),a("Badge",{attrs:{text:"BoundConstraint",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"BoundConstraint",sig:{params:[{name:"evaluate_function",annotation:"Callable[[D.T_memory, D.T_event, Optional[D.T_state]], float]"},{name:"inequality",annotation:"str"},{name:"bound",annotation:"float"},{name:"depends_on_next_state",default:"True",annotation:"bool"}],return:"None"}}}),t._v(" "),a("p",[t._v("Initialize BoundConstraint.")]),t._v(" "),a("h4",{attrs:{id:"parameters-19"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-19"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("evaluate_function")]),t._v(": The evaluate() function to use.")]),t._v(" "),a("li",[a("strong",[t._v("inequality")]),t._v(": A string ('<', '<=', '>' or '>=') describing the constraint inequality.")]),t._v(" "),a("li",[a("strong",[t._v("bound")]),t._v(": The bound of the constraint.")]),t._v(" "),a("li",[a("strong",[t._v("depends_on_next_state")]),t._v(": Whether the evaluate() function requires the next_state parameter for its computation.")])]),t._v(" "),a("h4",{attrs:{id:"example-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#example-7"}},[t._v("#")]),t._v(" Example")]),t._v(" "),a("div",{staticClass:"language-python extra-class"},[a("pre",{pre:!0,attrs:{class:"language-python"}},[a("code",[t._v("constraint "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" BoundConstraint"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("lambda")]),t._v(" memory"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" action"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" next_state"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" next_state"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("x"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'>'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("5.")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("h3",{attrs:{id:"check-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#check-3"}},[t._v("#")]),t._v(" check "),a("Badge",{attrs:{text:"Constraint",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"check",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory"},{name:"action",annotation:"D.T_event"},{name:"next_state",default:"None",annotation:"Optional[D.T_state]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check this constraint.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("If this function never depends on the next_state parameter for its computation, it is recommended to\nindicate it by overriding "),a("code",[t._v("Constraint._is_constraint_dependent_on_next_state_()")]),t._v(" to return False. This\ninformation can then be exploited by solvers to avoid computing next state to evaluate the constraint (more\nefficient).")])]),t._v(" "),a("h4",{attrs:{id:"parameters-20"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-20"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")]),t._v(" "),a("li",[a("strong",[t._v("next_state")]),t._v(": The next state in which the transition ends (if needed for the computation).")])]),t._v(" "),a("h4",{attrs:{id:"returns-25"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-25"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the constraint is checked (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"evaluate"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#evaluate"}},[t._v("#")]),t._v(" evaluate "),a("Badge",{attrs:{text:"BoundConstraint",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"evaluate",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory"},{name:"action",annotation:"D.T_event"},{name:"next_state",default:"None",annotation:"Optional[D.T_state]"}],return:"float"}}}),t._v(" "),a("p",[t._v("Evaluate the left side of this BoundConstraint.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("If this function never depends on the next_state parameter for its computation, it is recommended to\nindicate it by overriding "),a("code",[t._v("Constraint._is_constraint_dependent_on_next_state_()")]),t._v(" to return False. This\ninformation can then be exploited by solvers to avoid computing next state to evaluate the constraint (more\nefficient).")])]),t._v(" "),a("h4",{attrs:{id:"parameters-21"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-21"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")]),t._v(" "),a("li",[a("strong",[t._v("next_state")]),t._v(": The next state in which the transition ends (if needed for the computation).")])]),t._v(" "),a("h4",{attrs:{id:"returns-26"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-26"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The float value resulting from the evaluation.")]),t._v(" "),a("h3",{attrs:{id:"get-bound"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-bound"}},[t._v("#")]),t._v(" get_bound "),a("Badge",{attrs:{text:"BoundConstraint",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_bound",sig:{params:[{name:"self"}],return:"float"}}}),t._v(" "),a("p",[t._v("Get the bound of the constraint.")]),t._v(" "),a("h4",{attrs:{id:"returns-27"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-27"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The constraint bound.")]),t._v(" "),a("h3",{attrs:{id:"get-inequality"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-inequality"}},[t._v("#")]),t._v(" get_inequality "),a("Badge",{attrs:{text:"BoundConstraint",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_inequality",sig:{params:[{name:"self"}],return:"str"}}}),t._v(" "),a("p",[t._v("Get the string ('<', '<=', '>' or '>=') describing the constraint inequality.")]),t._v(" "),a("h4",{attrs:{id:"returns-28"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-28"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The string describing the inequality.")]),t._v(" "),a("h3",{attrs:{id:"is-constraint-dependent-on-next-state-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-constraint-dependent-on-next-state-5"}},[t._v("#")]),t._v(" is_constraint_dependent_on_next_state "),a("Badge",{attrs:{text:"Constraint",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_constraint_dependent_on_next_state",sig:{params:[{name:"self"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether this constraint requires the next_state parameter for its computation (cached).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Constraint.is_constraint_dependent_on_next_state()")]),t._v(" internally\ncalls "),a("code",[t._v("Constraint._is_constraint_dependent_on_next_state_()")]),t._v(" the first time and automatically caches its value to\nmake future calls more efficient (since the returned value is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-29"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-29"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the constraint computation depends on next_state (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-constraint-dependent-on-next-state-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-constraint-dependent-on-next-state-6"}},[t._v("#")]),t._v(" _is_constraint_dependent_on_next_state_ "),a("Badge",{attrs:{text:"Constraint",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_constraint_dependent_on_next_state_",sig:{params:[{name:"self"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether this constraint requires the next_state parameter for its computation.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Constraint.is_constraint_dependent_on_next_state()")]),t._v(", the\ndifference being that the result is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-30"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-30"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the constraint computation depends on next_state (False otherwise).")])],1)}),[],!1,null,null,null);e.default=r.exports}}]); \ No newline at end of file diff --git a/assets/js/58.da8381b7.js b/assets/js/58.46dbeb86.js similarity index 99% rename from assets/js/58.da8381b7.js rename to assets/js/58.46dbeb86.js index 47e56a5628..3b4be2a5a8 100644 --- a/assets/js/58.da8381b7.js +++ b/assets/js/58.46dbeb86.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[58],{590:function(t,e,a){"use strict";a.r(e);var s=a(38),r=Object(s.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"domains"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#domains"}},[t._v("#")]),t._v(" domains")]),t._v(" "),a("p",[t._v("This module contains base classes for quickly building domains.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("Domain specification")]),t._v(" "),a("skdecide-summary")],1),t._v(" "),a("h2",{attrs:{id:"domain"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#domain"}},[t._v("#")]),t._v(" Domain")]),t._v(" "),a("p",[t._v("This is the highest level domain class (inheriting top-level class for each mandatory domain characteristic).")]),t._v(" "),a("p",[t._v("This helper class can be used as the main base class for domains.")]),t._v(" "),a("p",[t._v("Typical use:")]),t._v(" "),a("div",{staticClass:"language-python extra-class"},[a("pre",{pre:!0,attrs:{class:"language-python"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("class")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("D")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("Domain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("p",[t._v('with "..." replaced when needed by a number of classes from following domain characteristics (the ones in\nparentheses are optional):')]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("agent")]),t._v(": MultiAgent -> SingleAgent")]),t._v(" "),a("li",[a("strong",[t._v("concurrency")]),t._v(": Parallel -> Sequential")]),t._v(" "),a("li",[a("strong",[t._v("(constraints)")]),t._v(": Constrained")]),t._v(" "),a("li",[a("strong",[t._v("dynamics")]),t._v(": Environment -> Simulation -> UncertainTransitions -> EnumerableTransitions\n-> DeterministicTransitions")]),t._v(" "),a("li",[a("strong",[t._v("events")]),t._v(": Events -> Actions -> UnrestrictedActions")]),t._v(" "),a("li",[a("strong",[t._v("(goals)")]),t._v(": Goals")]),t._v(" "),a("li",[a("strong",[t._v("(initialization)")]),t._v(": Initializable -> UncertainInitialized -> DeterministicInitialized")]),t._v(" "),a("li",[a("strong",[t._v("memory")]),t._v(": History -> FiniteHistory -> Markovian -> Memoryless")]),t._v(" "),a("li",[a("strong",[t._v("observability")]),t._v(": PartiallyObservable -> TransformedObservable -> FullyObservable")]),t._v(" "),a("li",[a("strong",[t._v("(renderability)")]),t._v(": Renderable")]),t._v(" "),a("li",[a("strong",[t._v("value")]),t._v(": Rewards -> PositiveCosts")])]),t._v(" "),a("h3",{attrs:{id:"check-value"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#check-value"}},[t._v("#")]),t._v(" check_value "),a("Badge",{attrs:{text:"Rewards",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"check_value",sig:{params:[{name:"self"},{name:"value",annotation:"Value[D.T_value]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that a value is compliant with its reward specification.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("This function returns always True by default because any kind of reward should be accepted at this level.")])]),t._v(" "),a("h4",{attrs:{id:"parameters"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("value")]),t._v(": The value to check.")])]),t._v(" "),a("h4",{attrs:{id:"returns"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the value is compliant (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"get-action-space"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space"}},[t._v("#")]),t._v(" get_action_space "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_action_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) domain action space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.get_action_space()")]),t._v(" internally calls "),a("code",[t._v("Events._get_action_space_()")]),t._v(" the first time and\nautomatically caches its value to make future calls more efficient (since the action space is assumed to be\nconstant).")]),t._v(" "),a("h4",{attrs:{id:"returns-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-2"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The action space.")]),t._v(" "),a("h3",{attrs:{id:"get-applicable-actions"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions"}},[t._v("#")]),t._v(" get_applicable_actions "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_applicable_actions",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history), or in\nthe internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.get_applicable_actions()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_applicable_actions()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-2"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-3"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of applicable actions.")]),t._v(" "),a("h3",{attrs:{id:"get-enabled-events"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events"}},[t._v("#")]),t._v(" get_enabled_events "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_enabled_events",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"Space[D.T_event]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory), or in the internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.get_enabled_events()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_enabled_events()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead of\nthe memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-3"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-4"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of enabled events.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-distribution"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-distribution"}},[t._v("#")]),t._v(" get_observation_distribution "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_observation_distribution",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"Distribution[D.T_agent[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the probability distribution of the observation given a state and action.")]),t._v(" "),a("p",[t._v("In mathematical terms (discrete case), given an action "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.197ex",height:"1.02ex",viewBox:"0 -441 529 451"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})])])])])]),t._v(", this function represents: "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.078ex",height:"2.262ex",viewBox:"0 -750 4012.7 1000"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"50",d:"M287 628Q287 635 230 637Q206 637 199 638T192 648Q192 649 194 659Q200 679 203 681T397 683Q587 682 600 680Q664 669 707 631T751 530Q751 453 685 389Q616 321 507 303Q500 302 402 301H307L277 182Q247 66 247 59Q247 55 248 54T255 50T272 48T305 46H336Q342 37 342 35Q342 19 335 5Q330 0 319 0Q316 0 282 1T182 2Q120 2 87 2T51 1Q33 1 33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM645 554Q645 567 643 575T634 597T609 619T560 635Q553 636 480 637Q463 637 445 637T416 636T404 636Q391 635 386 627Q384 621 367 550T332 412T314 344Q314 342 395 342H407H430Q542 342 590 392Q617 419 631 471T645 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(751, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(1140, 0)"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1903, 0)"}},[a("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(2181, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2650, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(3094.7, 0)"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3623.7, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(",\nwhere "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.05ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.726ex",height:"1.643ex",viewBox:"0 -704 763 726"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})])])])])]),t._v(" is the random variable of the observation.")],1),t._v(" "),a("h4",{attrs:{id:"parameters-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-4"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-5"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-space"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space"}},[t._v("#")]),t._v(" get_observation_space "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_observation_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) observation space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("PartiallyObservable.get_observation_space()")]),t._v(" internally\ncalls "),a("code",[t._v("PartiallyObservable._get_observation_space_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the observation space is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-6"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The observation space.")]),t._v(" "),a("h3",{attrs:{id:"is-action"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-action"}},[t._v("#")]),t._v(" is_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_action",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an event is an action (i.e. a controllable event for the agents).")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\naction space provided by "),a("code",[t._v("Events.get_action_space()")]),t._v(", but it can be overridden for faster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-5"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("event")]),t._v(": The event to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-7"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is an action (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-applicable-action"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action"}},[t._v("#")]),t._v(" is_applicable_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_applicable_action",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an action is applicable in the given memory (state or history), or in the internal one if\nomitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.is_applicable_action()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_applicable_action()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead\nof the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-6"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-8"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the action is applicable (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-enabled-event"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event"}},[t._v("#")]),t._v(" is_enabled_event "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_enabled_event",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an uncontrollable event is enabled in the given memory (state or history), or in the\ninternal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.is_enabled_event()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_enabled_event()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead of\nthe memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-7"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-9"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is enabled (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-observation"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-observation"}},[t._v("#")]),t._v(" is_observation "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_observation",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that an observation indeed belongs to the domain observation space.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\nobservation space provided by "),a("code",[t._v("PartiallyObservable.get_observation_space()")]),t._v(", but it can be overridden for\nfaster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-8"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-10"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the observation belongs to the domain observation space (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"solve-with"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#solve-with"}},[t._v("#")]),t._v(" solve_with "),a("Badge",{attrs:{text:"Domain",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"solve_with",sig:{params:[{name:"solver",annotation:"Solver"},{name:"domain_factory",default:"None",annotation:"Optional[Callable[[], Domain]]"},{name:"load_path",default:"None",annotation:"Optional[str]"}],return:"Solver"}}}),t._v(" "),a("p",[t._v("Solve the domain with a new or loaded solver and return it auto-cast to the level of the domain.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Solver.check_domain()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Solver._check_domain_additional()")]),t._v(' (which returns True by default but can be overridden to define\nspecific checks in addition to the "domain requirements"). The boilerplate code automatically checks whether all\ndomain requirements are met.')]),t._v(" "),a("h4",{attrs:{id:"parameters-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-9"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("solver")]),t._v(": The solver.")]),t._v(" "),a("li",[a("strong",[t._v("domain_factory")]),t._v(": A callable with no argument returning the domain to solve (factory is the domain class if None).")]),t._v(" "),a("li",[a("strong",[t._v("load_path")]),t._v(": The path to restore the solver state from (if None, the solving process will be launched instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-11"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The new solver (auto-cast to the level of the domain).")]),t._v(" "),a("h3",{attrs:{id:"step"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#step"}},[t._v("#")]),t._v(" step "),a("Badge",{attrs:{text:"Environment",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"step",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Run one step of the environment's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Environment.step()")]),t._v(" provides some boilerplate code and internally calls "),a("code",[t._v("Environment._step()")]),t._v(" (which\nreturns a transition outcome). The boilerplate code automatically stores next state into the "),a("code",[t._v("_memory")]),t._v(" attribute\nand samples a corresponding observation.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing environment needs to be wrapped instead of implemented fully in scikit-decide (e.g. compiled\nATARI games), it is recommended to overwrite "),a("code",[t._v("Environment.step()")]),t._v(" to call the external environment and not\nuse the "),a("code",[t._v("Environment._step()")]),t._v(" helper function.")])]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Before calling "),a("code",[t._v("Environment.step()")]),t._v(" the first time or when the end of an episode is\nreached, "),a("code",[t._v("Initializable.reset()")]),t._v(" must be called to reset the environment's state.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-10"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the current memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-12"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of this step.")]),t._v(" "),a("h3",{attrs:{id:"check-value-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#check-value-2"}},[t._v("#")]),t._v(" _check_value "),a("Badge",{attrs:{text:"Rewards",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_check_value",sig:{params:[{name:"self"},{name:"value",annotation:"Value[D.T_value]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that a value is compliant with its reward specification.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("This function returns always True by default because any kind of reward should be accepted at this level.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-11"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("value")]),t._v(": The value to check.")])]),t._v(" "),a("h4",{attrs:{id:"returns-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-13"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the value is compliant (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"get-action-space-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-2"}},[t._v("#")]),t._v(" _get_action_space "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_action_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) domain action space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._get_action_space()")]),t._v(" internally calls "),a("code",[t._v("Events._get_action_space_()")]),t._v(" the first time and\nautomatically caches its value to make future calls more efficient (since the action space is assumed to be\nconstant).")]),t._v(" "),a("h4",{attrs:{id:"returns-14"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-14"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The action space.")]),t._v(" "),a("h3",{attrs:{id:"get-action-space-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-3"}},[t._v("#")]),t._v(" _get_action_space_ "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_action_space_",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the domain action space (finite or infinite set).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._get_action_space()")]),t._v(", the difference being that the\nresult is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-15"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-15"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The action space.")]),t._v(" "),a("h3",{attrs:{id:"get-applicable-actions-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-2"}},[t._v("#")]),t._v(" _get_applicable_actions "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_applicable_actions",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history), or in\nthe internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._get_applicable_actions()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_applicable_actions_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-12"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-16"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-16"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of applicable actions.")]),t._v(" "),a("h3",{attrs:{id:"get-applicable-actions-from"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-from"}},[t._v("#")]),t._v(" _get_applicable_actions_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_applicable_actions_from",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._get_applicable_actions()")]),t._v(", the difference being that\nthe memory parameter is mandatory here.")]),t._v(" "),a("h4",{attrs:{id:"parameters-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-13"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-17"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-17"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of applicable actions.")]),t._v(" "),a("h3",{attrs:{id:"get-enabled-events-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-2"}},[t._v("#")]),t._v(" _get_enabled_events "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_enabled_events",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"Space[D.T_event]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory), or in the internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._get_enabled_events()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_enabled_events_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-14"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-14"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-18"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-18"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of enabled events.")]),t._v(" "),a("h3",{attrs:{id:"get-enabled-events-from"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-from"}},[t._v("#")]),t._v(" _get_enabled_events_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_enabled_events_from",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"Space[D.T_event]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._get_enabled_events()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("h4",{attrs:{id:"parameters-15"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-15"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-19"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-19"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of enabled events.")]),t._v(" "),a("h3",{attrs:{id:"get-memory-maxlen"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-memory-maxlen"}},[t._v("#")]),t._v(" _get_memory_maxlen "),a("Badge",{attrs:{text:"History",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_memory_maxlen",sig:{params:[{name:"self"}],return:"Optional[int]"}}}),t._v(" "),a("p",[t._v("Get the memory max length (or None if unbounded).")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("This function returns always None by default because the memory length is unbounded at this level.")])]),t._v(" "),a("h4",{attrs:{id:"returns-20"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-20"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The memory max length (or None if unbounded).")]),t._v(" "),a("h3",{attrs:{id:"get-observation-distribution-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-distribution-2"}},[t._v("#")]),t._v(" _get_observation_distribution "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation_distribution",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"Distribution[D.T_agent[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the probability distribution of the observation given a state and action.")]),t._v(" "),a("p",[t._v("In mathematical terms (discrete case), given an action "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.197ex",height:"1.02ex",viewBox:"0 -441 529 451"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})])])])])]),t._v(", this function represents: "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.078ex",height:"2.262ex",viewBox:"0 -750 4012.7 1000"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"50",d:"M287 628Q287 635 230 637Q206 637 199 638T192 648Q192 649 194 659Q200 679 203 681T397 683Q587 682 600 680Q664 669 707 631T751 530Q751 453 685 389Q616 321 507 303Q500 302 402 301H307L277 182Q247 66 247 59Q247 55 248 54T255 50T272 48T305 46H336Q342 37 342 35Q342 19 335 5Q330 0 319 0Q316 0 282 1T182 2Q120 2 87 2T51 1Q33 1 33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM645 554Q645 567 643 575T634 597T609 619T560 635Q553 636 480 637Q463 637 445 637T416 636T404 636Q391 635 386 627Q384 621 367 550T332 412T314 344Q314 342 395 342H407H430Q542 342 590 392Q617 419 631 471T645 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(751, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(1140, 0)"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1903, 0)"}},[a("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(2181, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2650, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(3094.7, 0)"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3623.7, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(",\nwhere "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.05ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.726ex",height:"1.643ex",viewBox:"0 -704 763 726"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})])])])])]),t._v(" is the random variable of the observation.")],1),t._v(" "),a("h4",{attrs:{id:"parameters-16"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-16"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-21"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-21"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-space-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-2"}},[t._v("#")]),t._v(" _get_observation_space "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) observation space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(" internally\ncalls "),a("code",[t._v("PartiallyObservable._get_observation_space_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the observation space is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-22"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-22"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The observation space.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-space-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-3"}},[t._v("#")]),t._v(" _get_observation_space_ "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation_space_",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the observation space (finite or infinite set).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(", the difference\nbeing that the result is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-23"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-23"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The observation space.")]),t._v(" "),a("h3",{attrs:{id:"init-memory"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#init-memory"}},[t._v("#")]),t._v(" _init_memory "),a("Badge",{attrs:{text:"History",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_init_memory",sig:{params:[{name:"self"},{name:"state",default:"None",annotation:"Optional[D.T_state]"}],return:"D.T_memory[D.T_state]"}}}),t._v(" "),a("p",[t._v("Initialize memory (possibly with a state) according to its specification and return it.")]),t._v(" "),a("p",[t._v("This function is automatically called by "),a("code",[t._v("Initializable._reset()")]),t._v(" to reinitialize the internal memory whenever\nthe domain is used as an environment.")]),t._v(" "),a("h4",{attrs:{id:"parameters-17"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-17"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": An optional state to initialize the memory with (typically the initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-24"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-24"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The new initialized memory.")]),t._v(" "),a("h3",{attrs:{id:"is-action-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-action-2"}},[t._v("#")]),t._v(" _is_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_action",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an event is an action (i.e. a controllable event for the agents).")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\naction space provided by "),a("code",[t._v("Events._get_action_space()")]),t._v(", but it can be overridden for faster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-18"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-18"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("event")]),t._v(": The event to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-25"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-25"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is an action (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-applicable-action-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-2"}},[t._v("#")]),t._v(" _is_applicable_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_applicable_action",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an action is applicable in the given memory (state or history), or in the internal one if\nomitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._is_applicable_action()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_applicable_action_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-19"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-19"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-26"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-26"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the action is applicable (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-applicable-action-from"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-from"}},[t._v("#")]),t._v(" _is_applicable_action_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_applicable_action_from",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an action is applicable in the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._is_applicable_action()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the space of\napplicable actions provided by "),a("code",[t._v("Events._get_applicable_actions_from()")]),t._v(", but it can be overridden for faster\nimplementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-20"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-20"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-27"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-27"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the action is applicable (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-enabled-event-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-2"}},[t._v("#")]),t._v(" _is_enabled_event "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_enabled_event",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an uncontrollable event is enabled in the given memory (state or history), or in the\ninternal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._is_enabled_event()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_enabled_event_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead\nof the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-21"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-21"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-28"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-28"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is enabled (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-enabled-event-from"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-from"}},[t._v("#")]),t._v(" _is_enabled_event_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_enabled_event_from",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an event is enabled in the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._is_enabled_event()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the space of\nenabled events provided by "),a("code",[t._v("Events._get_enabled_events_from()")]),t._v(", but it can be overridden for faster\nimplementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-22"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-22"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-29"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-29"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is enabled (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-observation-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-observation-2"}},[t._v("#")]),t._v(" _is_observation "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_observation",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that an observation indeed belongs to the domain observation space.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\nobservation space provided by "),a("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(", but it can be overridden for\nfaster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-23"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-23"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-30"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-30"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the observation belongs to the domain observation space (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"state-step"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#state-step"}},[t._v("#")]),t._v(" _state_step "),a("Badge",{attrs:{text:"Environment",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_state_step",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"TransitionOutcome[D.T_state, D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Compute one step of the transition's dynamics.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Environment._step()")]),t._v(". It focuses on the state level, as opposed\nto the observation one for the latter.")]),t._v(" "),a("h4",{attrs:{id:"parameters-24"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-24"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the current memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-31"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-31"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The transition outcome of this step.")]),t._v(" "),a("h3",{attrs:{id:"step-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#step-2"}},[t._v("#")]),t._v(" _step "),a("Badge",{attrs:{text:"Environment",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_step",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Run one step of the environment's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Environment._step()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Environment._state_step()")]),t._v(" (which returns a transition outcome). The boilerplate code automatically stores\nnext state into the "),a("code",[t._v("_memory")]),t._v(" attribute and samples a corresponding observation.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing environment needs to be wrapped instead of implemented fully in scikit-decide (e.g. compiled\nATARI games), it is recommended to overwrite "),a("code",[t._v("Environment._step()")]),t._v(" to call the external environment and not\nuse the "),a("code",[t._v("Environment._state_step()")]),t._v(" helper function.")])]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Before calling "),a("code",[t._v("Environment._step()")]),t._v(" the first time or when the end of an episode is\nreached, "),a("code",[t._v("Initializable._reset()")]),t._v(" must be called to reset the environment's state.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-25"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-25"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the current memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-32"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-32"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of this step.")]),t._v(" "),a("h2",{attrs:{id:"rldomain"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#rldomain"}},[t._v("#")]),t._v(" RLDomain")]),t._v(" "),a("p",[t._v("This is a typical Reinforcement Learning domain class.")]),t._v(" "),a("p",[t._v("This helper class can be used as an alternate base class for domains, inheriting the following:")]),t._v(" "),a("ul",[a("li",[t._v("Domain")]),t._v(" "),a("li",[t._v("SingleAgent")]),t._v(" "),a("li",[t._v("Sequential")]),t._v(" "),a("li",[t._v("Environment")]),t._v(" "),a("li",[t._v("Actions")]),t._v(" "),a("li",[t._v("Initializable")]),t._v(" "),a("li",[t._v("Markovian")]),t._v(" "),a("li",[t._v("TransformedObservable")]),t._v(" "),a("li",[t._v("Rewards")])]),t._v(" "),a("p",[t._v("Typical use:")]),t._v(" "),a("div",{staticClass:"language-python extra-class"},[a("pre",{pre:!0,attrs:{class:"language-python"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("class")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("D")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("RLDomain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("It is also possible to refine any alternate base class, like for instance:")]),t._v(" "),a("div",{staticClass:"language-python extra-class"},[a("pre",{pre:!0,attrs:{class:"language-python"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("class")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("D")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("RLDomain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" FullyObservable"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])])]),t._v(" "),a("h3",{attrs:{id:"check-value-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#check-value-3"}},[t._v("#")]),t._v(" check_value "),a("Badge",{attrs:{text:"Rewards",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"check_value",sig:{params:[{name:"self"},{name:"value",annotation:"Value[D.T_value]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that a value is compliant with its reward specification.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("This function returns always True by default because any kind of reward should be accepted at this level.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-26"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-26"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("value")]),t._v(": The value to check.")])]),t._v(" "),a("h4",{attrs:{id:"returns-33"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-33"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the value is compliant (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"get-action-space-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-4"}},[t._v("#")]),t._v(" get_action_space "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_action_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) domain action space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.get_action_space()")]),t._v(" internally calls "),a("code",[t._v("Events._get_action_space_()")]),t._v(" the first time and\nautomatically caches its value to make future calls more efficient (since the action space is assumed to be\nconstant).")]),t._v(" "),a("h4",{attrs:{id:"returns-34"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-34"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The action space.")]),t._v(" "),a("h3",{attrs:{id:"get-applicable-actions-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-3"}},[t._v("#")]),t._v(" get_applicable_actions "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_applicable_actions",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history), or in\nthe internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.get_applicable_actions()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_applicable_actions()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-27"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-27"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-35"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-35"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of applicable actions.")]),t._v(" "),a("h3",{attrs:{id:"get-enabled-events-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-3"}},[t._v("#")]),t._v(" get_enabled_events "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_enabled_events",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"Space[D.T_event]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory), or in the internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.get_enabled_events()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_enabled_events()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead of\nthe memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-28"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-28"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-36"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-36"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of enabled events.")]),t._v(" "),a("h3",{attrs:{id:"get-observation"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation"}},[t._v("#")]),t._v(" get_observation "),a("Badge",{attrs:{text:"TransformedObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_observation",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Get the deterministic observation given a state and action.")]),t._v(" "),a("h4",{attrs:{id:"parameters-29"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-29"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-37"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-37"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-distribution-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-distribution-3"}},[t._v("#")]),t._v(" get_observation_distribution "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_observation_distribution",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"Distribution[D.T_agent[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the probability distribution of the observation given a state and action.")]),t._v(" "),a("p",[t._v("In mathematical terms (discrete case), given an action "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.197ex",height:"1.02ex",viewBox:"0 -441 529 451"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})])])])])]),t._v(", this function represents: "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.078ex",height:"2.262ex",viewBox:"0 -750 4012.7 1000"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"50",d:"M287 628Q287 635 230 637Q206 637 199 638T192 648Q192 649 194 659Q200 679 203 681T397 683Q587 682 600 680Q664 669 707 631T751 530Q751 453 685 389Q616 321 507 303Q500 302 402 301H307L277 182Q247 66 247 59Q247 55 248 54T255 50T272 48T305 46H336Q342 37 342 35Q342 19 335 5Q330 0 319 0Q316 0 282 1T182 2Q120 2 87 2T51 1Q33 1 33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM645 554Q645 567 643 575T634 597T609 619T560 635Q553 636 480 637Q463 637 445 637T416 636T404 636Q391 635 386 627Q384 621 367 550T332 412T314 344Q314 342 395 342H407H430Q542 342 590 392Q617 419 631 471T645 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(751, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(1140, 0)"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1903, 0)"}},[a("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(2181, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2650, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(3094.7, 0)"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3623.7, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(",\nwhere "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.05ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.726ex",height:"1.643ex",viewBox:"0 -704 763 726"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})])])])])]),t._v(" is the random variable of the observation.")],1),t._v(" "),a("h4",{attrs:{id:"parameters-30"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-30"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-38"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-38"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-space-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-4"}},[t._v("#")]),t._v(" get_observation_space "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_observation_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) observation space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("PartiallyObservable.get_observation_space()")]),t._v(" internally\ncalls "),a("code",[t._v("PartiallyObservable._get_observation_space_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the observation space is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-39"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-39"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The observation space.")]),t._v(" "),a("h3",{attrs:{id:"is-action-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-action-3"}},[t._v("#")]),t._v(" is_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_action",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an event is an action (i.e. a controllable event for the agents).")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\naction space provided by "),a("code",[t._v("Events.get_action_space()")]),t._v(", but it can be overridden for faster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-31"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-31"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("event")]),t._v(": The event to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-40"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-40"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is an action (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-applicable-action-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-3"}},[t._v("#")]),t._v(" is_applicable_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_applicable_action",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an action is applicable in the given memory (state or history), or in the internal one if\nomitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.is_applicable_action()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_applicable_action()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead\nof the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-32"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-32"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-41"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-41"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the action is applicable (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-enabled-event-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-3"}},[t._v("#")]),t._v(" is_enabled_event "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_enabled_event",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an uncontrollable event is enabled in the given memory (state or history), or in the\ninternal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.is_enabled_event()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_enabled_event()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead of\nthe memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-33"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-33"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-42"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-42"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is enabled (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-observation-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-observation-3"}},[t._v("#")]),t._v(" is_observation "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_observation",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that an observation indeed belongs to the domain observation space.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\nobservation space provided by "),a("code",[t._v("PartiallyObservable.get_observation_space()")]),t._v(", but it can be overridden for\nfaster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-34"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-34"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-43"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-43"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the observation belongs to the domain observation space (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"reset"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#reset"}},[t._v("#")]),t._v(" reset "),a("Badge",{attrs:{text:"Initializable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"reset",sig:{params:[{name:"self"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Reset the state of the environment and return an initial observation.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Initializable.reset()")]),t._v(" provides some boilerplate code and internally calls "),a("code",[t._v("Initializable._reset()")]),t._v("\n(which returns an initial state). The boilerplate code automatically stores the initial state into the "),a("code",[t._v("_memory")]),t._v("\nattribute and samples a corresponding observation.")]),t._v(" "),a("h4",{attrs:{id:"returns-44"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-44"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("An initial observation.")]),t._v(" "),a("h3",{attrs:{id:"solve-with-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#solve-with-2"}},[t._v("#")]),t._v(" solve_with "),a("Badge",{attrs:{text:"Domain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"solve_with",sig:{params:[{name:"solver",annotation:"Solver"},{name:"domain_factory",default:"None",annotation:"Optional[Callable[[], Domain]]"},{name:"load_path",default:"None",annotation:"Optional[str]"}],return:"Solver"}}}),t._v(" "),a("p",[t._v("Solve the domain with a new or loaded solver and return it auto-cast to the level of the domain.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Solver.check_domain()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Solver._check_domain_additional()")]),t._v(' (which returns True by default but can be overridden to define\nspecific checks in addition to the "domain requirements"). The boilerplate code automatically checks whether all\ndomain requirements are met.')]),t._v(" "),a("h4",{attrs:{id:"parameters-35"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-35"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("solver")]),t._v(": The solver.")]),t._v(" "),a("li",[a("strong",[t._v("domain_factory")]),t._v(": A callable with no argument returning the domain to solve (factory is the domain class if None).")]),t._v(" "),a("li",[a("strong",[t._v("load_path")]),t._v(": The path to restore the solver state from (if None, the solving process will be launched instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-45"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-45"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The new solver (auto-cast to the level of the domain).")]),t._v(" "),a("h3",{attrs:{id:"step-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#step-3"}},[t._v("#")]),t._v(" step "),a("Badge",{attrs:{text:"Environment",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"step",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Run one step of the environment's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Environment.step()")]),t._v(" provides some boilerplate code and internally calls "),a("code",[t._v("Environment._step()")]),t._v(" (which\nreturns a transition outcome). The boilerplate code automatically stores next state into the "),a("code",[t._v("_memory")]),t._v(" attribute\nand samples a corresponding observation.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing environment needs to be wrapped instead of implemented fully in scikit-decide (e.g. compiled\nATARI games), it is recommended to overwrite "),a("code",[t._v("Environment.step()")]),t._v(" to call the external environment and not\nuse the "),a("code",[t._v("Environment._step()")]),t._v(" helper function.")])]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Before calling "),a("code",[t._v("Environment.step()")]),t._v(" the first time or when the end of an episode is\nreached, "),a("code",[t._v("Initializable.reset()")]),t._v(" must be called to reset the environment's state.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-36"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-36"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the current memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-46"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-46"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of this step.")]),t._v(" "),a("h3",{attrs:{id:"check-value-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#check-value-4"}},[t._v("#")]),t._v(" _check_value "),a("Badge",{attrs:{text:"Rewards",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_check_value",sig:{params:[{name:"self"},{name:"value",annotation:"Value[D.T_value]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that a value is compliant with its reward specification.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("This function returns always True by default because any kind of reward should be accepted at this level.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-37"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-37"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("value")]),t._v(": The value to check.")])]),t._v(" "),a("h4",{attrs:{id:"returns-47"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-47"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the value is compliant (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"get-action-space-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-5"}},[t._v("#")]),t._v(" _get_action_space "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_action_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) domain action space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._get_action_space()")]),t._v(" internally calls "),a("code",[t._v("Events._get_action_space_()")]),t._v(" the first time and\nautomatically caches its value to make future calls more efficient (since the action space is assumed to be\nconstant).")]),t._v(" "),a("h4",{attrs:{id:"returns-48"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-48"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The action space.")]),t._v(" "),a("h3",{attrs:{id:"get-action-space-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-6"}},[t._v("#")]),t._v(" _get_action_space_ "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_action_space_",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the domain action space (finite or infinite set).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._get_action_space()")]),t._v(", the difference being that the\nresult is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-49"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-49"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The action space.")]),t._v(" "),a("h3",{attrs:{id:"get-applicable-actions-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-4"}},[t._v("#")]),t._v(" _get_applicable_actions "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_applicable_actions",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history), or in\nthe internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._get_applicable_actions()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_applicable_actions_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-38"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-38"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-50"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-50"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of applicable actions.")]),t._v(" "),a("h3",{attrs:{id:"get-applicable-actions-from-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-from-2"}},[t._v("#")]),t._v(" _get_applicable_actions_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_applicable_actions_from",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._get_applicable_actions()")]),t._v(", the difference being that\nthe memory parameter is mandatory here.")]),t._v(" "),a("h4",{attrs:{id:"parameters-39"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-39"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-51"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-51"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of applicable actions.")]),t._v(" "),a("h3",{attrs:{id:"get-enabled-events-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-4"}},[t._v("#")]),t._v(" _get_enabled_events "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_enabled_events",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"Space[D.T_event]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory), or in the internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._get_enabled_events()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_enabled_events_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-40"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-40"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-52"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-52"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of enabled events.")]),t._v(" "),a("h3",{attrs:{id:"get-enabled-events-from-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-from-2"}},[t._v("#")]),t._v(" _get_enabled_events_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_enabled_events_from",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"Space[D.T_event]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._get_enabled_events()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("h4",{attrs:{id:"parameters-41"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-41"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-53"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-53"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of enabled events.")]),t._v(" "),a("h3",{attrs:{id:"get-memory-maxlen-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-memory-maxlen-2"}},[t._v("#")]),t._v(" _get_memory_maxlen "),a("Badge",{attrs:{text:"History",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_memory_maxlen",sig:{params:[{name:"self"}],return:"int"}}}),t._v(" "),a("p",[t._v("Get the (cached) memory max length.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("FiniteHistory._get_memory_maxlen()")]),t._v(" internally calls "),a("code",[t._v("FiniteHistory._get_memory_maxlen_()")]),t._v(" the first\ntime and automatically caches its value to make future calls more efficient (since the memory max length is\nassumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-54"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-54"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The memory max length.")]),t._v(" "),a("h3",{attrs:{id:"get-memory-maxlen-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-memory-maxlen-3"}},[t._v("#")]),t._v(" _get_memory_maxlen_ "),a("Badge",{attrs:{text:"FiniteHistory",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_memory_maxlen_",sig:{params:[{name:"self"}],return:"int"}}}),t._v(" "),a("p",[t._v("Get the memory max length.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("FiniteHistory._get_memory_maxlen()")]),t._v(", the difference being that\nthe result is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-55"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-55"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The memory max length.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-2"}},[t._v("#")]),t._v(" _get_observation "),a("Badge",{attrs:{text:"TransformedObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Get the deterministic observation given a state and action.")]),t._v(" "),a("h4",{attrs:{id:"parameters-42"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-42"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-56"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-56"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-distribution-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-distribution-4"}},[t._v("#")]),t._v(" _get_observation_distribution "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation_distribution",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"Distribution[D.T_agent[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the probability distribution of the observation given a state and action.")]),t._v(" "),a("p",[t._v("In mathematical terms (discrete case), given an action "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.197ex",height:"1.02ex",viewBox:"0 -441 529 451"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})])])])])]),t._v(", this function represents: "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.078ex",height:"2.262ex",viewBox:"0 -750 4012.7 1000"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"50",d:"M287 628Q287 635 230 637Q206 637 199 638T192 648Q192 649 194 659Q200 679 203 681T397 683Q587 682 600 680Q664 669 707 631T751 530Q751 453 685 389Q616 321 507 303Q500 302 402 301H307L277 182Q247 66 247 59Q247 55 248 54T255 50T272 48T305 46H336Q342 37 342 35Q342 19 335 5Q330 0 319 0Q316 0 282 1T182 2Q120 2 87 2T51 1Q33 1 33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM645 554Q645 567 643 575T634 597T609 619T560 635Q553 636 480 637Q463 637 445 637T416 636T404 636Q391 635 386 627Q384 621 367 550T332 412T314 344Q314 342 395 342H407H430Q542 342 590 392Q617 419 631 471T645 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(751, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(1140, 0)"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1903, 0)"}},[a("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(2181, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2650, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(3094.7, 0)"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3623.7, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(",\nwhere "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.05ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.726ex",height:"1.643ex",viewBox:"0 -704 763 726"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})])])])])]),t._v(" is the random variable of the observation.")],1),t._v(" "),a("h4",{attrs:{id:"parameters-43"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-43"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-57"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-57"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-space-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-5"}},[t._v("#")]),t._v(" _get_observation_space "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) observation space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(" internally\ncalls "),a("code",[t._v("PartiallyObservable._get_observation_space_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the observation space is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-58"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-58"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The observation space.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-space-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-6"}},[t._v("#")]),t._v(" _get_observation_space_ "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation_space_",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the observation space (finite or infinite set).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(", the difference\nbeing that the result is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-59"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-59"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The observation space.")]),t._v(" "),a("h3",{attrs:{id:"init-memory-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#init-memory-2"}},[t._v("#")]),t._v(" _init_memory "),a("Badge",{attrs:{text:"History",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_init_memory",sig:{params:[{name:"self"},{name:"state",default:"None",annotation:"Optional[D.T_state]"}],return:"D.T_memory[D.T_state]"}}}),t._v(" "),a("p",[t._v("Initialize memory (possibly with a state) according to its specification and return it.")]),t._v(" "),a("p",[t._v("This function is automatically called by "),a("code",[t._v("Initializable._reset()")]),t._v(" to reinitialize the internal memory whenever\nthe domain is used as an environment.")]),t._v(" "),a("h4",{attrs:{id:"parameters-44"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-44"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": An optional state to initialize the memory with (typically the initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-60"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-60"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The new initialized memory.")]),t._v(" "),a("h3",{attrs:{id:"is-action-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-action-4"}},[t._v("#")]),t._v(" _is_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_action",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an event is an action (i.e. a controllable event for the agents).")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\naction space provided by "),a("code",[t._v("Events._get_action_space()")]),t._v(", but it can be overridden for faster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-45"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-45"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("event")]),t._v(": The event to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-61"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-61"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is an action (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-applicable-action-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-4"}},[t._v("#")]),t._v(" _is_applicable_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_applicable_action",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an action is applicable in the given memory (state or history), or in the internal one if\nomitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._is_applicable_action()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_applicable_action_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-46"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-46"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-62"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-62"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the action is applicable (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-applicable-action-from-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-from-2"}},[t._v("#")]),t._v(" _is_applicable_action_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_applicable_action_from",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an action is applicable in the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._is_applicable_action()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the space of\napplicable actions provided by "),a("code",[t._v("Events._get_applicable_actions_from()")]),t._v(", but it can be overridden for faster\nimplementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-47"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-47"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-63"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-63"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the action is applicable (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-enabled-event-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-4"}},[t._v("#")]),t._v(" _is_enabled_event "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_enabled_event",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an uncontrollable event is enabled in the given memory (state or history), or in the\ninternal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._is_enabled_event()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_enabled_event_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead\nof the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-48"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-48"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-64"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-64"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is enabled (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-enabled-event-from-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-from-2"}},[t._v("#")]),t._v(" _is_enabled_event_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_enabled_event_from",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an event is enabled in the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._is_enabled_event()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the space of\nenabled events provided by "),a("code",[t._v("Events._get_enabled_events_from()")]),t._v(", but it can be overridden for faster\nimplementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-49"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-49"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-65"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-65"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is enabled (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-observation-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-observation-4"}},[t._v("#")]),t._v(" _is_observation "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_observation",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that an observation indeed belongs to the domain observation space.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\nobservation space provided by "),a("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(", but it can be overridden for\nfaster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-50"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-50"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-66"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-66"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the observation belongs to the domain observation space (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"reset-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#reset-2"}},[t._v("#")]),t._v(" _reset "),a("Badge",{attrs:{text:"Initializable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_reset",sig:{params:[{name:"self"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Reset the state of the environment and return an initial observation.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Initializable._reset()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Initializable._state_reset()")]),t._v(" (which returns an initial state). The boilerplate code automatically stores\nthe initial state into the "),a("code",[t._v("_memory")]),t._v(" attribute and samples a corresponding observation.")]),t._v(" "),a("h4",{attrs:{id:"returns-67"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-67"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("An initial observation.")]),t._v(" "),a("h3",{attrs:{id:"state-reset"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#state-reset"}},[t._v("#")]),t._v(" _state_reset "),a("Badge",{attrs:{text:"Initializable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_state_reset",sig:{params:[{name:"self"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("Reset the state of the environment and return an initial state.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Initializable._reset()")]),t._v(". It focuses on the state level, as\nopposed to the observation one for the latter.")]),t._v(" "),a("h4",{attrs:{id:"returns-68"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-68"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("An initial state.")]),t._v(" "),a("h3",{attrs:{id:"state-step-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#state-step-2"}},[t._v("#")]),t._v(" _state_step "),a("Badge",{attrs:{text:"Environment",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_state_step",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"TransitionOutcome[D.T_state, D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Compute one step of the transition's dynamics.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Environment._step()")]),t._v(". It focuses on the state level, as opposed\nto the observation one for the latter.")]),t._v(" "),a("h4",{attrs:{id:"parameters-51"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-51"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the current memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-69"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-69"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The transition outcome of this step.")]),t._v(" "),a("h3",{attrs:{id:"step-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#step-4"}},[t._v("#")]),t._v(" _step "),a("Badge",{attrs:{text:"Environment",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_step",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Run one step of the environment's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Environment._step()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Environment._state_step()")]),t._v(" (which returns a transition outcome). The boilerplate code automatically stores\nnext state into the "),a("code",[t._v("_memory")]),t._v(" attribute and samples a corresponding observation.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing environment needs to be wrapped instead of implemented fully in scikit-decide (e.g. compiled\nATARI games), it is recommended to overwrite "),a("code",[t._v("Environment._step()")]),t._v(" to call the external environment and not\nuse the "),a("code",[t._v("Environment._state_step()")]),t._v(" helper function.")])]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Before calling "),a("code",[t._v("Environment._step()")]),t._v(" the first time or when the end of an episode is\nreached, "),a("code",[t._v("Initializable._reset()")]),t._v(" must be called to reset the environment's state.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-52"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-52"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the current memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-70"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-70"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of this step.")]),t._v(" "),a("h2",{attrs:{id:"multiagentrldomain"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#multiagentrldomain"}},[t._v("#")]),t._v(" MultiAgentRLDomain")]),t._v(" "),a("p",[t._v("This is a typical multi-agent Reinforcement Learning domain class.")]),t._v(" "),a("p",[t._v("This helper class can be used as an alternate base class for domains, inheriting the following:")]),t._v(" "),a("ul",[a("li",[t._v("Domain")]),t._v(" "),a("li",[t._v("MultiAgent")]),t._v(" "),a("li",[t._v("Sequential")]),t._v(" "),a("li",[t._v("Environment")]),t._v(" "),a("li",[t._v("Actions")]),t._v(" "),a("li",[t._v("Initializable")]),t._v(" "),a("li",[t._v("Markovian")]),t._v(" "),a("li",[t._v("TransformedObservable")]),t._v(" "),a("li",[t._v("Rewards")])]),t._v(" "),a("p",[t._v("Typical use:")]),t._v(" "),a("div",{staticClass:"language-python extra-class"},[a("pre",{pre:!0,attrs:{class:"language-python"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("class")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("D")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("RLDomain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("It is also possible to refine any alternate base class, like for instance:")]),t._v(" "),a("div",{staticClass:"language-python extra-class"},[a("pre",{pre:!0,attrs:{class:"language-python"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("class")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("D")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("RLDomain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" FullyObservable"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])])]),t._v(" "),a("h3",{attrs:{id:"check-value-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#check-value-5"}},[t._v("#")]),t._v(" check_value "),a("Badge",{attrs:{text:"Rewards",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"check_value",sig:{params:[{name:"self"},{name:"value",annotation:"Value[D.T_value]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that a value is compliant with its reward specification.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("This function returns always True by default because any kind of reward should be accepted at this level.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-53"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-53"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("value")]),t._v(": The value to check.")])]),t._v(" "),a("h4",{attrs:{id:"returns-71"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-71"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the value is compliant (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"get-action-space-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-7"}},[t._v("#")]),t._v(" get_action_space "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_action_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) domain action space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.get_action_space()")]),t._v(" internally calls "),a("code",[t._v("Events._get_action_space_()")]),t._v(" the first time and\nautomatically caches its value to make future calls more efficient (since the action space is assumed to be\nconstant).")]),t._v(" "),a("h4",{attrs:{id:"returns-72"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-72"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The action space.")]),t._v(" "),a("h3",{attrs:{id:"get-applicable-actions-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-5"}},[t._v("#")]),t._v(" get_applicable_actions "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_applicable_actions",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history), or in\nthe internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.get_applicable_actions()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_applicable_actions()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-54"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-54"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-73"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-73"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of applicable actions.")]),t._v(" "),a("h3",{attrs:{id:"get-enabled-events-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-5"}},[t._v("#")]),t._v(" get_enabled_events "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_enabled_events",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"Space[D.T_event]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory), or in the internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.get_enabled_events()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_enabled_events()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead of\nthe memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-55"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-55"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-74"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-74"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of enabled events.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-3"}},[t._v("#")]),t._v(" get_observation "),a("Badge",{attrs:{text:"TransformedObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_observation",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Get the deterministic observation given a state and action.")]),t._v(" "),a("h4",{attrs:{id:"parameters-56"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-56"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-75"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-75"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-distribution-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-distribution-5"}},[t._v("#")]),t._v(" get_observation_distribution "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_observation_distribution",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"Distribution[D.T_agent[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the probability distribution of the observation given a state and action.")]),t._v(" "),a("p",[t._v("In mathematical terms (discrete case), given an action "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.197ex",height:"1.02ex",viewBox:"0 -441 529 451"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})])])])])]),t._v(", this function represents: "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.078ex",height:"2.262ex",viewBox:"0 -750 4012.7 1000"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"50",d:"M287 628Q287 635 230 637Q206 637 199 638T192 648Q192 649 194 659Q200 679 203 681T397 683Q587 682 600 680Q664 669 707 631T751 530Q751 453 685 389Q616 321 507 303Q500 302 402 301H307L277 182Q247 66 247 59Q247 55 248 54T255 50T272 48T305 46H336Q342 37 342 35Q342 19 335 5Q330 0 319 0Q316 0 282 1T182 2Q120 2 87 2T51 1Q33 1 33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM645 554Q645 567 643 575T634 597T609 619T560 635Q553 636 480 637Q463 637 445 637T416 636T404 636Q391 635 386 627Q384 621 367 550T332 412T314 344Q314 342 395 342H407H430Q542 342 590 392Q617 419 631 471T645 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(751, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(1140, 0)"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1903, 0)"}},[a("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(2181, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2650, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(3094.7, 0)"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3623.7, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(",\nwhere "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.05ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.726ex",height:"1.643ex",viewBox:"0 -704 763 726"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})])])])])]),t._v(" is the random variable of the observation.")],1),t._v(" "),a("h4",{attrs:{id:"parameters-57"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-57"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-76"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-76"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-space-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-7"}},[t._v("#")]),t._v(" get_observation_space "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_observation_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) observation space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("PartiallyObservable.get_observation_space()")]),t._v(" internally\ncalls "),a("code",[t._v("PartiallyObservable._get_observation_space_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the observation space is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-77"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-77"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The observation space.")]),t._v(" "),a("h3",{attrs:{id:"is-action-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-action-5"}},[t._v("#")]),t._v(" is_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_action",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an event is an action (i.e. a controllable event for the agents).")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\naction space provided by "),a("code",[t._v("Events.get_action_space()")]),t._v(", but it can be overridden for faster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-58"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-58"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("event")]),t._v(": The event to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-78"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-78"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is an action (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-applicable-action-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-5"}},[t._v("#")]),t._v(" is_applicable_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_applicable_action",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an action is applicable in the given memory (state or history), or in the internal one if\nomitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.is_applicable_action()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_applicable_action()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead\nof the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-59"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-59"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-79"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-79"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the action is applicable (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-enabled-event-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-5"}},[t._v("#")]),t._v(" is_enabled_event "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_enabled_event",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an uncontrollable event is enabled in the given memory (state or history), or in the\ninternal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.is_enabled_event()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_enabled_event()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead of\nthe memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-60"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-60"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-80"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-80"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is enabled (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-observation-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-observation-5"}},[t._v("#")]),t._v(" is_observation "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_observation",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that an observation indeed belongs to the domain observation space.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\nobservation space provided by "),a("code",[t._v("PartiallyObservable.get_observation_space()")]),t._v(", but it can be overridden for\nfaster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-61"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-61"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-81"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-81"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the observation belongs to the domain observation space (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"reset-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#reset-3"}},[t._v("#")]),t._v(" reset "),a("Badge",{attrs:{text:"Initializable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"reset",sig:{params:[{name:"self"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Reset the state of the environment and return an initial observation.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Initializable.reset()")]),t._v(" provides some boilerplate code and internally calls "),a("code",[t._v("Initializable._reset()")]),t._v("\n(which returns an initial state). The boilerplate code automatically stores the initial state into the "),a("code",[t._v("_memory")]),t._v("\nattribute and samples a corresponding observation.")]),t._v(" "),a("h4",{attrs:{id:"returns-82"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-82"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("An initial observation.")]),t._v(" "),a("h3",{attrs:{id:"solve-with-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#solve-with-3"}},[t._v("#")]),t._v(" solve_with "),a("Badge",{attrs:{text:"Domain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"solve_with",sig:{params:[{name:"solver",annotation:"Solver"},{name:"domain_factory",default:"None",annotation:"Optional[Callable[[], Domain]]"},{name:"load_path",default:"None",annotation:"Optional[str]"}],return:"Solver"}}}),t._v(" "),a("p",[t._v("Solve the domain with a new or loaded solver and return it auto-cast to the level of the domain.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Solver.check_domain()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Solver._check_domain_additional()")]),t._v(' (which returns True by default but can be overridden to define\nspecific checks in addition to the "domain requirements"). The boilerplate code automatically checks whether all\ndomain requirements are met.')]),t._v(" "),a("h4",{attrs:{id:"parameters-62"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-62"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("solver")]),t._v(": The solver.")]),t._v(" "),a("li",[a("strong",[t._v("domain_factory")]),t._v(": A callable with no argument returning the domain to solve (factory is the domain class if None).")]),t._v(" "),a("li",[a("strong",[t._v("load_path")]),t._v(": The path to restore the solver state from (if None, the solving process will be launched instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-83"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-83"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The new solver (auto-cast to the level of the domain).")]),t._v(" "),a("h3",{attrs:{id:"step-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#step-5"}},[t._v("#")]),t._v(" step "),a("Badge",{attrs:{text:"Environment",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"step",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Run one step of the environment's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Environment.step()")]),t._v(" provides some boilerplate code and internally calls "),a("code",[t._v("Environment._step()")]),t._v(" (which\nreturns a transition outcome). The boilerplate code automatically stores next state into the "),a("code",[t._v("_memory")]),t._v(" attribute\nand samples a corresponding observation.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing environment needs to be wrapped instead of implemented fully in scikit-decide (e.g. compiled\nATARI games), it is recommended to overwrite "),a("code",[t._v("Environment.step()")]),t._v(" to call the external environment and not\nuse the "),a("code",[t._v("Environment._step()")]),t._v(" helper function.")])]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Before calling "),a("code",[t._v("Environment.step()")]),t._v(" the first time or when the end of an episode is\nreached, "),a("code",[t._v("Initializable.reset()")]),t._v(" must be called to reset the environment's state.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-63"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-63"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the current memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-84"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-84"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of this step.")]),t._v(" "),a("h3",{attrs:{id:"check-value-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#check-value-6"}},[t._v("#")]),t._v(" _check_value "),a("Badge",{attrs:{text:"Rewards",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_check_value",sig:{params:[{name:"self"},{name:"value",annotation:"Value[D.T_value]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that a value is compliant with its reward specification.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("This function returns always True by default because any kind of reward should be accepted at this level.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-64"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-64"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("value")]),t._v(": The value to check.")])]),t._v(" "),a("h4",{attrs:{id:"returns-85"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-85"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the value is compliant (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"get-action-space-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-8"}},[t._v("#")]),t._v(" _get_action_space "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_action_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) domain action space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._get_action_space()")]),t._v(" internally calls "),a("code",[t._v("Events._get_action_space_()")]),t._v(" the first time and\nautomatically caches its value to make future calls more efficient (since the action space is assumed to be\nconstant).")]),t._v(" "),a("h4",{attrs:{id:"returns-86"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-86"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The action space.")]),t._v(" "),a("h3",{attrs:{id:"get-action-space-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-9"}},[t._v("#")]),t._v(" _get_action_space_ "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_action_space_",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the domain action space (finite or infinite set).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._get_action_space()")]),t._v(", the difference being that the\nresult is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-87"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-87"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The action space.")]),t._v(" "),a("h3",{attrs:{id:"get-applicable-actions-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-6"}},[t._v("#")]),t._v(" _get_applicable_actions "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_applicable_actions",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history), or in\nthe internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._get_applicable_actions()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_applicable_actions_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-65"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-65"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-88"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-88"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of applicable actions.")]),t._v(" "),a("h3",{attrs:{id:"get-applicable-actions-from-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-from-3"}},[t._v("#")]),t._v(" _get_applicable_actions_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_applicable_actions_from",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._get_applicable_actions()")]),t._v(", the difference being that\nthe memory parameter is mandatory here.")]),t._v(" "),a("h4",{attrs:{id:"parameters-66"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-66"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-89"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-89"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of applicable actions.")]),t._v(" "),a("h3",{attrs:{id:"get-enabled-events-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-6"}},[t._v("#")]),t._v(" _get_enabled_events "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_enabled_events",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"Space[D.T_event]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory), or in the internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._get_enabled_events()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_enabled_events_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-67"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-67"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-90"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-90"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of enabled events.")]),t._v(" "),a("h3",{attrs:{id:"get-enabled-events-from-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-from-3"}},[t._v("#")]),t._v(" _get_enabled_events_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_enabled_events_from",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"Space[D.T_event]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._get_enabled_events()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("h4",{attrs:{id:"parameters-68"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-68"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-91"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-91"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of enabled events.")]),t._v(" "),a("h3",{attrs:{id:"get-memory-maxlen-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-memory-maxlen-4"}},[t._v("#")]),t._v(" _get_memory_maxlen "),a("Badge",{attrs:{text:"History",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_memory_maxlen",sig:{params:[{name:"self"}],return:"int"}}}),t._v(" "),a("p",[t._v("Get the (cached) memory max length.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("FiniteHistory._get_memory_maxlen()")]),t._v(" internally calls "),a("code",[t._v("FiniteHistory._get_memory_maxlen_()")]),t._v(" the first\ntime and automatically caches its value to make future calls more efficient (since the memory max length is\nassumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-92"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-92"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The memory max length.")]),t._v(" "),a("h3",{attrs:{id:"get-memory-maxlen-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-memory-maxlen-5"}},[t._v("#")]),t._v(" _get_memory_maxlen_ "),a("Badge",{attrs:{text:"FiniteHistory",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_memory_maxlen_",sig:{params:[{name:"self"}],return:"int"}}}),t._v(" "),a("p",[t._v("Get the memory max length.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("FiniteHistory._get_memory_maxlen()")]),t._v(", the difference being that\nthe result is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-93"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-93"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The memory max length.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-4"}},[t._v("#")]),t._v(" _get_observation "),a("Badge",{attrs:{text:"TransformedObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Get the deterministic observation given a state and action.")]),t._v(" "),a("h4",{attrs:{id:"parameters-69"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-69"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-94"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-94"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-distribution-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-distribution-6"}},[t._v("#")]),t._v(" _get_observation_distribution "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation_distribution",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"Distribution[D.T_agent[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the probability distribution of the observation given a state and action.")]),t._v(" "),a("p",[t._v("In mathematical terms (discrete case), given an action "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.197ex",height:"1.02ex",viewBox:"0 -441 529 451"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})])])])])]),t._v(", this function represents: "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.078ex",height:"2.262ex",viewBox:"0 -750 4012.7 1000"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"50",d:"M287 628Q287 635 230 637Q206 637 199 638T192 648Q192 649 194 659Q200 679 203 681T397 683Q587 682 600 680Q664 669 707 631T751 530Q751 453 685 389Q616 321 507 303Q500 302 402 301H307L277 182Q247 66 247 59Q247 55 248 54T255 50T272 48T305 46H336Q342 37 342 35Q342 19 335 5Q330 0 319 0Q316 0 282 1T182 2Q120 2 87 2T51 1Q33 1 33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM645 554Q645 567 643 575T634 597T609 619T560 635Q553 636 480 637Q463 637 445 637T416 636T404 636Q391 635 386 627Q384 621 367 550T332 412T314 344Q314 342 395 342H407H430Q542 342 590 392Q617 419 631 471T645 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(751, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(1140, 0)"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1903, 0)"}},[a("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(2181, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2650, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(3094.7, 0)"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3623.7, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(",\nwhere "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.05ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.726ex",height:"1.643ex",viewBox:"0 -704 763 726"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})])])])])]),t._v(" is the random variable of the observation.")],1),t._v(" "),a("h4",{attrs:{id:"parameters-70"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-70"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-95"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-95"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-space-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-8"}},[t._v("#")]),t._v(" _get_observation_space "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) observation space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(" internally\ncalls "),a("code",[t._v("PartiallyObservable._get_observation_space_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the observation space is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-96"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-96"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The observation space.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-space-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-9"}},[t._v("#")]),t._v(" _get_observation_space_ "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation_space_",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the observation space (finite or infinite set).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(", the difference\nbeing that the result is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-97"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-97"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The observation space.")]),t._v(" "),a("h3",{attrs:{id:"init-memory-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#init-memory-3"}},[t._v("#")]),t._v(" _init_memory "),a("Badge",{attrs:{text:"History",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_init_memory",sig:{params:[{name:"self"},{name:"state",default:"None",annotation:"Optional[D.T_state]"}],return:"D.T_memory[D.T_state]"}}}),t._v(" "),a("p",[t._v("Initialize memory (possibly with a state) according to its specification and return it.")]),t._v(" "),a("p",[t._v("This function is automatically called by "),a("code",[t._v("Initializable._reset()")]),t._v(" to reinitialize the internal memory whenever\nthe domain is used as an environment.")]),t._v(" "),a("h4",{attrs:{id:"parameters-71"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-71"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": An optional state to initialize the memory with (typically the initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-98"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-98"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The new initialized memory.")]),t._v(" "),a("h3",{attrs:{id:"is-action-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-action-6"}},[t._v("#")]),t._v(" _is_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_action",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an event is an action (i.e. a controllable event for the agents).")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\naction space provided by "),a("code",[t._v("Events._get_action_space()")]),t._v(", but it can be overridden for faster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-72"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-72"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("event")]),t._v(": The event to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-99"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-99"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is an action (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-applicable-action-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-6"}},[t._v("#")]),t._v(" _is_applicable_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_applicable_action",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an action is applicable in the given memory (state or history), or in the internal one if\nomitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._is_applicable_action()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_applicable_action_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-73"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-73"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-100"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-100"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the action is applicable (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-applicable-action-from-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-from-3"}},[t._v("#")]),t._v(" _is_applicable_action_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_applicable_action_from",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an action is applicable in the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._is_applicable_action()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the space of\napplicable actions provided by "),a("code",[t._v("Events._get_applicable_actions_from()")]),t._v(", but it can be overridden for faster\nimplementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-74"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-74"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-101"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-101"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the action is applicable (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-enabled-event-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-6"}},[t._v("#")]),t._v(" _is_enabled_event "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_enabled_event",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an uncontrollable event is enabled in the given memory (state or history), or in the\ninternal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._is_enabled_event()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_enabled_event_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead\nof the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-75"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-75"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-102"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-102"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is enabled (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-enabled-event-from-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-from-3"}},[t._v("#")]),t._v(" _is_enabled_event_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_enabled_event_from",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an event is enabled in the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._is_enabled_event()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the space of\nenabled events provided by "),a("code",[t._v("Events._get_enabled_events_from()")]),t._v(", but it can be overridden for faster\nimplementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-76"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-76"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-103"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-103"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is enabled (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-observation-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-observation-6"}},[t._v("#")]),t._v(" _is_observation "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_observation",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that an observation indeed belongs to the domain observation space.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\nobservation space provided by "),a("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(", but it can be overridden for\nfaster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-77"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-77"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-104"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-104"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the observation belongs to the domain observation space (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"reset-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#reset-4"}},[t._v("#")]),t._v(" _reset "),a("Badge",{attrs:{text:"Initializable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_reset",sig:{params:[{name:"self"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Reset the state of the environment and return an initial observation.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Initializable._reset()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Initializable._state_reset()")]),t._v(" (which returns an initial state). The boilerplate code automatically stores\nthe initial state into the "),a("code",[t._v("_memory")]),t._v(" attribute and samples a corresponding observation.")]),t._v(" "),a("h4",{attrs:{id:"returns-105"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-105"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("An initial observation.")]),t._v(" "),a("h3",{attrs:{id:"state-reset-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#state-reset-2"}},[t._v("#")]),t._v(" _state_reset "),a("Badge",{attrs:{text:"Initializable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_state_reset",sig:{params:[{name:"self"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("Reset the state of the environment and return an initial state.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Initializable._reset()")]),t._v(". It focuses on the state level, as\nopposed to the observation one for the latter.")]),t._v(" "),a("h4",{attrs:{id:"returns-106"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-106"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("An initial state.")]),t._v(" "),a("h3",{attrs:{id:"state-step-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#state-step-3"}},[t._v("#")]),t._v(" _state_step "),a("Badge",{attrs:{text:"Environment",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_state_step",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"TransitionOutcome[D.T_state, D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Compute one step of the transition's dynamics.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Environment._step()")]),t._v(". It focuses on the state level, as opposed\nto the observation one for the latter.")]),t._v(" "),a("h4",{attrs:{id:"parameters-78"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-78"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the current memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-107"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-107"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The transition outcome of this step.")]),t._v(" "),a("h3",{attrs:{id:"step-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#step-6"}},[t._v("#")]),t._v(" _step "),a("Badge",{attrs:{text:"Environment",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_step",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Run one step of the environment's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Environment._step()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Environment._state_step()")]),t._v(" (which returns a transition outcome). The boilerplate code automatically stores\nnext state into the "),a("code",[t._v("_memory")]),t._v(" attribute and samples a corresponding observation.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing environment needs to be wrapped instead of implemented fully in scikit-decide (e.g. compiled\nATARI games), it is recommended to overwrite "),a("code",[t._v("Environment._step()")]),t._v(" to call the external environment and not\nuse the "),a("code",[t._v("Environment._state_step()")]),t._v(" helper function.")])]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Before calling "),a("code",[t._v("Environment._step()")]),t._v(" the first time or when the end of an episode is\nreached, "),a("code",[t._v("Initializable._reset()")]),t._v(" must be called to reset the environment's state.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-79"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-79"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the current memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-108"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-108"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of this step.")]),t._v(" "),a("h2",{attrs:{id:"statelesssimulatordomain"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#statelesssimulatordomain"}},[t._v("#")]),t._v(" StatelessSimulatorDomain")]),t._v(" "),a("p",[t._v("This is a typical stateless simulator domain class.")]),t._v(" "),a("p",[t._v("This helper class can be used as an alternate base class for domains, inheriting the following:")]),t._v(" "),a("ul",[a("li",[t._v("Domain")]),t._v(" "),a("li",[t._v("SingleAgent")]),t._v(" "),a("li",[t._v("Sequential")]),t._v(" "),a("li",[t._v("Simulation")]),t._v(" "),a("li",[t._v("Actions")]),t._v(" "),a("li",[t._v("Markovian")]),t._v(" "),a("li",[t._v("TransformedObservable")]),t._v(" "),a("li",[t._v("Rewards")])]),t._v(" "),a("p",[t._v("Typical use:")]),t._v(" "),a("div",{staticClass:"language-python extra-class"},[a("pre",{pre:!0,attrs:{class:"language-python"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("class")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("D")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("StatelessSimulatorDomain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("It is also possible to refine any alternate base class, like for instance:")]),t._v(" "),a("div",{staticClass:"language-python extra-class"},[a("pre",{pre:!0,attrs:{class:"language-python"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("class")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("D")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("RLDomain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" FullyObservable"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])])]),t._v(" "),a("h3",{attrs:{id:"check-value-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#check-value-7"}},[t._v("#")]),t._v(" check_value "),a("Badge",{attrs:{text:"Rewards",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"check_value",sig:{params:[{name:"self"},{name:"value",annotation:"Value[D.T_value]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that a value is compliant with its reward specification.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("This function returns always True by default because any kind of reward should be accepted at this level.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-80"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-80"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("value")]),t._v(": The value to check.")])]),t._v(" "),a("h4",{attrs:{id:"returns-109"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-109"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the value is compliant (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"get-action-space-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-10"}},[t._v("#")]),t._v(" get_action_space "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_action_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) domain action space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.get_action_space()")]),t._v(" internally calls "),a("code",[t._v("Events._get_action_space_()")]),t._v(" the first time and\nautomatically caches its value to make future calls more efficient (since the action space is assumed to be\nconstant).")]),t._v(" "),a("h4",{attrs:{id:"returns-110"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-110"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The action space.")]),t._v(" "),a("h3",{attrs:{id:"get-applicable-actions-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-7"}},[t._v("#")]),t._v(" get_applicable_actions "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_applicable_actions",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history), or in\nthe internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.get_applicable_actions()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_applicable_actions()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-81"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-81"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-111"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-111"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of applicable actions.")]),t._v(" "),a("h3",{attrs:{id:"get-enabled-events-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-7"}},[t._v("#")]),t._v(" get_enabled_events "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_enabled_events",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"Space[D.T_event]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory), or in the internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.get_enabled_events()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_enabled_events()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead of\nthe memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-82"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-82"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-112"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-112"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of enabled events.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-5"}},[t._v("#")]),t._v(" get_observation "),a("Badge",{attrs:{text:"TransformedObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_observation",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Get the deterministic observation given a state and action.")]),t._v(" "),a("h4",{attrs:{id:"parameters-83"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-83"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-113"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-113"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-distribution-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-distribution-7"}},[t._v("#")]),t._v(" get_observation_distribution "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_observation_distribution",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"Distribution[D.T_agent[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the probability distribution of the observation given a state and action.")]),t._v(" "),a("p",[t._v("In mathematical terms (discrete case), given an action "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.197ex",height:"1.02ex",viewBox:"0 -441 529 451"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})])])])])]),t._v(", this function represents: "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.078ex",height:"2.262ex",viewBox:"0 -750 4012.7 1000"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"50",d:"M287 628Q287 635 230 637Q206 637 199 638T192 648Q192 649 194 659Q200 679 203 681T397 683Q587 682 600 680Q664 669 707 631T751 530Q751 453 685 389Q616 321 507 303Q500 302 402 301H307L277 182Q247 66 247 59Q247 55 248 54T255 50T272 48T305 46H336Q342 37 342 35Q342 19 335 5Q330 0 319 0Q316 0 282 1T182 2Q120 2 87 2T51 1Q33 1 33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM645 554Q645 567 643 575T634 597T609 619T560 635Q553 636 480 637Q463 637 445 637T416 636T404 636Q391 635 386 627Q384 621 367 550T332 412T314 344Q314 342 395 342H407H430Q542 342 590 392Q617 419 631 471T645 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(751, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(1140, 0)"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1903, 0)"}},[a("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(2181, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2650, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(3094.7, 0)"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3623.7, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(",\nwhere "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.05ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.726ex",height:"1.643ex",viewBox:"0 -704 763 726"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})])])])])]),t._v(" is the random variable of the observation.")],1),t._v(" "),a("h4",{attrs:{id:"parameters-84"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-84"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-114"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-114"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-space-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-10"}},[t._v("#")]),t._v(" get_observation_space "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_observation_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) observation space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("PartiallyObservable.get_observation_space()")]),t._v(" internally\ncalls "),a("code",[t._v("PartiallyObservable._get_observation_space_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the observation space is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-115"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-115"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The observation space.")]),t._v(" "),a("h3",{attrs:{id:"is-action-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-action-7"}},[t._v("#")]),t._v(" is_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_action",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an event is an action (i.e. a controllable event for the agents).")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\naction space provided by "),a("code",[t._v("Events.get_action_space()")]),t._v(", but it can be overridden for faster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-85"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-85"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("event")]),t._v(": The event to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-116"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-116"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is an action (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-applicable-action-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-7"}},[t._v("#")]),t._v(" is_applicable_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_applicable_action",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an action is applicable in the given memory (state or history), or in the internal one if\nomitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.is_applicable_action()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_applicable_action()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead\nof the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-86"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-86"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-117"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-117"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the action is applicable (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-enabled-event-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-7"}},[t._v("#")]),t._v(" is_enabled_event "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_enabled_event",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an uncontrollable event is enabled in the given memory (state or history), or in the\ninternal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.is_enabled_event()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_enabled_event()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead of\nthe memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-87"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-87"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-118"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-118"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is enabled (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-observation-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-observation-7"}},[t._v("#")]),t._v(" is_observation "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_observation",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that an observation indeed belongs to the domain observation space.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\nobservation space provided by "),a("code",[t._v("PartiallyObservable.get_observation_space()")]),t._v(", but it can be overridden for\nfaster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-88"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-88"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-119"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-119"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the observation belongs to the domain observation space (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"sample"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample"}},[t._v("#")]),t._v(" sample "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"sample",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Sample one transition of the simulator's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Simulation.sample()")]),t._v(" provides some boilerplate code and internally calls "),a("code",[t._v("Simulation._sample()")]),t._v("\n(which returns a transition outcome). The boilerplate code automatically samples an observation corresponding to\nthe sampled next state.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing simulator needs to be wrapped instead of implemented fully in scikit-decide (e.g. a\nsimulator), it is recommended to overwrite "),a("code",[t._v("Simulation.sample()")]),t._v(" to call the external simulator and not use\nthe "),a("code",[t._v("Simulation._sample()")]),t._v(" helper function.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-89"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-89"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-120"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-120"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of the sampled transition.")]),t._v(" "),a("h3",{attrs:{id:"set-memory"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#set-memory"}},[t._v("#")]),t._v(" set_memory "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"set_memory",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"None"}}}),t._v(" "),a("p",[t._v("Set internal memory attribute "),a("code",[t._v("_memory")]),t._v(" to given one.")]),t._v(" "),a("p",[t._v('This can be useful to set a specific "starting point" before doing a rollout with successive '),a("code",[t._v("Environment.step()")]),t._v("\ncalls.")]),t._v(" "),a("h4",{attrs:{id:"parameters-90"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-90"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to set internally.")])]),t._v(" "),a("h4",{attrs:{id:"example"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#example"}},[t._v("#")]),t._v(" Example")]),t._v(" "),a("div",{staticClass:"language-python extra-class"},[a("pre",{pre:!0,attrs:{class:"language-python"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Set simulation_domain memory to my_state (assuming Markovian domain)")]),t._v("\nsimulation_domain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("set_memory"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("my_state"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Start a 100-steps rollout from here (applying my_action at every step)")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("for")]),t._v(" _ "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("in")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("range")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n simulation_domain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("step"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("my_action"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("h3",{attrs:{id:"solve-with-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#solve-with-4"}},[t._v("#")]),t._v(" solve_with "),a("Badge",{attrs:{text:"Domain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"solve_with",sig:{params:[{name:"solver",annotation:"Solver"},{name:"domain_factory",default:"None",annotation:"Optional[Callable[[], Domain]]"},{name:"load_path",default:"None",annotation:"Optional[str]"}],return:"Solver"}}}),t._v(" "),a("p",[t._v("Solve the domain with a new or loaded solver and return it auto-cast to the level of the domain.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Solver.check_domain()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Solver._check_domain_additional()")]),t._v(' (which returns True by default but can be overridden to define\nspecific checks in addition to the "domain requirements"). The boilerplate code automatically checks whether all\ndomain requirements are met.')]),t._v(" "),a("h4",{attrs:{id:"parameters-91"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-91"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("solver")]),t._v(": The solver.")]),t._v(" "),a("li",[a("strong",[t._v("domain_factory")]),t._v(": A callable with no argument returning the domain to solve (factory is the domain class if None).")]),t._v(" "),a("li",[a("strong",[t._v("load_path")]),t._v(": The path to restore the solver state from (if None, the solving process will be launched instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-121"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-121"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The new solver (auto-cast to the level of the domain).")]),t._v(" "),a("h3",{attrs:{id:"step-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#step-7"}},[t._v("#")]),t._v(" step "),a("Badge",{attrs:{text:"Environment",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"step",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Run one step of the environment's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Environment.step()")]),t._v(" provides some boilerplate code and internally calls "),a("code",[t._v("Environment._step()")]),t._v(" (which\nreturns a transition outcome). The boilerplate code automatically stores next state into the "),a("code",[t._v("_memory")]),t._v(" attribute\nand samples a corresponding observation.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing environment needs to be wrapped instead of implemented fully in scikit-decide (e.g. compiled\nATARI games), it is recommended to overwrite "),a("code",[t._v("Environment.step()")]),t._v(" to call the external environment and not\nuse the "),a("code",[t._v("Environment._step()")]),t._v(" helper function.")])]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Before calling "),a("code",[t._v("Environment.step()")]),t._v(" the first time or when the end of an episode is\nreached, "),a("code",[t._v("Initializable.reset()")]),t._v(" must be called to reset the environment's state.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-92"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-92"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the current memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-122"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-122"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of this step.")]),t._v(" "),a("h3",{attrs:{id:"check-value-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#check-value-8"}},[t._v("#")]),t._v(" _check_value "),a("Badge",{attrs:{text:"Rewards",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_check_value",sig:{params:[{name:"self"},{name:"value",annotation:"Value[D.T_value]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that a value is compliant with its reward specification.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("This function returns always True by default because any kind of reward should be accepted at this level.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-93"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-93"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("value")]),t._v(": The value to check.")])]),t._v(" "),a("h4",{attrs:{id:"returns-123"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-123"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the value is compliant (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"get-action-space-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-11"}},[t._v("#")]),t._v(" _get_action_space "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_action_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) domain action space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._get_action_space()")]),t._v(" internally calls "),a("code",[t._v("Events._get_action_space_()")]),t._v(" the first time and\nautomatically caches its value to make future calls more efficient (since the action space is assumed to be\nconstant).")]),t._v(" "),a("h4",{attrs:{id:"returns-124"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-124"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The action space.")]),t._v(" "),a("h3",{attrs:{id:"get-action-space-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-12"}},[t._v("#")]),t._v(" _get_action_space_ "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_action_space_",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the domain action space (finite or infinite set).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._get_action_space()")]),t._v(", the difference being that the\nresult is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-125"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-125"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The action space.")]),t._v(" "),a("h3",{attrs:{id:"get-applicable-actions-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-8"}},[t._v("#")]),t._v(" _get_applicable_actions "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_applicable_actions",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history), or in\nthe internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._get_applicable_actions()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_applicable_actions_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-94"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-94"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-126"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-126"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of applicable actions.")]),t._v(" "),a("h3",{attrs:{id:"get-applicable-actions-from-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-from-4"}},[t._v("#")]),t._v(" _get_applicable_actions_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_applicable_actions_from",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._get_applicable_actions()")]),t._v(", the difference being that\nthe memory parameter is mandatory here.")]),t._v(" "),a("h4",{attrs:{id:"parameters-95"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-95"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-127"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-127"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of applicable actions.")]),t._v(" "),a("h3",{attrs:{id:"get-enabled-events-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-8"}},[t._v("#")]),t._v(" _get_enabled_events "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_enabled_events",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"Space[D.T_event]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory), or in the internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._get_enabled_events()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_enabled_events_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-96"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-96"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-128"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-128"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of enabled events.")]),t._v(" "),a("h3",{attrs:{id:"get-enabled-events-from-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-from-4"}},[t._v("#")]),t._v(" _get_enabled_events_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_enabled_events_from",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"Space[D.T_event]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._get_enabled_events()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("h4",{attrs:{id:"parameters-97"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-97"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-129"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-129"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of enabled events.")]),t._v(" "),a("h3",{attrs:{id:"get-memory-maxlen-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-memory-maxlen-6"}},[t._v("#")]),t._v(" _get_memory_maxlen "),a("Badge",{attrs:{text:"History",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_memory_maxlen",sig:{params:[{name:"self"}],return:"int"}}}),t._v(" "),a("p",[t._v("Get the (cached) memory max length.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("FiniteHistory._get_memory_maxlen()")]),t._v(" internally calls "),a("code",[t._v("FiniteHistory._get_memory_maxlen_()")]),t._v(" the first\ntime and automatically caches its value to make future calls more efficient (since the memory max length is\nassumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-130"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-130"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The memory max length.")]),t._v(" "),a("h3",{attrs:{id:"get-memory-maxlen-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-memory-maxlen-7"}},[t._v("#")]),t._v(" _get_memory_maxlen_ "),a("Badge",{attrs:{text:"FiniteHistory",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_memory_maxlen_",sig:{params:[{name:"self"}],return:"int"}}}),t._v(" "),a("p",[t._v("Get the memory max length.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("FiniteHistory._get_memory_maxlen()")]),t._v(", the difference being that\nthe result is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-131"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-131"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The memory max length.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-6"}},[t._v("#")]),t._v(" _get_observation "),a("Badge",{attrs:{text:"TransformedObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Get the deterministic observation given a state and action.")]),t._v(" "),a("h4",{attrs:{id:"parameters-98"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-98"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-132"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-132"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-distribution-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-distribution-8"}},[t._v("#")]),t._v(" _get_observation_distribution "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation_distribution",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"Distribution[D.T_agent[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the probability distribution of the observation given a state and action.")]),t._v(" "),a("p",[t._v("In mathematical terms (discrete case), given an action "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.197ex",height:"1.02ex",viewBox:"0 -441 529 451"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})])])])])]),t._v(", this function represents: "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.078ex",height:"2.262ex",viewBox:"0 -750 4012.7 1000"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"50",d:"M287 628Q287 635 230 637Q206 637 199 638T192 648Q192 649 194 659Q200 679 203 681T397 683Q587 682 600 680Q664 669 707 631T751 530Q751 453 685 389Q616 321 507 303Q500 302 402 301H307L277 182Q247 66 247 59Q247 55 248 54T255 50T272 48T305 46H336Q342 37 342 35Q342 19 335 5Q330 0 319 0Q316 0 282 1T182 2Q120 2 87 2T51 1Q33 1 33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM645 554Q645 567 643 575T634 597T609 619T560 635Q553 636 480 637Q463 637 445 637T416 636T404 636Q391 635 386 627Q384 621 367 550T332 412T314 344Q314 342 395 342H407H430Q542 342 590 392Q617 419 631 471T645 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(751, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(1140, 0)"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1903, 0)"}},[a("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(2181, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2650, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(3094.7, 0)"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3623.7, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(",\nwhere "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.05ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.726ex",height:"1.643ex",viewBox:"0 -704 763 726"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})])])])])]),t._v(" is the random variable of the observation.")],1),t._v(" "),a("h4",{attrs:{id:"parameters-99"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-99"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-133"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-133"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-space-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-11"}},[t._v("#")]),t._v(" _get_observation_space "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) observation space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(" internally\ncalls "),a("code",[t._v("PartiallyObservable._get_observation_space_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the observation space is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-134"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-134"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The observation space.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-space-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-12"}},[t._v("#")]),t._v(" _get_observation_space_ "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation_space_",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the observation space (finite or infinite set).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(", the difference\nbeing that the result is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-135"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-135"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The observation space.")]),t._v(" "),a("h3",{attrs:{id:"init-memory-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#init-memory-4"}},[t._v("#")]),t._v(" _init_memory "),a("Badge",{attrs:{text:"History",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_init_memory",sig:{params:[{name:"self"},{name:"state",default:"None",annotation:"Optional[D.T_state]"}],return:"D.T_memory[D.T_state]"}}}),t._v(" "),a("p",[t._v("Initialize memory (possibly with a state) according to its specification and return it.")]),t._v(" "),a("p",[t._v("This function is automatically called by "),a("code",[t._v("Initializable._reset()")]),t._v(" to reinitialize the internal memory whenever\nthe domain is used as an environment.")]),t._v(" "),a("h4",{attrs:{id:"parameters-100"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-100"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": An optional state to initialize the memory with (typically the initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-136"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-136"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The new initialized memory.")]),t._v(" "),a("h3",{attrs:{id:"is-action-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-action-8"}},[t._v("#")]),t._v(" _is_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_action",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an event is an action (i.e. a controllable event for the agents).")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\naction space provided by "),a("code",[t._v("Events._get_action_space()")]),t._v(", but it can be overridden for faster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-101"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-101"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("event")]),t._v(": The event to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-137"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-137"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is an action (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-applicable-action-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-8"}},[t._v("#")]),t._v(" _is_applicable_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_applicable_action",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an action is applicable in the given memory (state or history), or in the internal one if\nomitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._is_applicable_action()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_applicable_action_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-102"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-102"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-138"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-138"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the action is applicable (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-applicable-action-from-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-from-4"}},[t._v("#")]),t._v(" _is_applicable_action_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_applicable_action_from",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an action is applicable in the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._is_applicable_action()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the space of\napplicable actions provided by "),a("code",[t._v("Events._get_applicable_actions_from()")]),t._v(", but it can be overridden for faster\nimplementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-103"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-103"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-139"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-139"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the action is applicable (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-enabled-event-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-8"}},[t._v("#")]),t._v(" _is_enabled_event "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_enabled_event",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an uncontrollable event is enabled in the given memory (state or history), or in the\ninternal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._is_enabled_event()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_enabled_event_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead\nof the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-104"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-104"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-140"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-140"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is enabled (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-enabled-event-from-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-from-4"}},[t._v("#")]),t._v(" _is_enabled_event_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_enabled_event_from",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an event is enabled in the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._is_enabled_event()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the space of\nenabled events provided by "),a("code",[t._v("Events._get_enabled_events_from()")]),t._v(", but it can be overridden for faster\nimplementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-105"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-105"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-141"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-141"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is enabled (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-observation-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-observation-8"}},[t._v("#")]),t._v(" _is_observation "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_observation",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that an observation indeed belongs to the domain observation space.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\nobservation space provided by "),a("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(", but it can be overridden for\nfaster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-106"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-106"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-142"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-142"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the observation belongs to the domain observation space (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"sample-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample-2"}},[t._v("#")]),t._v(" _sample "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_sample",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Sample one transition of the simulator's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Simulation._sample()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Simulation._state_sample()")]),t._v(" (which returns a transition outcome). The boilerplate code automatically\nsamples an observation corresponding to the sampled next state.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing simulator needs to be wrapped instead of implemented fully in scikit-decide (e.g. a\nsimulator), it is recommended to overwrite "),a("code",[t._v("Simulation._sample()")]),t._v(" to call the external simulator and not use\nthe "),a("code",[t._v("Simulation._state_sample()")]),t._v(" helper function.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-107"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-107"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-143"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-143"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of the sampled transition.")]),t._v(" "),a("h3",{attrs:{id:"set-memory-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#set-memory-2"}},[t._v("#")]),t._v(" _set_memory "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_set_memory",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"None"}}}),t._v(" "),a("p",[t._v("Set internal memory attribute "),a("code",[t._v("_memory")]),t._v(" to given one.")]),t._v(" "),a("p",[t._v('This can be useful to set a specific "starting point" before doing a rollout with\nsuccessive '),a("code",[t._v("Environment._step()")]),t._v(" calls.")]),t._v(" "),a("h4",{attrs:{id:"parameters-108"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-108"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to set internally.")])]),t._v(" "),a("h4",{attrs:{id:"example-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#example-2"}},[t._v("#")]),t._v(" Example")]),t._v(" "),a("div",{staticClass:"language-python extra-class"},[a("pre",{pre:!0,attrs:{class:"language-python"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Set simulation_domain memory to my_state (assuming Markovian domain)")]),t._v("\nsimulation_domain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("_set_memory"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("my_state"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Start a 100-steps rollout from here (applying my_action at every step)")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("for")]),t._v(" _ "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("in")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("range")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n simulation_domain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("_step"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("my_action"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("h3",{attrs:{id:"state-sample"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#state-sample"}},[t._v("#")]),t._v(" _state_sample "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_state_sample",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"TransitionOutcome[D.T_state, D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Compute one sample of the transition's dynamics.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Simulation._sample()")]),t._v(". It focuses on the state level, as\nopposed to the observation one for the latter.")]),t._v(" "),a("h4",{attrs:{id:"parameters-109"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-109"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-144"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-144"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The transition outcome of the sampled transition.")]),t._v(" "),a("h3",{attrs:{id:"state-step-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#state-step-4"}},[t._v("#")]),t._v(" _state_step "),a("Badge",{attrs:{text:"Environment",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_state_step",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"TransitionOutcome[D.T_state, D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Compute one step of the transition's dynamics.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Environment._step()")]),t._v(". It focuses on the state level, as opposed\nto the observation one for the latter.")]),t._v(" "),a("h4",{attrs:{id:"parameters-110"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-110"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the current memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-145"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-145"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The transition outcome of this step.")]),t._v(" "),a("h3",{attrs:{id:"step-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#step-8"}},[t._v("#")]),t._v(" _step "),a("Badge",{attrs:{text:"Environment",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_step",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Run one step of the environment's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Environment._step()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Environment._state_step()")]),t._v(" (which returns a transition outcome). The boilerplate code automatically stores\nnext state into the "),a("code",[t._v("_memory")]),t._v(" attribute and samples a corresponding observation.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing environment needs to be wrapped instead of implemented fully in scikit-decide (e.g. compiled\nATARI games), it is recommended to overwrite "),a("code",[t._v("Environment._step()")]),t._v(" to call the external environment and not\nuse the "),a("code",[t._v("Environment._state_step()")]),t._v(" helper function.")])]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Before calling "),a("code",[t._v("Environment._step()")]),t._v(" the first time or when the end of an episode is\nreached, "),a("code",[t._v("Initializable._reset()")]),t._v(" must be called to reset the environment's state.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-111"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-111"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the current memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-146"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-146"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of this step.")]),t._v(" "),a("h2",{attrs:{id:"mdpdomain"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#mdpdomain"}},[t._v("#")]),t._v(" MDPDomain")]),t._v(" "),a("p",[t._v("This is a typical Markov Decision Process domain class.")]),t._v(" "),a("p",[t._v("This helper class can be used as an alternate base class for domains, inheriting the following:")]),t._v(" "),a("ul",[a("li",[t._v("Domain")]),t._v(" "),a("li",[t._v("SingleAgent")]),t._v(" "),a("li",[t._v("Sequential")]),t._v(" "),a("li",[t._v("EnumerableTransitions")]),t._v(" "),a("li",[t._v("Actions")]),t._v(" "),a("li",[t._v("DeterministicInitialized")]),t._v(" "),a("li",[t._v("Markovian")]),t._v(" "),a("li",[t._v("FullyObservable")]),t._v(" "),a("li",[t._v("Rewards")])]),t._v(" "),a("p",[t._v("Typical use:")]),t._v(" "),a("div",{staticClass:"language-python extra-class"},[a("pre",{pre:!0,attrs:{class:"language-python"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("class")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("D")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("MDPDomain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("It is also possible to refine any alternate base class, like for instance:")]),t._v(" "),a("div",{staticClass:"language-python extra-class"},[a("pre",{pre:!0,attrs:{class:"language-python"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("class")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("D")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("RLDomain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" FullyObservable"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])])]),t._v(" "),a("h3",{attrs:{id:"check-value-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#check-value-9"}},[t._v("#")]),t._v(" check_value "),a("Badge",{attrs:{text:"Rewards",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"check_value",sig:{params:[{name:"self"},{name:"value",annotation:"Value[D.T_value]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that a value is compliant with its reward specification.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("This function returns always True by default because any kind of reward should be accepted at this level.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-112"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-112"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("value")]),t._v(": The value to check.")])]),t._v(" "),a("h4",{attrs:{id:"returns-147"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-147"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the value is compliant (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"get-action-space-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-13"}},[t._v("#")]),t._v(" get_action_space "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_action_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) domain action space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.get_action_space()")]),t._v(" internally calls "),a("code",[t._v("Events._get_action_space_()")]),t._v(" the first time and\nautomatically caches its value to make future calls more efficient (since the action space is assumed to be\nconstant).")]),t._v(" "),a("h4",{attrs:{id:"returns-148"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-148"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The action space.")]),t._v(" "),a("h3",{attrs:{id:"get-applicable-actions-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-9"}},[t._v("#")]),t._v(" get_applicable_actions "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_applicable_actions",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history), or in\nthe internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.get_applicable_actions()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_applicable_actions()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-113"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-113"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-149"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-149"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of applicable actions.")]),t._v(" "),a("h3",{attrs:{id:"get-enabled-events-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-9"}},[t._v("#")]),t._v(" get_enabled_events "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_enabled_events",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"Space[D.T_event]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory), or in the internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.get_enabled_events()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_enabled_events()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead of\nthe memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-114"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-114"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-150"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-150"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of enabled events.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state"}},[t._v("#")]),t._v(" get_initial_state "),a("Badge",{attrs:{text:"DeterministicInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_initial_state",sig:{params:[{name:"self"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("Get the (cached) initial state.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("DeterministicInitialized.get_initial_state()")]),t._v(" internally\ncalls "),a("code",[t._v("DeterministicInitialized._get_initial_state_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the initial state is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-151"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-151"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The initial state.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-distribution"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-distribution"}},[t._v("#")]),t._v(" get_initial_state_distribution "),a("Badge",{attrs:{text:"UncertainInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_initial_state_distribution",sig:{params:[{name:"self"}],return:"Distribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("Get the (cached) probability distribution of initial states.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("UncertainInitialized.get_initial_state_distribution()")]),t._v(" internally\ncalls "),a("code",[t._v("UncertainInitialized._get_initial_state_distribution_()")]),t._v(" the first time and automatically caches its value\nto make future calls more efficient (since the initial state distribution is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-152"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-152"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of initial states.")]),t._v(" "),a("h3",{attrs:{id:"get-next-state-distribution"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-next-state-distribution"}},[t._v("#")]),t._v(" get_next_state_distribution "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_next_state_distribution",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"DiscreteDistribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("Get the discrete probability distribution of next state given a memory and action.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("In the Markovian case (memory only holds last state "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.061ex",height:"1.023ex",viewBox:"0 -442 469 452"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})])])])])]),t._v("), given an action "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.197ex",height:"1.02ex",viewBox:"0 -441 529 451"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})])])])])]),t._v(", this function can\nbe mathematically represented by "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.292ex",height:"2.283ex",viewBox:"0 -759 4107.1 1009"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"50",d:"M287 628Q287 635 230 637Q206 637 199 638T192 648Q192 649 194 659Q200 679 203 681T397 683Q587 682 600 680Q664 669 707 631T751 530Q751 453 685 389Q616 321 507 303Q500 302 402 301H307L277 182Q247 66 247 59Q247 55 248 54T255 50T272 48T305 46H336Q342 37 342 35Q342 19 335 5Q330 0 319 0Q316 0 282 1T182 2Q120 2 87 2T51 1Q33 1 33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM645 554Q645 567 643 575T634 597T609 619T560 635Q553 636 480 637Q463 637 445 637T416 636T404 636Q391 635 386 627Q384 621 367 550T332 412T314 344Q314 342 395 342H407H430Q542 342 590 392Q617 419 631 471T645 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(751, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"msup",transform:"translate(1140, 0)"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"53",d:"M308 24Q367 24 416 76T466 197Q466 260 414 284Q308 311 278 321T236 341Q176 383 176 462Q176 523 208 573T273 648Q302 673 343 688T407 704H418H425Q521 704 564 640Q565 640 577 653T603 682T623 704Q624 704 627 704T632 705Q645 705 645 698T617 577T585 459T569 456Q549 456 549 465Q549 471 550 475Q550 478 551 494T553 520Q553 554 544 579T526 616T501 641Q465 662 419 662Q362 662 313 616T263 510Q263 480 278 458T319 427Q323 425 389 408T456 390Q490 379 522 342T554 242Q554 216 546 186Q541 164 528 137T492 78T426 18T332 -20Q320 -22 298 -22Q199 -22 144 33L134 44L106 13Q83 -14 78 -18T65 -22Q52 -22 52 -14Q52 -11 110 221Q112 227 130 227H143Q149 221 149 216Q149 214 148 207T144 186T142 153Q144 114 160 87T203 47T255 29T308 24Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(613, 363) scale(0.707)"}},[a("path",{attrs:{"data-c":"2032",d:"M79 43Q73 43 52 49T30 61Q30 68 85 293T146 528Q161 560 198 560Q218 560 240 545T262 501Q262 496 260 486Q259 479 173 263T84 45T79 43Z"}})])]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1997.5, 0)"}},[a("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(2275.5, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2744.5, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(3189.1, 0)"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3718.1, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(", where "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.05ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.94ex",height:"1.767ex",viewBox:"0 -759 857.5 781"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"msup"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"53",d:"M308 24Q367 24 416 76T466 197Q466 260 414 284Q308 311 278 321T236 341Q176 383 176 462Q176 523 208 573T273 648Q302 673 343 688T407 704H418H425Q521 704 564 640Q565 640 577 653T603 682T623 704Q624 704 627 704T632 705Q645 705 645 698T617 577T585 459T569 456Q549 456 549 465Q549 471 550 475Q550 478 551 494T553 520Q553 554 544 579T526 616T501 641Q465 662 419 662Q362 662 313 616T263 510Q263 480 278 458T319 427Q323 425 389 408T456 390Q490 379 522 342T554 242Q554 216 546 186Q541 164 528 137T492 78T426 18T332 -20Q320 -22 298 -22Q199 -22 144 33L134 44L106 13Q83 -14 78 -18T65 -22Q52 -22 52 -14Q52 -11 110 221Q112 227 130 227H143Q149 221 149 216Q149 214 148 207T144 186T142 153Q144 114 160 87T203 47T255 29T308 24Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(613, 363) scale(0.707)"}},[a("path",{attrs:{"data-c":"2032",d:"M79 43Q73 43 52 49T30 61Q30 68 85 293T146 528Q161 560 198 560Q218 560 240 545T262 501Q262 496 260 486Q259 479 173 263T84 45T79 43Z"}})])])])])])]),t._v(" is the next state random variable.")],1)]),t._v(" "),a("h4",{attrs:{id:"parameters-115"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-115"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-153"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-153"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The discrete probability distribution of next state.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-7"}},[t._v("#")]),t._v(" get_observation "),a("Badge",{attrs:{text:"TransformedObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_observation",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Get the deterministic observation given a state and action.")]),t._v(" "),a("h4",{attrs:{id:"parameters-116"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-116"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-154"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-154"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-distribution-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-distribution-9"}},[t._v("#")]),t._v(" get_observation_distribution "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_observation_distribution",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"Distribution[D.T_agent[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the probability distribution of the observation given a state and action.")]),t._v(" "),a("p",[t._v("In mathematical terms (discrete case), given an action "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.197ex",height:"1.02ex",viewBox:"0 -441 529 451"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})])])])])]),t._v(", this function represents: "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.078ex",height:"2.262ex",viewBox:"0 -750 4012.7 1000"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"50",d:"M287 628Q287 635 230 637Q206 637 199 638T192 648Q192 649 194 659Q200 679 203 681T397 683Q587 682 600 680Q664 669 707 631T751 530Q751 453 685 389Q616 321 507 303Q500 302 402 301H307L277 182Q247 66 247 59Q247 55 248 54T255 50T272 48T305 46H336Q342 37 342 35Q342 19 335 5Q330 0 319 0Q316 0 282 1T182 2Q120 2 87 2T51 1Q33 1 33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM645 554Q645 567 643 575T634 597T609 619T560 635Q553 636 480 637Q463 637 445 637T416 636T404 636Q391 635 386 627Q384 621 367 550T332 412T314 344Q314 342 395 342H407H430Q542 342 590 392Q617 419 631 471T645 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(751, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(1140, 0)"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1903, 0)"}},[a("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(2181, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2650, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(3094.7, 0)"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3623.7, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(",\nwhere "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.05ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.726ex",height:"1.643ex",viewBox:"0 -704 763 726"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})])])])])]),t._v(" is the random variable of the observation.")],1),t._v(" "),a("h4",{attrs:{id:"parameters-117"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-117"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-155"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-155"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-space-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-13"}},[t._v("#")]),t._v(" get_observation_space "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_observation_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) observation space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("PartiallyObservable.get_observation_space()")]),t._v(" internally\ncalls "),a("code",[t._v("PartiallyObservable._get_observation_space_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the observation space is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-156"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-156"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The observation space.")]),t._v(" "),a("h3",{attrs:{id:"get-transition-value"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-transition-value"}},[t._v("#")]),t._v(" get_transition_value "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_transition_value",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"},{name:"next_state",default:"None",annotation:"Optional[D.T_state]"}],return:"D.T_agent[Value[D.T_value]]"}}}),t._v(" "),a("p",[t._v("Get the value (reward or cost) of a transition.")]),t._v(" "),a("p",[t._v("The transition to consider is defined by the function parameters.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("If this function never depends on the next_state parameter for its computation, it is recommended to\nindicate it by overriding "),a("code",[t._v("UncertainTransitions._is_transition_value_dependent_on_next_state_()")]),t._v(" to return\nFalse. This information can then be exploited by solvers to avoid computing next state to evaluate a\ntransition value (more efficient).")])]),t._v(" "),a("h4",{attrs:{id:"parameters-118"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-118"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")]),t._v(" "),a("li",[a("strong",[t._v("next_state")]),t._v(": The next state in which the transition ends (if needed for the computation).")])]),t._v(" "),a("h4",{attrs:{id:"returns-157"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-157"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The transition value (reward or cost).")]),t._v(" "),a("h3",{attrs:{id:"is-action-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-action-9"}},[t._v("#")]),t._v(" is_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_action",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an event is an action (i.e. a controllable event for the agents).")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\naction space provided by "),a("code",[t._v("Events.get_action_space()")]),t._v(", but it can be overridden for faster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-119"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-119"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("event")]),t._v(": The event to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-158"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-158"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is an action (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-applicable-action-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-9"}},[t._v("#")]),t._v(" is_applicable_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_applicable_action",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an action is applicable in the given memory (state or history), or in the internal one if\nomitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.is_applicable_action()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_applicable_action()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead\nof the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-120"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-120"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-159"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-159"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the action is applicable (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-enabled-event-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-9"}},[t._v("#")]),t._v(" is_enabled_event "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_enabled_event",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an uncontrollable event is enabled in the given memory (state or history), or in the\ninternal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.is_enabled_event()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_enabled_event()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead of\nthe memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-121"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-121"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-160"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-160"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is enabled (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-observation-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-observation-9"}},[t._v("#")]),t._v(" is_observation "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_observation",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that an observation indeed belongs to the domain observation space.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\nobservation space provided by "),a("code",[t._v("PartiallyObservable.get_observation_space()")]),t._v(", but it can be overridden for\nfaster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-122"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-122"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-161"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-161"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the observation belongs to the domain observation space (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-terminal"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-terminal"}},[t._v("#")]),t._v(" is_terminal "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_terminal",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"}],return:"D.T_agent[D.T_predicate]"}}}),t._v(" "),a("p",[t._v("Indicate whether a state is terminal.")]),t._v(" "),a("p",[t._v("A terminal state is a state with no outgoing transition (except to itself with value 0).")]),t._v(" "),a("h4",{attrs:{id:"parameters-123"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-123"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-162"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-162"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the state is terminal (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-transition-value-dependent-on-next-state"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-transition-value-dependent-on-next-state"}},[t._v("#")]),t._v(" is_transition_value_dependent_on_next_state "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_transition_value_dependent_on_next_state",sig:{params:[{name:"self"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether get_transition_value() requires the next_state parameter for its computation (cached).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("UncertainTransitions.is_transition_value_dependent_on_next_state()")]),t._v(" internally\ncalls "),a("code",[t._v("UncertainTransitions._is_transition_value_dependent_on_next_state_()")]),t._v(" the first time and automatically\ncaches its value to make future calls more efficient (since the returned value is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-163"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-163"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the transition value computation depends on next_state (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"reset-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#reset-5"}},[t._v("#")]),t._v(" reset "),a("Badge",{attrs:{text:"Initializable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"reset",sig:{params:[{name:"self"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Reset the state of the environment and return an initial observation.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Initializable.reset()")]),t._v(" provides some boilerplate code and internally calls "),a("code",[t._v("Initializable._reset()")]),t._v("\n(which returns an initial state). The boilerplate code automatically stores the initial state into the "),a("code",[t._v("_memory")]),t._v("\nattribute and samples a corresponding observation.")]),t._v(" "),a("h4",{attrs:{id:"returns-164"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-164"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("An initial observation.")]),t._v(" "),a("h3",{attrs:{id:"sample-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample-3"}},[t._v("#")]),t._v(" sample "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"sample",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Sample one transition of the simulator's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Simulation.sample()")]),t._v(" provides some boilerplate code and internally calls "),a("code",[t._v("Simulation._sample()")]),t._v("\n(which returns a transition outcome). The boilerplate code automatically samples an observation corresponding to\nthe sampled next state.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing simulator needs to be wrapped instead of implemented fully in scikit-decide (e.g. a\nsimulator), it is recommended to overwrite "),a("code",[t._v("Simulation.sample()")]),t._v(" to call the external simulator and not use\nthe "),a("code",[t._v("Simulation._sample()")]),t._v(" helper function.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-124"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-124"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-165"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-165"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of the sampled transition.")]),t._v(" "),a("h3",{attrs:{id:"set-memory-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#set-memory-3"}},[t._v("#")]),t._v(" set_memory "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"set_memory",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"None"}}}),t._v(" "),a("p",[t._v("Set internal memory attribute "),a("code",[t._v("_memory")]),t._v(" to given one.")]),t._v(" "),a("p",[t._v('This can be useful to set a specific "starting point" before doing a rollout with successive '),a("code",[t._v("Environment.step()")]),t._v("\ncalls.")]),t._v(" "),a("h4",{attrs:{id:"parameters-125"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-125"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to set internally.")])]),t._v(" "),a("h4",{attrs:{id:"example-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#example-3"}},[t._v("#")]),t._v(" Example")]),t._v(" "),a("div",{staticClass:"language-python extra-class"},[a("pre",{pre:!0,attrs:{class:"language-python"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Set simulation_domain memory to my_state (assuming Markovian domain)")]),t._v("\nsimulation_domain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("set_memory"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("my_state"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Start a 100-steps rollout from here (applying my_action at every step)")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("for")]),t._v(" _ "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("in")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("range")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n simulation_domain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("step"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("my_action"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("h3",{attrs:{id:"solve-with-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#solve-with-5"}},[t._v("#")]),t._v(" solve_with "),a("Badge",{attrs:{text:"Domain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"solve_with",sig:{params:[{name:"solver",annotation:"Solver"},{name:"domain_factory",default:"None",annotation:"Optional[Callable[[], Domain]]"},{name:"load_path",default:"None",annotation:"Optional[str]"}],return:"Solver"}}}),t._v(" "),a("p",[t._v("Solve the domain with a new or loaded solver and return it auto-cast to the level of the domain.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Solver.check_domain()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Solver._check_domain_additional()")]),t._v(' (which returns True by default but can be overridden to define\nspecific checks in addition to the "domain requirements"). The boilerplate code automatically checks whether all\ndomain requirements are met.')]),t._v(" "),a("h4",{attrs:{id:"parameters-126"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-126"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("solver")]),t._v(": The solver.")]),t._v(" "),a("li",[a("strong",[t._v("domain_factory")]),t._v(": A callable with no argument returning the domain to solve (factory is the domain class if None).")]),t._v(" "),a("li",[a("strong",[t._v("load_path")]),t._v(": The path to restore the solver state from (if None, the solving process will be launched instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-166"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-166"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The new solver (auto-cast to the level of the domain).")]),t._v(" "),a("h3",{attrs:{id:"step-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#step-9"}},[t._v("#")]),t._v(" step "),a("Badge",{attrs:{text:"Environment",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"step",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Run one step of the environment's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Environment.step()")]),t._v(" provides some boilerplate code and internally calls "),a("code",[t._v("Environment._step()")]),t._v(" (which\nreturns a transition outcome). The boilerplate code automatically stores next state into the "),a("code",[t._v("_memory")]),t._v(" attribute\nand samples a corresponding observation.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing environment needs to be wrapped instead of implemented fully in scikit-decide (e.g. compiled\nATARI games), it is recommended to overwrite "),a("code",[t._v("Environment.step()")]),t._v(" to call the external environment and not\nuse the "),a("code",[t._v("Environment._step()")]),t._v(" helper function.")])]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Before calling "),a("code",[t._v("Environment.step()")]),t._v(" the first time or when the end of an episode is\nreached, "),a("code",[t._v("Initializable.reset()")]),t._v(" must be called to reset the environment's state.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-127"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-127"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the current memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-167"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-167"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of this step.")]),t._v(" "),a("h3",{attrs:{id:"check-value-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#check-value-10"}},[t._v("#")]),t._v(" _check_value "),a("Badge",{attrs:{text:"Rewards",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_check_value",sig:{params:[{name:"self"},{name:"value",annotation:"Value[D.T_value]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that a value is compliant with its reward specification.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("This function returns always True by default because any kind of reward should be accepted at this level.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-128"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-128"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("value")]),t._v(": The value to check.")])]),t._v(" "),a("h4",{attrs:{id:"returns-168"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-168"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the value is compliant (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"get-action-space-14"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-14"}},[t._v("#")]),t._v(" _get_action_space "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_action_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) domain action space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._get_action_space()")]),t._v(" internally calls "),a("code",[t._v("Events._get_action_space_()")]),t._v(" the first time and\nautomatically caches its value to make future calls more efficient (since the action space is assumed to be\nconstant).")]),t._v(" "),a("h4",{attrs:{id:"returns-169"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-169"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The action space.")]),t._v(" "),a("h3",{attrs:{id:"get-action-space-15"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-15"}},[t._v("#")]),t._v(" _get_action_space_ "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_action_space_",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the domain action space (finite or infinite set).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._get_action_space()")]),t._v(", the difference being that the\nresult is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-170"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-170"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The action space.")]),t._v(" "),a("h3",{attrs:{id:"get-applicable-actions-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-10"}},[t._v("#")]),t._v(" _get_applicable_actions "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_applicable_actions",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history), or in\nthe internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._get_applicable_actions()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_applicable_actions_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-129"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-129"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-171"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-171"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of applicable actions.")]),t._v(" "),a("h3",{attrs:{id:"get-applicable-actions-from-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-from-5"}},[t._v("#")]),t._v(" _get_applicable_actions_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_applicable_actions_from",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._get_applicable_actions()")]),t._v(", the difference being that\nthe memory parameter is mandatory here.")]),t._v(" "),a("h4",{attrs:{id:"parameters-130"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-130"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-172"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-172"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of applicable actions.")]),t._v(" "),a("h3",{attrs:{id:"get-enabled-events-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-10"}},[t._v("#")]),t._v(" _get_enabled_events "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_enabled_events",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"Space[D.T_event]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory), or in the internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._get_enabled_events()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_enabled_events_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-131"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-131"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-173"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-173"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of enabled events.")]),t._v(" "),a("h3",{attrs:{id:"get-enabled-events-from-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-from-5"}},[t._v("#")]),t._v(" _get_enabled_events_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_enabled_events_from",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"Space[D.T_event]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._get_enabled_events()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("h4",{attrs:{id:"parameters-132"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-132"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-174"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-174"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of enabled events.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-2"}},[t._v("#")]),t._v(" _get_initial_state "),a("Badge",{attrs:{text:"DeterministicInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_initial_state",sig:{params:[{name:"self"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("Get the (cached) initial state.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("DeterministicInitialized._get_initial_state()")]),t._v(" internally\ncalls "),a("code",[t._v("DeterministicInitialized._get_initial_state_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the initial state is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-175"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-175"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The initial state.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-3"}},[t._v("#")]),t._v(" _get_initial_state_ "),a("Badge",{attrs:{text:"DeterministicInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_initial_state_",sig:{params:[{name:"self"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("Get the initial state.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("DeterministicInitialized._get_initial_state()")]),t._v(", the difference\nbeing that the result is not cached here.")]),t._v(" "),a("h4",{attrs:{id:"returns-176"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-176"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The initial state.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-distribution-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-distribution-2"}},[t._v("#")]),t._v(" _get_initial_state_distribution "),a("Badge",{attrs:{text:"UncertainInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_initial_state_distribution",sig:{params:[{name:"self"}],return:"Distribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("Get the (cached) probability distribution of initial states.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("UncertainInitialized._get_initial_state_distribution()")]),t._v(" internally\ncalls "),a("code",[t._v("UncertainInitialized._get_initial_state_distribution_()")]),t._v(" the first time and automatically caches its value\nto make future calls more efficient (since the initial state distribution is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-177"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-177"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of initial states.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-distribution-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-distribution-3"}},[t._v("#")]),t._v(" _get_initial_state_distribution_ "),a("Badge",{attrs:{text:"UncertainInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_initial_state_distribution_",sig:{params:[{name:"self"}],return:"Distribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("Get the probability distribution of initial states.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("UncertainInitialized._get_initial_state_distribution()")]),t._v(", the\ndifference being that the result is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-178"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-178"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of initial states.")]),t._v(" "),a("h3",{attrs:{id:"get-memory-maxlen-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-memory-maxlen-8"}},[t._v("#")]),t._v(" _get_memory_maxlen "),a("Badge",{attrs:{text:"History",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_memory_maxlen",sig:{params:[{name:"self"}],return:"int"}}}),t._v(" "),a("p",[t._v("Get the (cached) memory max length.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("FiniteHistory._get_memory_maxlen()")]),t._v(" internally calls "),a("code",[t._v("FiniteHistory._get_memory_maxlen_()")]),t._v(" the first\ntime and automatically caches its value to make future calls more efficient (since the memory max length is\nassumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-179"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-179"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The memory max length.")]),t._v(" "),a("h3",{attrs:{id:"get-memory-maxlen-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-memory-maxlen-9"}},[t._v("#")]),t._v(" _get_memory_maxlen_ "),a("Badge",{attrs:{text:"FiniteHistory",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_memory_maxlen_",sig:{params:[{name:"self"}],return:"int"}}}),t._v(" "),a("p",[t._v("Get the memory max length.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("FiniteHistory._get_memory_maxlen()")]),t._v(", the difference being that\nthe result is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-180"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-180"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The memory max length.")]),t._v(" "),a("h3",{attrs:{id:"get-next-state-distribution-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-next-state-distribution-2"}},[t._v("#")]),t._v(" _get_next_state_distribution "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_next_state_distribution",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"DiscreteDistribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("Get the discrete probability distribution of next state given a memory and action.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("In the Markovian case (memory only holds last state "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.061ex",height:"1.023ex",viewBox:"0 -442 469 452"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})])])])])]),t._v("), given an action "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.197ex",height:"1.02ex",viewBox:"0 -441 529 451"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})])])])])]),t._v(", this function can\nbe mathematically represented by "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.292ex",height:"2.283ex",viewBox:"0 -759 4107.1 1009"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"50",d:"M287 628Q287 635 230 637Q206 637 199 638T192 648Q192 649 194 659Q200 679 203 681T397 683Q587 682 600 680Q664 669 707 631T751 530Q751 453 685 389Q616 321 507 303Q500 302 402 301H307L277 182Q247 66 247 59Q247 55 248 54T255 50T272 48T305 46H336Q342 37 342 35Q342 19 335 5Q330 0 319 0Q316 0 282 1T182 2Q120 2 87 2T51 1Q33 1 33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM645 554Q645 567 643 575T634 597T609 619T560 635Q553 636 480 637Q463 637 445 637T416 636T404 636Q391 635 386 627Q384 621 367 550T332 412T314 344Q314 342 395 342H407H430Q542 342 590 392Q617 419 631 471T645 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(751, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"msup",transform:"translate(1140, 0)"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"53",d:"M308 24Q367 24 416 76T466 197Q466 260 414 284Q308 311 278 321T236 341Q176 383 176 462Q176 523 208 573T273 648Q302 673 343 688T407 704H418H425Q521 704 564 640Q565 640 577 653T603 682T623 704Q624 704 627 704T632 705Q645 705 645 698T617 577T585 459T569 456Q549 456 549 465Q549 471 550 475Q550 478 551 494T553 520Q553 554 544 579T526 616T501 641Q465 662 419 662Q362 662 313 616T263 510Q263 480 278 458T319 427Q323 425 389 408T456 390Q490 379 522 342T554 242Q554 216 546 186Q541 164 528 137T492 78T426 18T332 -20Q320 -22 298 -22Q199 -22 144 33L134 44L106 13Q83 -14 78 -18T65 -22Q52 -22 52 -14Q52 -11 110 221Q112 227 130 227H143Q149 221 149 216Q149 214 148 207T144 186T142 153Q144 114 160 87T203 47T255 29T308 24Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(613, 363) scale(0.707)"}},[a("path",{attrs:{"data-c":"2032",d:"M79 43Q73 43 52 49T30 61Q30 68 85 293T146 528Q161 560 198 560Q218 560 240 545T262 501Q262 496 260 486Q259 479 173 263T84 45T79 43Z"}})])]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1997.5, 0)"}},[a("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(2275.5, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2744.5, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(3189.1, 0)"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3718.1, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(", where "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.05ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.94ex",height:"1.767ex",viewBox:"0 -759 857.5 781"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"msup"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"53",d:"M308 24Q367 24 416 76T466 197Q466 260 414 284Q308 311 278 321T236 341Q176 383 176 462Q176 523 208 573T273 648Q302 673 343 688T407 704H418H425Q521 704 564 640Q565 640 577 653T603 682T623 704Q624 704 627 704T632 705Q645 705 645 698T617 577T585 459T569 456Q549 456 549 465Q549 471 550 475Q550 478 551 494T553 520Q553 554 544 579T526 616T501 641Q465 662 419 662Q362 662 313 616T263 510Q263 480 278 458T319 427Q323 425 389 408T456 390Q490 379 522 342T554 242Q554 216 546 186Q541 164 528 137T492 78T426 18T332 -20Q320 -22 298 -22Q199 -22 144 33L134 44L106 13Q83 -14 78 -18T65 -22Q52 -22 52 -14Q52 -11 110 221Q112 227 130 227H143Q149 221 149 216Q149 214 148 207T144 186T142 153Q144 114 160 87T203 47T255 29T308 24Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(613, 363) scale(0.707)"}},[a("path",{attrs:{"data-c":"2032",d:"M79 43Q73 43 52 49T30 61Q30 68 85 293T146 528Q161 560 198 560Q218 560 240 545T262 501Q262 496 260 486Q259 479 173 263T84 45T79 43Z"}})])])])])])]),t._v(" is the next state random variable.")],1)]),t._v(" "),a("h4",{attrs:{id:"parameters-133"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-133"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-181"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-181"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The discrete probability distribution of next state.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-8"}},[t._v("#")]),t._v(" _get_observation "),a("Badge",{attrs:{text:"TransformedObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Get the deterministic observation given a state and action.")]),t._v(" "),a("h4",{attrs:{id:"parameters-134"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-134"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-182"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-182"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-distribution-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-distribution-10"}},[t._v("#")]),t._v(" _get_observation_distribution "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation_distribution",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"Distribution[D.T_agent[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the probability distribution of the observation given a state and action.")]),t._v(" "),a("p",[t._v("In mathematical terms (discrete case), given an action "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.197ex",height:"1.02ex",viewBox:"0 -441 529 451"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})])])])])]),t._v(", this function represents: "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.078ex",height:"2.262ex",viewBox:"0 -750 4012.7 1000"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"50",d:"M287 628Q287 635 230 637Q206 637 199 638T192 648Q192 649 194 659Q200 679 203 681T397 683Q587 682 600 680Q664 669 707 631T751 530Q751 453 685 389Q616 321 507 303Q500 302 402 301H307L277 182Q247 66 247 59Q247 55 248 54T255 50T272 48T305 46H336Q342 37 342 35Q342 19 335 5Q330 0 319 0Q316 0 282 1T182 2Q120 2 87 2T51 1Q33 1 33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM645 554Q645 567 643 575T634 597T609 619T560 635Q553 636 480 637Q463 637 445 637T416 636T404 636Q391 635 386 627Q384 621 367 550T332 412T314 344Q314 342 395 342H407H430Q542 342 590 392Q617 419 631 471T645 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(751, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(1140, 0)"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1903, 0)"}},[a("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(2181, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2650, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(3094.7, 0)"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3623.7, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(",\nwhere "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.05ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.726ex",height:"1.643ex",viewBox:"0 -704 763 726"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})])])])])]),t._v(" is the random variable of the observation.")],1),t._v(" "),a("h4",{attrs:{id:"parameters-135"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-135"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-183"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-183"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-space-14"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-14"}},[t._v("#")]),t._v(" _get_observation_space "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) observation space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(" internally\ncalls "),a("code",[t._v("PartiallyObservable._get_observation_space_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the observation space is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-184"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-184"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The observation space.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-space-15"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-15"}},[t._v("#")]),t._v(" _get_observation_space_ "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation_space_",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the observation space (finite or infinite set).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(", the difference\nbeing that the result is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-185"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-185"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The observation space.")]),t._v(" "),a("h3",{attrs:{id:"get-transition-value-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-transition-value-2"}},[t._v("#")]),t._v(" _get_transition_value "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_transition_value",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"},{name:"next_state",default:"None",annotation:"Optional[D.T_state]"}],return:"D.T_agent[Value[D.T_value]]"}}}),t._v(" "),a("p",[t._v("Get the value (reward or cost) of a transition.")]),t._v(" "),a("p",[t._v("The transition to consider is defined by the function parameters.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("If this function never depends on the next_state parameter for its computation, it is recommended to\nindicate it by overriding "),a("code",[t._v("UncertainTransitions._is_transition_value_dependent_on_next_state_()")]),t._v(" to return\nFalse. This information can then be exploited by solvers to avoid computing next state to evaluate a\ntransition value (more efficient).")])]),t._v(" "),a("h4",{attrs:{id:"parameters-136"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-136"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")]),t._v(" "),a("li",[a("strong",[t._v("next_state")]),t._v(": The next state in which the transition ends (if needed for the computation).")])]),t._v(" "),a("h4",{attrs:{id:"returns-186"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-186"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The transition value (reward or cost).")]),t._v(" "),a("h3",{attrs:{id:"init-memory-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#init-memory-5"}},[t._v("#")]),t._v(" _init_memory "),a("Badge",{attrs:{text:"History",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_init_memory",sig:{params:[{name:"self"},{name:"state",default:"None",annotation:"Optional[D.T_state]"}],return:"D.T_memory[D.T_state]"}}}),t._v(" "),a("p",[t._v("Initialize memory (possibly with a state) according to its specification and return it.")]),t._v(" "),a("p",[t._v("This function is automatically called by "),a("code",[t._v("Initializable._reset()")]),t._v(" to reinitialize the internal memory whenever\nthe domain is used as an environment.")]),t._v(" "),a("h4",{attrs:{id:"parameters-137"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-137"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": An optional state to initialize the memory with (typically the initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-187"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-187"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The new initialized memory.")]),t._v(" "),a("h3",{attrs:{id:"is-action-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-action-10"}},[t._v("#")]),t._v(" _is_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_action",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an event is an action (i.e. a controllable event for the agents).")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\naction space provided by "),a("code",[t._v("Events._get_action_space()")]),t._v(", but it can be overridden for faster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-138"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-138"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("event")]),t._v(": The event to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-188"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-188"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is an action (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-applicable-action-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-10"}},[t._v("#")]),t._v(" _is_applicable_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_applicable_action",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an action is applicable in the given memory (state or history), or in the internal one if\nomitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._is_applicable_action()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_applicable_action_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-139"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-139"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-189"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-189"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the action is applicable (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-applicable-action-from-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-from-5"}},[t._v("#")]),t._v(" _is_applicable_action_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_applicable_action_from",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an action is applicable in the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._is_applicable_action()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the space of\napplicable actions provided by "),a("code",[t._v("Events._get_applicable_actions_from()")]),t._v(", but it can be overridden for faster\nimplementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-140"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-140"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-190"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-190"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the action is applicable (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-enabled-event-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-10"}},[t._v("#")]),t._v(" _is_enabled_event "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_enabled_event",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an uncontrollable event is enabled in the given memory (state or history), or in the\ninternal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._is_enabled_event()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_enabled_event_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead\nof the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-141"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-141"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-191"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-191"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is enabled (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-enabled-event-from-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-from-5"}},[t._v("#")]),t._v(" _is_enabled_event_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_enabled_event_from",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an event is enabled in the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._is_enabled_event()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the space of\nenabled events provided by "),a("code",[t._v("Events._get_enabled_events_from()")]),t._v(", but it can be overridden for faster\nimplementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-142"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-142"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-192"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-192"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is enabled (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-observation-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-observation-10"}},[t._v("#")]),t._v(" _is_observation "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_observation",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that an observation indeed belongs to the domain observation space.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\nobservation space provided by "),a("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(", but it can be overridden for\nfaster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-143"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-143"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-193"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-193"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the observation belongs to the domain observation space (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-terminal-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-terminal-2"}},[t._v("#")]),t._v(" _is_terminal "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_terminal",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"}],return:"D.T_agent[D.T_predicate]"}}}),t._v(" "),a("p",[t._v("Indicate whether a state is terminal.")]),t._v(" "),a("p",[t._v("A terminal state is a state with no outgoing transition (except to itself with value 0).")]),t._v(" "),a("h4",{attrs:{id:"parameters-144"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-144"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-194"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-194"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the state is terminal (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-transition-value-dependent-on-next-state-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-transition-value-dependent-on-next-state-2"}},[t._v("#")]),t._v(" _is_transition_value_dependent_on_next_state "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_transition_value_dependent_on_next_state",sig:{params:[{name:"self"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether _get_transition_value() requires the next_state parameter for its computation (cached).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("UncertainTransitions._is_transition_value_dependent_on_next_state()")]),t._v(" internally\ncalls "),a("code",[t._v("UncertainTransitions._is_transition_value_dependent_on_next_state_()")]),t._v(" the first time and automatically\ncaches its value to make future calls more efficient (since the returned value is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-195"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-195"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the transition value computation depends on next_state (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-transition-value-dependent-on-next-state-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-transition-value-dependent-on-next-state-3"}},[t._v("#")]),t._v(" _is_transition_value_dependent_on_next_state_ "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_transition_value_dependent_on_next_state_",sig:{params:[{name:"self"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether _get_transition_value() requires the next_state parameter for its computation.")]),t._v(" "),a("p",[t._v("This is a helper function called by default\nfrom "),a("code",[t._v("UncertainTransitions._is_transition_value_dependent_on_next_state()")]),t._v(", the difference being that the result\nis not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-196"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-196"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the transition value computation depends on next_state (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"reset-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#reset-6"}},[t._v("#")]),t._v(" _reset "),a("Badge",{attrs:{text:"Initializable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_reset",sig:{params:[{name:"self"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Reset the state of the environment and return an initial observation.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Initializable._reset()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Initializable._state_reset()")]),t._v(" (which returns an initial state). The boilerplate code automatically stores\nthe initial state into the "),a("code",[t._v("_memory")]),t._v(" attribute and samples a corresponding observation.")]),t._v(" "),a("h4",{attrs:{id:"returns-197"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-197"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("An initial observation.")]),t._v(" "),a("h3",{attrs:{id:"sample-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample-4"}},[t._v("#")]),t._v(" _sample "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_sample",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Sample one transition of the simulator's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Simulation._sample()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Simulation._state_sample()")]),t._v(" (which returns a transition outcome). The boilerplate code automatically\nsamples an observation corresponding to the sampled next state.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing simulator needs to be wrapped instead of implemented fully in scikit-decide (e.g. a\nsimulator), it is recommended to overwrite "),a("code",[t._v("Simulation._sample()")]),t._v(" to call the external simulator and not use\nthe "),a("code",[t._v("Simulation._state_sample()")]),t._v(" helper function.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-145"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-145"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-198"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-198"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of the sampled transition.")]),t._v(" "),a("h3",{attrs:{id:"set-memory-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#set-memory-4"}},[t._v("#")]),t._v(" _set_memory "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_set_memory",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"None"}}}),t._v(" "),a("p",[t._v("Set internal memory attribute "),a("code",[t._v("_memory")]),t._v(" to given one.")]),t._v(" "),a("p",[t._v('This can be useful to set a specific "starting point" before doing a rollout with\nsuccessive '),a("code",[t._v("Environment._step()")]),t._v(" calls.")]),t._v(" "),a("h4",{attrs:{id:"parameters-146"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-146"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to set internally.")])]),t._v(" "),a("h4",{attrs:{id:"example-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#example-4"}},[t._v("#")]),t._v(" Example")]),t._v(" "),a("div",{staticClass:"language-python extra-class"},[a("pre",{pre:!0,attrs:{class:"language-python"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Set simulation_domain memory to my_state (assuming Markovian domain)")]),t._v("\nsimulation_domain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("_set_memory"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("my_state"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Start a 100-steps rollout from here (applying my_action at every step)")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("for")]),t._v(" _ "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("in")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("range")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n simulation_domain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("_step"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("my_action"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("h3",{attrs:{id:"state-reset-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#state-reset-3"}},[t._v("#")]),t._v(" _state_reset "),a("Badge",{attrs:{text:"Initializable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_state_reset",sig:{params:[{name:"self"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("Reset the state of the environment and return an initial state.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Initializable._reset()")]),t._v(". It focuses on the state level, as\nopposed to the observation one for the latter.")]),t._v(" "),a("h4",{attrs:{id:"returns-199"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-199"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("An initial state.")]),t._v(" "),a("h3",{attrs:{id:"state-sample-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#state-sample-2"}},[t._v("#")]),t._v(" _state_sample "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_state_sample",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"TransitionOutcome[D.T_state, D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Compute one sample of the transition's dynamics.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Simulation._sample()")]),t._v(". It focuses on the state level, as\nopposed to the observation one for the latter.")]),t._v(" "),a("h4",{attrs:{id:"parameters-147"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-147"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-200"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-200"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The transition outcome of the sampled transition.")]),t._v(" "),a("h3",{attrs:{id:"state-step-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#state-step-5"}},[t._v("#")]),t._v(" _state_step "),a("Badge",{attrs:{text:"Environment",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_state_step",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"TransitionOutcome[D.T_state, D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Compute one step of the transition's dynamics.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Environment._step()")]),t._v(". It focuses on the state level, as opposed\nto the observation one for the latter.")]),t._v(" "),a("h4",{attrs:{id:"parameters-148"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-148"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the current memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-201"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-201"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The transition outcome of this step.")]),t._v(" "),a("h3",{attrs:{id:"step-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#step-10"}},[t._v("#")]),t._v(" _step "),a("Badge",{attrs:{text:"Environment",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_step",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Run one step of the environment's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Environment._step()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Environment._state_step()")]),t._v(" (which returns a transition outcome). The boilerplate code automatically stores\nnext state into the "),a("code",[t._v("_memory")]),t._v(" attribute and samples a corresponding observation.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing environment needs to be wrapped instead of implemented fully in scikit-decide (e.g. compiled\nATARI games), it is recommended to overwrite "),a("code",[t._v("Environment._step()")]),t._v(" to call the external environment and not\nuse the "),a("code",[t._v("Environment._state_step()")]),t._v(" helper function.")])]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Before calling "),a("code",[t._v("Environment._step()")]),t._v(" the first time or when the end of an episode is\nreached, "),a("code",[t._v("Initializable._reset()")]),t._v(" must be called to reset the environment's state.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-149"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-149"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the current memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-202"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-202"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of this step.")]),t._v(" "),a("h2",{attrs:{id:"pomdpdomain"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#pomdpdomain"}},[t._v("#")]),t._v(" POMDPDomain")]),t._v(" "),a("p",[t._v("This is a typical Partially Observable Markov Decision Process domain class.")]),t._v(" "),a("p",[t._v("This helper class can be used as an alternate base class for domains, inheriting the following:")]),t._v(" "),a("ul",[a("li",[t._v("Domain")]),t._v(" "),a("li",[t._v("SingleAgent")]),t._v(" "),a("li",[t._v("Sequential")]),t._v(" "),a("li",[t._v("EnumerableTransitions")]),t._v(" "),a("li",[t._v("Actions")]),t._v(" "),a("li",[t._v("UncertainInitialized")]),t._v(" "),a("li",[t._v("Markovian")]),t._v(" "),a("li",[t._v("PartiallyObservable")]),t._v(" "),a("li",[t._v("Rewards")])]),t._v(" "),a("p",[t._v("Typical use:")]),t._v(" "),a("div",{staticClass:"language-python extra-class"},[a("pre",{pre:!0,attrs:{class:"language-python"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("class")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("D")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("POMDPDomain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("It is also possible to refine any alternate base class, like for instance:")]),t._v(" "),a("div",{staticClass:"language-python extra-class"},[a("pre",{pre:!0,attrs:{class:"language-python"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("class")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("D")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("RLDomain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" FullyObservable"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])])]),t._v(" "),a("h3",{attrs:{id:"check-value-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#check-value-11"}},[t._v("#")]),t._v(" check_value "),a("Badge",{attrs:{text:"Rewards",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"check_value",sig:{params:[{name:"self"},{name:"value",annotation:"Value[D.T_value]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that a value is compliant with its reward specification.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("This function returns always True by default because any kind of reward should be accepted at this level.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-150"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-150"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("value")]),t._v(": The value to check.")])]),t._v(" "),a("h4",{attrs:{id:"returns-203"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-203"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the value is compliant (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"get-action-space-16"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-16"}},[t._v("#")]),t._v(" get_action_space "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_action_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) domain action space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.get_action_space()")]),t._v(" internally calls "),a("code",[t._v("Events._get_action_space_()")]),t._v(" the first time and\nautomatically caches its value to make future calls more efficient (since the action space is assumed to be\nconstant).")]),t._v(" "),a("h4",{attrs:{id:"returns-204"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-204"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The action space.")]),t._v(" "),a("h3",{attrs:{id:"get-applicable-actions-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-11"}},[t._v("#")]),t._v(" get_applicable_actions "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_applicable_actions",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history), or in\nthe internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.get_applicable_actions()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_applicable_actions()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-151"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-151"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-205"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-205"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of applicable actions.")]),t._v(" "),a("h3",{attrs:{id:"get-enabled-events-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-11"}},[t._v("#")]),t._v(" get_enabled_events "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_enabled_events",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"Space[D.T_event]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory), or in the internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.get_enabled_events()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_enabled_events()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead of\nthe memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-152"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-152"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-206"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-206"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of enabled events.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-distribution-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-distribution-4"}},[t._v("#")]),t._v(" get_initial_state_distribution "),a("Badge",{attrs:{text:"UncertainInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_initial_state_distribution",sig:{params:[{name:"self"}],return:"Distribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("Get the (cached) probability distribution of initial states.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("UncertainInitialized.get_initial_state_distribution()")]),t._v(" internally\ncalls "),a("code",[t._v("UncertainInitialized._get_initial_state_distribution_()")]),t._v(" the first time and automatically caches its value\nto make future calls more efficient (since the initial state distribution is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-207"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-207"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of initial states.")]),t._v(" "),a("h3",{attrs:{id:"get-next-state-distribution-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-next-state-distribution-3"}},[t._v("#")]),t._v(" get_next_state_distribution "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_next_state_distribution",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"DiscreteDistribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("Get the discrete probability distribution of next state given a memory and action.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("In the Markovian case (memory only holds last state "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.061ex",height:"1.023ex",viewBox:"0 -442 469 452"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})])])])])]),t._v("), given an action "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.197ex",height:"1.02ex",viewBox:"0 -441 529 451"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})])])])])]),t._v(", this function can\nbe mathematically represented by "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.292ex",height:"2.283ex",viewBox:"0 -759 4107.1 1009"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"50",d:"M287 628Q287 635 230 637Q206 637 199 638T192 648Q192 649 194 659Q200 679 203 681T397 683Q587 682 600 680Q664 669 707 631T751 530Q751 453 685 389Q616 321 507 303Q500 302 402 301H307L277 182Q247 66 247 59Q247 55 248 54T255 50T272 48T305 46H336Q342 37 342 35Q342 19 335 5Q330 0 319 0Q316 0 282 1T182 2Q120 2 87 2T51 1Q33 1 33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM645 554Q645 567 643 575T634 597T609 619T560 635Q553 636 480 637Q463 637 445 637T416 636T404 636Q391 635 386 627Q384 621 367 550T332 412T314 344Q314 342 395 342H407H430Q542 342 590 392Q617 419 631 471T645 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(751, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"msup",transform:"translate(1140, 0)"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"53",d:"M308 24Q367 24 416 76T466 197Q466 260 414 284Q308 311 278 321T236 341Q176 383 176 462Q176 523 208 573T273 648Q302 673 343 688T407 704H418H425Q521 704 564 640Q565 640 577 653T603 682T623 704Q624 704 627 704T632 705Q645 705 645 698T617 577T585 459T569 456Q549 456 549 465Q549 471 550 475Q550 478 551 494T553 520Q553 554 544 579T526 616T501 641Q465 662 419 662Q362 662 313 616T263 510Q263 480 278 458T319 427Q323 425 389 408T456 390Q490 379 522 342T554 242Q554 216 546 186Q541 164 528 137T492 78T426 18T332 -20Q320 -22 298 -22Q199 -22 144 33L134 44L106 13Q83 -14 78 -18T65 -22Q52 -22 52 -14Q52 -11 110 221Q112 227 130 227H143Q149 221 149 216Q149 214 148 207T144 186T142 153Q144 114 160 87T203 47T255 29T308 24Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(613, 363) scale(0.707)"}},[a("path",{attrs:{"data-c":"2032",d:"M79 43Q73 43 52 49T30 61Q30 68 85 293T146 528Q161 560 198 560Q218 560 240 545T262 501Q262 496 260 486Q259 479 173 263T84 45T79 43Z"}})])]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1997.5, 0)"}},[a("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(2275.5, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2744.5, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(3189.1, 0)"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3718.1, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(", where "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.05ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.94ex",height:"1.767ex",viewBox:"0 -759 857.5 781"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"msup"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"53",d:"M308 24Q367 24 416 76T466 197Q466 260 414 284Q308 311 278 321T236 341Q176 383 176 462Q176 523 208 573T273 648Q302 673 343 688T407 704H418H425Q521 704 564 640Q565 640 577 653T603 682T623 704Q624 704 627 704T632 705Q645 705 645 698T617 577T585 459T569 456Q549 456 549 465Q549 471 550 475Q550 478 551 494T553 520Q553 554 544 579T526 616T501 641Q465 662 419 662Q362 662 313 616T263 510Q263 480 278 458T319 427Q323 425 389 408T456 390Q490 379 522 342T554 242Q554 216 546 186Q541 164 528 137T492 78T426 18T332 -20Q320 -22 298 -22Q199 -22 144 33L134 44L106 13Q83 -14 78 -18T65 -22Q52 -22 52 -14Q52 -11 110 221Q112 227 130 227H143Q149 221 149 216Q149 214 148 207T144 186T142 153Q144 114 160 87T203 47T255 29T308 24Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(613, 363) scale(0.707)"}},[a("path",{attrs:{"data-c":"2032",d:"M79 43Q73 43 52 49T30 61Q30 68 85 293T146 528Q161 560 198 560Q218 560 240 545T262 501Q262 496 260 486Q259 479 173 263T84 45T79 43Z"}})])])])])])]),t._v(" is the next state random variable.")],1)]),t._v(" "),a("h4",{attrs:{id:"parameters-153"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-153"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-208"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-208"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The discrete probability distribution of next state.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-distribution-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-distribution-11"}},[t._v("#")]),t._v(" get_observation_distribution "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_observation_distribution",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"Distribution[D.T_agent[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the probability distribution of the observation given a state and action.")]),t._v(" "),a("p",[t._v("In mathematical terms (discrete case), given an action "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.197ex",height:"1.02ex",viewBox:"0 -441 529 451"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})])])])])]),t._v(", this function represents: "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.078ex",height:"2.262ex",viewBox:"0 -750 4012.7 1000"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"50",d:"M287 628Q287 635 230 637Q206 637 199 638T192 648Q192 649 194 659Q200 679 203 681T397 683Q587 682 600 680Q664 669 707 631T751 530Q751 453 685 389Q616 321 507 303Q500 302 402 301H307L277 182Q247 66 247 59Q247 55 248 54T255 50T272 48T305 46H336Q342 37 342 35Q342 19 335 5Q330 0 319 0Q316 0 282 1T182 2Q120 2 87 2T51 1Q33 1 33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM645 554Q645 567 643 575T634 597T609 619T560 635Q553 636 480 637Q463 637 445 637T416 636T404 636Q391 635 386 627Q384 621 367 550T332 412T314 344Q314 342 395 342H407H430Q542 342 590 392Q617 419 631 471T645 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(751, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(1140, 0)"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1903, 0)"}},[a("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(2181, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2650, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(3094.7, 0)"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3623.7, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(",\nwhere "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.05ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.726ex",height:"1.643ex",viewBox:"0 -704 763 726"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})])])])])]),t._v(" is the random variable of the observation.")],1),t._v(" "),a("h4",{attrs:{id:"parameters-154"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-154"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-209"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-209"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-space-16"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-16"}},[t._v("#")]),t._v(" get_observation_space "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_observation_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) observation space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("PartiallyObservable.get_observation_space()")]),t._v(" internally\ncalls "),a("code",[t._v("PartiallyObservable._get_observation_space_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the observation space is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-210"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-210"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The observation space.")]),t._v(" "),a("h3",{attrs:{id:"get-transition-value-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-transition-value-3"}},[t._v("#")]),t._v(" get_transition_value "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_transition_value",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"},{name:"next_state",default:"None",annotation:"Optional[D.T_state]"}],return:"D.T_agent[Value[D.T_value]]"}}}),t._v(" "),a("p",[t._v("Get the value (reward or cost) of a transition.")]),t._v(" "),a("p",[t._v("The transition to consider is defined by the function parameters.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("If this function never depends on the next_state parameter for its computation, it is recommended to\nindicate it by overriding "),a("code",[t._v("UncertainTransitions._is_transition_value_dependent_on_next_state_()")]),t._v(" to return\nFalse. This information can then be exploited by solvers to avoid computing next state to evaluate a\ntransition value (more efficient).")])]),t._v(" "),a("h4",{attrs:{id:"parameters-155"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-155"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")]),t._v(" "),a("li",[a("strong",[t._v("next_state")]),t._v(": The next state in which the transition ends (if needed for the computation).")])]),t._v(" "),a("h4",{attrs:{id:"returns-211"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-211"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The transition value (reward or cost).")]),t._v(" "),a("h3",{attrs:{id:"is-action-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-action-11"}},[t._v("#")]),t._v(" is_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_action",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an event is an action (i.e. a controllable event for the agents).")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\naction space provided by "),a("code",[t._v("Events.get_action_space()")]),t._v(", but it can be overridden for faster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-156"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-156"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("event")]),t._v(": The event to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-212"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-212"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is an action (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-applicable-action-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-11"}},[t._v("#")]),t._v(" is_applicable_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_applicable_action",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an action is applicable in the given memory (state or history), or in the internal one if\nomitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.is_applicable_action()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_applicable_action()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead\nof the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-157"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-157"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-213"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-213"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the action is applicable (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-enabled-event-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-11"}},[t._v("#")]),t._v(" is_enabled_event "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_enabled_event",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an uncontrollable event is enabled in the given memory (state or history), or in the\ninternal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.is_enabled_event()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_enabled_event()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead of\nthe memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-158"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-158"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-214"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-214"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is enabled (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-observation-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-observation-11"}},[t._v("#")]),t._v(" is_observation "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_observation",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that an observation indeed belongs to the domain observation space.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\nobservation space provided by "),a("code",[t._v("PartiallyObservable.get_observation_space()")]),t._v(", but it can be overridden for\nfaster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-159"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-159"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-215"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-215"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the observation belongs to the domain observation space (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-terminal-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-terminal-3"}},[t._v("#")]),t._v(" is_terminal "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_terminal",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"}],return:"D.T_agent[D.T_predicate]"}}}),t._v(" "),a("p",[t._v("Indicate whether a state is terminal.")]),t._v(" "),a("p",[t._v("A terminal state is a state with no outgoing transition (except to itself with value 0).")]),t._v(" "),a("h4",{attrs:{id:"parameters-160"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-160"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-216"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-216"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the state is terminal (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-transition-value-dependent-on-next-state-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-transition-value-dependent-on-next-state-4"}},[t._v("#")]),t._v(" is_transition_value_dependent_on_next_state "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_transition_value_dependent_on_next_state",sig:{params:[{name:"self"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether get_transition_value() requires the next_state parameter for its computation (cached).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("UncertainTransitions.is_transition_value_dependent_on_next_state()")]),t._v(" internally\ncalls "),a("code",[t._v("UncertainTransitions._is_transition_value_dependent_on_next_state_()")]),t._v(" the first time and automatically\ncaches its value to make future calls more efficient (since the returned value is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-217"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-217"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the transition value computation depends on next_state (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"reset-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#reset-7"}},[t._v("#")]),t._v(" reset "),a("Badge",{attrs:{text:"Initializable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"reset",sig:{params:[{name:"self"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Reset the state of the environment and return an initial observation.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Initializable.reset()")]),t._v(" provides some boilerplate code and internally calls "),a("code",[t._v("Initializable._reset()")]),t._v("\n(which returns an initial state). The boilerplate code automatically stores the initial state into the "),a("code",[t._v("_memory")]),t._v("\nattribute and samples a corresponding observation.")]),t._v(" "),a("h4",{attrs:{id:"returns-218"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-218"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("An initial observation.")]),t._v(" "),a("h3",{attrs:{id:"sample-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample-5"}},[t._v("#")]),t._v(" sample "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"sample",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Sample one transition of the simulator's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Simulation.sample()")]),t._v(" provides some boilerplate code and internally calls "),a("code",[t._v("Simulation._sample()")]),t._v("\n(which returns a transition outcome). The boilerplate code automatically samples an observation corresponding to\nthe sampled next state.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing simulator needs to be wrapped instead of implemented fully in scikit-decide (e.g. a\nsimulator), it is recommended to overwrite "),a("code",[t._v("Simulation.sample()")]),t._v(" to call the external simulator and not use\nthe "),a("code",[t._v("Simulation._sample()")]),t._v(" helper function.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-161"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-161"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-219"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-219"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of the sampled transition.")]),t._v(" "),a("h3",{attrs:{id:"set-memory-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#set-memory-5"}},[t._v("#")]),t._v(" set_memory "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"set_memory",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"None"}}}),t._v(" "),a("p",[t._v("Set internal memory attribute "),a("code",[t._v("_memory")]),t._v(" to given one.")]),t._v(" "),a("p",[t._v('This can be useful to set a specific "starting point" before doing a rollout with successive '),a("code",[t._v("Environment.step()")]),t._v("\ncalls.")]),t._v(" "),a("h4",{attrs:{id:"parameters-162"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-162"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to set internally.")])]),t._v(" "),a("h4",{attrs:{id:"example-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#example-5"}},[t._v("#")]),t._v(" Example")]),t._v(" "),a("div",{staticClass:"language-python extra-class"},[a("pre",{pre:!0,attrs:{class:"language-python"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Set simulation_domain memory to my_state (assuming Markovian domain)")]),t._v("\nsimulation_domain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("set_memory"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("my_state"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Start a 100-steps rollout from here (applying my_action at every step)")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("for")]),t._v(" _ "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("in")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("range")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n simulation_domain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("step"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("my_action"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("h3",{attrs:{id:"solve-with-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#solve-with-6"}},[t._v("#")]),t._v(" solve_with "),a("Badge",{attrs:{text:"Domain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"solve_with",sig:{params:[{name:"solver",annotation:"Solver"},{name:"domain_factory",default:"None",annotation:"Optional[Callable[[], Domain]]"},{name:"load_path",default:"None",annotation:"Optional[str]"}],return:"Solver"}}}),t._v(" "),a("p",[t._v("Solve the domain with a new or loaded solver and return it auto-cast to the level of the domain.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Solver.check_domain()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Solver._check_domain_additional()")]),t._v(' (which returns True by default but can be overridden to define\nspecific checks in addition to the "domain requirements"). The boilerplate code automatically checks whether all\ndomain requirements are met.')]),t._v(" "),a("h4",{attrs:{id:"parameters-163"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-163"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("solver")]),t._v(": The solver.")]),t._v(" "),a("li",[a("strong",[t._v("domain_factory")]),t._v(": A callable with no argument returning the domain to solve (factory is the domain class if None).")]),t._v(" "),a("li",[a("strong",[t._v("load_path")]),t._v(": The path to restore the solver state from (if None, the solving process will be launched instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-220"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-220"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The new solver (auto-cast to the level of the domain).")]),t._v(" "),a("h3",{attrs:{id:"step-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#step-11"}},[t._v("#")]),t._v(" step "),a("Badge",{attrs:{text:"Environment",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"step",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Run one step of the environment's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Environment.step()")]),t._v(" provides some boilerplate code and internally calls "),a("code",[t._v("Environment._step()")]),t._v(" (which\nreturns a transition outcome). The boilerplate code automatically stores next state into the "),a("code",[t._v("_memory")]),t._v(" attribute\nand samples a corresponding observation.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing environment needs to be wrapped instead of implemented fully in scikit-decide (e.g. compiled\nATARI games), it is recommended to overwrite "),a("code",[t._v("Environment.step()")]),t._v(" to call the external environment and not\nuse the "),a("code",[t._v("Environment._step()")]),t._v(" helper function.")])]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Before calling "),a("code",[t._v("Environment.step()")]),t._v(" the first time or when the end of an episode is\nreached, "),a("code",[t._v("Initializable.reset()")]),t._v(" must be called to reset the environment's state.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-164"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-164"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the current memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-221"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-221"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of this step.")]),t._v(" "),a("h3",{attrs:{id:"check-value-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#check-value-12"}},[t._v("#")]),t._v(" _check_value "),a("Badge",{attrs:{text:"Rewards",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_check_value",sig:{params:[{name:"self"},{name:"value",annotation:"Value[D.T_value]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that a value is compliant with its reward specification.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("This function returns always True by default because any kind of reward should be accepted at this level.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-165"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-165"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("value")]),t._v(": The value to check.")])]),t._v(" "),a("h4",{attrs:{id:"returns-222"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-222"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the value is compliant (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"get-action-space-17"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-17"}},[t._v("#")]),t._v(" _get_action_space "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_action_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) domain action space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._get_action_space()")]),t._v(" internally calls "),a("code",[t._v("Events._get_action_space_()")]),t._v(" the first time and\nautomatically caches its value to make future calls more efficient (since the action space is assumed to be\nconstant).")]),t._v(" "),a("h4",{attrs:{id:"returns-223"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-223"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The action space.")]),t._v(" "),a("h3",{attrs:{id:"get-action-space-18"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-18"}},[t._v("#")]),t._v(" _get_action_space_ "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_action_space_",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the domain action space (finite or infinite set).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._get_action_space()")]),t._v(", the difference being that the\nresult is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-224"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-224"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The action space.")]),t._v(" "),a("h3",{attrs:{id:"get-applicable-actions-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-12"}},[t._v("#")]),t._v(" _get_applicable_actions "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_applicable_actions",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history), or in\nthe internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._get_applicable_actions()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_applicable_actions_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-166"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-166"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-225"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-225"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of applicable actions.")]),t._v(" "),a("h3",{attrs:{id:"get-applicable-actions-from-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-from-6"}},[t._v("#")]),t._v(" _get_applicable_actions_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_applicable_actions_from",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._get_applicable_actions()")]),t._v(", the difference being that\nthe memory parameter is mandatory here.")]),t._v(" "),a("h4",{attrs:{id:"parameters-167"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-167"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-226"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-226"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of applicable actions.")]),t._v(" "),a("h3",{attrs:{id:"get-enabled-events-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-12"}},[t._v("#")]),t._v(" _get_enabled_events "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_enabled_events",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"Space[D.T_event]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory), or in the internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._get_enabled_events()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_enabled_events_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-168"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-168"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-227"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-227"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of enabled events.")]),t._v(" "),a("h3",{attrs:{id:"get-enabled-events-from-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-from-6"}},[t._v("#")]),t._v(" _get_enabled_events_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_enabled_events_from",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"Space[D.T_event]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._get_enabled_events()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("h4",{attrs:{id:"parameters-169"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-169"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-228"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-228"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of enabled events.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-distribution-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-distribution-5"}},[t._v("#")]),t._v(" _get_initial_state_distribution "),a("Badge",{attrs:{text:"UncertainInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_initial_state_distribution",sig:{params:[{name:"self"}],return:"Distribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("Get the (cached) probability distribution of initial states.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("UncertainInitialized._get_initial_state_distribution()")]),t._v(" internally\ncalls "),a("code",[t._v("UncertainInitialized._get_initial_state_distribution_()")]),t._v(" the first time and automatically caches its value\nto make future calls more efficient (since the initial state distribution is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-229"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-229"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of initial states.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-distribution-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-distribution-6"}},[t._v("#")]),t._v(" _get_initial_state_distribution_ "),a("Badge",{attrs:{text:"UncertainInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_initial_state_distribution_",sig:{params:[{name:"self"}],return:"Distribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("Get the probability distribution of initial states.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("UncertainInitialized._get_initial_state_distribution()")]),t._v(", the\ndifference being that the result is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-230"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-230"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of initial states.")]),t._v(" "),a("h3",{attrs:{id:"get-memory-maxlen-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-memory-maxlen-10"}},[t._v("#")]),t._v(" _get_memory_maxlen "),a("Badge",{attrs:{text:"History",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_memory_maxlen",sig:{params:[{name:"self"}],return:"int"}}}),t._v(" "),a("p",[t._v("Get the (cached) memory max length.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("FiniteHistory._get_memory_maxlen()")]),t._v(" internally calls "),a("code",[t._v("FiniteHistory._get_memory_maxlen_()")]),t._v(" the first\ntime and automatically caches its value to make future calls more efficient (since the memory max length is\nassumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-231"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-231"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The memory max length.")]),t._v(" "),a("h3",{attrs:{id:"get-memory-maxlen-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-memory-maxlen-11"}},[t._v("#")]),t._v(" _get_memory_maxlen_ "),a("Badge",{attrs:{text:"FiniteHistory",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_memory_maxlen_",sig:{params:[{name:"self"}],return:"int"}}}),t._v(" "),a("p",[t._v("Get the memory max length.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("FiniteHistory._get_memory_maxlen()")]),t._v(", the difference being that\nthe result is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-232"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-232"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The memory max length.")]),t._v(" "),a("h3",{attrs:{id:"get-next-state-distribution-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-next-state-distribution-4"}},[t._v("#")]),t._v(" _get_next_state_distribution "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_next_state_distribution",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"DiscreteDistribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("Get the discrete probability distribution of next state given a memory and action.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("In the Markovian case (memory only holds last state "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.061ex",height:"1.023ex",viewBox:"0 -442 469 452"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})])])])])]),t._v("), given an action "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.197ex",height:"1.02ex",viewBox:"0 -441 529 451"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})])])])])]),t._v(", this function can\nbe mathematically represented by "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.292ex",height:"2.283ex",viewBox:"0 -759 4107.1 1009"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"50",d:"M287 628Q287 635 230 637Q206 637 199 638T192 648Q192 649 194 659Q200 679 203 681T397 683Q587 682 600 680Q664 669 707 631T751 530Q751 453 685 389Q616 321 507 303Q500 302 402 301H307L277 182Q247 66 247 59Q247 55 248 54T255 50T272 48T305 46H336Q342 37 342 35Q342 19 335 5Q330 0 319 0Q316 0 282 1T182 2Q120 2 87 2T51 1Q33 1 33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM645 554Q645 567 643 575T634 597T609 619T560 635Q553 636 480 637Q463 637 445 637T416 636T404 636Q391 635 386 627Q384 621 367 550T332 412T314 344Q314 342 395 342H407H430Q542 342 590 392Q617 419 631 471T645 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(751, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"msup",transform:"translate(1140, 0)"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"53",d:"M308 24Q367 24 416 76T466 197Q466 260 414 284Q308 311 278 321T236 341Q176 383 176 462Q176 523 208 573T273 648Q302 673 343 688T407 704H418H425Q521 704 564 640Q565 640 577 653T603 682T623 704Q624 704 627 704T632 705Q645 705 645 698T617 577T585 459T569 456Q549 456 549 465Q549 471 550 475Q550 478 551 494T553 520Q553 554 544 579T526 616T501 641Q465 662 419 662Q362 662 313 616T263 510Q263 480 278 458T319 427Q323 425 389 408T456 390Q490 379 522 342T554 242Q554 216 546 186Q541 164 528 137T492 78T426 18T332 -20Q320 -22 298 -22Q199 -22 144 33L134 44L106 13Q83 -14 78 -18T65 -22Q52 -22 52 -14Q52 -11 110 221Q112 227 130 227H143Q149 221 149 216Q149 214 148 207T144 186T142 153Q144 114 160 87T203 47T255 29T308 24Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(613, 363) scale(0.707)"}},[a("path",{attrs:{"data-c":"2032",d:"M79 43Q73 43 52 49T30 61Q30 68 85 293T146 528Q161 560 198 560Q218 560 240 545T262 501Q262 496 260 486Q259 479 173 263T84 45T79 43Z"}})])]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1997.5, 0)"}},[a("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(2275.5, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2744.5, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(3189.1, 0)"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3718.1, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(", where "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.05ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.94ex",height:"1.767ex",viewBox:"0 -759 857.5 781"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"msup"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"53",d:"M308 24Q367 24 416 76T466 197Q466 260 414 284Q308 311 278 321T236 341Q176 383 176 462Q176 523 208 573T273 648Q302 673 343 688T407 704H418H425Q521 704 564 640Q565 640 577 653T603 682T623 704Q624 704 627 704T632 705Q645 705 645 698T617 577T585 459T569 456Q549 456 549 465Q549 471 550 475Q550 478 551 494T553 520Q553 554 544 579T526 616T501 641Q465 662 419 662Q362 662 313 616T263 510Q263 480 278 458T319 427Q323 425 389 408T456 390Q490 379 522 342T554 242Q554 216 546 186Q541 164 528 137T492 78T426 18T332 -20Q320 -22 298 -22Q199 -22 144 33L134 44L106 13Q83 -14 78 -18T65 -22Q52 -22 52 -14Q52 -11 110 221Q112 227 130 227H143Q149 221 149 216Q149 214 148 207T144 186T142 153Q144 114 160 87T203 47T255 29T308 24Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(613, 363) scale(0.707)"}},[a("path",{attrs:{"data-c":"2032",d:"M79 43Q73 43 52 49T30 61Q30 68 85 293T146 528Q161 560 198 560Q218 560 240 545T262 501Q262 496 260 486Q259 479 173 263T84 45T79 43Z"}})])])])])])]),t._v(" is the next state random variable.")],1)]),t._v(" "),a("h4",{attrs:{id:"parameters-170"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-170"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-233"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-233"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The discrete probability distribution of next state.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-distribution-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-distribution-12"}},[t._v("#")]),t._v(" _get_observation_distribution "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation_distribution",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"Distribution[D.T_agent[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the probability distribution of the observation given a state and action.")]),t._v(" "),a("p",[t._v("In mathematical terms (discrete case), given an action "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.197ex",height:"1.02ex",viewBox:"0 -441 529 451"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})])])])])]),t._v(", this function represents: "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.078ex",height:"2.262ex",viewBox:"0 -750 4012.7 1000"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"50",d:"M287 628Q287 635 230 637Q206 637 199 638T192 648Q192 649 194 659Q200 679 203 681T397 683Q587 682 600 680Q664 669 707 631T751 530Q751 453 685 389Q616 321 507 303Q500 302 402 301H307L277 182Q247 66 247 59Q247 55 248 54T255 50T272 48T305 46H336Q342 37 342 35Q342 19 335 5Q330 0 319 0Q316 0 282 1T182 2Q120 2 87 2T51 1Q33 1 33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM645 554Q645 567 643 575T634 597T609 619T560 635Q553 636 480 637Q463 637 445 637T416 636T404 636Q391 635 386 627Q384 621 367 550T332 412T314 344Q314 342 395 342H407H430Q542 342 590 392Q617 419 631 471T645 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(751, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(1140, 0)"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1903, 0)"}},[a("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(2181, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2650, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(3094.7, 0)"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3623.7, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(",\nwhere "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.05ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.726ex",height:"1.643ex",viewBox:"0 -704 763 726"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})])])])])]),t._v(" is the random variable of the observation.")],1),t._v(" "),a("h4",{attrs:{id:"parameters-171"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-171"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-234"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-234"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-space-17"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-17"}},[t._v("#")]),t._v(" _get_observation_space "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) observation space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(" internally\ncalls "),a("code",[t._v("PartiallyObservable._get_observation_space_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the observation space is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-235"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-235"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The observation space.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-space-18"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-18"}},[t._v("#")]),t._v(" _get_observation_space_ "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation_space_",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the observation space (finite or infinite set).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(", the difference\nbeing that the result is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-236"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-236"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The observation space.")]),t._v(" "),a("h3",{attrs:{id:"get-transition-value-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-transition-value-4"}},[t._v("#")]),t._v(" _get_transition_value "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_transition_value",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"},{name:"next_state",default:"None",annotation:"Optional[D.T_state]"}],return:"D.T_agent[Value[D.T_value]]"}}}),t._v(" "),a("p",[t._v("Get the value (reward or cost) of a transition.")]),t._v(" "),a("p",[t._v("The transition to consider is defined by the function parameters.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("If this function never depends on the next_state parameter for its computation, it is recommended to\nindicate it by overriding "),a("code",[t._v("UncertainTransitions._is_transition_value_dependent_on_next_state_()")]),t._v(" to return\nFalse. This information can then be exploited by solvers to avoid computing next state to evaluate a\ntransition value (more efficient).")])]),t._v(" "),a("h4",{attrs:{id:"parameters-172"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-172"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")]),t._v(" "),a("li",[a("strong",[t._v("next_state")]),t._v(": The next state in which the transition ends (if needed for the computation).")])]),t._v(" "),a("h4",{attrs:{id:"returns-237"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-237"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The transition value (reward or cost).")]),t._v(" "),a("h3",{attrs:{id:"init-memory-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#init-memory-6"}},[t._v("#")]),t._v(" _init_memory "),a("Badge",{attrs:{text:"History",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_init_memory",sig:{params:[{name:"self"},{name:"state",default:"None",annotation:"Optional[D.T_state]"}],return:"D.T_memory[D.T_state]"}}}),t._v(" "),a("p",[t._v("Initialize memory (possibly with a state) according to its specification and return it.")]),t._v(" "),a("p",[t._v("This function is automatically called by "),a("code",[t._v("Initializable._reset()")]),t._v(" to reinitialize the internal memory whenever\nthe domain is used as an environment.")]),t._v(" "),a("h4",{attrs:{id:"parameters-173"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-173"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": An optional state to initialize the memory with (typically the initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-238"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-238"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The new initialized memory.")]),t._v(" "),a("h3",{attrs:{id:"is-action-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-action-12"}},[t._v("#")]),t._v(" _is_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_action",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an event is an action (i.e. a controllable event for the agents).")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\naction space provided by "),a("code",[t._v("Events._get_action_space()")]),t._v(", but it can be overridden for faster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-174"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-174"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("event")]),t._v(": The event to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-239"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-239"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is an action (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-applicable-action-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-12"}},[t._v("#")]),t._v(" _is_applicable_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_applicable_action",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an action is applicable in the given memory (state or history), or in the internal one if\nomitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._is_applicable_action()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_applicable_action_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-175"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-175"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-240"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-240"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the action is applicable (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-applicable-action-from-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-from-6"}},[t._v("#")]),t._v(" _is_applicable_action_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_applicable_action_from",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an action is applicable in the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._is_applicable_action()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the space of\napplicable actions provided by "),a("code",[t._v("Events._get_applicable_actions_from()")]),t._v(", but it can be overridden for faster\nimplementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-176"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-176"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-241"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-241"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the action is applicable (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-enabled-event-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-12"}},[t._v("#")]),t._v(" _is_enabled_event "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_enabled_event",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an uncontrollable event is enabled in the given memory (state or history), or in the\ninternal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._is_enabled_event()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_enabled_event_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead\nof the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-177"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-177"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-242"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-242"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is enabled (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-enabled-event-from-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-from-6"}},[t._v("#")]),t._v(" _is_enabled_event_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_enabled_event_from",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an event is enabled in the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._is_enabled_event()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the space of\nenabled events provided by "),a("code",[t._v("Events._get_enabled_events_from()")]),t._v(", but it can be overridden for faster\nimplementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-178"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-178"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-243"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-243"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is enabled (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-observation-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-observation-12"}},[t._v("#")]),t._v(" _is_observation "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_observation",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that an observation indeed belongs to the domain observation space.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\nobservation space provided by "),a("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(", but it can be overridden for\nfaster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-179"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-179"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-244"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-244"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the observation belongs to the domain observation space (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-terminal-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-terminal-4"}},[t._v("#")]),t._v(" _is_terminal "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_terminal",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"}],return:"D.T_agent[D.T_predicate]"}}}),t._v(" "),a("p",[t._v("Indicate whether a state is terminal.")]),t._v(" "),a("p",[t._v("A terminal state is a state with no outgoing transition (except to itself with value 0).")]),t._v(" "),a("h4",{attrs:{id:"parameters-180"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-180"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-245"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-245"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the state is terminal (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-transition-value-dependent-on-next-state-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-transition-value-dependent-on-next-state-5"}},[t._v("#")]),t._v(" _is_transition_value_dependent_on_next_state "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_transition_value_dependent_on_next_state",sig:{params:[{name:"self"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether _get_transition_value() requires the next_state parameter for its computation (cached).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("UncertainTransitions._is_transition_value_dependent_on_next_state()")]),t._v(" internally\ncalls "),a("code",[t._v("UncertainTransitions._is_transition_value_dependent_on_next_state_()")]),t._v(" the first time and automatically\ncaches its value to make future calls more efficient (since the returned value is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-246"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-246"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the transition value computation depends on next_state (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-transition-value-dependent-on-next-state-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-transition-value-dependent-on-next-state-6"}},[t._v("#")]),t._v(" _is_transition_value_dependent_on_next_state_ "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_transition_value_dependent_on_next_state_",sig:{params:[{name:"self"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether _get_transition_value() requires the next_state parameter for its computation.")]),t._v(" "),a("p",[t._v("This is a helper function called by default\nfrom "),a("code",[t._v("UncertainTransitions._is_transition_value_dependent_on_next_state()")]),t._v(", the difference being that the result\nis not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-247"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-247"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the transition value computation depends on next_state (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"reset-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#reset-8"}},[t._v("#")]),t._v(" _reset "),a("Badge",{attrs:{text:"Initializable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_reset",sig:{params:[{name:"self"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Reset the state of the environment and return an initial observation.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Initializable._reset()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Initializable._state_reset()")]),t._v(" (which returns an initial state). The boilerplate code automatically stores\nthe initial state into the "),a("code",[t._v("_memory")]),t._v(" attribute and samples a corresponding observation.")]),t._v(" "),a("h4",{attrs:{id:"returns-248"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-248"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("An initial observation.")]),t._v(" "),a("h3",{attrs:{id:"sample-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample-6"}},[t._v("#")]),t._v(" _sample "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_sample",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Sample one transition of the simulator's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Simulation._sample()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Simulation._state_sample()")]),t._v(" (which returns a transition outcome). The boilerplate code automatically\nsamples an observation corresponding to the sampled next state.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing simulator needs to be wrapped instead of implemented fully in scikit-decide (e.g. a\nsimulator), it is recommended to overwrite "),a("code",[t._v("Simulation._sample()")]),t._v(" to call the external simulator and not use\nthe "),a("code",[t._v("Simulation._state_sample()")]),t._v(" helper function.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-181"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-181"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-249"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-249"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of the sampled transition.")]),t._v(" "),a("h3",{attrs:{id:"set-memory-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#set-memory-6"}},[t._v("#")]),t._v(" _set_memory "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_set_memory",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"None"}}}),t._v(" "),a("p",[t._v("Set internal memory attribute "),a("code",[t._v("_memory")]),t._v(" to given one.")]),t._v(" "),a("p",[t._v('This can be useful to set a specific "starting point" before doing a rollout with\nsuccessive '),a("code",[t._v("Environment._step()")]),t._v(" calls.")]),t._v(" "),a("h4",{attrs:{id:"parameters-182"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-182"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to set internally.")])]),t._v(" "),a("h4",{attrs:{id:"example-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#example-6"}},[t._v("#")]),t._v(" Example")]),t._v(" "),a("div",{staticClass:"language-python extra-class"},[a("pre",{pre:!0,attrs:{class:"language-python"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Set simulation_domain memory to my_state (assuming Markovian domain)")]),t._v("\nsimulation_domain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("_set_memory"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("my_state"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Start a 100-steps rollout from here (applying my_action at every step)")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("for")]),t._v(" _ "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("in")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("range")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n simulation_domain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("_step"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("my_action"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("h3",{attrs:{id:"state-reset-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#state-reset-4"}},[t._v("#")]),t._v(" _state_reset "),a("Badge",{attrs:{text:"Initializable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_state_reset",sig:{params:[{name:"self"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("Reset the state of the environment and return an initial state.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Initializable._reset()")]),t._v(". It focuses on the state level, as\nopposed to the observation one for the latter.")]),t._v(" "),a("h4",{attrs:{id:"returns-250"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-250"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("An initial state.")]),t._v(" "),a("h3",{attrs:{id:"state-sample-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#state-sample-3"}},[t._v("#")]),t._v(" _state_sample "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_state_sample",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"TransitionOutcome[D.T_state, D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Compute one sample of the transition's dynamics.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Simulation._sample()")]),t._v(". It focuses on the state level, as\nopposed to the observation one for the latter.")]),t._v(" "),a("h4",{attrs:{id:"parameters-183"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-183"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-251"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-251"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The transition outcome of the sampled transition.")]),t._v(" "),a("h3",{attrs:{id:"state-step-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#state-step-6"}},[t._v("#")]),t._v(" _state_step "),a("Badge",{attrs:{text:"Environment",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_state_step",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"TransitionOutcome[D.T_state, D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Compute one step of the transition's dynamics.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Environment._step()")]),t._v(". It focuses on the state level, as opposed\nto the observation one for the latter.")]),t._v(" "),a("h4",{attrs:{id:"parameters-184"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-184"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the current memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-252"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-252"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The transition outcome of this step.")]),t._v(" "),a("h3",{attrs:{id:"step-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#step-12"}},[t._v("#")]),t._v(" _step "),a("Badge",{attrs:{text:"Environment",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_step",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Run one step of the environment's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Environment._step()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Environment._state_step()")]),t._v(" (which returns a transition outcome). The boilerplate code automatically stores\nnext state into the "),a("code",[t._v("_memory")]),t._v(" attribute and samples a corresponding observation.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing environment needs to be wrapped instead of implemented fully in scikit-decide (e.g. compiled\nATARI games), it is recommended to overwrite "),a("code",[t._v("Environment._step()")]),t._v(" to call the external environment and not\nuse the "),a("code",[t._v("Environment._state_step()")]),t._v(" helper function.")])]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Before calling "),a("code",[t._v("Environment._step()")]),t._v(" the first time or when the end of an episode is\nreached, "),a("code",[t._v("Initializable._reset()")]),t._v(" must be called to reset the environment's state.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-185"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-185"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the current memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-253"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-253"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of this step.")]),t._v(" "),a("h2",{attrs:{id:"goalmdpdomain"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#goalmdpdomain"}},[t._v("#")]),t._v(" GoalMDPDomain")]),t._v(" "),a("p",[t._v("This is a typical Goal Markov Decision Process domain class.")]),t._v(" "),a("p",[t._v("This helper class can be used as an alternate base class for domains, inheriting the following:")]),t._v(" "),a("ul",[a("li",[t._v("Domain")]),t._v(" "),a("li",[t._v("SingleAgent")]),t._v(" "),a("li",[t._v("Sequential")]),t._v(" "),a("li",[t._v("EnumerableTransitions")]),t._v(" "),a("li",[t._v("Actions")]),t._v(" "),a("li",[t._v("Goals")]),t._v(" "),a("li",[t._v("DeterministicInitialized")]),t._v(" "),a("li",[t._v("Markovian")]),t._v(" "),a("li",[t._v("FullyObservable")]),t._v(" "),a("li",[t._v("PositiveCosts")])]),t._v(" "),a("p",[t._v("Typical use:")]),t._v(" "),a("div",{staticClass:"language-python extra-class"},[a("pre",{pre:!0,attrs:{class:"language-python"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("class")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("D")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("GoalMDPDomain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("It is also possible to refine any alternate base class, like for instance:")]),t._v(" "),a("div",{staticClass:"language-python extra-class"},[a("pre",{pre:!0,attrs:{class:"language-python"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("class")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("D")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("RLDomain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" FullyObservable"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])])]),t._v(" "),a("h3",{attrs:{id:"check-value-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#check-value-13"}},[t._v("#")]),t._v(" check_value "),a("Badge",{attrs:{text:"Rewards",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"check_value",sig:{params:[{name:"self"},{name:"value",annotation:"Value[D.T_value]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that a value is compliant with its reward specification.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("This function returns always True by default because any kind of reward should be accepted at this level.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-186"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-186"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("value")]),t._v(": The value to check.")])]),t._v(" "),a("h4",{attrs:{id:"returns-254"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-254"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the value is compliant (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"get-action-space-19"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-19"}},[t._v("#")]),t._v(" get_action_space "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_action_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) domain action space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.get_action_space()")]),t._v(" internally calls "),a("code",[t._v("Events._get_action_space_()")]),t._v(" the first time and\nautomatically caches its value to make future calls more efficient (since the action space is assumed to be\nconstant).")]),t._v(" "),a("h4",{attrs:{id:"returns-255"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-255"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The action space.")]),t._v(" "),a("h3",{attrs:{id:"get-applicable-actions-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-13"}},[t._v("#")]),t._v(" get_applicable_actions "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_applicable_actions",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history), or in\nthe internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.get_applicable_actions()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_applicable_actions()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-187"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-187"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-256"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-256"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of applicable actions.")]),t._v(" "),a("h3",{attrs:{id:"get-enabled-events-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-13"}},[t._v("#")]),t._v(" get_enabled_events "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_enabled_events",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"Space[D.T_event]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory), or in the internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.get_enabled_events()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_enabled_events()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead of\nthe memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-188"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-188"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-257"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-257"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of enabled events.")]),t._v(" "),a("h3",{attrs:{id:"get-goals"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-goals"}},[t._v("#")]),t._v(" get_goals "),a("Badge",{attrs:{text:"Goals",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_goals",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) domain goals space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Goals.get_goals()")]),t._v(" internally calls "),a("code",[t._v("Goals._get_goals_()")]),t._v(" the first time and automatically caches its\nvalue to make future calls more efficient (since the goals space is assumed to be constant).")]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Goal states are assumed to be fully observable (i.e. observation = state) so that there is never uncertainty\nabout whether the goal has been reached or not. This assumption guarantees that any policy that does not\nreach the goal with certainty incurs in infinite expected cost. - "),a("em",[t._v("Geffner, 2013: A Concise Introduction to\nModels and Methods for Automated Planning")])])]),t._v(" "),a("h4",{attrs:{id:"returns-258"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-258"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The goals space.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-4"}},[t._v("#")]),t._v(" get_initial_state "),a("Badge",{attrs:{text:"DeterministicInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_initial_state",sig:{params:[{name:"self"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("Get the (cached) initial state.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("DeterministicInitialized.get_initial_state()")]),t._v(" internally\ncalls "),a("code",[t._v("DeterministicInitialized._get_initial_state_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the initial state is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-259"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-259"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The initial state.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-distribution-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-distribution-7"}},[t._v("#")]),t._v(" get_initial_state_distribution "),a("Badge",{attrs:{text:"UncertainInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_initial_state_distribution",sig:{params:[{name:"self"}],return:"Distribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("Get the (cached) probability distribution of initial states.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("UncertainInitialized.get_initial_state_distribution()")]),t._v(" internally\ncalls "),a("code",[t._v("UncertainInitialized._get_initial_state_distribution_()")]),t._v(" the first time and automatically caches its value\nto make future calls more efficient (since the initial state distribution is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-260"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-260"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of initial states.")]),t._v(" "),a("h3",{attrs:{id:"get-next-state-distribution-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-next-state-distribution-5"}},[t._v("#")]),t._v(" get_next_state_distribution "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_next_state_distribution",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"DiscreteDistribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("Get the discrete probability distribution of next state given a memory and action.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("In the Markovian case (memory only holds last state "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.061ex",height:"1.023ex",viewBox:"0 -442 469 452"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})])])])])]),t._v("), given an action "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.197ex",height:"1.02ex",viewBox:"0 -441 529 451"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})])])])])]),t._v(", this function can\nbe mathematically represented by "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.292ex",height:"2.283ex",viewBox:"0 -759 4107.1 1009"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"50",d:"M287 628Q287 635 230 637Q206 637 199 638T192 648Q192 649 194 659Q200 679 203 681T397 683Q587 682 600 680Q664 669 707 631T751 530Q751 453 685 389Q616 321 507 303Q500 302 402 301H307L277 182Q247 66 247 59Q247 55 248 54T255 50T272 48T305 46H336Q342 37 342 35Q342 19 335 5Q330 0 319 0Q316 0 282 1T182 2Q120 2 87 2T51 1Q33 1 33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM645 554Q645 567 643 575T634 597T609 619T560 635Q553 636 480 637Q463 637 445 637T416 636T404 636Q391 635 386 627Q384 621 367 550T332 412T314 344Q314 342 395 342H407H430Q542 342 590 392Q617 419 631 471T645 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(751, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"msup",transform:"translate(1140, 0)"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"53",d:"M308 24Q367 24 416 76T466 197Q466 260 414 284Q308 311 278 321T236 341Q176 383 176 462Q176 523 208 573T273 648Q302 673 343 688T407 704H418H425Q521 704 564 640Q565 640 577 653T603 682T623 704Q624 704 627 704T632 705Q645 705 645 698T617 577T585 459T569 456Q549 456 549 465Q549 471 550 475Q550 478 551 494T553 520Q553 554 544 579T526 616T501 641Q465 662 419 662Q362 662 313 616T263 510Q263 480 278 458T319 427Q323 425 389 408T456 390Q490 379 522 342T554 242Q554 216 546 186Q541 164 528 137T492 78T426 18T332 -20Q320 -22 298 -22Q199 -22 144 33L134 44L106 13Q83 -14 78 -18T65 -22Q52 -22 52 -14Q52 -11 110 221Q112 227 130 227H143Q149 221 149 216Q149 214 148 207T144 186T142 153Q144 114 160 87T203 47T255 29T308 24Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(613, 363) scale(0.707)"}},[a("path",{attrs:{"data-c":"2032",d:"M79 43Q73 43 52 49T30 61Q30 68 85 293T146 528Q161 560 198 560Q218 560 240 545T262 501Q262 496 260 486Q259 479 173 263T84 45T79 43Z"}})])]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1997.5, 0)"}},[a("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(2275.5, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2744.5, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(3189.1, 0)"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3718.1, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(", where "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.05ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.94ex",height:"1.767ex",viewBox:"0 -759 857.5 781"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"msup"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"53",d:"M308 24Q367 24 416 76T466 197Q466 260 414 284Q308 311 278 321T236 341Q176 383 176 462Q176 523 208 573T273 648Q302 673 343 688T407 704H418H425Q521 704 564 640Q565 640 577 653T603 682T623 704Q624 704 627 704T632 705Q645 705 645 698T617 577T585 459T569 456Q549 456 549 465Q549 471 550 475Q550 478 551 494T553 520Q553 554 544 579T526 616T501 641Q465 662 419 662Q362 662 313 616T263 510Q263 480 278 458T319 427Q323 425 389 408T456 390Q490 379 522 342T554 242Q554 216 546 186Q541 164 528 137T492 78T426 18T332 -20Q320 -22 298 -22Q199 -22 144 33L134 44L106 13Q83 -14 78 -18T65 -22Q52 -22 52 -14Q52 -11 110 221Q112 227 130 227H143Q149 221 149 216Q149 214 148 207T144 186T142 153Q144 114 160 87T203 47T255 29T308 24Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(613, 363) scale(0.707)"}},[a("path",{attrs:{"data-c":"2032",d:"M79 43Q73 43 52 49T30 61Q30 68 85 293T146 528Q161 560 198 560Q218 560 240 545T262 501Q262 496 260 486Q259 479 173 263T84 45T79 43Z"}})])])])])])]),t._v(" is the next state random variable.")],1)]),t._v(" "),a("h4",{attrs:{id:"parameters-189"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-189"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-261"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-261"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The discrete probability distribution of next state.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-9"}},[t._v("#")]),t._v(" get_observation "),a("Badge",{attrs:{text:"TransformedObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_observation",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Get the deterministic observation given a state and action.")]),t._v(" "),a("h4",{attrs:{id:"parameters-190"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-190"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-262"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-262"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-distribution-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-distribution-13"}},[t._v("#")]),t._v(" get_observation_distribution "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_observation_distribution",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"Distribution[D.T_agent[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the probability distribution of the observation given a state and action.")]),t._v(" "),a("p",[t._v("In mathematical terms (discrete case), given an action "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.197ex",height:"1.02ex",viewBox:"0 -441 529 451"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})])])])])]),t._v(", this function represents: "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.078ex",height:"2.262ex",viewBox:"0 -750 4012.7 1000"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"50",d:"M287 628Q287 635 230 637Q206 637 199 638T192 648Q192 649 194 659Q200 679 203 681T397 683Q587 682 600 680Q664 669 707 631T751 530Q751 453 685 389Q616 321 507 303Q500 302 402 301H307L277 182Q247 66 247 59Q247 55 248 54T255 50T272 48T305 46H336Q342 37 342 35Q342 19 335 5Q330 0 319 0Q316 0 282 1T182 2Q120 2 87 2T51 1Q33 1 33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM645 554Q645 567 643 575T634 597T609 619T560 635Q553 636 480 637Q463 637 445 637T416 636T404 636Q391 635 386 627Q384 621 367 550T332 412T314 344Q314 342 395 342H407H430Q542 342 590 392Q617 419 631 471T645 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(751, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(1140, 0)"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1903, 0)"}},[a("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(2181, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2650, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(3094.7, 0)"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3623.7, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(",\nwhere "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.05ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.726ex",height:"1.643ex",viewBox:"0 -704 763 726"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})])])])])]),t._v(" is the random variable of the observation.")],1),t._v(" "),a("h4",{attrs:{id:"parameters-191"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-191"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-263"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-263"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-space-19"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-19"}},[t._v("#")]),t._v(" get_observation_space "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_observation_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) observation space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("PartiallyObservable.get_observation_space()")]),t._v(" internally\ncalls "),a("code",[t._v("PartiallyObservable._get_observation_space_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the observation space is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-264"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-264"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The observation space.")]),t._v(" "),a("h3",{attrs:{id:"get-transition-value-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-transition-value-5"}},[t._v("#")]),t._v(" get_transition_value "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_transition_value",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"},{name:"next_state",default:"None",annotation:"Optional[D.T_state]"}],return:"D.T_agent[Value[D.T_value]]"}}}),t._v(" "),a("p",[t._v("Get the value (reward or cost) of a transition.")]),t._v(" "),a("p",[t._v("The transition to consider is defined by the function parameters.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("If this function never depends on the next_state parameter for its computation, it is recommended to\nindicate it by overriding "),a("code",[t._v("UncertainTransitions._is_transition_value_dependent_on_next_state_()")]),t._v(" to return\nFalse. This information can then be exploited by solvers to avoid computing next state to evaluate a\ntransition value (more efficient).")])]),t._v(" "),a("h4",{attrs:{id:"parameters-192"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-192"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")]),t._v(" "),a("li",[a("strong",[t._v("next_state")]),t._v(": The next state in which the transition ends (if needed for the computation).")])]),t._v(" "),a("h4",{attrs:{id:"returns-265"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-265"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The transition value (reward or cost).")]),t._v(" "),a("h3",{attrs:{id:"is-action-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-action-13"}},[t._v("#")]),t._v(" is_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_action",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an event is an action (i.e. a controllable event for the agents).")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\naction space provided by "),a("code",[t._v("Events.get_action_space()")]),t._v(", but it can be overridden for faster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-193"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-193"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("event")]),t._v(": The event to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-266"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-266"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is an action (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-applicable-action-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-13"}},[t._v("#")]),t._v(" is_applicable_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_applicable_action",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an action is applicable in the given memory (state or history), or in the internal one if\nomitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.is_applicable_action()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_applicable_action()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead\nof the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-194"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-194"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-267"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-267"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the action is applicable (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-enabled-event-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-13"}},[t._v("#")]),t._v(" is_enabled_event "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_enabled_event",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an uncontrollable event is enabled in the given memory (state or history), or in the\ninternal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.is_enabled_event()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_enabled_event()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead of\nthe memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-195"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-195"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-268"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-268"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is enabled (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-goal"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-goal"}},[t._v("#")]),t._v(" is_goal "),a("Badge",{attrs:{text:"Goals",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_goal",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"D.T_agent[D.T_predicate]"}}}),t._v(" "),a("p",[t._v("Indicate whether an observation belongs to the goals.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\ngoals space provided by "),a("code",[t._v("Goals.get_goals()")]),t._v(", but it can be overridden for faster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-196"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-196"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-269"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-269"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the observation is a goal (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-observation-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-observation-13"}},[t._v("#")]),t._v(" is_observation "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_observation",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that an observation indeed belongs to the domain observation space.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\nobservation space provided by "),a("code",[t._v("PartiallyObservable.get_observation_space()")]),t._v(", but it can be overridden for\nfaster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-197"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-197"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-270"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-270"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the observation belongs to the domain observation space (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-terminal-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-terminal-5"}},[t._v("#")]),t._v(" is_terminal "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_terminal",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"}],return:"D.T_agent[D.T_predicate]"}}}),t._v(" "),a("p",[t._v("Indicate whether a state is terminal.")]),t._v(" "),a("p",[t._v("A terminal state is a state with no outgoing transition (except to itself with value 0).")]),t._v(" "),a("h4",{attrs:{id:"parameters-198"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-198"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-271"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-271"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the state is terminal (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-transition-value-dependent-on-next-state-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-transition-value-dependent-on-next-state-7"}},[t._v("#")]),t._v(" is_transition_value_dependent_on_next_state "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_transition_value_dependent_on_next_state",sig:{params:[{name:"self"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether get_transition_value() requires the next_state parameter for its computation (cached).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("UncertainTransitions.is_transition_value_dependent_on_next_state()")]),t._v(" internally\ncalls "),a("code",[t._v("UncertainTransitions._is_transition_value_dependent_on_next_state_()")]),t._v(" the first time and automatically\ncaches its value to make future calls more efficient (since the returned value is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-272"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-272"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the transition value computation depends on next_state (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"reset-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#reset-9"}},[t._v("#")]),t._v(" reset "),a("Badge",{attrs:{text:"Initializable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"reset",sig:{params:[{name:"self"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Reset the state of the environment and return an initial observation.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Initializable.reset()")]),t._v(" provides some boilerplate code and internally calls "),a("code",[t._v("Initializable._reset()")]),t._v("\n(which returns an initial state). The boilerplate code automatically stores the initial state into the "),a("code",[t._v("_memory")]),t._v("\nattribute and samples a corresponding observation.")]),t._v(" "),a("h4",{attrs:{id:"returns-273"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-273"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("An initial observation.")]),t._v(" "),a("h3",{attrs:{id:"sample-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample-7"}},[t._v("#")]),t._v(" sample "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"sample",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Sample one transition of the simulator's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Simulation.sample()")]),t._v(" provides some boilerplate code and internally calls "),a("code",[t._v("Simulation._sample()")]),t._v("\n(which returns a transition outcome). The boilerplate code automatically samples an observation corresponding to\nthe sampled next state.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing simulator needs to be wrapped instead of implemented fully in scikit-decide (e.g. a\nsimulator), it is recommended to overwrite "),a("code",[t._v("Simulation.sample()")]),t._v(" to call the external simulator and not use\nthe "),a("code",[t._v("Simulation._sample()")]),t._v(" helper function.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-199"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-199"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-274"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-274"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of the sampled transition.")]),t._v(" "),a("h3",{attrs:{id:"set-memory-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#set-memory-7"}},[t._v("#")]),t._v(" set_memory "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"set_memory",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"None"}}}),t._v(" "),a("p",[t._v("Set internal memory attribute "),a("code",[t._v("_memory")]),t._v(" to given one.")]),t._v(" "),a("p",[t._v('This can be useful to set a specific "starting point" before doing a rollout with successive '),a("code",[t._v("Environment.step()")]),t._v("\ncalls.")]),t._v(" "),a("h4",{attrs:{id:"parameters-200"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-200"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to set internally.")])]),t._v(" "),a("h4",{attrs:{id:"example-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#example-7"}},[t._v("#")]),t._v(" Example")]),t._v(" "),a("div",{staticClass:"language-python extra-class"},[a("pre",{pre:!0,attrs:{class:"language-python"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Set simulation_domain memory to my_state (assuming Markovian domain)")]),t._v("\nsimulation_domain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("set_memory"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("my_state"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Start a 100-steps rollout from here (applying my_action at every step)")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("for")]),t._v(" _ "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("in")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("range")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n simulation_domain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("step"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("my_action"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("h3",{attrs:{id:"solve-with-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#solve-with-7"}},[t._v("#")]),t._v(" solve_with "),a("Badge",{attrs:{text:"Domain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"solve_with",sig:{params:[{name:"solver",annotation:"Solver"},{name:"domain_factory",default:"None",annotation:"Optional[Callable[[], Domain]]"},{name:"load_path",default:"None",annotation:"Optional[str]"}],return:"Solver"}}}),t._v(" "),a("p",[t._v("Solve the domain with a new or loaded solver and return it auto-cast to the level of the domain.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Solver.check_domain()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Solver._check_domain_additional()")]),t._v(' (which returns True by default but can be overridden to define\nspecific checks in addition to the "domain requirements"). The boilerplate code automatically checks whether all\ndomain requirements are met.')]),t._v(" "),a("h4",{attrs:{id:"parameters-201"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-201"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("solver")]),t._v(": The solver.")]),t._v(" "),a("li",[a("strong",[t._v("domain_factory")]),t._v(": A callable with no argument returning the domain to solve (factory is the domain class if None).")]),t._v(" "),a("li",[a("strong",[t._v("load_path")]),t._v(": The path to restore the solver state from (if None, the solving process will be launched instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-275"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-275"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The new solver (auto-cast to the level of the domain).")]),t._v(" "),a("h3",{attrs:{id:"step-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#step-13"}},[t._v("#")]),t._v(" step "),a("Badge",{attrs:{text:"Environment",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"step",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Run one step of the environment's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Environment.step()")]),t._v(" provides some boilerplate code and internally calls "),a("code",[t._v("Environment._step()")]),t._v(" (which\nreturns a transition outcome). The boilerplate code automatically stores next state into the "),a("code",[t._v("_memory")]),t._v(" attribute\nand samples a corresponding observation.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing environment needs to be wrapped instead of implemented fully in scikit-decide (e.g. compiled\nATARI games), it is recommended to overwrite "),a("code",[t._v("Environment.step()")]),t._v(" to call the external environment and not\nuse the "),a("code",[t._v("Environment._step()")]),t._v(" helper function.")])]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Before calling "),a("code",[t._v("Environment.step()")]),t._v(" the first time or when the end of an episode is\nreached, "),a("code",[t._v("Initializable.reset()")]),t._v(" must be called to reset the environment's state.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-202"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-202"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the current memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-276"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-276"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of this step.")]),t._v(" "),a("h3",{attrs:{id:"check-value-14"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#check-value-14"}},[t._v("#")]),t._v(" _check_value "),a("Badge",{attrs:{text:"Rewards",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_check_value",sig:{params:[{name:"self"},{name:"value",annotation:"Value[D.T_value]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that a value is compliant with its cost specification (must be positive).")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("This function calls "),a("code",[t._v("PositiveCost._is_positive()")]),t._v(" to determine if a value is positive (can be overridden for\nadvanced value types).")])]),t._v(" "),a("h4",{attrs:{id:"parameters-203"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-203"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("value")]),t._v(": The value to check.")])]),t._v(" "),a("h4",{attrs:{id:"returns-277"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-277"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the value is compliant (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"get-action-space-20"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-20"}},[t._v("#")]),t._v(" _get_action_space "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_action_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) domain action space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._get_action_space()")]),t._v(" internally calls "),a("code",[t._v("Events._get_action_space_()")]),t._v(" the first time and\nautomatically caches its value to make future calls more efficient (since the action space is assumed to be\nconstant).")]),t._v(" "),a("h4",{attrs:{id:"returns-278"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-278"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The action space.")]),t._v(" "),a("h3",{attrs:{id:"get-action-space-21"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-21"}},[t._v("#")]),t._v(" _get_action_space_ "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_action_space_",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the domain action space (finite or infinite set).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._get_action_space()")]),t._v(", the difference being that the\nresult is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-279"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-279"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The action space.")]),t._v(" "),a("h3",{attrs:{id:"get-applicable-actions-14"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-14"}},[t._v("#")]),t._v(" _get_applicable_actions "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_applicable_actions",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history), or in\nthe internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._get_applicable_actions()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_applicable_actions_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-204"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-204"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-280"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-280"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of applicable actions.")]),t._v(" "),a("h3",{attrs:{id:"get-applicable-actions-from-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-from-7"}},[t._v("#")]),t._v(" _get_applicable_actions_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_applicable_actions_from",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._get_applicable_actions()")]),t._v(", the difference being that\nthe memory parameter is mandatory here.")]),t._v(" "),a("h4",{attrs:{id:"parameters-205"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-205"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-281"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-281"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of applicable actions.")]),t._v(" "),a("h3",{attrs:{id:"get-enabled-events-14"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-14"}},[t._v("#")]),t._v(" _get_enabled_events "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_enabled_events",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"Space[D.T_event]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory), or in the internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._get_enabled_events()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_enabled_events_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-206"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-206"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-282"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-282"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of enabled events.")]),t._v(" "),a("h3",{attrs:{id:"get-enabled-events-from-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-from-7"}},[t._v("#")]),t._v(" _get_enabled_events_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_enabled_events_from",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"Space[D.T_event]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._get_enabled_events()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("h4",{attrs:{id:"parameters-207"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-207"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-283"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-283"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of enabled events.")]),t._v(" "),a("h3",{attrs:{id:"get-goals-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-goals-2"}},[t._v("#")]),t._v(" _get_goals "),a("Badge",{attrs:{text:"Goals",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_goals",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) domain goals space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Goals._get_goals()")]),t._v(" internally calls "),a("code",[t._v("Goals._get_goals_()")]),t._v(" the first time and automatically caches\nits value to make future calls more efficient (since the goals space is assumed to be constant).")]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Goal states are assumed to be fully observable (i.e. observation = state) so that there is never uncertainty\nabout whether the goal has been reached or not. This assumption guarantees that any policy that does not\nreach the goal with certainty incurs in infinite expected cost. - "),a("em",[t._v("Geffner, 2013: A Concise Introduction to\nModels and Methods for Automated Planning")])])]),t._v(" "),a("h4",{attrs:{id:"returns-284"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-284"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The goals space.")]),t._v(" "),a("h3",{attrs:{id:"get-goals-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-goals-3"}},[t._v("#")]),t._v(" _get_goals_ "),a("Badge",{attrs:{text:"Goals",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_goals_",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the domain goals space (finite or infinite set).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Goals._get_goals()")]),t._v(", the difference being that the result is\nnot cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-285"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-285"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The goals space.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-5"}},[t._v("#")]),t._v(" _get_initial_state "),a("Badge",{attrs:{text:"DeterministicInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_initial_state",sig:{params:[{name:"self"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("Get the (cached) initial state.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("DeterministicInitialized._get_initial_state()")]),t._v(" internally\ncalls "),a("code",[t._v("DeterministicInitialized._get_initial_state_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the initial state is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-286"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-286"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The initial state.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-6"}},[t._v("#")]),t._v(" _get_initial_state_ "),a("Badge",{attrs:{text:"DeterministicInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_initial_state_",sig:{params:[{name:"self"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("Get the initial state.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("DeterministicInitialized._get_initial_state()")]),t._v(", the difference\nbeing that the result is not cached here.")]),t._v(" "),a("h4",{attrs:{id:"returns-287"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-287"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The initial state.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-distribution-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-distribution-8"}},[t._v("#")]),t._v(" _get_initial_state_distribution "),a("Badge",{attrs:{text:"UncertainInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_initial_state_distribution",sig:{params:[{name:"self"}],return:"Distribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("Get the (cached) probability distribution of initial states.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("UncertainInitialized._get_initial_state_distribution()")]),t._v(" internally\ncalls "),a("code",[t._v("UncertainInitialized._get_initial_state_distribution_()")]),t._v(" the first time and automatically caches its value\nto make future calls more efficient (since the initial state distribution is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-288"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-288"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of initial states.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-distribution-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-distribution-9"}},[t._v("#")]),t._v(" _get_initial_state_distribution_ "),a("Badge",{attrs:{text:"UncertainInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_initial_state_distribution_",sig:{params:[{name:"self"}],return:"Distribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("Get the probability distribution of initial states.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("UncertainInitialized._get_initial_state_distribution()")]),t._v(", the\ndifference being that the result is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-289"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-289"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of initial states.")]),t._v(" "),a("h3",{attrs:{id:"get-memory-maxlen-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-memory-maxlen-12"}},[t._v("#")]),t._v(" _get_memory_maxlen "),a("Badge",{attrs:{text:"History",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_memory_maxlen",sig:{params:[{name:"self"}],return:"int"}}}),t._v(" "),a("p",[t._v("Get the (cached) memory max length.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("FiniteHistory._get_memory_maxlen()")]),t._v(" internally calls "),a("code",[t._v("FiniteHistory._get_memory_maxlen_()")]),t._v(" the first\ntime and automatically caches its value to make future calls more efficient (since the memory max length is\nassumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-290"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-290"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The memory max length.")]),t._v(" "),a("h3",{attrs:{id:"get-memory-maxlen-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-memory-maxlen-13"}},[t._v("#")]),t._v(" _get_memory_maxlen_ "),a("Badge",{attrs:{text:"FiniteHistory",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_memory_maxlen_",sig:{params:[{name:"self"}],return:"int"}}}),t._v(" "),a("p",[t._v("Get the memory max length.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("FiniteHistory._get_memory_maxlen()")]),t._v(", the difference being that\nthe result is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-291"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-291"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The memory max length.")]),t._v(" "),a("h3",{attrs:{id:"get-next-state-distribution-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-next-state-distribution-6"}},[t._v("#")]),t._v(" _get_next_state_distribution "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_next_state_distribution",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"DiscreteDistribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("Get the discrete probability distribution of next state given a memory and action.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("In the Markovian case (memory only holds last state "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.061ex",height:"1.023ex",viewBox:"0 -442 469 452"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})])])])])]),t._v("), given an action "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.197ex",height:"1.02ex",viewBox:"0 -441 529 451"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})])])])])]),t._v(", this function can\nbe mathematically represented by "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.292ex",height:"2.283ex",viewBox:"0 -759 4107.1 1009"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"50",d:"M287 628Q287 635 230 637Q206 637 199 638T192 648Q192 649 194 659Q200 679 203 681T397 683Q587 682 600 680Q664 669 707 631T751 530Q751 453 685 389Q616 321 507 303Q500 302 402 301H307L277 182Q247 66 247 59Q247 55 248 54T255 50T272 48T305 46H336Q342 37 342 35Q342 19 335 5Q330 0 319 0Q316 0 282 1T182 2Q120 2 87 2T51 1Q33 1 33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM645 554Q645 567 643 575T634 597T609 619T560 635Q553 636 480 637Q463 637 445 637T416 636T404 636Q391 635 386 627Q384 621 367 550T332 412T314 344Q314 342 395 342H407H430Q542 342 590 392Q617 419 631 471T645 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(751, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"msup",transform:"translate(1140, 0)"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"53",d:"M308 24Q367 24 416 76T466 197Q466 260 414 284Q308 311 278 321T236 341Q176 383 176 462Q176 523 208 573T273 648Q302 673 343 688T407 704H418H425Q521 704 564 640Q565 640 577 653T603 682T623 704Q624 704 627 704T632 705Q645 705 645 698T617 577T585 459T569 456Q549 456 549 465Q549 471 550 475Q550 478 551 494T553 520Q553 554 544 579T526 616T501 641Q465 662 419 662Q362 662 313 616T263 510Q263 480 278 458T319 427Q323 425 389 408T456 390Q490 379 522 342T554 242Q554 216 546 186Q541 164 528 137T492 78T426 18T332 -20Q320 -22 298 -22Q199 -22 144 33L134 44L106 13Q83 -14 78 -18T65 -22Q52 -22 52 -14Q52 -11 110 221Q112 227 130 227H143Q149 221 149 216Q149 214 148 207T144 186T142 153Q144 114 160 87T203 47T255 29T308 24Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(613, 363) scale(0.707)"}},[a("path",{attrs:{"data-c":"2032",d:"M79 43Q73 43 52 49T30 61Q30 68 85 293T146 528Q161 560 198 560Q218 560 240 545T262 501Q262 496 260 486Q259 479 173 263T84 45T79 43Z"}})])]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1997.5, 0)"}},[a("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(2275.5, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2744.5, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(3189.1, 0)"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3718.1, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(", where "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.05ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.94ex",height:"1.767ex",viewBox:"0 -759 857.5 781"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"msup"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"53",d:"M308 24Q367 24 416 76T466 197Q466 260 414 284Q308 311 278 321T236 341Q176 383 176 462Q176 523 208 573T273 648Q302 673 343 688T407 704H418H425Q521 704 564 640Q565 640 577 653T603 682T623 704Q624 704 627 704T632 705Q645 705 645 698T617 577T585 459T569 456Q549 456 549 465Q549 471 550 475Q550 478 551 494T553 520Q553 554 544 579T526 616T501 641Q465 662 419 662Q362 662 313 616T263 510Q263 480 278 458T319 427Q323 425 389 408T456 390Q490 379 522 342T554 242Q554 216 546 186Q541 164 528 137T492 78T426 18T332 -20Q320 -22 298 -22Q199 -22 144 33L134 44L106 13Q83 -14 78 -18T65 -22Q52 -22 52 -14Q52 -11 110 221Q112 227 130 227H143Q149 221 149 216Q149 214 148 207T144 186T142 153Q144 114 160 87T203 47T255 29T308 24Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(613, 363) scale(0.707)"}},[a("path",{attrs:{"data-c":"2032",d:"M79 43Q73 43 52 49T30 61Q30 68 85 293T146 528Q161 560 198 560Q218 560 240 545T262 501Q262 496 260 486Q259 479 173 263T84 45T79 43Z"}})])])])])])]),t._v(" is the next state random variable.")],1)]),t._v(" "),a("h4",{attrs:{id:"parameters-208"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-208"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-292"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-292"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The discrete probability distribution of next state.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-10"}},[t._v("#")]),t._v(" _get_observation "),a("Badge",{attrs:{text:"TransformedObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Get the deterministic observation given a state and action.")]),t._v(" "),a("h4",{attrs:{id:"parameters-209"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-209"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-293"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-293"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-distribution-14"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-distribution-14"}},[t._v("#")]),t._v(" _get_observation_distribution "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation_distribution",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"Distribution[D.T_agent[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the probability distribution of the observation given a state and action.")]),t._v(" "),a("p",[t._v("In mathematical terms (discrete case), given an action "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.197ex",height:"1.02ex",viewBox:"0 -441 529 451"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})])])])])]),t._v(", this function represents: "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.078ex",height:"2.262ex",viewBox:"0 -750 4012.7 1000"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"50",d:"M287 628Q287 635 230 637Q206 637 199 638T192 648Q192 649 194 659Q200 679 203 681T397 683Q587 682 600 680Q664 669 707 631T751 530Q751 453 685 389Q616 321 507 303Q500 302 402 301H307L277 182Q247 66 247 59Q247 55 248 54T255 50T272 48T305 46H336Q342 37 342 35Q342 19 335 5Q330 0 319 0Q316 0 282 1T182 2Q120 2 87 2T51 1Q33 1 33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM645 554Q645 567 643 575T634 597T609 619T560 635Q553 636 480 637Q463 637 445 637T416 636T404 636Q391 635 386 627Q384 621 367 550T332 412T314 344Q314 342 395 342H407H430Q542 342 590 392Q617 419 631 471T645 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(751, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(1140, 0)"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1903, 0)"}},[a("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(2181, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2650, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(3094.7, 0)"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3623.7, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(",\nwhere "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.05ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.726ex",height:"1.643ex",viewBox:"0 -704 763 726"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})])])])])]),t._v(" is the random variable of the observation.")],1),t._v(" "),a("h4",{attrs:{id:"parameters-210"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-210"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-294"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-294"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-space-20"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-20"}},[t._v("#")]),t._v(" _get_observation_space "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) observation space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(" internally\ncalls "),a("code",[t._v("PartiallyObservable._get_observation_space_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the observation space is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-295"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-295"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The observation space.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-space-21"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-21"}},[t._v("#")]),t._v(" _get_observation_space_ "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation_space_",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the observation space (finite or infinite set).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(", the difference\nbeing that the result is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-296"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-296"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The observation space.")]),t._v(" "),a("h3",{attrs:{id:"get-transition-value-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-transition-value-6"}},[t._v("#")]),t._v(" _get_transition_value "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_transition_value",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"},{name:"next_state",default:"None",annotation:"Optional[D.T_state]"}],return:"D.T_agent[Value[D.T_value]]"}}}),t._v(" "),a("p",[t._v("Get the value (reward or cost) of a transition.")]),t._v(" "),a("p",[t._v("The transition to consider is defined by the function parameters.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("If this function never depends on the next_state parameter for its computation, it is recommended to\nindicate it by overriding "),a("code",[t._v("UncertainTransitions._is_transition_value_dependent_on_next_state_()")]),t._v(" to return\nFalse. This information can then be exploited by solvers to avoid computing next state to evaluate a\ntransition value (more efficient).")])]),t._v(" "),a("h4",{attrs:{id:"parameters-211"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-211"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")]),t._v(" "),a("li",[a("strong",[t._v("next_state")]),t._v(": The next state in which the transition ends (if needed for the computation).")])]),t._v(" "),a("h4",{attrs:{id:"returns-297"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-297"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The transition value (reward or cost).")]),t._v(" "),a("h3",{attrs:{id:"init-memory-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#init-memory-7"}},[t._v("#")]),t._v(" _init_memory "),a("Badge",{attrs:{text:"History",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_init_memory",sig:{params:[{name:"self"},{name:"state",default:"None",annotation:"Optional[D.T_state]"}],return:"D.T_memory[D.T_state]"}}}),t._v(" "),a("p",[t._v("Initialize memory (possibly with a state) according to its specification and return it.")]),t._v(" "),a("p",[t._v("This function is automatically called by "),a("code",[t._v("Initializable._reset()")]),t._v(" to reinitialize the internal memory whenever\nthe domain is used as an environment.")]),t._v(" "),a("h4",{attrs:{id:"parameters-212"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-212"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": An optional state to initialize the memory with (typically the initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-298"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-298"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The new initialized memory.")]),t._v(" "),a("h3",{attrs:{id:"is-action-14"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-action-14"}},[t._v("#")]),t._v(" _is_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_action",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an event is an action (i.e. a controllable event for the agents).")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\naction space provided by "),a("code",[t._v("Events._get_action_space()")]),t._v(", but it can be overridden for faster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-213"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-213"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("event")]),t._v(": The event to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-299"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-299"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is an action (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-applicable-action-14"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-14"}},[t._v("#")]),t._v(" _is_applicable_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_applicable_action",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an action is applicable in the given memory (state or history), or in the internal one if\nomitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._is_applicable_action()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_applicable_action_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-214"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-214"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-300"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-300"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the action is applicable (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-applicable-action-from-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-from-7"}},[t._v("#")]),t._v(" _is_applicable_action_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_applicable_action_from",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an action is applicable in the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._is_applicable_action()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the space of\napplicable actions provided by "),a("code",[t._v("Events._get_applicable_actions_from()")]),t._v(", but it can be overridden for faster\nimplementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-215"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-215"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-301"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-301"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the action is applicable (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-enabled-event-14"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-14"}},[t._v("#")]),t._v(" _is_enabled_event "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_enabled_event",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an uncontrollable event is enabled in the given memory (state or history), or in the\ninternal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._is_enabled_event()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_enabled_event_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead\nof the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-216"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-216"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-302"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-302"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is enabled (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-enabled-event-from-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-from-7"}},[t._v("#")]),t._v(" _is_enabled_event_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_enabled_event_from",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an event is enabled in the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._is_enabled_event()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the space of\nenabled events provided by "),a("code",[t._v("Events._get_enabled_events_from()")]),t._v(", but it can be overridden for faster\nimplementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-217"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-217"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-303"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-303"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is enabled (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-goal-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-goal-2"}},[t._v("#")]),t._v(" _is_goal "),a("Badge",{attrs:{text:"Goals",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_goal",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"D.T_agent[D.T_predicate]"}}}),t._v(" "),a("p",[t._v("Indicate whether an observation belongs to the goals.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\ngoals space provided by "),a("code",[t._v("Goals._get_goals()")]),t._v(", but it can be overridden for faster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-218"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-218"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-304"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-304"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the observation is a goal (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-observation-14"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-observation-14"}},[t._v("#")]),t._v(" _is_observation "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_observation",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that an observation indeed belongs to the domain observation space.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\nobservation space provided by "),a("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(", but it can be overridden for\nfaster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-219"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-219"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-305"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-305"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the observation belongs to the domain observation space (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-positive"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-positive"}},[t._v("#")]),t._v(" _is_positive "),a("Badge",{attrs:{text:"PositiveCosts",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_positive",sig:{params:[{name:"self"},{name:"cost",annotation:"D.T_value"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Determine if a value is positive (can be overridden for advanced value types).")]),t._v(" "),a("h4",{attrs:{id:"parameters-220"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-220"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("cost")]),t._v(": The cost to evaluate.")])]),t._v(" "),a("h4",{attrs:{id:"returns-306"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-306"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the cost is positive (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-terminal-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-terminal-6"}},[t._v("#")]),t._v(" _is_terminal "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_terminal",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"}],return:"D.T_agent[D.T_predicate]"}}}),t._v(" "),a("p",[t._v("Indicate whether a state is terminal.")]),t._v(" "),a("p",[t._v("A terminal state is a state with no outgoing transition (except to itself with value 0).")]),t._v(" "),a("h4",{attrs:{id:"parameters-221"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-221"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-307"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-307"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the state is terminal (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-transition-value-dependent-on-next-state-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-transition-value-dependent-on-next-state-8"}},[t._v("#")]),t._v(" _is_transition_value_dependent_on_next_state "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_transition_value_dependent_on_next_state",sig:{params:[{name:"self"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether _get_transition_value() requires the next_state parameter for its computation (cached).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("UncertainTransitions._is_transition_value_dependent_on_next_state()")]),t._v(" internally\ncalls "),a("code",[t._v("UncertainTransitions._is_transition_value_dependent_on_next_state_()")]),t._v(" the first time and automatically\ncaches its value to make future calls more efficient (since the returned value is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-308"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-308"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the transition value computation depends on next_state (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-transition-value-dependent-on-next-state-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-transition-value-dependent-on-next-state-9"}},[t._v("#")]),t._v(" _is_transition_value_dependent_on_next_state_ "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_transition_value_dependent_on_next_state_",sig:{params:[{name:"self"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether _get_transition_value() requires the next_state parameter for its computation.")]),t._v(" "),a("p",[t._v("This is a helper function called by default\nfrom "),a("code",[t._v("UncertainTransitions._is_transition_value_dependent_on_next_state()")]),t._v(", the difference being that the result\nis not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-309"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-309"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the transition value computation depends on next_state (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"reset-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#reset-10"}},[t._v("#")]),t._v(" _reset "),a("Badge",{attrs:{text:"Initializable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_reset",sig:{params:[{name:"self"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Reset the state of the environment and return an initial observation.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Initializable._reset()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Initializable._state_reset()")]),t._v(" (which returns an initial state). The boilerplate code automatically stores\nthe initial state into the "),a("code",[t._v("_memory")]),t._v(" attribute and samples a corresponding observation.")]),t._v(" "),a("h4",{attrs:{id:"returns-310"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-310"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("An initial observation.")]),t._v(" "),a("h3",{attrs:{id:"sample-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample-8"}},[t._v("#")]),t._v(" _sample "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_sample",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Sample one transition of the simulator's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Simulation._sample()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Simulation._state_sample()")]),t._v(" (which returns a transition outcome). The boilerplate code automatically\nsamples an observation corresponding to the sampled next state.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing simulator needs to be wrapped instead of implemented fully in scikit-decide (e.g. a\nsimulator), it is recommended to overwrite "),a("code",[t._v("Simulation._sample()")]),t._v(" to call the external simulator and not use\nthe "),a("code",[t._v("Simulation._state_sample()")]),t._v(" helper function.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-222"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-222"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-311"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-311"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of the sampled transition.")]),t._v(" "),a("h3",{attrs:{id:"set-memory-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#set-memory-8"}},[t._v("#")]),t._v(" _set_memory "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_set_memory",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"None"}}}),t._v(" "),a("p",[t._v("Set internal memory attribute "),a("code",[t._v("_memory")]),t._v(" to given one.")]),t._v(" "),a("p",[t._v('This can be useful to set a specific "starting point" before doing a rollout with\nsuccessive '),a("code",[t._v("Environment._step()")]),t._v(" calls.")]),t._v(" "),a("h4",{attrs:{id:"parameters-223"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-223"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to set internally.")])]),t._v(" "),a("h4",{attrs:{id:"example-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#example-8"}},[t._v("#")]),t._v(" Example")]),t._v(" "),a("div",{staticClass:"language-python extra-class"},[a("pre",{pre:!0,attrs:{class:"language-python"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Set simulation_domain memory to my_state (assuming Markovian domain)")]),t._v("\nsimulation_domain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("_set_memory"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("my_state"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Start a 100-steps rollout from here (applying my_action at every step)")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("for")]),t._v(" _ "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("in")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("range")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n simulation_domain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("_step"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("my_action"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("h3",{attrs:{id:"state-reset-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#state-reset-5"}},[t._v("#")]),t._v(" _state_reset "),a("Badge",{attrs:{text:"Initializable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_state_reset",sig:{params:[{name:"self"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("Reset the state of the environment and return an initial state.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Initializable._reset()")]),t._v(". It focuses on the state level, as\nopposed to the observation one for the latter.")]),t._v(" "),a("h4",{attrs:{id:"returns-312"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-312"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("An initial state.")]),t._v(" "),a("h3",{attrs:{id:"state-sample-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#state-sample-4"}},[t._v("#")]),t._v(" _state_sample "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_state_sample",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"TransitionOutcome[D.T_state, D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Compute one sample of the transition's dynamics.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Simulation._sample()")]),t._v(". It focuses on the state level, as\nopposed to the observation one for the latter.")]),t._v(" "),a("h4",{attrs:{id:"parameters-224"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-224"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-313"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-313"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The transition outcome of the sampled transition.")]),t._v(" "),a("h3",{attrs:{id:"state-step-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#state-step-7"}},[t._v("#")]),t._v(" _state_step "),a("Badge",{attrs:{text:"Environment",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_state_step",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"TransitionOutcome[D.T_state, D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Compute one step of the transition's dynamics.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Environment._step()")]),t._v(". It focuses on the state level, as opposed\nto the observation one for the latter.")]),t._v(" "),a("h4",{attrs:{id:"parameters-225"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-225"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the current memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-314"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-314"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The transition outcome of this step.")]),t._v(" "),a("h3",{attrs:{id:"step-14"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#step-14"}},[t._v("#")]),t._v(" _step "),a("Badge",{attrs:{text:"Environment",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_step",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Run one step of the environment's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Environment._step()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Environment._state_step()")]),t._v(" (which returns a transition outcome). The boilerplate code automatically stores\nnext state into the "),a("code",[t._v("_memory")]),t._v(" attribute and samples a corresponding observation.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing environment needs to be wrapped instead of implemented fully in scikit-decide (e.g. compiled\nATARI games), it is recommended to overwrite "),a("code",[t._v("Environment._step()")]),t._v(" to call the external environment and not\nuse the "),a("code",[t._v("Environment._state_step()")]),t._v(" helper function.")])]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Before calling "),a("code",[t._v("Environment._step()")]),t._v(" the first time or when the end of an episode is\nreached, "),a("code",[t._v("Initializable._reset()")]),t._v(" must be called to reset the environment's state.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-226"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-226"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the current memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-315"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-315"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of this step.")]),t._v(" "),a("h2",{attrs:{id:"goalpomdpdomain"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#goalpomdpdomain"}},[t._v("#")]),t._v(" GoalPOMDPDomain")]),t._v(" "),a("p",[t._v("This is a typical Goal Partially Observable Markov Decision Process domain class.")]),t._v(" "),a("p",[t._v("This helper class can be used as an alternate base class for domains, inheriting the following:")]),t._v(" "),a("ul",[a("li",[t._v("Domain")]),t._v(" "),a("li",[t._v("SingleAgent")]),t._v(" "),a("li",[t._v("Sequential")]),t._v(" "),a("li",[t._v("EnumerableTransitions")]),t._v(" "),a("li",[t._v("Actions")]),t._v(" "),a("li",[t._v("Goals")]),t._v(" "),a("li",[t._v("UncertainInitialized")]),t._v(" "),a("li",[t._v("Markovian")]),t._v(" "),a("li",[t._v("PartiallyObservable")]),t._v(" "),a("li",[t._v("PositiveCosts")])]),t._v(" "),a("p",[t._v("Typical use:")]),t._v(" "),a("div",{staticClass:"language-python extra-class"},[a("pre",{pre:!0,attrs:{class:"language-python"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("class")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("D")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("GoalPOMDPDomain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("It is also possible to refine any alternate base class, like for instance:")]),t._v(" "),a("div",{staticClass:"language-python extra-class"},[a("pre",{pre:!0,attrs:{class:"language-python"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("class")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("D")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("RLDomain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" FullyObservable"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])])]),t._v(" "),a("h3",{attrs:{id:"check-value-15"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#check-value-15"}},[t._v("#")]),t._v(" check_value "),a("Badge",{attrs:{text:"Rewards",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"check_value",sig:{params:[{name:"self"},{name:"value",annotation:"Value[D.T_value]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that a value is compliant with its reward specification.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("This function returns always True by default because any kind of reward should be accepted at this level.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-227"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-227"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("value")]),t._v(": The value to check.")])]),t._v(" "),a("h4",{attrs:{id:"returns-316"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-316"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the value is compliant (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"get-action-space-22"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-22"}},[t._v("#")]),t._v(" get_action_space "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_action_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) domain action space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.get_action_space()")]),t._v(" internally calls "),a("code",[t._v("Events._get_action_space_()")]),t._v(" the first time and\nautomatically caches its value to make future calls more efficient (since the action space is assumed to be\nconstant).")]),t._v(" "),a("h4",{attrs:{id:"returns-317"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-317"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The action space.")]),t._v(" "),a("h3",{attrs:{id:"get-applicable-actions-15"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-15"}},[t._v("#")]),t._v(" get_applicable_actions "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_applicable_actions",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history), or in\nthe internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.get_applicable_actions()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_applicable_actions()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-228"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-228"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-318"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-318"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of applicable actions.")]),t._v(" "),a("h3",{attrs:{id:"get-enabled-events-15"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-15"}},[t._v("#")]),t._v(" get_enabled_events "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_enabled_events",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"Space[D.T_event]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory), or in the internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.get_enabled_events()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_enabled_events()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead of\nthe memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-229"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-229"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-319"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-319"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of enabled events.")]),t._v(" "),a("h3",{attrs:{id:"get-goals-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-goals-4"}},[t._v("#")]),t._v(" get_goals "),a("Badge",{attrs:{text:"Goals",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_goals",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) domain goals space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Goals.get_goals()")]),t._v(" internally calls "),a("code",[t._v("Goals._get_goals_()")]),t._v(" the first time and automatically caches its\nvalue to make future calls more efficient (since the goals space is assumed to be constant).")]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Goal states are assumed to be fully observable (i.e. observation = state) so that there is never uncertainty\nabout whether the goal has been reached or not. This assumption guarantees that any policy that does not\nreach the goal with certainty incurs in infinite expected cost. - "),a("em",[t._v("Geffner, 2013: A Concise Introduction to\nModels and Methods for Automated Planning")])])]),t._v(" "),a("h4",{attrs:{id:"returns-320"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-320"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The goals space.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-distribution-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-distribution-10"}},[t._v("#")]),t._v(" get_initial_state_distribution "),a("Badge",{attrs:{text:"UncertainInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_initial_state_distribution",sig:{params:[{name:"self"}],return:"Distribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("Get the (cached) probability distribution of initial states.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("UncertainInitialized.get_initial_state_distribution()")]),t._v(" internally\ncalls "),a("code",[t._v("UncertainInitialized._get_initial_state_distribution_()")]),t._v(" the first time and automatically caches its value\nto make future calls more efficient (since the initial state distribution is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-321"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-321"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of initial states.")]),t._v(" "),a("h3",{attrs:{id:"get-next-state-distribution-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-next-state-distribution-7"}},[t._v("#")]),t._v(" get_next_state_distribution "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_next_state_distribution",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"DiscreteDistribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("Get the discrete probability distribution of next state given a memory and action.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("In the Markovian case (memory only holds last state "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.061ex",height:"1.023ex",viewBox:"0 -442 469 452"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})])])])])]),t._v("), given an action "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.197ex",height:"1.02ex",viewBox:"0 -441 529 451"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})])])])])]),t._v(", this function can\nbe mathematically represented by "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.292ex",height:"2.283ex",viewBox:"0 -759 4107.1 1009"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"50",d:"M287 628Q287 635 230 637Q206 637 199 638T192 648Q192 649 194 659Q200 679 203 681T397 683Q587 682 600 680Q664 669 707 631T751 530Q751 453 685 389Q616 321 507 303Q500 302 402 301H307L277 182Q247 66 247 59Q247 55 248 54T255 50T272 48T305 46H336Q342 37 342 35Q342 19 335 5Q330 0 319 0Q316 0 282 1T182 2Q120 2 87 2T51 1Q33 1 33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM645 554Q645 567 643 575T634 597T609 619T560 635Q553 636 480 637Q463 637 445 637T416 636T404 636Q391 635 386 627Q384 621 367 550T332 412T314 344Q314 342 395 342H407H430Q542 342 590 392Q617 419 631 471T645 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(751, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"msup",transform:"translate(1140, 0)"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"53",d:"M308 24Q367 24 416 76T466 197Q466 260 414 284Q308 311 278 321T236 341Q176 383 176 462Q176 523 208 573T273 648Q302 673 343 688T407 704H418H425Q521 704 564 640Q565 640 577 653T603 682T623 704Q624 704 627 704T632 705Q645 705 645 698T617 577T585 459T569 456Q549 456 549 465Q549 471 550 475Q550 478 551 494T553 520Q553 554 544 579T526 616T501 641Q465 662 419 662Q362 662 313 616T263 510Q263 480 278 458T319 427Q323 425 389 408T456 390Q490 379 522 342T554 242Q554 216 546 186Q541 164 528 137T492 78T426 18T332 -20Q320 -22 298 -22Q199 -22 144 33L134 44L106 13Q83 -14 78 -18T65 -22Q52 -22 52 -14Q52 -11 110 221Q112 227 130 227H143Q149 221 149 216Q149 214 148 207T144 186T142 153Q144 114 160 87T203 47T255 29T308 24Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(613, 363) scale(0.707)"}},[a("path",{attrs:{"data-c":"2032",d:"M79 43Q73 43 52 49T30 61Q30 68 85 293T146 528Q161 560 198 560Q218 560 240 545T262 501Q262 496 260 486Q259 479 173 263T84 45T79 43Z"}})])]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1997.5, 0)"}},[a("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(2275.5, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2744.5, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(3189.1, 0)"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3718.1, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(", where "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.05ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.94ex",height:"1.767ex",viewBox:"0 -759 857.5 781"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"msup"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"53",d:"M308 24Q367 24 416 76T466 197Q466 260 414 284Q308 311 278 321T236 341Q176 383 176 462Q176 523 208 573T273 648Q302 673 343 688T407 704H418H425Q521 704 564 640Q565 640 577 653T603 682T623 704Q624 704 627 704T632 705Q645 705 645 698T617 577T585 459T569 456Q549 456 549 465Q549 471 550 475Q550 478 551 494T553 520Q553 554 544 579T526 616T501 641Q465 662 419 662Q362 662 313 616T263 510Q263 480 278 458T319 427Q323 425 389 408T456 390Q490 379 522 342T554 242Q554 216 546 186Q541 164 528 137T492 78T426 18T332 -20Q320 -22 298 -22Q199 -22 144 33L134 44L106 13Q83 -14 78 -18T65 -22Q52 -22 52 -14Q52 -11 110 221Q112 227 130 227H143Q149 221 149 216Q149 214 148 207T144 186T142 153Q144 114 160 87T203 47T255 29T308 24Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(613, 363) scale(0.707)"}},[a("path",{attrs:{"data-c":"2032",d:"M79 43Q73 43 52 49T30 61Q30 68 85 293T146 528Q161 560 198 560Q218 560 240 545T262 501Q262 496 260 486Q259 479 173 263T84 45T79 43Z"}})])])])])])]),t._v(" is the next state random variable.")],1)]),t._v(" "),a("h4",{attrs:{id:"parameters-230"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-230"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-322"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-322"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The discrete probability distribution of next state.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-distribution-15"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-distribution-15"}},[t._v("#")]),t._v(" get_observation_distribution "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_observation_distribution",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"Distribution[D.T_agent[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the probability distribution of the observation given a state and action.")]),t._v(" "),a("p",[t._v("In mathematical terms (discrete case), given an action "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.197ex",height:"1.02ex",viewBox:"0 -441 529 451"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})])])])])]),t._v(", this function represents: "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.078ex",height:"2.262ex",viewBox:"0 -750 4012.7 1000"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"50",d:"M287 628Q287 635 230 637Q206 637 199 638T192 648Q192 649 194 659Q200 679 203 681T397 683Q587 682 600 680Q664 669 707 631T751 530Q751 453 685 389Q616 321 507 303Q500 302 402 301H307L277 182Q247 66 247 59Q247 55 248 54T255 50T272 48T305 46H336Q342 37 342 35Q342 19 335 5Q330 0 319 0Q316 0 282 1T182 2Q120 2 87 2T51 1Q33 1 33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM645 554Q645 567 643 575T634 597T609 619T560 635Q553 636 480 637Q463 637 445 637T416 636T404 636Q391 635 386 627Q384 621 367 550T332 412T314 344Q314 342 395 342H407H430Q542 342 590 392Q617 419 631 471T645 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(751, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(1140, 0)"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1903, 0)"}},[a("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(2181, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2650, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(3094.7, 0)"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3623.7, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(",\nwhere "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.05ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.726ex",height:"1.643ex",viewBox:"0 -704 763 726"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})])])])])]),t._v(" is the random variable of the observation.")],1),t._v(" "),a("h4",{attrs:{id:"parameters-231"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-231"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-323"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-323"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-space-22"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-22"}},[t._v("#")]),t._v(" get_observation_space "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_observation_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) observation space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("PartiallyObservable.get_observation_space()")]),t._v(" internally\ncalls "),a("code",[t._v("PartiallyObservable._get_observation_space_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the observation space is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-324"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-324"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The observation space.")]),t._v(" "),a("h3",{attrs:{id:"get-transition-value-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-transition-value-7"}},[t._v("#")]),t._v(" get_transition_value "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_transition_value",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"},{name:"next_state",default:"None",annotation:"Optional[D.T_state]"}],return:"D.T_agent[Value[D.T_value]]"}}}),t._v(" "),a("p",[t._v("Get the value (reward or cost) of a transition.")]),t._v(" "),a("p",[t._v("The transition to consider is defined by the function parameters.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("If this function never depends on the next_state parameter for its computation, it is recommended to\nindicate it by overriding "),a("code",[t._v("UncertainTransitions._is_transition_value_dependent_on_next_state_()")]),t._v(" to return\nFalse. This information can then be exploited by solvers to avoid computing next state to evaluate a\ntransition value (more efficient).")])]),t._v(" "),a("h4",{attrs:{id:"parameters-232"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-232"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")]),t._v(" "),a("li",[a("strong",[t._v("next_state")]),t._v(": The next state in which the transition ends (if needed for the computation).")])]),t._v(" "),a("h4",{attrs:{id:"returns-325"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-325"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The transition value (reward or cost).")]),t._v(" "),a("h3",{attrs:{id:"is-action-15"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-action-15"}},[t._v("#")]),t._v(" is_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_action",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an event is an action (i.e. a controllable event for the agents).")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\naction space provided by "),a("code",[t._v("Events.get_action_space()")]),t._v(", but it can be overridden for faster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-233"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-233"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("event")]),t._v(": The event to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-326"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-326"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is an action (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-applicable-action-15"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-15"}},[t._v("#")]),t._v(" is_applicable_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_applicable_action",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an action is applicable in the given memory (state or history), or in the internal one if\nomitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.is_applicable_action()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_applicable_action()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead\nof the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-234"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-234"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-327"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-327"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the action is applicable (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-enabled-event-15"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-15"}},[t._v("#")]),t._v(" is_enabled_event "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_enabled_event",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an uncontrollable event is enabled in the given memory (state or history), or in the\ninternal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.is_enabled_event()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_enabled_event()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead of\nthe memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-235"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-235"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-328"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-328"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is enabled (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-goal-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-goal-3"}},[t._v("#")]),t._v(" is_goal "),a("Badge",{attrs:{text:"Goals",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_goal",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"D.T_agent[D.T_predicate]"}}}),t._v(" "),a("p",[t._v("Indicate whether an observation belongs to the goals.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\ngoals space provided by "),a("code",[t._v("Goals.get_goals()")]),t._v(", but it can be overridden for faster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-236"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-236"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-329"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-329"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the observation is a goal (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-observation-15"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-observation-15"}},[t._v("#")]),t._v(" is_observation "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_observation",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that an observation indeed belongs to the domain observation space.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\nobservation space provided by "),a("code",[t._v("PartiallyObservable.get_observation_space()")]),t._v(", but it can be overridden for\nfaster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-237"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-237"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-330"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-330"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the observation belongs to the domain observation space (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-terminal-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-terminal-7"}},[t._v("#")]),t._v(" is_terminal "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_terminal",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"}],return:"D.T_agent[D.T_predicate]"}}}),t._v(" "),a("p",[t._v("Indicate whether a state is terminal.")]),t._v(" "),a("p",[t._v("A terminal state is a state with no outgoing transition (except to itself with value 0).")]),t._v(" "),a("h4",{attrs:{id:"parameters-238"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-238"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-331"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-331"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the state is terminal (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-transition-value-dependent-on-next-state-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-transition-value-dependent-on-next-state-10"}},[t._v("#")]),t._v(" is_transition_value_dependent_on_next_state "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_transition_value_dependent_on_next_state",sig:{params:[{name:"self"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether get_transition_value() requires the next_state parameter for its computation (cached).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("UncertainTransitions.is_transition_value_dependent_on_next_state()")]),t._v(" internally\ncalls "),a("code",[t._v("UncertainTransitions._is_transition_value_dependent_on_next_state_()")]),t._v(" the first time and automatically\ncaches its value to make future calls more efficient (since the returned value is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-332"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-332"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the transition value computation depends on next_state (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"reset-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#reset-11"}},[t._v("#")]),t._v(" reset "),a("Badge",{attrs:{text:"Initializable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"reset",sig:{params:[{name:"self"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Reset the state of the environment and return an initial observation.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Initializable.reset()")]),t._v(" provides some boilerplate code and internally calls "),a("code",[t._v("Initializable._reset()")]),t._v("\n(which returns an initial state). The boilerplate code automatically stores the initial state into the "),a("code",[t._v("_memory")]),t._v("\nattribute and samples a corresponding observation.")]),t._v(" "),a("h4",{attrs:{id:"returns-333"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-333"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("An initial observation.")]),t._v(" "),a("h3",{attrs:{id:"sample-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample-9"}},[t._v("#")]),t._v(" sample "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"sample",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Sample one transition of the simulator's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Simulation.sample()")]),t._v(" provides some boilerplate code and internally calls "),a("code",[t._v("Simulation._sample()")]),t._v("\n(which returns a transition outcome). The boilerplate code automatically samples an observation corresponding to\nthe sampled next state.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing simulator needs to be wrapped instead of implemented fully in scikit-decide (e.g. a\nsimulator), it is recommended to overwrite "),a("code",[t._v("Simulation.sample()")]),t._v(" to call the external simulator and not use\nthe "),a("code",[t._v("Simulation._sample()")]),t._v(" helper function.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-239"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-239"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-334"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-334"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of the sampled transition.")]),t._v(" "),a("h3",{attrs:{id:"set-memory-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#set-memory-9"}},[t._v("#")]),t._v(" set_memory "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"set_memory",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"None"}}}),t._v(" "),a("p",[t._v("Set internal memory attribute "),a("code",[t._v("_memory")]),t._v(" to given one.")]),t._v(" "),a("p",[t._v('This can be useful to set a specific "starting point" before doing a rollout with successive '),a("code",[t._v("Environment.step()")]),t._v("\ncalls.")]),t._v(" "),a("h4",{attrs:{id:"parameters-240"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-240"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to set internally.")])]),t._v(" "),a("h4",{attrs:{id:"example-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#example-9"}},[t._v("#")]),t._v(" Example")]),t._v(" "),a("div",{staticClass:"language-python extra-class"},[a("pre",{pre:!0,attrs:{class:"language-python"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Set simulation_domain memory to my_state (assuming Markovian domain)")]),t._v("\nsimulation_domain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("set_memory"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("my_state"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Start a 100-steps rollout from here (applying my_action at every step)")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("for")]),t._v(" _ "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("in")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("range")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n simulation_domain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("step"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("my_action"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("h3",{attrs:{id:"solve-with-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#solve-with-8"}},[t._v("#")]),t._v(" solve_with "),a("Badge",{attrs:{text:"Domain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"solve_with",sig:{params:[{name:"solver",annotation:"Solver"},{name:"domain_factory",default:"None",annotation:"Optional[Callable[[], Domain]]"},{name:"load_path",default:"None",annotation:"Optional[str]"}],return:"Solver"}}}),t._v(" "),a("p",[t._v("Solve the domain with a new or loaded solver and return it auto-cast to the level of the domain.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Solver.check_domain()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Solver._check_domain_additional()")]),t._v(' (which returns True by default but can be overridden to define\nspecific checks in addition to the "domain requirements"). The boilerplate code automatically checks whether all\ndomain requirements are met.')]),t._v(" "),a("h4",{attrs:{id:"parameters-241"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-241"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("solver")]),t._v(": The solver.")]),t._v(" "),a("li",[a("strong",[t._v("domain_factory")]),t._v(": A callable with no argument returning the domain to solve (factory is the domain class if None).")]),t._v(" "),a("li",[a("strong",[t._v("load_path")]),t._v(": The path to restore the solver state from (if None, the solving process will be launched instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-335"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-335"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The new solver (auto-cast to the level of the domain).")]),t._v(" "),a("h3",{attrs:{id:"step-15"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#step-15"}},[t._v("#")]),t._v(" step "),a("Badge",{attrs:{text:"Environment",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"step",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Run one step of the environment's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Environment.step()")]),t._v(" provides some boilerplate code and internally calls "),a("code",[t._v("Environment._step()")]),t._v(" (which\nreturns a transition outcome). The boilerplate code automatically stores next state into the "),a("code",[t._v("_memory")]),t._v(" attribute\nand samples a corresponding observation.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing environment needs to be wrapped instead of implemented fully in scikit-decide (e.g. compiled\nATARI games), it is recommended to overwrite "),a("code",[t._v("Environment.step()")]),t._v(" to call the external environment and not\nuse the "),a("code",[t._v("Environment._step()")]),t._v(" helper function.")])]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Before calling "),a("code",[t._v("Environment.step()")]),t._v(" the first time or when the end of an episode is\nreached, "),a("code",[t._v("Initializable.reset()")]),t._v(" must be called to reset the environment's state.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-242"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-242"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the current memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-336"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-336"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of this step.")]),t._v(" "),a("h3",{attrs:{id:"check-value-16"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#check-value-16"}},[t._v("#")]),t._v(" _check_value "),a("Badge",{attrs:{text:"Rewards",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_check_value",sig:{params:[{name:"self"},{name:"value",annotation:"Value[D.T_value]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that a value is compliant with its cost specification (must be positive).")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("This function calls "),a("code",[t._v("PositiveCost._is_positive()")]),t._v(" to determine if a value is positive (can be overridden for\nadvanced value types).")])]),t._v(" "),a("h4",{attrs:{id:"parameters-243"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-243"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("value")]),t._v(": The value to check.")])]),t._v(" "),a("h4",{attrs:{id:"returns-337"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-337"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the value is compliant (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"get-action-space-23"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-23"}},[t._v("#")]),t._v(" _get_action_space "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_action_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) domain action space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._get_action_space()")]),t._v(" internally calls "),a("code",[t._v("Events._get_action_space_()")]),t._v(" the first time and\nautomatically caches its value to make future calls more efficient (since the action space is assumed to be\nconstant).")]),t._v(" "),a("h4",{attrs:{id:"returns-338"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-338"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The action space.")]),t._v(" "),a("h3",{attrs:{id:"get-action-space-24"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-24"}},[t._v("#")]),t._v(" _get_action_space_ "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_action_space_",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the domain action space (finite or infinite set).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._get_action_space()")]),t._v(", the difference being that the\nresult is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-339"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-339"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The action space.")]),t._v(" "),a("h3",{attrs:{id:"get-applicable-actions-16"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-16"}},[t._v("#")]),t._v(" _get_applicable_actions "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_applicable_actions",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history), or in\nthe internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._get_applicable_actions()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_applicable_actions_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-244"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-244"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-340"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-340"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of applicable actions.")]),t._v(" "),a("h3",{attrs:{id:"get-applicable-actions-from-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-from-8"}},[t._v("#")]),t._v(" _get_applicable_actions_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_applicable_actions_from",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._get_applicable_actions()")]),t._v(", the difference being that\nthe memory parameter is mandatory here.")]),t._v(" "),a("h4",{attrs:{id:"parameters-245"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-245"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-341"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-341"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of applicable actions.")]),t._v(" "),a("h3",{attrs:{id:"get-enabled-events-16"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-16"}},[t._v("#")]),t._v(" _get_enabled_events "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_enabled_events",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"Space[D.T_event]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory), or in the internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._get_enabled_events()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_enabled_events_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-246"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-246"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-342"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-342"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of enabled events.")]),t._v(" "),a("h3",{attrs:{id:"get-enabled-events-from-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-from-8"}},[t._v("#")]),t._v(" _get_enabled_events_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_enabled_events_from",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"Space[D.T_event]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._get_enabled_events()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("h4",{attrs:{id:"parameters-247"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-247"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-343"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-343"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of enabled events.")]),t._v(" "),a("h3",{attrs:{id:"get-goals-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-goals-5"}},[t._v("#")]),t._v(" _get_goals "),a("Badge",{attrs:{text:"Goals",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_goals",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) domain goals space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Goals._get_goals()")]),t._v(" internally calls "),a("code",[t._v("Goals._get_goals_()")]),t._v(" the first time and automatically caches\nits value to make future calls more efficient (since the goals space is assumed to be constant).")]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Goal states are assumed to be fully observable (i.e. observation = state) so that there is never uncertainty\nabout whether the goal has been reached or not. This assumption guarantees that any policy that does not\nreach the goal with certainty incurs in infinite expected cost. - "),a("em",[t._v("Geffner, 2013: A Concise Introduction to\nModels and Methods for Automated Planning")])])]),t._v(" "),a("h4",{attrs:{id:"returns-344"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-344"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The goals space.")]),t._v(" "),a("h3",{attrs:{id:"get-goals-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-goals-6"}},[t._v("#")]),t._v(" _get_goals_ "),a("Badge",{attrs:{text:"Goals",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_goals_",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the domain goals space (finite or infinite set).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Goals._get_goals()")]),t._v(", the difference being that the result is\nnot cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-345"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-345"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The goals space.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-distribution-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-distribution-11"}},[t._v("#")]),t._v(" _get_initial_state_distribution "),a("Badge",{attrs:{text:"UncertainInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_initial_state_distribution",sig:{params:[{name:"self"}],return:"Distribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("Get the (cached) probability distribution of initial states.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("UncertainInitialized._get_initial_state_distribution()")]),t._v(" internally\ncalls "),a("code",[t._v("UncertainInitialized._get_initial_state_distribution_()")]),t._v(" the first time and automatically caches its value\nto make future calls more efficient (since the initial state distribution is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-346"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-346"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of initial states.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-distribution-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-distribution-12"}},[t._v("#")]),t._v(" _get_initial_state_distribution_ "),a("Badge",{attrs:{text:"UncertainInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_initial_state_distribution_",sig:{params:[{name:"self"}],return:"Distribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("Get the probability distribution of initial states.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("UncertainInitialized._get_initial_state_distribution()")]),t._v(", the\ndifference being that the result is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-347"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-347"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of initial states.")]),t._v(" "),a("h3",{attrs:{id:"get-memory-maxlen-14"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-memory-maxlen-14"}},[t._v("#")]),t._v(" _get_memory_maxlen "),a("Badge",{attrs:{text:"History",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_memory_maxlen",sig:{params:[{name:"self"}],return:"int"}}}),t._v(" "),a("p",[t._v("Get the (cached) memory max length.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("FiniteHistory._get_memory_maxlen()")]),t._v(" internally calls "),a("code",[t._v("FiniteHistory._get_memory_maxlen_()")]),t._v(" the first\ntime and automatically caches its value to make future calls more efficient (since the memory max length is\nassumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-348"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-348"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The memory max length.")]),t._v(" "),a("h3",{attrs:{id:"get-memory-maxlen-15"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-memory-maxlen-15"}},[t._v("#")]),t._v(" _get_memory_maxlen_ "),a("Badge",{attrs:{text:"FiniteHistory",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_memory_maxlen_",sig:{params:[{name:"self"}],return:"int"}}}),t._v(" "),a("p",[t._v("Get the memory max length.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("FiniteHistory._get_memory_maxlen()")]),t._v(", the difference being that\nthe result is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-349"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-349"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The memory max length.")]),t._v(" "),a("h3",{attrs:{id:"get-next-state-distribution-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-next-state-distribution-8"}},[t._v("#")]),t._v(" _get_next_state_distribution "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_next_state_distribution",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"DiscreteDistribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("Get the discrete probability distribution of next state given a memory and action.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("In the Markovian case (memory only holds last state "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.061ex",height:"1.023ex",viewBox:"0 -442 469 452"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})])])])])]),t._v("), given an action "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.197ex",height:"1.02ex",viewBox:"0 -441 529 451"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})])])])])]),t._v(", this function can\nbe mathematically represented by "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.292ex",height:"2.283ex",viewBox:"0 -759 4107.1 1009"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"50",d:"M287 628Q287 635 230 637Q206 637 199 638T192 648Q192 649 194 659Q200 679 203 681T397 683Q587 682 600 680Q664 669 707 631T751 530Q751 453 685 389Q616 321 507 303Q500 302 402 301H307L277 182Q247 66 247 59Q247 55 248 54T255 50T272 48T305 46H336Q342 37 342 35Q342 19 335 5Q330 0 319 0Q316 0 282 1T182 2Q120 2 87 2T51 1Q33 1 33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM645 554Q645 567 643 575T634 597T609 619T560 635Q553 636 480 637Q463 637 445 637T416 636T404 636Q391 635 386 627Q384 621 367 550T332 412T314 344Q314 342 395 342H407H430Q542 342 590 392Q617 419 631 471T645 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(751, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"msup",transform:"translate(1140, 0)"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"53",d:"M308 24Q367 24 416 76T466 197Q466 260 414 284Q308 311 278 321T236 341Q176 383 176 462Q176 523 208 573T273 648Q302 673 343 688T407 704H418H425Q521 704 564 640Q565 640 577 653T603 682T623 704Q624 704 627 704T632 705Q645 705 645 698T617 577T585 459T569 456Q549 456 549 465Q549 471 550 475Q550 478 551 494T553 520Q553 554 544 579T526 616T501 641Q465 662 419 662Q362 662 313 616T263 510Q263 480 278 458T319 427Q323 425 389 408T456 390Q490 379 522 342T554 242Q554 216 546 186Q541 164 528 137T492 78T426 18T332 -20Q320 -22 298 -22Q199 -22 144 33L134 44L106 13Q83 -14 78 -18T65 -22Q52 -22 52 -14Q52 -11 110 221Q112 227 130 227H143Q149 221 149 216Q149 214 148 207T144 186T142 153Q144 114 160 87T203 47T255 29T308 24Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(613, 363) scale(0.707)"}},[a("path",{attrs:{"data-c":"2032",d:"M79 43Q73 43 52 49T30 61Q30 68 85 293T146 528Q161 560 198 560Q218 560 240 545T262 501Q262 496 260 486Q259 479 173 263T84 45T79 43Z"}})])]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1997.5, 0)"}},[a("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(2275.5, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2744.5, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(3189.1, 0)"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3718.1, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(", where "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.05ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.94ex",height:"1.767ex",viewBox:"0 -759 857.5 781"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"msup"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"53",d:"M308 24Q367 24 416 76T466 197Q466 260 414 284Q308 311 278 321T236 341Q176 383 176 462Q176 523 208 573T273 648Q302 673 343 688T407 704H418H425Q521 704 564 640Q565 640 577 653T603 682T623 704Q624 704 627 704T632 705Q645 705 645 698T617 577T585 459T569 456Q549 456 549 465Q549 471 550 475Q550 478 551 494T553 520Q553 554 544 579T526 616T501 641Q465 662 419 662Q362 662 313 616T263 510Q263 480 278 458T319 427Q323 425 389 408T456 390Q490 379 522 342T554 242Q554 216 546 186Q541 164 528 137T492 78T426 18T332 -20Q320 -22 298 -22Q199 -22 144 33L134 44L106 13Q83 -14 78 -18T65 -22Q52 -22 52 -14Q52 -11 110 221Q112 227 130 227H143Q149 221 149 216Q149 214 148 207T144 186T142 153Q144 114 160 87T203 47T255 29T308 24Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(613, 363) scale(0.707)"}},[a("path",{attrs:{"data-c":"2032",d:"M79 43Q73 43 52 49T30 61Q30 68 85 293T146 528Q161 560 198 560Q218 560 240 545T262 501Q262 496 260 486Q259 479 173 263T84 45T79 43Z"}})])])])])])]),t._v(" is the next state random variable.")],1)]),t._v(" "),a("h4",{attrs:{id:"parameters-248"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-248"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-350"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-350"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The discrete probability distribution of next state.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-distribution-16"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-distribution-16"}},[t._v("#")]),t._v(" _get_observation_distribution "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation_distribution",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"Distribution[D.T_agent[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the probability distribution of the observation given a state and action.")]),t._v(" "),a("p",[t._v("In mathematical terms (discrete case), given an action "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.197ex",height:"1.02ex",viewBox:"0 -441 529 451"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})])])])])]),t._v(", this function represents: "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.078ex",height:"2.262ex",viewBox:"0 -750 4012.7 1000"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"50",d:"M287 628Q287 635 230 637Q206 637 199 638T192 648Q192 649 194 659Q200 679 203 681T397 683Q587 682 600 680Q664 669 707 631T751 530Q751 453 685 389Q616 321 507 303Q500 302 402 301H307L277 182Q247 66 247 59Q247 55 248 54T255 50T272 48T305 46H336Q342 37 342 35Q342 19 335 5Q330 0 319 0Q316 0 282 1T182 2Q120 2 87 2T51 1Q33 1 33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM645 554Q645 567 643 575T634 597T609 619T560 635Q553 636 480 637Q463 637 445 637T416 636T404 636Q391 635 386 627Q384 621 367 550T332 412T314 344Q314 342 395 342H407H430Q542 342 590 392Q617 419 631 471T645 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(751, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(1140, 0)"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1903, 0)"}},[a("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(2181, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2650, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(3094.7, 0)"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3623.7, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(",\nwhere "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.05ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.726ex",height:"1.643ex",viewBox:"0 -704 763 726"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})])])])])]),t._v(" is the random variable of the observation.")],1),t._v(" "),a("h4",{attrs:{id:"parameters-249"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-249"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-351"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-351"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-space-23"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-23"}},[t._v("#")]),t._v(" _get_observation_space "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) observation space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(" internally\ncalls "),a("code",[t._v("PartiallyObservable._get_observation_space_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the observation space is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-352"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-352"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The observation space.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-space-24"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-24"}},[t._v("#")]),t._v(" _get_observation_space_ "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation_space_",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the observation space (finite or infinite set).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(", the difference\nbeing that the result is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-353"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-353"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The observation space.")]),t._v(" "),a("h3",{attrs:{id:"get-transition-value-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-transition-value-8"}},[t._v("#")]),t._v(" _get_transition_value "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_transition_value",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"},{name:"next_state",default:"None",annotation:"Optional[D.T_state]"}],return:"D.T_agent[Value[D.T_value]]"}}}),t._v(" "),a("p",[t._v("Get the value (reward or cost) of a transition.")]),t._v(" "),a("p",[t._v("The transition to consider is defined by the function parameters.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("If this function never depends on the next_state parameter for its computation, it is recommended to\nindicate it by overriding "),a("code",[t._v("UncertainTransitions._is_transition_value_dependent_on_next_state_()")]),t._v(" to return\nFalse. This information can then be exploited by solvers to avoid computing next state to evaluate a\ntransition value (more efficient).")])]),t._v(" "),a("h4",{attrs:{id:"parameters-250"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-250"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")]),t._v(" "),a("li",[a("strong",[t._v("next_state")]),t._v(": The next state in which the transition ends (if needed for the computation).")])]),t._v(" "),a("h4",{attrs:{id:"returns-354"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-354"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The transition value (reward or cost).")]),t._v(" "),a("h3",{attrs:{id:"init-memory-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#init-memory-8"}},[t._v("#")]),t._v(" _init_memory "),a("Badge",{attrs:{text:"History",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_init_memory",sig:{params:[{name:"self"},{name:"state",default:"None",annotation:"Optional[D.T_state]"}],return:"D.T_memory[D.T_state]"}}}),t._v(" "),a("p",[t._v("Initialize memory (possibly with a state) according to its specification and return it.")]),t._v(" "),a("p",[t._v("This function is automatically called by "),a("code",[t._v("Initializable._reset()")]),t._v(" to reinitialize the internal memory whenever\nthe domain is used as an environment.")]),t._v(" "),a("h4",{attrs:{id:"parameters-251"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-251"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": An optional state to initialize the memory with (typically the initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-355"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-355"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The new initialized memory.")]),t._v(" "),a("h3",{attrs:{id:"is-action-16"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-action-16"}},[t._v("#")]),t._v(" _is_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_action",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an event is an action (i.e. a controllable event for the agents).")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\naction space provided by "),a("code",[t._v("Events._get_action_space()")]),t._v(", but it can be overridden for faster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-252"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-252"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("event")]),t._v(": The event to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-356"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-356"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is an action (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-applicable-action-16"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-16"}},[t._v("#")]),t._v(" _is_applicable_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_applicable_action",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an action is applicable in the given memory (state or history), or in the internal one if\nomitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._is_applicable_action()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_applicable_action_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-253"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-253"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-357"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-357"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the action is applicable (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-applicable-action-from-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-from-8"}},[t._v("#")]),t._v(" _is_applicable_action_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_applicable_action_from",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an action is applicable in the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._is_applicable_action()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the space of\napplicable actions provided by "),a("code",[t._v("Events._get_applicable_actions_from()")]),t._v(", but it can be overridden for faster\nimplementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-254"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-254"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-358"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-358"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the action is applicable (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-enabled-event-16"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-16"}},[t._v("#")]),t._v(" _is_enabled_event "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_enabled_event",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an uncontrollable event is enabled in the given memory (state or history), or in the\ninternal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._is_enabled_event()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_enabled_event_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead\nof the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-255"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-255"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-359"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-359"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is enabled (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-enabled-event-from-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-from-8"}},[t._v("#")]),t._v(" _is_enabled_event_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_enabled_event_from",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an event is enabled in the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._is_enabled_event()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the space of\nenabled events provided by "),a("code",[t._v("Events._get_enabled_events_from()")]),t._v(", but it can be overridden for faster\nimplementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-256"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-256"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-360"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-360"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is enabled (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-goal-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-goal-4"}},[t._v("#")]),t._v(" _is_goal "),a("Badge",{attrs:{text:"Goals",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_goal",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"D.T_agent[D.T_predicate]"}}}),t._v(" "),a("p",[t._v("Indicate whether an observation belongs to the goals.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\ngoals space provided by "),a("code",[t._v("Goals._get_goals()")]),t._v(", but it can be overridden for faster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-257"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-257"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-361"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-361"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the observation is a goal (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-observation-16"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-observation-16"}},[t._v("#")]),t._v(" _is_observation "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_observation",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that an observation indeed belongs to the domain observation space.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\nobservation space provided by "),a("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(", but it can be overridden for\nfaster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-258"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-258"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-362"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-362"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the observation belongs to the domain observation space (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-positive-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-positive-2"}},[t._v("#")]),t._v(" _is_positive "),a("Badge",{attrs:{text:"PositiveCosts",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_positive",sig:{params:[{name:"self"},{name:"cost",annotation:"D.T_value"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Determine if a value is positive (can be overridden for advanced value types).")]),t._v(" "),a("h4",{attrs:{id:"parameters-259"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-259"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("cost")]),t._v(": The cost to evaluate.")])]),t._v(" "),a("h4",{attrs:{id:"returns-363"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-363"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the cost is positive (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-terminal-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-terminal-8"}},[t._v("#")]),t._v(" _is_terminal "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_terminal",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"}],return:"D.T_agent[D.T_predicate]"}}}),t._v(" "),a("p",[t._v("Indicate whether a state is terminal.")]),t._v(" "),a("p",[t._v("A terminal state is a state with no outgoing transition (except to itself with value 0).")]),t._v(" "),a("h4",{attrs:{id:"parameters-260"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-260"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-364"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-364"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the state is terminal (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-transition-value-dependent-on-next-state-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-transition-value-dependent-on-next-state-11"}},[t._v("#")]),t._v(" _is_transition_value_dependent_on_next_state "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_transition_value_dependent_on_next_state",sig:{params:[{name:"self"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether _get_transition_value() requires the next_state parameter for its computation (cached).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("UncertainTransitions._is_transition_value_dependent_on_next_state()")]),t._v(" internally\ncalls "),a("code",[t._v("UncertainTransitions._is_transition_value_dependent_on_next_state_()")]),t._v(" the first time and automatically\ncaches its value to make future calls more efficient (since the returned value is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-365"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-365"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the transition value computation depends on next_state (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-transition-value-dependent-on-next-state-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-transition-value-dependent-on-next-state-12"}},[t._v("#")]),t._v(" _is_transition_value_dependent_on_next_state_ "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_transition_value_dependent_on_next_state_",sig:{params:[{name:"self"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether _get_transition_value() requires the next_state parameter for its computation.")]),t._v(" "),a("p",[t._v("This is a helper function called by default\nfrom "),a("code",[t._v("UncertainTransitions._is_transition_value_dependent_on_next_state()")]),t._v(", the difference being that the result\nis not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-366"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-366"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the transition value computation depends on next_state (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"reset-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#reset-12"}},[t._v("#")]),t._v(" _reset "),a("Badge",{attrs:{text:"Initializable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_reset",sig:{params:[{name:"self"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Reset the state of the environment and return an initial observation.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Initializable._reset()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Initializable._state_reset()")]),t._v(" (which returns an initial state). The boilerplate code automatically stores\nthe initial state into the "),a("code",[t._v("_memory")]),t._v(" attribute and samples a corresponding observation.")]),t._v(" "),a("h4",{attrs:{id:"returns-367"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-367"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("An initial observation.")]),t._v(" "),a("h3",{attrs:{id:"sample-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample-10"}},[t._v("#")]),t._v(" _sample "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_sample",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Sample one transition of the simulator's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Simulation._sample()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Simulation._state_sample()")]),t._v(" (which returns a transition outcome). The boilerplate code automatically\nsamples an observation corresponding to the sampled next state.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing simulator needs to be wrapped instead of implemented fully in scikit-decide (e.g. a\nsimulator), it is recommended to overwrite "),a("code",[t._v("Simulation._sample()")]),t._v(" to call the external simulator and not use\nthe "),a("code",[t._v("Simulation._state_sample()")]),t._v(" helper function.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-261"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-261"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-368"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-368"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of the sampled transition.")]),t._v(" "),a("h3",{attrs:{id:"set-memory-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#set-memory-10"}},[t._v("#")]),t._v(" _set_memory "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_set_memory",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"None"}}}),t._v(" "),a("p",[t._v("Set internal memory attribute "),a("code",[t._v("_memory")]),t._v(" to given one.")]),t._v(" "),a("p",[t._v('This can be useful to set a specific "starting point" before doing a rollout with\nsuccessive '),a("code",[t._v("Environment._step()")]),t._v(" calls.")]),t._v(" "),a("h4",{attrs:{id:"parameters-262"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-262"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to set internally.")])]),t._v(" "),a("h4",{attrs:{id:"example-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#example-10"}},[t._v("#")]),t._v(" Example")]),t._v(" "),a("div",{staticClass:"language-python extra-class"},[a("pre",{pre:!0,attrs:{class:"language-python"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Set simulation_domain memory to my_state (assuming Markovian domain)")]),t._v("\nsimulation_domain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("_set_memory"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("my_state"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Start a 100-steps rollout from here (applying my_action at every step)")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("for")]),t._v(" _ "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("in")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("range")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n simulation_domain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("_step"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("my_action"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("h3",{attrs:{id:"state-reset-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#state-reset-6"}},[t._v("#")]),t._v(" _state_reset "),a("Badge",{attrs:{text:"Initializable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_state_reset",sig:{params:[{name:"self"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("Reset the state of the environment and return an initial state.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Initializable._reset()")]),t._v(". It focuses on the state level, as\nopposed to the observation one for the latter.")]),t._v(" "),a("h4",{attrs:{id:"returns-369"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-369"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("An initial state.")]),t._v(" "),a("h3",{attrs:{id:"state-sample-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#state-sample-5"}},[t._v("#")]),t._v(" _state_sample "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_state_sample",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"TransitionOutcome[D.T_state, D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Compute one sample of the transition's dynamics.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Simulation._sample()")]),t._v(". It focuses on the state level, as\nopposed to the observation one for the latter.")]),t._v(" "),a("h4",{attrs:{id:"parameters-263"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-263"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-370"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-370"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The transition outcome of the sampled transition.")]),t._v(" "),a("h3",{attrs:{id:"state-step-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#state-step-8"}},[t._v("#")]),t._v(" _state_step "),a("Badge",{attrs:{text:"Environment",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_state_step",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"TransitionOutcome[D.T_state, D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Compute one step of the transition's dynamics.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Environment._step()")]),t._v(". It focuses on the state level, as opposed\nto the observation one for the latter.")]),t._v(" "),a("h4",{attrs:{id:"parameters-264"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-264"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the current memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-371"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-371"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The transition outcome of this step.")]),t._v(" "),a("h3",{attrs:{id:"step-16"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#step-16"}},[t._v("#")]),t._v(" _step "),a("Badge",{attrs:{text:"Environment",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_step",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Run one step of the environment's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Environment._step()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Environment._state_step()")]),t._v(" (which returns a transition outcome). The boilerplate code automatically stores\nnext state into the "),a("code",[t._v("_memory")]),t._v(" attribute and samples a corresponding observation.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing environment needs to be wrapped instead of implemented fully in scikit-decide (e.g. compiled\nATARI games), it is recommended to overwrite "),a("code",[t._v("Environment._step()")]),t._v(" to call the external environment and not\nuse the "),a("code",[t._v("Environment._state_step()")]),t._v(" helper function.")])]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Before calling "),a("code",[t._v("Environment._step()")]),t._v(" the first time or when the end of an episode is\nreached, "),a("code",[t._v("Initializable._reset()")]),t._v(" must be called to reset the environment's state.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-265"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-265"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the current memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-372"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-372"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of this step.")]),t._v(" "),a("h2",{attrs:{id:"deterministicplanningdomain"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#deterministicplanningdomain"}},[t._v("#")]),t._v(" DeterministicPlanningDomain")]),t._v(" "),a("p",[t._v("This is a typical deterministic planning domain class.")]),t._v(" "),a("p",[t._v("This helper class can be used as an alternate base class for domains, inheriting the following:")]),t._v(" "),a("ul",[a("li",[t._v("Domain")]),t._v(" "),a("li",[t._v("SingleAgent")]),t._v(" "),a("li",[t._v("Sequential")]),t._v(" "),a("li",[t._v("DeterministicTransitions")]),t._v(" "),a("li",[t._v("Actions")]),t._v(" "),a("li",[t._v("Goals")]),t._v(" "),a("li",[t._v("DeterministicInitialized")]),t._v(" "),a("li",[t._v("Markovian")]),t._v(" "),a("li",[t._v("FullyObservable")]),t._v(" "),a("li",[t._v("PositiveCosts")])]),t._v(" "),a("p",[t._v("Typical use:")]),t._v(" "),a("div",{staticClass:"language-python extra-class"},[a("pre",{pre:!0,attrs:{class:"language-python"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("class")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("D")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("DeterministicPlanningDomain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("It is also possible to refine any alternate base class, like for instance:")]),t._v(" "),a("div",{staticClass:"language-python extra-class"},[a("pre",{pre:!0,attrs:{class:"language-python"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("class")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("D")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("RLDomain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" FullyObservable"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])])]),t._v(" "),a("h3",{attrs:{id:"check-value-17"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#check-value-17"}},[t._v("#")]),t._v(" check_value "),a("Badge",{attrs:{text:"Rewards",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"check_value",sig:{params:[{name:"self"},{name:"value",annotation:"Value[D.T_value]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that a value is compliant with its reward specification.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("This function returns always True by default because any kind of reward should be accepted at this level.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-266"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-266"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("value")]),t._v(": The value to check.")])]),t._v(" "),a("h4",{attrs:{id:"returns-373"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-373"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the value is compliant (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"get-action-space-25"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-25"}},[t._v("#")]),t._v(" get_action_space "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_action_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) domain action space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.get_action_space()")]),t._v(" internally calls "),a("code",[t._v("Events._get_action_space_()")]),t._v(" the first time and\nautomatically caches its value to make future calls more efficient (since the action space is assumed to be\nconstant).")]),t._v(" "),a("h4",{attrs:{id:"returns-374"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-374"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The action space.")]),t._v(" "),a("h3",{attrs:{id:"get-applicable-actions-17"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-17"}},[t._v("#")]),t._v(" get_applicable_actions "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_applicable_actions",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history), or in\nthe internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.get_applicable_actions()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_applicable_actions()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-267"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-267"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-375"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-375"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of applicable actions.")]),t._v(" "),a("h3",{attrs:{id:"get-enabled-events-17"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-17"}},[t._v("#")]),t._v(" get_enabled_events "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_enabled_events",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"Space[D.T_event]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory), or in the internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.get_enabled_events()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_enabled_events()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead of\nthe memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-268"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-268"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-376"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-376"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of enabled events.")]),t._v(" "),a("h3",{attrs:{id:"get-goals-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-goals-7"}},[t._v("#")]),t._v(" get_goals "),a("Badge",{attrs:{text:"Goals",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_goals",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) domain goals space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Goals.get_goals()")]),t._v(" internally calls "),a("code",[t._v("Goals._get_goals_()")]),t._v(" the first time and automatically caches its\nvalue to make future calls more efficient (since the goals space is assumed to be constant).")]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Goal states are assumed to be fully observable (i.e. observation = state) so that there is never uncertainty\nabout whether the goal has been reached or not. This assumption guarantees that any policy that does not\nreach the goal with certainty incurs in infinite expected cost. - "),a("em",[t._v("Geffner, 2013: A Concise Introduction to\nModels and Methods for Automated Planning")])])]),t._v(" "),a("h4",{attrs:{id:"returns-377"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-377"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The goals space.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-7"}},[t._v("#")]),t._v(" get_initial_state "),a("Badge",{attrs:{text:"DeterministicInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_initial_state",sig:{params:[{name:"self"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("Get the (cached) initial state.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("DeterministicInitialized.get_initial_state()")]),t._v(" internally\ncalls "),a("code",[t._v("DeterministicInitialized._get_initial_state_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the initial state is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-378"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-378"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The initial state.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-distribution-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-distribution-13"}},[t._v("#")]),t._v(" get_initial_state_distribution "),a("Badge",{attrs:{text:"UncertainInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_initial_state_distribution",sig:{params:[{name:"self"}],return:"Distribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("Get the (cached) probability distribution of initial states.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("UncertainInitialized.get_initial_state_distribution()")]),t._v(" internally\ncalls "),a("code",[t._v("UncertainInitialized._get_initial_state_distribution_()")]),t._v(" the first time and automatically caches its value\nto make future calls more efficient (since the initial state distribution is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-379"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-379"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of initial states.")]),t._v(" "),a("h3",{attrs:{id:"get-next-state"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-next-state"}},[t._v("#")]),t._v(" get_next_state "),a("Badge",{attrs:{text:"DeterministicTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_next_state",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("Get the next state given a memory and action.")]),t._v(" "),a("h4",{attrs:{id:"parameters-269"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-269"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-380"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-380"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The deterministic next state.")]),t._v(" "),a("h3",{attrs:{id:"get-next-state-distribution-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-next-state-distribution-9"}},[t._v("#")]),t._v(" get_next_state_distribution "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_next_state_distribution",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"DiscreteDistribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("Get the discrete probability distribution of next state given a memory and action.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("In the Markovian case (memory only holds last state "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.061ex",height:"1.023ex",viewBox:"0 -442 469 452"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})])])])])]),t._v("), given an action "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.197ex",height:"1.02ex",viewBox:"0 -441 529 451"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})])])])])]),t._v(", this function can\nbe mathematically represented by "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.292ex",height:"2.283ex",viewBox:"0 -759 4107.1 1009"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"50",d:"M287 628Q287 635 230 637Q206 637 199 638T192 648Q192 649 194 659Q200 679 203 681T397 683Q587 682 600 680Q664 669 707 631T751 530Q751 453 685 389Q616 321 507 303Q500 302 402 301H307L277 182Q247 66 247 59Q247 55 248 54T255 50T272 48T305 46H336Q342 37 342 35Q342 19 335 5Q330 0 319 0Q316 0 282 1T182 2Q120 2 87 2T51 1Q33 1 33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM645 554Q645 567 643 575T634 597T609 619T560 635Q553 636 480 637Q463 637 445 637T416 636T404 636Q391 635 386 627Q384 621 367 550T332 412T314 344Q314 342 395 342H407H430Q542 342 590 392Q617 419 631 471T645 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(751, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"msup",transform:"translate(1140, 0)"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"53",d:"M308 24Q367 24 416 76T466 197Q466 260 414 284Q308 311 278 321T236 341Q176 383 176 462Q176 523 208 573T273 648Q302 673 343 688T407 704H418H425Q521 704 564 640Q565 640 577 653T603 682T623 704Q624 704 627 704T632 705Q645 705 645 698T617 577T585 459T569 456Q549 456 549 465Q549 471 550 475Q550 478 551 494T553 520Q553 554 544 579T526 616T501 641Q465 662 419 662Q362 662 313 616T263 510Q263 480 278 458T319 427Q323 425 389 408T456 390Q490 379 522 342T554 242Q554 216 546 186Q541 164 528 137T492 78T426 18T332 -20Q320 -22 298 -22Q199 -22 144 33L134 44L106 13Q83 -14 78 -18T65 -22Q52 -22 52 -14Q52 -11 110 221Q112 227 130 227H143Q149 221 149 216Q149 214 148 207T144 186T142 153Q144 114 160 87T203 47T255 29T308 24Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(613, 363) scale(0.707)"}},[a("path",{attrs:{"data-c":"2032",d:"M79 43Q73 43 52 49T30 61Q30 68 85 293T146 528Q161 560 198 560Q218 560 240 545T262 501Q262 496 260 486Q259 479 173 263T84 45T79 43Z"}})])]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1997.5, 0)"}},[a("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(2275.5, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2744.5, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(3189.1, 0)"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3718.1, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(", where "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.05ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.94ex",height:"1.767ex",viewBox:"0 -759 857.5 781"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"msup"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"53",d:"M308 24Q367 24 416 76T466 197Q466 260 414 284Q308 311 278 321T236 341Q176 383 176 462Q176 523 208 573T273 648Q302 673 343 688T407 704H418H425Q521 704 564 640Q565 640 577 653T603 682T623 704Q624 704 627 704T632 705Q645 705 645 698T617 577T585 459T569 456Q549 456 549 465Q549 471 550 475Q550 478 551 494T553 520Q553 554 544 579T526 616T501 641Q465 662 419 662Q362 662 313 616T263 510Q263 480 278 458T319 427Q323 425 389 408T456 390Q490 379 522 342T554 242Q554 216 546 186Q541 164 528 137T492 78T426 18T332 -20Q320 -22 298 -22Q199 -22 144 33L134 44L106 13Q83 -14 78 -18T65 -22Q52 -22 52 -14Q52 -11 110 221Q112 227 130 227H143Q149 221 149 216Q149 214 148 207T144 186T142 153Q144 114 160 87T203 47T255 29T308 24Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(613, 363) scale(0.707)"}},[a("path",{attrs:{"data-c":"2032",d:"M79 43Q73 43 52 49T30 61Q30 68 85 293T146 528Q161 560 198 560Q218 560 240 545T262 501Q262 496 260 486Q259 479 173 263T84 45T79 43Z"}})])])])])])]),t._v(" is the next state random variable.")],1)]),t._v(" "),a("h4",{attrs:{id:"parameters-270"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-270"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-381"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-381"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The discrete probability distribution of next state.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-11"}},[t._v("#")]),t._v(" get_observation "),a("Badge",{attrs:{text:"TransformedObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_observation",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Get the deterministic observation given a state and action.")]),t._v(" "),a("h4",{attrs:{id:"parameters-271"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-271"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-382"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-382"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-distribution-17"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-distribution-17"}},[t._v("#")]),t._v(" get_observation_distribution "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_observation_distribution",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"Distribution[D.T_agent[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the probability distribution of the observation given a state and action.")]),t._v(" "),a("p",[t._v("In mathematical terms (discrete case), given an action "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.197ex",height:"1.02ex",viewBox:"0 -441 529 451"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})])])])])]),t._v(", this function represents: "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.078ex",height:"2.262ex",viewBox:"0 -750 4012.7 1000"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"50",d:"M287 628Q287 635 230 637Q206 637 199 638T192 648Q192 649 194 659Q200 679 203 681T397 683Q587 682 600 680Q664 669 707 631T751 530Q751 453 685 389Q616 321 507 303Q500 302 402 301H307L277 182Q247 66 247 59Q247 55 248 54T255 50T272 48T305 46H336Q342 37 342 35Q342 19 335 5Q330 0 319 0Q316 0 282 1T182 2Q120 2 87 2T51 1Q33 1 33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM645 554Q645 567 643 575T634 597T609 619T560 635Q553 636 480 637Q463 637 445 637T416 636T404 636Q391 635 386 627Q384 621 367 550T332 412T314 344Q314 342 395 342H407H430Q542 342 590 392Q617 419 631 471T645 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(751, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(1140, 0)"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1903, 0)"}},[a("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(2181, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2650, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(3094.7, 0)"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3623.7, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(",\nwhere "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.05ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.726ex",height:"1.643ex",viewBox:"0 -704 763 726"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})])])])])]),t._v(" is the random variable of the observation.")],1),t._v(" "),a("h4",{attrs:{id:"parameters-272"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-272"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-383"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-383"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-space-25"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-25"}},[t._v("#")]),t._v(" get_observation_space "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_observation_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) observation space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("PartiallyObservable.get_observation_space()")]),t._v(" internally\ncalls "),a("code",[t._v("PartiallyObservable._get_observation_space_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the observation space is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-384"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-384"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The observation space.")]),t._v(" "),a("h3",{attrs:{id:"get-transition-value-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-transition-value-9"}},[t._v("#")]),t._v(" get_transition_value "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_transition_value",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"},{name:"next_state",default:"None",annotation:"Optional[D.T_state]"}],return:"D.T_agent[Value[D.T_value]]"}}}),t._v(" "),a("p",[t._v("Get the value (reward or cost) of a transition.")]),t._v(" "),a("p",[t._v("The transition to consider is defined by the function parameters.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("If this function never depends on the next_state parameter for its computation, it is recommended to\nindicate it by overriding "),a("code",[t._v("UncertainTransitions._is_transition_value_dependent_on_next_state_()")]),t._v(" to return\nFalse. This information can then be exploited by solvers to avoid computing next state to evaluate a\ntransition value (more efficient).")])]),t._v(" "),a("h4",{attrs:{id:"parameters-273"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-273"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")]),t._v(" "),a("li",[a("strong",[t._v("next_state")]),t._v(": The next state in which the transition ends (if needed for the computation).")])]),t._v(" "),a("h4",{attrs:{id:"returns-385"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-385"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The transition value (reward or cost).")]),t._v(" "),a("h3",{attrs:{id:"is-action-17"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-action-17"}},[t._v("#")]),t._v(" is_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_action",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an event is an action (i.e. a controllable event for the agents).")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\naction space provided by "),a("code",[t._v("Events.get_action_space()")]),t._v(", but it can be overridden for faster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-274"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-274"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("event")]),t._v(": The event to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-386"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-386"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is an action (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-applicable-action-17"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-17"}},[t._v("#")]),t._v(" is_applicable_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_applicable_action",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an action is applicable in the given memory (state or history), or in the internal one if\nomitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.is_applicable_action()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_applicable_action()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead\nof the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-275"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-275"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-387"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-387"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the action is applicable (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-enabled-event-17"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-17"}},[t._v("#")]),t._v(" is_enabled_event "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_enabled_event",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an uncontrollable event is enabled in the given memory (state or history), or in the\ninternal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.is_enabled_event()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_enabled_event()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead of\nthe memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-276"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-276"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-388"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-388"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is enabled (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-goal-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-goal-5"}},[t._v("#")]),t._v(" is_goal "),a("Badge",{attrs:{text:"Goals",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_goal",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"D.T_agent[D.T_predicate]"}}}),t._v(" "),a("p",[t._v("Indicate whether an observation belongs to the goals.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\ngoals space provided by "),a("code",[t._v("Goals.get_goals()")]),t._v(", but it can be overridden for faster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-277"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-277"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-389"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-389"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the observation is a goal (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-observation-17"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-observation-17"}},[t._v("#")]),t._v(" is_observation "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_observation",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that an observation indeed belongs to the domain observation space.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\nobservation space provided by "),a("code",[t._v("PartiallyObservable.get_observation_space()")]),t._v(", but it can be overridden for\nfaster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-278"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-278"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-390"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-390"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the observation belongs to the domain observation space (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-terminal-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-terminal-9"}},[t._v("#")]),t._v(" is_terminal "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_terminal",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"}],return:"D.T_agent[D.T_predicate]"}}}),t._v(" "),a("p",[t._v("Indicate whether a state is terminal.")]),t._v(" "),a("p",[t._v("A terminal state is a state with no outgoing transition (except to itself with value 0).")]),t._v(" "),a("h4",{attrs:{id:"parameters-279"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-279"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-391"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-391"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the state is terminal (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-transition-value-dependent-on-next-state-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-transition-value-dependent-on-next-state-13"}},[t._v("#")]),t._v(" is_transition_value_dependent_on_next_state "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_transition_value_dependent_on_next_state",sig:{params:[{name:"self"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether get_transition_value() requires the next_state parameter for its computation (cached).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("UncertainTransitions.is_transition_value_dependent_on_next_state()")]),t._v(" internally\ncalls "),a("code",[t._v("UncertainTransitions._is_transition_value_dependent_on_next_state_()")]),t._v(" the first time and automatically\ncaches its value to make future calls more efficient (since the returned value is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-392"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-392"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the transition value computation depends on next_state (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"reset-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#reset-13"}},[t._v("#")]),t._v(" reset "),a("Badge",{attrs:{text:"Initializable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"reset",sig:{params:[{name:"self"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Reset the state of the environment and return an initial observation.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Initializable.reset()")]),t._v(" provides some boilerplate code and internally calls "),a("code",[t._v("Initializable._reset()")]),t._v("\n(which returns an initial state). The boilerplate code automatically stores the initial state into the "),a("code",[t._v("_memory")]),t._v("\nattribute and samples a corresponding observation.")]),t._v(" "),a("h4",{attrs:{id:"returns-393"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-393"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("An initial observation.")]),t._v(" "),a("h3",{attrs:{id:"sample-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample-11"}},[t._v("#")]),t._v(" sample "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"sample",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Sample one transition of the simulator's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Simulation.sample()")]),t._v(" provides some boilerplate code and internally calls "),a("code",[t._v("Simulation._sample()")]),t._v("\n(which returns a transition outcome). The boilerplate code automatically samples an observation corresponding to\nthe sampled next state.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing simulator needs to be wrapped instead of implemented fully in scikit-decide (e.g. a\nsimulator), it is recommended to overwrite "),a("code",[t._v("Simulation.sample()")]),t._v(" to call the external simulator and not use\nthe "),a("code",[t._v("Simulation._sample()")]),t._v(" helper function.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-280"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-280"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-394"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-394"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of the sampled transition.")]),t._v(" "),a("h3",{attrs:{id:"set-memory-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#set-memory-11"}},[t._v("#")]),t._v(" set_memory "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"set_memory",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"None"}}}),t._v(" "),a("p",[t._v("Set internal memory attribute "),a("code",[t._v("_memory")]),t._v(" to given one.")]),t._v(" "),a("p",[t._v('This can be useful to set a specific "starting point" before doing a rollout with successive '),a("code",[t._v("Environment.step()")]),t._v("\ncalls.")]),t._v(" "),a("h4",{attrs:{id:"parameters-281"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-281"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to set internally.")])]),t._v(" "),a("h4",{attrs:{id:"example-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#example-11"}},[t._v("#")]),t._v(" Example")]),t._v(" "),a("div",{staticClass:"language-python extra-class"},[a("pre",{pre:!0,attrs:{class:"language-python"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Set simulation_domain memory to my_state (assuming Markovian domain)")]),t._v("\nsimulation_domain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("set_memory"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("my_state"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Start a 100-steps rollout from here (applying my_action at every step)")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("for")]),t._v(" _ "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("in")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("range")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n simulation_domain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("step"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("my_action"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("h3",{attrs:{id:"solve-with-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#solve-with-9"}},[t._v("#")]),t._v(" solve_with "),a("Badge",{attrs:{text:"Domain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"solve_with",sig:{params:[{name:"solver",annotation:"Solver"},{name:"domain_factory",default:"None",annotation:"Optional[Callable[[], Domain]]"},{name:"load_path",default:"None",annotation:"Optional[str]"}],return:"Solver"}}}),t._v(" "),a("p",[t._v("Solve the domain with a new or loaded solver and return it auto-cast to the level of the domain.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Solver.check_domain()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Solver._check_domain_additional()")]),t._v(' (which returns True by default but can be overridden to define\nspecific checks in addition to the "domain requirements"). The boilerplate code automatically checks whether all\ndomain requirements are met.')]),t._v(" "),a("h4",{attrs:{id:"parameters-282"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-282"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("solver")]),t._v(": The solver.")]),t._v(" "),a("li",[a("strong",[t._v("domain_factory")]),t._v(": A callable with no argument returning the domain to solve (factory is the domain class if None).")]),t._v(" "),a("li",[a("strong",[t._v("load_path")]),t._v(": The path to restore the solver state from (if None, the solving process will be launched instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-395"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-395"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The new solver (auto-cast to the level of the domain).")]),t._v(" "),a("h3",{attrs:{id:"step-17"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#step-17"}},[t._v("#")]),t._v(" step "),a("Badge",{attrs:{text:"Environment",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"step",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Run one step of the environment's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Environment.step()")]),t._v(" provides some boilerplate code and internally calls "),a("code",[t._v("Environment._step()")]),t._v(" (which\nreturns a transition outcome). The boilerplate code automatically stores next state into the "),a("code",[t._v("_memory")]),t._v(" attribute\nand samples a corresponding observation.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing environment needs to be wrapped instead of implemented fully in scikit-decide (e.g. compiled\nATARI games), it is recommended to overwrite "),a("code",[t._v("Environment.step()")]),t._v(" to call the external environment and not\nuse the "),a("code",[t._v("Environment._step()")]),t._v(" helper function.")])]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Before calling "),a("code",[t._v("Environment.step()")]),t._v(" the first time or when the end of an episode is\nreached, "),a("code",[t._v("Initializable.reset()")]),t._v(" must be called to reset the environment's state.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-283"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-283"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the current memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-396"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-396"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of this step.")]),t._v(" "),a("h3",{attrs:{id:"check-value-18"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#check-value-18"}},[t._v("#")]),t._v(" _check_value "),a("Badge",{attrs:{text:"Rewards",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_check_value",sig:{params:[{name:"self"},{name:"value",annotation:"Value[D.T_value]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that a value is compliant with its cost specification (must be positive).")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("This function calls "),a("code",[t._v("PositiveCost._is_positive()")]),t._v(" to determine if a value is positive (can be overridden for\nadvanced value types).")])]),t._v(" "),a("h4",{attrs:{id:"parameters-284"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-284"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("value")]),t._v(": The value to check.")])]),t._v(" "),a("h4",{attrs:{id:"returns-397"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-397"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the value is compliant (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"get-action-space-26"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-26"}},[t._v("#")]),t._v(" _get_action_space "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_action_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) domain action space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._get_action_space()")]),t._v(" internally calls "),a("code",[t._v("Events._get_action_space_()")]),t._v(" the first time and\nautomatically caches its value to make future calls more efficient (since the action space is assumed to be\nconstant).")]),t._v(" "),a("h4",{attrs:{id:"returns-398"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-398"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The action space.")]),t._v(" "),a("h3",{attrs:{id:"get-action-space-27"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-27"}},[t._v("#")]),t._v(" _get_action_space_ "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_action_space_",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the domain action space (finite or infinite set).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._get_action_space()")]),t._v(", the difference being that the\nresult is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-399"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-399"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The action space.")]),t._v(" "),a("h3",{attrs:{id:"get-applicable-actions-18"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-18"}},[t._v("#")]),t._v(" _get_applicable_actions "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_applicable_actions",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history), or in\nthe internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._get_applicable_actions()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_applicable_actions_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-285"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-285"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-400"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-400"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of applicable actions.")]),t._v(" "),a("h3",{attrs:{id:"get-applicable-actions-from-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-from-9"}},[t._v("#")]),t._v(" _get_applicable_actions_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_applicable_actions_from",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._get_applicable_actions()")]),t._v(", the difference being that\nthe memory parameter is mandatory here.")]),t._v(" "),a("h4",{attrs:{id:"parameters-286"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-286"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-401"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-401"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of applicable actions.")]),t._v(" "),a("h3",{attrs:{id:"get-enabled-events-18"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-18"}},[t._v("#")]),t._v(" _get_enabled_events "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_enabled_events",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"Space[D.T_event]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory), or in the internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._get_enabled_events()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_enabled_events_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-287"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-287"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-402"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-402"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of enabled events.")]),t._v(" "),a("h3",{attrs:{id:"get-enabled-events-from-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-from-9"}},[t._v("#")]),t._v(" _get_enabled_events_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_enabled_events_from",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"Space[D.T_event]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._get_enabled_events()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("h4",{attrs:{id:"parameters-288"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-288"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-403"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-403"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of enabled events.")]),t._v(" "),a("h3",{attrs:{id:"get-goals-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-goals-8"}},[t._v("#")]),t._v(" _get_goals "),a("Badge",{attrs:{text:"Goals",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_goals",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) domain goals space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Goals._get_goals()")]),t._v(" internally calls "),a("code",[t._v("Goals._get_goals_()")]),t._v(" the first time and automatically caches\nits value to make future calls more efficient (since the goals space is assumed to be constant).")]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Goal states are assumed to be fully observable (i.e. observation = state) so that there is never uncertainty\nabout whether the goal has been reached or not. This assumption guarantees that any policy that does not\nreach the goal with certainty incurs in infinite expected cost. - "),a("em",[t._v("Geffner, 2013: A Concise Introduction to\nModels and Methods for Automated Planning")])])]),t._v(" "),a("h4",{attrs:{id:"returns-404"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-404"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The goals space.")]),t._v(" "),a("h3",{attrs:{id:"get-goals-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-goals-9"}},[t._v("#")]),t._v(" _get_goals_ "),a("Badge",{attrs:{text:"Goals",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_goals_",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the domain goals space (finite or infinite set).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Goals._get_goals()")]),t._v(", the difference being that the result is\nnot cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-405"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-405"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The goals space.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-8"}},[t._v("#")]),t._v(" _get_initial_state "),a("Badge",{attrs:{text:"DeterministicInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_initial_state",sig:{params:[{name:"self"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("Get the (cached) initial state.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("DeterministicInitialized._get_initial_state()")]),t._v(" internally\ncalls "),a("code",[t._v("DeterministicInitialized._get_initial_state_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the initial state is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-406"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-406"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The initial state.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-9"}},[t._v("#")]),t._v(" _get_initial_state_ "),a("Badge",{attrs:{text:"DeterministicInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_initial_state_",sig:{params:[{name:"self"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("Get the initial state.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("DeterministicInitialized._get_initial_state()")]),t._v(", the difference\nbeing that the result is not cached here.")]),t._v(" "),a("h4",{attrs:{id:"returns-407"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-407"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The initial state.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-distribution-14"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-distribution-14"}},[t._v("#")]),t._v(" _get_initial_state_distribution "),a("Badge",{attrs:{text:"UncertainInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_initial_state_distribution",sig:{params:[{name:"self"}],return:"Distribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("Get the (cached) probability distribution of initial states.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("UncertainInitialized._get_initial_state_distribution()")]),t._v(" internally\ncalls "),a("code",[t._v("UncertainInitialized._get_initial_state_distribution_()")]),t._v(" the first time and automatically caches its value\nto make future calls more efficient (since the initial state distribution is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-408"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-408"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of initial states.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-distribution-15"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-distribution-15"}},[t._v("#")]),t._v(" _get_initial_state_distribution_ "),a("Badge",{attrs:{text:"UncertainInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_initial_state_distribution_",sig:{params:[{name:"self"}],return:"Distribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("Get the probability distribution of initial states.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("UncertainInitialized._get_initial_state_distribution()")]),t._v(", the\ndifference being that the result is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-409"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-409"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of initial states.")]),t._v(" "),a("h3",{attrs:{id:"get-memory-maxlen-16"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-memory-maxlen-16"}},[t._v("#")]),t._v(" _get_memory_maxlen "),a("Badge",{attrs:{text:"History",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_memory_maxlen",sig:{params:[{name:"self"}],return:"int"}}}),t._v(" "),a("p",[t._v("Get the (cached) memory max length.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("FiniteHistory._get_memory_maxlen()")]),t._v(" internally calls "),a("code",[t._v("FiniteHistory._get_memory_maxlen_()")]),t._v(" the first\ntime and automatically caches its value to make future calls more efficient (since the memory max length is\nassumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-410"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-410"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The memory max length.")]),t._v(" "),a("h3",{attrs:{id:"get-memory-maxlen-17"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-memory-maxlen-17"}},[t._v("#")]),t._v(" _get_memory_maxlen_ "),a("Badge",{attrs:{text:"FiniteHistory",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_memory_maxlen_",sig:{params:[{name:"self"}],return:"int"}}}),t._v(" "),a("p",[t._v("Get the memory max length.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("FiniteHistory._get_memory_maxlen()")]),t._v(", the difference being that\nthe result is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-411"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-411"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The memory max length.")]),t._v(" "),a("h3",{attrs:{id:"get-next-state-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-next-state-2"}},[t._v("#")]),t._v(" _get_next_state "),a("Badge",{attrs:{text:"DeterministicTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_next_state",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("Get the next state given a memory and action.")]),t._v(" "),a("h4",{attrs:{id:"parameters-289"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-289"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-412"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-412"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The deterministic next state.")]),t._v(" "),a("h3",{attrs:{id:"get-next-state-distribution-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-next-state-distribution-10"}},[t._v("#")]),t._v(" _get_next_state_distribution "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_next_state_distribution",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"SingleValueDistribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("Get the discrete probability distribution of next state given a memory and action.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("In the Markovian case (memory only holds last state "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.061ex",height:"1.023ex",viewBox:"0 -442 469 452"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})])])])])]),t._v("), given an action "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.197ex",height:"1.02ex",viewBox:"0 -441 529 451"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})])])])])]),t._v(", this function can\nbe mathematically represented by "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.292ex",height:"2.283ex",viewBox:"0 -759 4107.1 1009"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"50",d:"M287 628Q287 635 230 637Q206 637 199 638T192 648Q192 649 194 659Q200 679 203 681T397 683Q587 682 600 680Q664 669 707 631T751 530Q751 453 685 389Q616 321 507 303Q500 302 402 301H307L277 182Q247 66 247 59Q247 55 248 54T255 50T272 48T305 46H336Q342 37 342 35Q342 19 335 5Q330 0 319 0Q316 0 282 1T182 2Q120 2 87 2T51 1Q33 1 33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM645 554Q645 567 643 575T634 597T609 619T560 635Q553 636 480 637Q463 637 445 637T416 636T404 636Q391 635 386 627Q384 621 367 550T332 412T314 344Q314 342 395 342H407H430Q542 342 590 392Q617 419 631 471T645 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(751, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"msup",transform:"translate(1140, 0)"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"53",d:"M308 24Q367 24 416 76T466 197Q466 260 414 284Q308 311 278 321T236 341Q176 383 176 462Q176 523 208 573T273 648Q302 673 343 688T407 704H418H425Q521 704 564 640Q565 640 577 653T603 682T623 704Q624 704 627 704T632 705Q645 705 645 698T617 577T585 459T569 456Q549 456 549 465Q549 471 550 475Q550 478 551 494T553 520Q553 554 544 579T526 616T501 641Q465 662 419 662Q362 662 313 616T263 510Q263 480 278 458T319 427Q323 425 389 408T456 390Q490 379 522 342T554 242Q554 216 546 186Q541 164 528 137T492 78T426 18T332 -20Q320 -22 298 -22Q199 -22 144 33L134 44L106 13Q83 -14 78 -18T65 -22Q52 -22 52 -14Q52 -11 110 221Q112 227 130 227H143Q149 221 149 216Q149 214 148 207T144 186T142 153Q144 114 160 87T203 47T255 29T308 24Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(613, 363) scale(0.707)"}},[a("path",{attrs:{"data-c":"2032",d:"M79 43Q73 43 52 49T30 61Q30 68 85 293T146 528Q161 560 198 560Q218 560 240 545T262 501Q262 496 260 486Q259 479 173 263T84 45T79 43Z"}})])]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1997.5, 0)"}},[a("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(2275.5, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2744.5, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(3189.1, 0)"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3718.1, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(", where "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.05ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.94ex",height:"1.767ex",viewBox:"0 -759 857.5 781"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"msup"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"53",d:"M308 24Q367 24 416 76T466 197Q466 260 414 284Q308 311 278 321T236 341Q176 383 176 462Q176 523 208 573T273 648Q302 673 343 688T407 704H418H425Q521 704 564 640Q565 640 577 653T603 682T623 704Q624 704 627 704T632 705Q645 705 645 698T617 577T585 459T569 456Q549 456 549 465Q549 471 550 475Q550 478 551 494T553 520Q553 554 544 579T526 616T501 641Q465 662 419 662Q362 662 313 616T263 510Q263 480 278 458T319 427Q323 425 389 408T456 390Q490 379 522 342T554 242Q554 216 546 186Q541 164 528 137T492 78T426 18T332 -20Q320 -22 298 -22Q199 -22 144 33L134 44L106 13Q83 -14 78 -18T65 -22Q52 -22 52 -14Q52 -11 110 221Q112 227 130 227H143Q149 221 149 216Q149 214 148 207T144 186T142 153Q144 114 160 87T203 47T255 29T308 24Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(613, 363) scale(0.707)"}},[a("path",{attrs:{"data-c":"2032",d:"M79 43Q73 43 52 49T30 61Q30 68 85 293T146 528Q161 560 198 560Q218 560 240 545T262 501Q262 496 260 486Q259 479 173 263T84 45T79 43Z"}})])])])])])]),t._v(" is the next state random variable.")],1)]),t._v(" "),a("h4",{attrs:{id:"parameters-290"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-290"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-413"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-413"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The discrete probability distribution of next state.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-12"}},[t._v("#")]),t._v(" _get_observation "),a("Badge",{attrs:{text:"TransformedObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Get the deterministic observation given a state and action.")]),t._v(" "),a("h4",{attrs:{id:"parameters-291"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-291"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-414"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-414"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-distribution-18"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-distribution-18"}},[t._v("#")]),t._v(" _get_observation_distribution "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation_distribution",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"Distribution[D.T_agent[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the probability distribution of the observation given a state and action.")]),t._v(" "),a("p",[t._v("In mathematical terms (discrete case), given an action "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.197ex",height:"1.02ex",viewBox:"0 -441 529 451"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})])])])])]),t._v(", this function represents: "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.078ex",height:"2.262ex",viewBox:"0 -750 4012.7 1000"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"50",d:"M287 628Q287 635 230 637Q206 637 199 638T192 648Q192 649 194 659Q200 679 203 681T397 683Q587 682 600 680Q664 669 707 631T751 530Q751 453 685 389Q616 321 507 303Q500 302 402 301H307L277 182Q247 66 247 59Q247 55 248 54T255 50T272 48T305 46H336Q342 37 342 35Q342 19 335 5Q330 0 319 0Q316 0 282 1T182 2Q120 2 87 2T51 1Q33 1 33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM645 554Q645 567 643 575T634 597T609 619T560 635Q553 636 480 637Q463 637 445 637T416 636T404 636Q391 635 386 627Q384 621 367 550T332 412T314 344Q314 342 395 342H407H430Q542 342 590 392Q617 419 631 471T645 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(751, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(1140, 0)"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1903, 0)"}},[a("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(2181, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2650, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(3094.7, 0)"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3623.7, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(",\nwhere "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.05ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.726ex",height:"1.643ex",viewBox:"0 -704 763 726"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})])])])])]),t._v(" is the random variable of the observation.")],1),t._v(" "),a("h4",{attrs:{id:"parameters-292"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-292"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-415"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-415"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-space-26"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-26"}},[t._v("#")]),t._v(" _get_observation_space "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) observation space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(" internally\ncalls "),a("code",[t._v("PartiallyObservable._get_observation_space_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the observation space is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-416"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-416"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The observation space.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-space-27"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-27"}},[t._v("#")]),t._v(" _get_observation_space_ "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation_space_",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the observation space (finite or infinite set).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(", the difference\nbeing that the result is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-417"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-417"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The observation space.")]),t._v(" "),a("h3",{attrs:{id:"get-transition-value-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-transition-value-10"}},[t._v("#")]),t._v(" _get_transition_value "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_transition_value",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"},{name:"next_state",default:"None",annotation:"Optional[D.T_state]"}],return:"D.T_agent[Value[D.T_value]]"}}}),t._v(" "),a("p",[t._v("Get the value (reward or cost) of a transition.")]),t._v(" "),a("p",[t._v("The transition to consider is defined by the function parameters.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("If this function never depends on the next_state parameter for its computation, it is recommended to\nindicate it by overriding "),a("code",[t._v("UncertainTransitions._is_transition_value_dependent_on_next_state_()")]),t._v(" to return\nFalse. This information can then be exploited by solvers to avoid computing next state to evaluate a\ntransition value (more efficient).")])]),t._v(" "),a("h4",{attrs:{id:"parameters-293"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-293"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")]),t._v(" "),a("li",[a("strong",[t._v("next_state")]),t._v(": The next state in which the transition ends (if needed for the computation).")])]),t._v(" "),a("h4",{attrs:{id:"returns-418"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-418"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The transition value (reward or cost).")]),t._v(" "),a("h3",{attrs:{id:"init-memory-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#init-memory-9"}},[t._v("#")]),t._v(" _init_memory "),a("Badge",{attrs:{text:"History",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_init_memory",sig:{params:[{name:"self"},{name:"state",default:"None",annotation:"Optional[D.T_state]"}],return:"D.T_memory[D.T_state]"}}}),t._v(" "),a("p",[t._v("Initialize memory (possibly with a state) according to its specification and return it.")]),t._v(" "),a("p",[t._v("This function is automatically called by "),a("code",[t._v("Initializable._reset()")]),t._v(" to reinitialize the internal memory whenever\nthe domain is used as an environment.")]),t._v(" "),a("h4",{attrs:{id:"parameters-294"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-294"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": An optional state to initialize the memory with (typically the initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-419"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-419"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The new initialized memory.")]),t._v(" "),a("h3",{attrs:{id:"is-action-18"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-action-18"}},[t._v("#")]),t._v(" _is_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_action",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an event is an action (i.e. a controllable event for the agents).")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\naction space provided by "),a("code",[t._v("Events._get_action_space()")]),t._v(", but it can be overridden for faster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-295"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-295"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("event")]),t._v(": The event to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-420"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-420"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is an action (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-applicable-action-18"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-18"}},[t._v("#")]),t._v(" _is_applicable_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_applicable_action",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an action is applicable in the given memory (state or history), or in the internal one if\nomitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._is_applicable_action()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_applicable_action_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-296"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-296"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-421"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-421"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the action is applicable (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-applicable-action-from-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-from-9"}},[t._v("#")]),t._v(" _is_applicable_action_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_applicable_action_from",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an action is applicable in the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._is_applicable_action()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the space of\napplicable actions provided by "),a("code",[t._v("Events._get_applicable_actions_from()")]),t._v(", but it can be overridden for faster\nimplementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-297"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-297"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-422"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-422"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the action is applicable (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-enabled-event-18"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-18"}},[t._v("#")]),t._v(" _is_enabled_event "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_enabled_event",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an uncontrollable event is enabled in the given memory (state or history), or in the\ninternal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._is_enabled_event()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_enabled_event_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead\nof the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-298"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-298"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-423"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-423"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is enabled (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-enabled-event-from-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-from-9"}},[t._v("#")]),t._v(" _is_enabled_event_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_enabled_event_from",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an event is enabled in the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._is_enabled_event()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the space of\nenabled events provided by "),a("code",[t._v("Events._get_enabled_events_from()")]),t._v(", but it can be overridden for faster\nimplementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-299"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-299"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-424"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-424"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is enabled (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-goal-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-goal-6"}},[t._v("#")]),t._v(" _is_goal "),a("Badge",{attrs:{text:"Goals",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_goal",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"D.T_agent[D.T_predicate]"}}}),t._v(" "),a("p",[t._v("Indicate whether an observation belongs to the goals.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\ngoals space provided by "),a("code",[t._v("Goals._get_goals()")]),t._v(", but it can be overridden for faster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-300"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-300"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-425"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-425"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the observation is a goal (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-observation-18"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-observation-18"}},[t._v("#")]),t._v(" _is_observation "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_observation",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that an observation indeed belongs to the domain observation space.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\nobservation space provided by "),a("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(", but it can be overridden for\nfaster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-301"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-301"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-426"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-426"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the observation belongs to the domain observation space (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-positive-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-positive-3"}},[t._v("#")]),t._v(" _is_positive "),a("Badge",{attrs:{text:"PositiveCosts",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_positive",sig:{params:[{name:"self"},{name:"cost",annotation:"D.T_value"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Determine if a value is positive (can be overridden for advanced value types).")]),t._v(" "),a("h4",{attrs:{id:"parameters-302"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-302"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("cost")]),t._v(": The cost to evaluate.")])]),t._v(" "),a("h4",{attrs:{id:"returns-427"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-427"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the cost is positive (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-terminal-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-terminal-10"}},[t._v("#")]),t._v(" _is_terminal "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_terminal",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"}],return:"D.T_agent[D.T_predicate]"}}}),t._v(" "),a("p",[t._v("Indicate whether a state is terminal.")]),t._v(" "),a("p",[t._v("A terminal state is a state with no outgoing transition (except to itself with value 0).")]),t._v(" "),a("h4",{attrs:{id:"parameters-303"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-303"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-428"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-428"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the state is terminal (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-transition-value-dependent-on-next-state-14"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-transition-value-dependent-on-next-state-14"}},[t._v("#")]),t._v(" _is_transition_value_dependent_on_next_state "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_transition_value_dependent_on_next_state",sig:{params:[{name:"self"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether _get_transition_value() requires the next_state parameter for its computation (cached).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("UncertainTransitions._is_transition_value_dependent_on_next_state()")]),t._v(" internally\ncalls "),a("code",[t._v("UncertainTransitions._is_transition_value_dependent_on_next_state_()")]),t._v(" the first time and automatically\ncaches its value to make future calls more efficient (since the returned value is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-429"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-429"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the transition value computation depends on next_state (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-transition-value-dependent-on-next-state-15"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-transition-value-dependent-on-next-state-15"}},[t._v("#")]),t._v(" _is_transition_value_dependent_on_next_state_ "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_transition_value_dependent_on_next_state_",sig:{params:[{name:"self"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether _get_transition_value() requires the next_state parameter for its computation.")]),t._v(" "),a("p",[t._v("This is a helper function called by default\nfrom "),a("code",[t._v("UncertainTransitions._is_transition_value_dependent_on_next_state()")]),t._v(", the difference being that the result\nis not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-430"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-430"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the transition value computation depends on next_state (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"reset-14"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#reset-14"}},[t._v("#")]),t._v(" _reset "),a("Badge",{attrs:{text:"Initializable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_reset",sig:{params:[{name:"self"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Reset the state of the environment and return an initial observation.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Initializable._reset()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Initializable._state_reset()")]),t._v(" (which returns an initial state). The boilerplate code automatically stores\nthe initial state into the "),a("code",[t._v("_memory")]),t._v(" attribute and samples a corresponding observation.")]),t._v(" "),a("h4",{attrs:{id:"returns-431"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-431"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("An initial observation.")]),t._v(" "),a("h3",{attrs:{id:"sample-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample-12"}},[t._v("#")]),t._v(" _sample "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_sample",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Sample one transition of the simulator's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Simulation._sample()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Simulation._state_sample()")]),t._v(" (which returns a transition outcome). The boilerplate code automatically\nsamples an observation corresponding to the sampled next state.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing simulator needs to be wrapped instead of implemented fully in scikit-decide (e.g. a\nsimulator), it is recommended to overwrite "),a("code",[t._v("Simulation._sample()")]),t._v(" to call the external simulator and not use\nthe "),a("code",[t._v("Simulation._state_sample()")]),t._v(" helper function.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-304"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-304"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-432"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-432"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of the sampled transition.")]),t._v(" "),a("h3",{attrs:{id:"set-memory-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#set-memory-12"}},[t._v("#")]),t._v(" _set_memory "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_set_memory",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"None"}}}),t._v(" "),a("p",[t._v("Set internal memory attribute "),a("code",[t._v("_memory")]),t._v(" to given one.")]),t._v(" "),a("p",[t._v('This can be useful to set a specific "starting point" before doing a rollout with\nsuccessive '),a("code",[t._v("Environment._step()")]),t._v(" calls.")]),t._v(" "),a("h4",{attrs:{id:"parameters-305"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-305"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to set internally.")])]),t._v(" "),a("h4",{attrs:{id:"example-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#example-12"}},[t._v("#")]),t._v(" Example")]),t._v(" "),a("div",{staticClass:"language-python extra-class"},[a("pre",{pre:!0,attrs:{class:"language-python"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Set simulation_domain memory to my_state (assuming Markovian domain)")]),t._v("\nsimulation_domain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("_set_memory"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("my_state"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Start a 100-steps rollout from here (applying my_action at every step)")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("for")]),t._v(" _ "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("in")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("range")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n simulation_domain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("_step"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("my_action"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("h3",{attrs:{id:"state-reset-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#state-reset-7"}},[t._v("#")]),t._v(" _state_reset "),a("Badge",{attrs:{text:"Initializable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_state_reset",sig:{params:[{name:"self"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("Reset the state of the environment and return an initial state.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Initializable._reset()")]),t._v(". It focuses on the state level, as\nopposed to the observation one for the latter.")]),t._v(" "),a("h4",{attrs:{id:"returns-433"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-433"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("An initial state.")]),t._v(" "),a("h3",{attrs:{id:"state-sample-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#state-sample-6"}},[t._v("#")]),t._v(" _state_sample "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_state_sample",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"TransitionOutcome[D.T_state, D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Compute one sample of the transition's dynamics.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Simulation._sample()")]),t._v(". It focuses on the state level, as\nopposed to the observation one for the latter.")]),t._v(" "),a("h4",{attrs:{id:"parameters-306"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-306"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-434"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-434"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The transition outcome of the sampled transition.")]),t._v(" "),a("h3",{attrs:{id:"state-step-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#state-step-9"}},[t._v("#")]),t._v(" _state_step "),a("Badge",{attrs:{text:"Environment",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_state_step",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"TransitionOutcome[D.T_state, D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Compute one step of the transition's dynamics.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Environment._step()")]),t._v(". It focuses on the state level, as opposed\nto the observation one for the latter.")]),t._v(" "),a("h4",{attrs:{id:"parameters-307"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-307"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the current memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-435"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-435"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The transition outcome of this step.")]),t._v(" "),a("h3",{attrs:{id:"step-18"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#step-18"}},[t._v("#")]),t._v(" _step "),a("Badge",{attrs:{text:"Environment",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_step",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Run one step of the environment's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Environment._step()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Environment._state_step()")]),t._v(" (which returns a transition outcome). The boilerplate code automatically stores\nnext state into the "),a("code",[t._v("_memory")]),t._v(" attribute and samples a corresponding observation.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing environment needs to be wrapped instead of implemented fully in scikit-decide (e.g. compiled\nATARI games), it is recommended to overwrite "),a("code",[t._v("Environment._step()")]),t._v(" to call the external environment and not\nuse the "),a("code",[t._v("Environment._state_step()")]),t._v(" helper function.")])]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Before calling "),a("code",[t._v("Environment._step()")]),t._v(" the first time or when the end of an episode is\nreached, "),a("code",[t._v("Initializable._reset()")]),t._v(" must be called to reset the environment's state.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-308"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-308"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the current memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-436"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-436"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of this step.")])],1)}),[],!1,null,null,null);e.default=r.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[58],{584:function(t,e,a){"use strict";a.r(e);var s=a(38),r=Object(s.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"domains"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#domains"}},[t._v("#")]),t._v(" domains")]),t._v(" "),a("p",[t._v("This module contains base classes for quickly building domains.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("Domain specification")]),t._v(" "),a("skdecide-summary")],1),t._v(" "),a("h2",{attrs:{id:"domain"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#domain"}},[t._v("#")]),t._v(" Domain")]),t._v(" "),a("p",[t._v("This is the highest level domain class (inheriting top-level class for each mandatory domain characteristic).")]),t._v(" "),a("p",[t._v("This helper class can be used as the main base class for domains.")]),t._v(" "),a("p",[t._v("Typical use:")]),t._v(" "),a("div",{staticClass:"language-python extra-class"},[a("pre",{pre:!0,attrs:{class:"language-python"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("class")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("D")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("Domain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("p",[t._v('with "..." replaced when needed by a number of classes from following domain characteristics (the ones in\nparentheses are optional):')]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("agent")]),t._v(": MultiAgent -> SingleAgent")]),t._v(" "),a("li",[a("strong",[t._v("concurrency")]),t._v(": Parallel -> Sequential")]),t._v(" "),a("li",[a("strong",[t._v("(constraints)")]),t._v(": Constrained")]),t._v(" "),a("li",[a("strong",[t._v("dynamics")]),t._v(": Environment -> Simulation -> UncertainTransitions -> EnumerableTransitions\n-> DeterministicTransitions")]),t._v(" "),a("li",[a("strong",[t._v("events")]),t._v(": Events -> Actions -> UnrestrictedActions")]),t._v(" "),a("li",[a("strong",[t._v("(goals)")]),t._v(": Goals")]),t._v(" "),a("li",[a("strong",[t._v("(initialization)")]),t._v(": Initializable -> UncertainInitialized -> DeterministicInitialized")]),t._v(" "),a("li",[a("strong",[t._v("memory")]),t._v(": History -> FiniteHistory -> Markovian -> Memoryless")]),t._v(" "),a("li",[a("strong",[t._v("observability")]),t._v(": PartiallyObservable -> TransformedObservable -> FullyObservable")]),t._v(" "),a("li",[a("strong",[t._v("(renderability)")]),t._v(": Renderable")]),t._v(" "),a("li",[a("strong",[t._v("value")]),t._v(": Rewards -> PositiveCosts")])]),t._v(" "),a("h3",{attrs:{id:"check-value"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#check-value"}},[t._v("#")]),t._v(" check_value "),a("Badge",{attrs:{text:"Rewards",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"check_value",sig:{params:[{name:"self"},{name:"value",annotation:"Value[D.T_value]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that a value is compliant with its reward specification.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("This function returns always True by default because any kind of reward should be accepted at this level.")])]),t._v(" "),a("h4",{attrs:{id:"parameters"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("value")]),t._v(": The value to check.")])]),t._v(" "),a("h4",{attrs:{id:"returns"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the value is compliant (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"get-action-space"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space"}},[t._v("#")]),t._v(" get_action_space "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_action_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) domain action space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.get_action_space()")]),t._v(" internally calls "),a("code",[t._v("Events._get_action_space_()")]),t._v(" the first time and\nautomatically caches its value to make future calls more efficient (since the action space is assumed to be\nconstant).")]),t._v(" "),a("h4",{attrs:{id:"returns-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-2"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The action space.")]),t._v(" "),a("h3",{attrs:{id:"get-applicable-actions"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions"}},[t._v("#")]),t._v(" get_applicable_actions "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_applicable_actions",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history), or in\nthe internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.get_applicable_actions()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_applicable_actions()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-2"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-3"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of applicable actions.")]),t._v(" "),a("h3",{attrs:{id:"get-enabled-events"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events"}},[t._v("#")]),t._v(" get_enabled_events "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_enabled_events",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"Space[D.T_event]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory), or in the internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.get_enabled_events()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_enabled_events()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead of\nthe memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-3"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-4"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of enabled events.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-distribution"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-distribution"}},[t._v("#")]),t._v(" get_observation_distribution "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_observation_distribution",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"Distribution[D.T_agent[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the probability distribution of the observation given a state and action.")]),t._v(" "),a("p",[t._v("In mathematical terms (discrete case), given an action "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.197ex",height:"1.02ex",viewBox:"0 -441 529 451"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})])])])])]),t._v(", this function represents: "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.078ex",height:"2.262ex",viewBox:"0 -750 4012.7 1000"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"50",d:"M287 628Q287 635 230 637Q206 637 199 638T192 648Q192 649 194 659Q200 679 203 681T397 683Q587 682 600 680Q664 669 707 631T751 530Q751 453 685 389Q616 321 507 303Q500 302 402 301H307L277 182Q247 66 247 59Q247 55 248 54T255 50T272 48T305 46H336Q342 37 342 35Q342 19 335 5Q330 0 319 0Q316 0 282 1T182 2Q120 2 87 2T51 1Q33 1 33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM645 554Q645 567 643 575T634 597T609 619T560 635Q553 636 480 637Q463 637 445 637T416 636T404 636Q391 635 386 627Q384 621 367 550T332 412T314 344Q314 342 395 342H407H430Q542 342 590 392Q617 419 631 471T645 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(751, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(1140, 0)"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1903, 0)"}},[a("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(2181, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2650, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(3094.7, 0)"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3623.7, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(",\nwhere "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.05ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.726ex",height:"1.643ex",viewBox:"0 -704 763 726"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})])])])])]),t._v(" is the random variable of the observation.")],1),t._v(" "),a("h4",{attrs:{id:"parameters-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-4"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-5"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-space"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space"}},[t._v("#")]),t._v(" get_observation_space "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_observation_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) observation space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("PartiallyObservable.get_observation_space()")]),t._v(" internally\ncalls "),a("code",[t._v("PartiallyObservable._get_observation_space_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the observation space is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-6"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The observation space.")]),t._v(" "),a("h3",{attrs:{id:"is-action"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-action"}},[t._v("#")]),t._v(" is_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_action",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an event is an action (i.e. a controllable event for the agents).")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\naction space provided by "),a("code",[t._v("Events.get_action_space()")]),t._v(", but it can be overridden for faster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-5"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("event")]),t._v(": The event to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-7"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is an action (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-applicable-action"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action"}},[t._v("#")]),t._v(" is_applicable_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_applicable_action",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an action is applicable in the given memory (state or history), or in the internal one if\nomitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.is_applicable_action()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_applicable_action()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead\nof the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-6"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-8"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the action is applicable (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-enabled-event"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event"}},[t._v("#")]),t._v(" is_enabled_event "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_enabled_event",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an uncontrollable event is enabled in the given memory (state or history), or in the\ninternal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.is_enabled_event()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_enabled_event()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead of\nthe memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-7"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-9"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is enabled (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-observation"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-observation"}},[t._v("#")]),t._v(" is_observation "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_observation",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that an observation indeed belongs to the domain observation space.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\nobservation space provided by "),a("code",[t._v("PartiallyObservable.get_observation_space()")]),t._v(", but it can be overridden for\nfaster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-8"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-10"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the observation belongs to the domain observation space (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"solve-with"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#solve-with"}},[t._v("#")]),t._v(" solve_with "),a("Badge",{attrs:{text:"Domain",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"solve_with",sig:{params:[{name:"solver",annotation:"Solver"},{name:"domain_factory",default:"None",annotation:"Optional[Callable[[], Domain]]"},{name:"load_path",default:"None",annotation:"Optional[str]"}],return:"Solver"}}}),t._v(" "),a("p",[t._v("Solve the domain with a new or loaded solver and return it auto-cast to the level of the domain.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Solver.check_domain()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Solver._check_domain_additional()")]),t._v(' (which returns True by default but can be overridden to define\nspecific checks in addition to the "domain requirements"). The boilerplate code automatically checks whether all\ndomain requirements are met.')]),t._v(" "),a("h4",{attrs:{id:"parameters-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-9"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("solver")]),t._v(": The solver.")]),t._v(" "),a("li",[a("strong",[t._v("domain_factory")]),t._v(": A callable with no argument returning the domain to solve (factory is the domain class if None).")]),t._v(" "),a("li",[a("strong",[t._v("load_path")]),t._v(": The path to restore the solver state from (if None, the solving process will be launched instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-11"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The new solver (auto-cast to the level of the domain).")]),t._v(" "),a("h3",{attrs:{id:"step"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#step"}},[t._v("#")]),t._v(" step "),a("Badge",{attrs:{text:"Environment",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"step",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Run one step of the environment's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Environment.step()")]),t._v(" provides some boilerplate code and internally calls "),a("code",[t._v("Environment._step()")]),t._v(" (which\nreturns a transition outcome). The boilerplate code automatically stores next state into the "),a("code",[t._v("_memory")]),t._v(" attribute\nand samples a corresponding observation.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing environment needs to be wrapped instead of implemented fully in scikit-decide (e.g. compiled\nATARI games), it is recommended to overwrite "),a("code",[t._v("Environment.step()")]),t._v(" to call the external environment and not\nuse the "),a("code",[t._v("Environment._step()")]),t._v(" helper function.")])]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Before calling "),a("code",[t._v("Environment.step()")]),t._v(" the first time or when the end of an episode is\nreached, "),a("code",[t._v("Initializable.reset()")]),t._v(" must be called to reset the environment's state.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-10"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the current memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-12"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of this step.")]),t._v(" "),a("h3",{attrs:{id:"check-value-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#check-value-2"}},[t._v("#")]),t._v(" _check_value "),a("Badge",{attrs:{text:"Rewards",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_check_value",sig:{params:[{name:"self"},{name:"value",annotation:"Value[D.T_value]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that a value is compliant with its reward specification.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("This function returns always True by default because any kind of reward should be accepted at this level.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-11"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("value")]),t._v(": The value to check.")])]),t._v(" "),a("h4",{attrs:{id:"returns-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-13"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the value is compliant (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"get-action-space-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-2"}},[t._v("#")]),t._v(" _get_action_space "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_action_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) domain action space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._get_action_space()")]),t._v(" internally calls "),a("code",[t._v("Events._get_action_space_()")]),t._v(" the first time and\nautomatically caches its value to make future calls more efficient (since the action space is assumed to be\nconstant).")]),t._v(" "),a("h4",{attrs:{id:"returns-14"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-14"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The action space.")]),t._v(" "),a("h3",{attrs:{id:"get-action-space-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-3"}},[t._v("#")]),t._v(" _get_action_space_ "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_action_space_",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the domain action space (finite or infinite set).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._get_action_space()")]),t._v(", the difference being that the\nresult is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-15"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-15"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The action space.")]),t._v(" "),a("h3",{attrs:{id:"get-applicable-actions-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-2"}},[t._v("#")]),t._v(" _get_applicable_actions "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_applicable_actions",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history), or in\nthe internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._get_applicable_actions()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_applicable_actions_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-12"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-16"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-16"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of applicable actions.")]),t._v(" "),a("h3",{attrs:{id:"get-applicable-actions-from"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-from"}},[t._v("#")]),t._v(" _get_applicable_actions_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_applicable_actions_from",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._get_applicable_actions()")]),t._v(", the difference being that\nthe memory parameter is mandatory here.")]),t._v(" "),a("h4",{attrs:{id:"parameters-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-13"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-17"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-17"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of applicable actions.")]),t._v(" "),a("h3",{attrs:{id:"get-enabled-events-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-2"}},[t._v("#")]),t._v(" _get_enabled_events "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_enabled_events",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"Space[D.T_event]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory), or in the internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._get_enabled_events()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_enabled_events_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-14"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-14"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-18"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-18"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of enabled events.")]),t._v(" "),a("h3",{attrs:{id:"get-enabled-events-from"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-from"}},[t._v("#")]),t._v(" _get_enabled_events_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_enabled_events_from",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"Space[D.T_event]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._get_enabled_events()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("h4",{attrs:{id:"parameters-15"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-15"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-19"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-19"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of enabled events.")]),t._v(" "),a("h3",{attrs:{id:"get-memory-maxlen"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-memory-maxlen"}},[t._v("#")]),t._v(" _get_memory_maxlen "),a("Badge",{attrs:{text:"History",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_memory_maxlen",sig:{params:[{name:"self"}],return:"Optional[int]"}}}),t._v(" "),a("p",[t._v("Get the memory max length (or None if unbounded).")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("This function returns always None by default because the memory length is unbounded at this level.")])]),t._v(" "),a("h4",{attrs:{id:"returns-20"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-20"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The memory max length (or None if unbounded).")]),t._v(" "),a("h3",{attrs:{id:"get-observation-distribution-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-distribution-2"}},[t._v("#")]),t._v(" _get_observation_distribution "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation_distribution",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"Distribution[D.T_agent[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the probability distribution of the observation given a state and action.")]),t._v(" "),a("p",[t._v("In mathematical terms (discrete case), given an action "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.197ex",height:"1.02ex",viewBox:"0 -441 529 451"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})])])])])]),t._v(", this function represents: "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.078ex",height:"2.262ex",viewBox:"0 -750 4012.7 1000"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"50",d:"M287 628Q287 635 230 637Q206 637 199 638T192 648Q192 649 194 659Q200 679 203 681T397 683Q587 682 600 680Q664 669 707 631T751 530Q751 453 685 389Q616 321 507 303Q500 302 402 301H307L277 182Q247 66 247 59Q247 55 248 54T255 50T272 48T305 46H336Q342 37 342 35Q342 19 335 5Q330 0 319 0Q316 0 282 1T182 2Q120 2 87 2T51 1Q33 1 33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM645 554Q645 567 643 575T634 597T609 619T560 635Q553 636 480 637Q463 637 445 637T416 636T404 636Q391 635 386 627Q384 621 367 550T332 412T314 344Q314 342 395 342H407H430Q542 342 590 392Q617 419 631 471T645 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(751, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(1140, 0)"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1903, 0)"}},[a("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(2181, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2650, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(3094.7, 0)"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3623.7, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(",\nwhere "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.05ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.726ex",height:"1.643ex",viewBox:"0 -704 763 726"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})])])])])]),t._v(" is the random variable of the observation.")],1),t._v(" "),a("h4",{attrs:{id:"parameters-16"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-16"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-21"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-21"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-space-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-2"}},[t._v("#")]),t._v(" _get_observation_space "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) observation space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(" internally\ncalls "),a("code",[t._v("PartiallyObservable._get_observation_space_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the observation space is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-22"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-22"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The observation space.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-space-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-3"}},[t._v("#")]),t._v(" _get_observation_space_ "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation_space_",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the observation space (finite or infinite set).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(", the difference\nbeing that the result is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-23"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-23"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The observation space.")]),t._v(" "),a("h3",{attrs:{id:"init-memory"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#init-memory"}},[t._v("#")]),t._v(" _init_memory "),a("Badge",{attrs:{text:"History",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_init_memory",sig:{params:[{name:"self"},{name:"state",default:"None",annotation:"Optional[D.T_state]"}],return:"D.T_memory[D.T_state]"}}}),t._v(" "),a("p",[t._v("Initialize memory (possibly with a state) according to its specification and return it.")]),t._v(" "),a("p",[t._v("This function is automatically called by "),a("code",[t._v("Initializable._reset()")]),t._v(" to reinitialize the internal memory whenever\nthe domain is used as an environment.")]),t._v(" "),a("h4",{attrs:{id:"parameters-17"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-17"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": An optional state to initialize the memory with (typically the initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-24"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-24"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The new initialized memory.")]),t._v(" "),a("h3",{attrs:{id:"is-action-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-action-2"}},[t._v("#")]),t._v(" _is_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_action",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an event is an action (i.e. a controllable event for the agents).")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\naction space provided by "),a("code",[t._v("Events._get_action_space()")]),t._v(", but it can be overridden for faster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-18"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-18"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("event")]),t._v(": The event to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-25"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-25"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is an action (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-applicable-action-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-2"}},[t._v("#")]),t._v(" _is_applicable_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_applicable_action",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an action is applicable in the given memory (state or history), or in the internal one if\nomitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._is_applicable_action()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_applicable_action_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-19"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-19"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-26"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-26"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the action is applicable (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-applicable-action-from"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-from"}},[t._v("#")]),t._v(" _is_applicable_action_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_applicable_action_from",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an action is applicable in the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._is_applicable_action()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the space of\napplicable actions provided by "),a("code",[t._v("Events._get_applicable_actions_from()")]),t._v(", but it can be overridden for faster\nimplementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-20"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-20"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-27"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-27"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the action is applicable (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-enabled-event-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-2"}},[t._v("#")]),t._v(" _is_enabled_event "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_enabled_event",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an uncontrollable event is enabled in the given memory (state or history), or in the\ninternal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._is_enabled_event()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_enabled_event_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead\nof the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-21"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-21"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-28"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-28"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is enabled (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-enabled-event-from"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-from"}},[t._v("#")]),t._v(" _is_enabled_event_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_enabled_event_from",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an event is enabled in the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._is_enabled_event()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the space of\nenabled events provided by "),a("code",[t._v("Events._get_enabled_events_from()")]),t._v(", but it can be overridden for faster\nimplementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-22"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-22"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-29"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-29"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is enabled (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-observation-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-observation-2"}},[t._v("#")]),t._v(" _is_observation "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_observation",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that an observation indeed belongs to the domain observation space.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\nobservation space provided by "),a("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(", but it can be overridden for\nfaster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-23"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-23"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-30"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-30"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the observation belongs to the domain observation space (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"state-step"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#state-step"}},[t._v("#")]),t._v(" _state_step "),a("Badge",{attrs:{text:"Environment",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_state_step",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"TransitionOutcome[D.T_state, D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Compute one step of the transition's dynamics.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Environment._step()")]),t._v(". It focuses on the state level, as opposed\nto the observation one for the latter.")]),t._v(" "),a("h4",{attrs:{id:"parameters-24"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-24"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the current memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-31"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-31"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The transition outcome of this step.")]),t._v(" "),a("h3",{attrs:{id:"step-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#step-2"}},[t._v("#")]),t._v(" _step "),a("Badge",{attrs:{text:"Environment",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_step",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Run one step of the environment's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Environment._step()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Environment._state_step()")]),t._v(" (which returns a transition outcome). The boilerplate code automatically stores\nnext state into the "),a("code",[t._v("_memory")]),t._v(" attribute and samples a corresponding observation.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing environment needs to be wrapped instead of implemented fully in scikit-decide (e.g. compiled\nATARI games), it is recommended to overwrite "),a("code",[t._v("Environment._step()")]),t._v(" to call the external environment and not\nuse the "),a("code",[t._v("Environment._state_step()")]),t._v(" helper function.")])]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Before calling "),a("code",[t._v("Environment._step()")]),t._v(" the first time or when the end of an episode is\nreached, "),a("code",[t._v("Initializable._reset()")]),t._v(" must be called to reset the environment's state.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-25"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-25"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the current memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-32"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-32"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of this step.")]),t._v(" "),a("h2",{attrs:{id:"rldomain"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#rldomain"}},[t._v("#")]),t._v(" RLDomain")]),t._v(" "),a("p",[t._v("This is a typical Reinforcement Learning domain class.")]),t._v(" "),a("p",[t._v("This helper class can be used as an alternate base class for domains, inheriting the following:")]),t._v(" "),a("ul",[a("li",[t._v("Domain")]),t._v(" "),a("li",[t._v("SingleAgent")]),t._v(" "),a("li",[t._v("Sequential")]),t._v(" "),a("li",[t._v("Environment")]),t._v(" "),a("li",[t._v("Actions")]),t._v(" "),a("li",[t._v("Initializable")]),t._v(" "),a("li",[t._v("Markovian")]),t._v(" "),a("li",[t._v("TransformedObservable")]),t._v(" "),a("li",[t._v("Rewards")])]),t._v(" "),a("p",[t._v("Typical use:")]),t._v(" "),a("div",{staticClass:"language-python extra-class"},[a("pre",{pre:!0,attrs:{class:"language-python"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("class")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("D")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("RLDomain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("It is also possible to refine any alternate base class, like for instance:")]),t._v(" "),a("div",{staticClass:"language-python extra-class"},[a("pre",{pre:!0,attrs:{class:"language-python"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("class")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("D")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("RLDomain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" FullyObservable"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])])]),t._v(" "),a("h3",{attrs:{id:"check-value-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#check-value-3"}},[t._v("#")]),t._v(" check_value "),a("Badge",{attrs:{text:"Rewards",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"check_value",sig:{params:[{name:"self"},{name:"value",annotation:"Value[D.T_value]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that a value is compliant with its reward specification.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("This function returns always True by default because any kind of reward should be accepted at this level.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-26"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-26"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("value")]),t._v(": The value to check.")])]),t._v(" "),a("h4",{attrs:{id:"returns-33"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-33"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the value is compliant (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"get-action-space-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-4"}},[t._v("#")]),t._v(" get_action_space "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_action_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) domain action space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.get_action_space()")]),t._v(" internally calls "),a("code",[t._v("Events._get_action_space_()")]),t._v(" the first time and\nautomatically caches its value to make future calls more efficient (since the action space is assumed to be\nconstant).")]),t._v(" "),a("h4",{attrs:{id:"returns-34"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-34"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The action space.")]),t._v(" "),a("h3",{attrs:{id:"get-applicable-actions-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-3"}},[t._v("#")]),t._v(" get_applicable_actions "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_applicable_actions",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history), or in\nthe internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.get_applicable_actions()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_applicable_actions()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-27"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-27"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-35"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-35"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of applicable actions.")]),t._v(" "),a("h3",{attrs:{id:"get-enabled-events-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-3"}},[t._v("#")]),t._v(" get_enabled_events "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_enabled_events",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"Space[D.T_event]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory), or in the internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.get_enabled_events()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_enabled_events()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead of\nthe memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-28"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-28"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-36"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-36"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of enabled events.")]),t._v(" "),a("h3",{attrs:{id:"get-observation"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation"}},[t._v("#")]),t._v(" get_observation "),a("Badge",{attrs:{text:"TransformedObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_observation",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Get the deterministic observation given a state and action.")]),t._v(" "),a("h4",{attrs:{id:"parameters-29"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-29"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-37"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-37"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-distribution-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-distribution-3"}},[t._v("#")]),t._v(" get_observation_distribution "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_observation_distribution",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"Distribution[D.T_agent[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the probability distribution of the observation given a state and action.")]),t._v(" "),a("p",[t._v("In mathematical terms (discrete case), given an action "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.197ex",height:"1.02ex",viewBox:"0 -441 529 451"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})])])])])]),t._v(", this function represents: "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.078ex",height:"2.262ex",viewBox:"0 -750 4012.7 1000"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"50",d:"M287 628Q287 635 230 637Q206 637 199 638T192 648Q192 649 194 659Q200 679 203 681T397 683Q587 682 600 680Q664 669 707 631T751 530Q751 453 685 389Q616 321 507 303Q500 302 402 301H307L277 182Q247 66 247 59Q247 55 248 54T255 50T272 48T305 46H336Q342 37 342 35Q342 19 335 5Q330 0 319 0Q316 0 282 1T182 2Q120 2 87 2T51 1Q33 1 33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM645 554Q645 567 643 575T634 597T609 619T560 635Q553 636 480 637Q463 637 445 637T416 636T404 636Q391 635 386 627Q384 621 367 550T332 412T314 344Q314 342 395 342H407H430Q542 342 590 392Q617 419 631 471T645 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(751, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(1140, 0)"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1903, 0)"}},[a("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(2181, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2650, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(3094.7, 0)"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3623.7, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(",\nwhere "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.05ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.726ex",height:"1.643ex",viewBox:"0 -704 763 726"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})])])])])]),t._v(" is the random variable of the observation.")],1),t._v(" "),a("h4",{attrs:{id:"parameters-30"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-30"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-38"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-38"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-space-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-4"}},[t._v("#")]),t._v(" get_observation_space "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_observation_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) observation space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("PartiallyObservable.get_observation_space()")]),t._v(" internally\ncalls "),a("code",[t._v("PartiallyObservable._get_observation_space_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the observation space is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-39"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-39"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The observation space.")]),t._v(" "),a("h3",{attrs:{id:"is-action-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-action-3"}},[t._v("#")]),t._v(" is_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_action",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an event is an action (i.e. a controllable event for the agents).")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\naction space provided by "),a("code",[t._v("Events.get_action_space()")]),t._v(", but it can be overridden for faster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-31"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-31"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("event")]),t._v(": The event to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-40"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-40"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is an action (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-applicable-action-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-3"}},[t._v("#")]),t._v(" is_applicable_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_applicable_action",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an action is applicable in the given memory (state or history), or in the internal one if\nomitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.is_applicable_action()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_applicable_action()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead\nof the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-32"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-32"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-41"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-41"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the action is applicable (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-enabled-event-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-3"}},[t._v("#")]),t._v(" is_enabled_event "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_enabled_event",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an uncontrollable event is enabled in the given memory (state or history), or in the\ninternal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.is_enabled_event()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_enabled_event()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead of\nthe memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-33"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-33"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-42"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-42"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is enabled (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-observation-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-observation-3"}},[t._v("#")]),t._v(" is_observation "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_observation",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that an observation indeed belongs to the domain observation space.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\nobservation space provided by "),a("code",[t._v("PartiallyObservable.get_observation_space()")]),t._v(", but it can be overridden for\nfaster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-34"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-34"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-43"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-43"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the observation belongs to the domain observation space (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"reset"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#reset"}},[t._v("#")]),t._v(" reset "),a("Badge",{attrs:{text:"Initializable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"reset",sig:{params:[{name:"self"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Reset the state of the environment and return an initial observation.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Initializable.reset()")]),t._v(" provides some boilerplate code and internally calls "),a("code",[t._v("Initializable._reset()")]),t._v("\n(which returns an initial state). The boilerplate code automatically stores the initial state into the "),a("code",[t._v("_memory")]),t._v("\nattribute and samples a corresponding observation.")]),t._v(" "),a("h4",{attrs:{id:"returns-44"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-44"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("An initial observation.")]),t._v(" "),a("h3",{attrs:{id:"solve-with-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#solve-with-2"}},[t._v("#")]),t._v(" solve_with "),a("Badge",{attrs:{text:"Domain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"solve_with",sig:{params:[{name:"solver",annotation:"Solver"},{name:"domain_factory",default:"None",annotation:"Optional[Callable[[], Domain]]"},{name:"load_path",default:"None",annotation:"Optional[str]"}],return:"Solver"}}}),t._v(" "),a("p",[t._v("Solve the domain with a new or loaded solver and return it auto-cast to the level of the domain.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Solver.check_domain()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Solver._check_domain_additional()")]),t._v(' (which returns True by default but can be overridden to define\nspecific checks in addition to the "domain requirements"). The boilerplate code automatically checks whether all\ndomain requirements are met.')]),t._v(" "),a("h4",{attrs:{id:"parameters-35"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-35"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("solver")]),t._v(": The solver.")]),t._v(" "),a("li",[a("strong",[t._v("domain_factory")]),t._v(": A callable with no argument returning the domain to solve (factory is the domain class if None).")]),t._v(" "),a("li",[a("strong",[t._v("load_path")]),t._v(": The path to restore the solver state from (if None, the solving process will be launched instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-45"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-45"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The new solver (auto-cast to the level of the domain).")]),t._v(" "),a("h3",{attrs:{id:"step-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#step-3"}},[t._v("#")]),t._v(" step "),a("Badge",{attrs:{text:"Environment",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"step",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Run one step of the environment's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Environment.step()")]),t._v(" provides some boilerplate code and internally calls "),a("code",[t._v("Environment._step()")]),t._v(" (which\nreturns a transition outcome). The boilerplate code automatically stores next state into the "),a("code",[t._v("_memory")]),t._v(" attribute\nand samples a corresponding observation.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing environment needs to be wrapped instead of implemented fully in scikit-decide (e.g. compiled\nATARI games), it is recommended to overwrite "),a("code",[t._v("Environment.step()")]),t._v(" to call the external environment and not\nuse the "),a("code",[t._v("Environment._step()")]),t._v(" helper function.")])]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Before calling "),a("code",[t._v("Environment.step()")]),t._v(" the first time or when the end of an episode is\nreached, "),a("code",[t._v("Initializable.reset()")]),t._v(" must be called to reset the environment's state.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-36"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-36"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the current memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-46"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-46"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of this step.")]),t._v(" "),a("h3",{attrs:{id:"check-value-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#check-value-4"}},[t._v("#")]),t._v(" _check_value "),a("Badge",{attrs:{text:"Rewards",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_check_value",sig:{params:[{name:"self"},{name:"value",annotation:"Value[D.T_value]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that a value is compliant with its reward specification.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("This function returns always True by default because any kind of reward should be accepted at this level.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-37"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-37"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("value")]),t._v(": The value to check.")])]),t._v(" "),a("h4",{attrs:{id:"returns-47"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-47"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the value is compliant (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"get-action-space-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-5"}},[t._v("#")]),t._v(" _get_action_space "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_action_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) domain action space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._get_action_space()")]),t._v(" internally calls "),a("code",[t._v("Events._get_action_space_()")]),t._v(" the first time and\nautomatically caches its value to make future calls more efficient (since the action space is assumed to be\nconstant).")]),t._v(" "),a("h4",{attrs:{id:"returns-48"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-48"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The action space.")]),t._v(" "),a("h3",{attrs:{id:"get-action-space-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-6"}},[t._v("#")]),t._v(" _get_action_space_ "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_action_space_",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the domain action space (finite or infinite set).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._get_action_space()")]),t._v(", the difference being that the\nresult is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-49"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-49"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The action space.")]),t._v(" "),a("h3",{attrs:{id:"get-applicable-actions-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-4"}},[t._v("#")]),t._v(" _get_applicable_actions "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_applicable_actions",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history), or in\nthe internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._get_applicable_actions()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_applicable_actions_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-38"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-38"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-50"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-50"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of applicable actions.")]),t._v(" "),a("h3",{attrs:{id:"get-applicable-actions-from-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-from-2"}},[t._v("#")]),t._v(" _get_applicable_actions_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_applicable_actions_from",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._get_applicable_actions()")]),t._v(", the difference being that\nthe memory parameter is mandatory here.")]),t._v(" "),a("h4",{attrs:{id:"parameters-39"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-39"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-51"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-51"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of applicable actions.")]),t._v(" "),a("h3",{attrs:{id:"get-enabled-events-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-4"}},[t._v("#")]),t._v(" _get_enabled_events "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_enabled_events",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"Space[D.T_event]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory), or in the internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._get_enabled_events()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_enabled_events_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-40"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-40"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-52"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-52"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of enabled events.")]),t._v(" "),a("h3",{attrs:{id:"get-enabled-events-from-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-from-2"}},[t._v("#")]),t._v(" _get_enabled_events_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_enabled_events_from",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"Space[D.T_event]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._get_enabled_events()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("h4",{attrs:{id:"parameters-41"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-41"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-53"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-53"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of enabled events.")]),t._v(" "),a("h3",{attrs:{id:"get-memory-maxlen-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-memory-maxlen-2"}},[t._v("#")]),t._v(" _get_memory_maxlen "),a("Badge",{attrs:{text:"History",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_memory_maxlen",sig:{params:[{name:"self"}],return:"int"}}}),t._v(" "),a("p",[t._v("Get the (cached) memory max length.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("FiniteHistory._get_memory_maxlen()")]),t._v(" internally calls "),a("code",[t._v("FiniteHistory._get_memory_maxlen_()")]),t._v(" the first\ntime and automatically caches its value to make future calls more efficient (since the memory max length is\nassumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-54"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-54"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The memory max length.")]),t._v(" "),a("h3",{attrs:{id:"get-memory-maxlen-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-memory-maxlen-3"}},[t._v("#")]),t._v(" _get_memory_maxlen_ "),a("Badge",{attrs:{text:"FiniteHistory",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_memory_maxlen_",sig:{params:[{name:"self"}],return:"int"}}}),t._v(" "),a("p",[t._v("Get the memory max length.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("FiniteHistory._get_memory_maxlen()")]),t._v(", the difference being that\nthe result is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-55"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-55"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The memory max length.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-2"}},[t._v("#")]),t._v(" _get_observation "),a("Badge",{attrs:{text:"TransformedObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Get the deterministic observation given a state and action.")]),t._v(" "),a("h4",{attrs:{id:"parameters-42"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-42"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-56"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-56"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-distribution-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-distribution-4"}},[t._v("#")]),t._v(" _get_observation_distribution "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation_distribution",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"Distribution[D.T_agent[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the probability distribution of the observation given a state and action.")]),t._v(" "),a("p",[t._v("In mathematical terms (discrete case), given an action "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.197ex",height:"1.02ex",viewBox:"0 -441 529 451"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})])])])])]),t._v(", this function represents: "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.078ex",height:"2.262ex",viewBox:"0 -750 4012.7 1000"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"50",d:"M287 628Q287 635 230 637Q206 637 199 638T192 648Q192 649 194 659Q200 679 203 681T397 683Q587 682 600 680Q664 669 707 631T751 530Q751 453 685 389Q616 321 507 303Q500 302 402 301H307L277 182Q247 66 247 59Q247 55 248 54T255 50T272 48T305 46H336Q342 37 342 35Q342 19 335 5Q330 0 319 0Q316 0 282 1T182 2Q120 2 87 2T51 1Q33 1 33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM645 554Q645 567 643 575T634 597T609 619T560 635Q553 636 480 637Q463 637 445 637T416 636T404 636Q391 635 386 627Q384 621 367 550T332 412T314 344Q314 342 395 342H407H430Q542 342 590 392Q617 419 631 471T645 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(751, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(1140, 0)"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1903, 0)"}},[a("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(2181, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2650, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(3094.7, 0)"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3623.7, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(",\nwhere "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.05ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.726ex",height:"1.643ex",viewBox:"0 -704 763 726"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})])])])])]),t._v(" is the random variable of the observation.")],1),t._v(" "),a("h4",{attrs:{id:"parameters-43"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-43"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-57"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-57"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-space-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-5"}},[t._v("#")]),t._v(" _get_observation_space "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) observation space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(" internally\ncalls "),a("code",[t._v("PartiallyObservable._get_observation_space_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the observation space is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-58"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-58"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The observation space.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-space-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-6"}},[t._v("#")]),t._v(" _get_observation_space_ "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation_space_",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the observation space (finite or infinite set).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(", the difference\nbeing that the result is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-59"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-59"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The observation space.")]),t._v(" "),a("h3",{attrs:{id:"init-memory-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#init-memory-2"}},[t._v("#")]),t._v(" _init_memory "),a("Badge",{attrs:{text:"History",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_init_memory",sig:{params:[{name:"self"},{name:"state",default:"None",annotation:"Optional[D.T_state]"}],return:"D.T_memory[D.T_state]"}}}),t._v(" "),a("p",[t._v("Initialize memory (possibly with a state) according to its specification and return it.")]),t._v(" "),a("p",[t._v("This function is automatically called by "),a("code",[t._v("Initializable._reset()")]),t._v(" to reinitialize the internal memory whenever\nthe domain is used as an environment.")]),t._v(" "),a("h4",{attrs:{id:"parameters-44"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-44"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": An optional state to initialize the memory with (typically the initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-60"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-60"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The new initialized memory.")]),t._v(" "),a("h3",{attrs:{id:"is-action-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-action-4"}},[t._v("#")]),t._v(" _is_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_action",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an event is an action (i.e. a controllable event for the agents).")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\naction space provided by "),a("code",[t._v("Events._get_action_space()")]),t._v(", but it can be overridden for faster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-45"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-45"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("event")]),t._v(": The event to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-61"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-61"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is an action (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-applicable-action-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-4"}},[t._v("#")]),t._v(" _is_applicable_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_applicable_action",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an action is applicable in the given memory (state or history), or in the internal one if\nomitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._is_applicable_action()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_applicable_action_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-46"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-46"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-62"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-62"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the action is applicable (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-applicable-action-from-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-from-2"}},[t._v("#")]),t._v(" _is_applicable_action_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_applicable_action_from",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an action is applicable in the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._is_applicable_action()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the space of\napplicable actions provided by "),a("code",[t._v("Events._get_applicable_actions_from()")]),t._v(", but it can be overridden for faster\nimplementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-47"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-47"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-63"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-63"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the action is applicable (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-enabled-event-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-4"}},[t._v("#")]),t._v(" _is_enabled_event "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_enabled_event",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an uncontrollable event is enabled in the given memory (state or history), or in the\ninternal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._is_enabled_event()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_enabled_event_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead\nof the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-48"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-48"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-64"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-64"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is enabled (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-enabled-event-from-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-from-2"}},[t._v("#")]),t._v(" _is_enabled_event_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_enabled_event_from",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an event is enabled in the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._is_enabled_event()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the space of\nenabled events provided by "),a("code",[t._v("Events._get_enabled_events_from()")]),t._v(", but it can be overridden for faster\nimplementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-49"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-49"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-65"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-65"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is enabled (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-observation-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-observation-4"}},[t._v("#")]),t._v(" _is_observation "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_observation",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that an observation indeed belongs to the domain observation space.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\nobservation space provided by "),a("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(", but it can be overridden for\nfaster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-50"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-50"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-66"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-66"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the observation belongs to the domain observation space (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"reset-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#reset-2"}},[t._v("#")]),t._v(" _reset "),a("Badge",{attrs:{text:"Initializable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_reset",sig:{params:[{name:"self"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Reset the state of the environment and return an initial observation.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Initializable._reset()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Initializable._state_reset()")]),t._v(" (which returns an initial state). The boilerplate code automatically stores\nthe initial state into the "),a("code",[t._v("_memory")]),t._v(" attribute and samples a corresponding observation.")]),t._v(" "),a("h4",{attrs:{id:"returns-67"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-67"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("An initial observation.")]),t._v(" "),a("h3",{attrs:{id:"state-reset"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#state-reset"}},[t._v("#")]),t._v(" _state_reset "),a("Badge",{attrs:{text:"Initializable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_state_reset",sig:{params:[{name:"self"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("Reset the state of the environment and return an initial state.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Initializable._reset()")]),t._v(". It focuses on the state level, as\nopposed to the observation one for the latter.")]),t._v(" "),a("h4",{attrs:{id:"returns-68"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-68"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("An initial state.")]),t._v(" "),a("h3",{attrs:{id:"state-step-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#state-step-2"}},[t._v("#")]),t._v(" _state_step "),a("Badge",{attrs:{text:"Environment",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_state_step",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"TransitionOutcome[D.T_state, D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Compute one step of the transition's dynamics.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Environment._step()")]),t._v(". It focuses on the state level, as opposed\nto the observation one for the latter.")]),t._v(" "),a("h4",{attrs:{id:"parameters-51"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-51"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the current memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-69"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-69"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The transition outcome of this step.")]),t._v(" "),a("h3",{attrs:{id:"step-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#step-4"}},[t._v("#")]),t._v(" _step "),a("Badge",{attrs:{text:"Environment",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_step",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Run one step of the environment's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Environment._step()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Environment._state_step()")]),t._v(" (which returns a transition outcome). The boilerplate code automatically stores\nnext state into the "),a("code",[t._v("_memory")]),t._v(" attribute and samples a corresponding observation.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing environment needs to be wrapped instead of implemented fully in scikit-decide (e.g. compiled\nATARI games), it is recommended to overwrite "),a("code",[t._v("Environment._step()")]),t._v(" to call the external environment and not\nuse the "),a("code",[t._v("Environment._state_step()")]),t._v(" helper function.")])]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Before calling "),a("code",[t._v("Environment._step()")]),t._v(" the first time or when the end of an episode is\nreached, "),a("code",[t._v("Initializable._reset()")]),t._v(" must be called to reset the environment's state.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-52"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-52"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the current memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-70"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-70"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of this step.")]),t._v(" "),a("h2",{attrs:{id:"multiagentrldomain"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#multiagentrldomain"}},[t._v("#")]),t._v(" MultiAgentRLDomain")]),t._v(" "),a("p",[t._v("This is a typical multi-agent Reinforcement Learning domain class.")]),t._v(" "),a("p",[t._v("This helper class can be used as an alternate base class for domains, inheriting the following:")]),t._v(" "),a("ul",[a("li",[t._v("Domain")]),t._v(" "),a("li",[t._v("MultiAgent")]),t._v(" "),a("li",[t._v("Sequential")]),t._v(" "),a("li",[t._v("Environment")]),t._v(" "),a("li",[t._v("Actions")]),t._v(" "),a("li",[t._v("Initializable")]),t._v(" "),a("li",[t._v("Markovian")]),t._v(" "),a("li",[t._v("TransformedObservable")]),t._v(" "),a("li",[t._v("Rewards")])]),t._v(" "),a("p",[t._v("Typical use:")]),t._v(" "),a("div",{staticClass:"language-python extra-class"},[a("pre",{pre:!0,attrs:{class:"language-python"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("class")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("D")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("RLDomain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("It is also possible to refine any alternate base class, like for instance:")]),t._v(" "),a("div",{staticClass:"language-python extra-class"},[a("pre",{pre:!0,attrs:{class:"language-python"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("class")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("D")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("RLDomain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" FullyObservable"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])])]),t._v(" "),a("h3",{attrs:{id:"check-value-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#check-value-5"}},[t._v("#")]),t._v(" check_value "),a("Badge",{attrs:{text:"Rewards",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"check_value",sig:{params:[{name:"self"},{name:"value",annotation:"Value[D.T_value]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that a value is compliant with its reward specification.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("This function returns always True by default because any kind of reward should be accepted at this level.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-53"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-53"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("value")]),t._v(": The value to check.")])]),t._v(" "),a("h4",{attrs:{id:"returns-71"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-71"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the value is compliant (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"get-action-space-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-7"}},[t._v("#")]),t._v(" get_action_space "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_action_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) domain action space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.get_action_space()")]),t._v(" internally calls "),a("code",[t._v("Events._get_action_space_()")]),t._v(" the first time and\nautomatically caches its value to make future calls more efficient (since the action space is assumed to be\nconstant).")]),t._v(" "),a("h4",{attrs:{id:"returns-72"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-72"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The action space.")]),t._v(" "),a("h3",{attrs:{id:"get-applicable-actions-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-5"}},[t._v("#")]),t._v(" get_applicable_actions "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_applicable_actions",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history), or in\nthe internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.get_applicable_actions()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_applicable_actions()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-54"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-54"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-73"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-73"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of applicable actions.")]),t._v(" "),a("h3",{attrs:{id:"get-enabled-events-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-5"}},[t._v("#")]),t._v(" get_enabled_events "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_enabled_events",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"Space[D.T_event]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory), or in the internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.get_enabled_events()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_enabled_events()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead of\nthe memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-55"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-55"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-74"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-74"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of enabled events.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-3"}},[t._v("#")]),t._v(" get_observation "),a("Badge",{attrs:{text:"TransformedObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_observation",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Get the deterministic observation given a state and action.")]),t._v(" "),a("h4",{attrs:{id:"parameters-56"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-56"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-75"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-75"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-distribution-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-distribution-5"}},[t._v("#")]),t._v(" get_observation_distribution "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_observation_distribution",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"Distribution[D.T_agent[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the probability distribution of the observation given a state and action.")]),t._v(" "),a("p",[t._v("In mathematical terms (discrete case), given an action "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.197ex",height:"1.02ex",viewBox:"0 -441 529 451"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})])])])])]),t._v(", this function represents: "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.078ex",height:"2.262ex",viewBox:"0 -750 4012.7 1000"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"50",d:"M287 628Q287 635 230 637Q206 637 199 638T192 648Q192 649 194 659Q200 679 203 681T397 683Q587 682 600 680Q664 669 707 631T751 530Q751 453 685 389Q616 321 507 303Q500 302 402 301H307L277 182Q247 66 247 59Q247 55 248 54T255 50T272 48T305 46H336Q342 37 342 35Q342 19 335 5Q330 0 319 0Q316 0 282 1T182 2Q120 2 87 2T51 1Q33 1 33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM645 554Q645 567 643 575T634 597T609 619T560 635Q553 636 480 637Q463 637 445 637T416 636T404 636Q391 635 386 627Q384 621 367 550T332 412T314 344Q314 342 395 342H407H430Q542 342 590 392Q617 419 631 471T645 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(751, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(1140, 0)"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1903, 0)"}},[a("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(2181, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2650, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(3094.7, 0)"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3623.7, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(",\nwhere "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.05ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.726ex",height:"1.643ex",viewBox:"0 -704 763 726"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})])])])])]),t._v(" is the random variable of the observation.")],1),t._v(" "),a("h4",{attrs:{id:"parameters-57"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-57"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-76"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-76"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-space-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-7"}},[t._v("#")]),t._v(" get_observation_space "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_observation_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) observation space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("PartiallyObservable.get_observation_space()")]),t._v(" internally\ncalls "),a("code",[t._v("PartiallyObservable._get_observation_space_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the observation space is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-77"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-77"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The observation space.")]),t._v(" "),a("h3",{attrs:{id:"is-action-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-action-5"}},[t._v("#")]),t._v(" is_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_action",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an event is an action (i.e. a controllable event for the agents).")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\naction space provided by "),a("code",[t._v("Events.get_action_space()")]),t._v(", but it can be overridden for faster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-58"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-58"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("event")]),t._v(": The event to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-78"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-78"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is an action (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-applicable-action-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-5"}},[t._v("#")]),t._v(" is_applicable_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_applicable_action",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an action is applicable in the given memory (state or history), or in the internal one if\nomitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.is_applicable_action()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_applicable_action()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead\nof the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-59"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-59"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-79"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-79"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the action is applicable (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-enabled-event-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-5"}},[t._v("#")]),t._v(" is_enabled_event "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_enabled_event",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an uncontrollable event is enabled in the given memory (state or history), or in the\ninternal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.is_enabled_event()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_enabled_event()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead of\nthe memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-60"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-60"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-80"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-80"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is enabled (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-observation-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-observation-5"}},[t._v("#")]),t._v(" is_observation "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_observation",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that an observation indeed belongs to the domain observation space.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\nobservation space provided by "),a("code",[t._v("PartiallyObservable.get_observation_space()")]),t._v(", but it can be overridden for\nfaster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-61"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-61"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-81"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-81"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the observation belongs to the domain observation space (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"reset-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#reset-3"}},[t._v("#")]),t._v(" reset "),a("Badge",{attrs:{text:"Initializable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"reset",sig:{params:[{name:"self"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Reset the state of the environment and return an initial observation.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Initializable.reset()")]),t._v(" provides some boilerplate code and internally calls "),a("code",[t._v("Initializable._reset()")]),t._v("\n(which returns an initial state). The boilerplate code automatically stores the initial state into the "),a("code",[t._v("_memory")]),t._v("\nattribute and samples a corresponding observation.")]),t._v(" "),a("h4",{attrs:{id:"returns-82"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-82"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("An initial observation.")]),t._v(" "),a("h3",{attrs:{id:"solve-with-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#solve-with-3"}},[t._v("#")]),t._v(" solve_with "),a("Badge",{attrs:{text:"Domain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"solve_with",sig:{params:[{name:"solver",annotation:"Solver"},{name:"domain_factory",default:"None",annotation:"Optional[Callable[[], Domain]]"},{name:"load_path",default:"None",annotation:"Optional[str]"}],return:"Solver"}}}),t._v(" "),a("p",[t._v("Solve the domain with a new or loaded solver and return it auto-cast to the level of the domain.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Solver.check_domain()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Solver._check_domain_additional()")]),t._v(' (which returns True by default but can be overridden to define\nspecific checks in addition to the "domain requirements"). The boilerplate code automatically checks whether all\ndomain requirements are met.')]),t._v(" "),a("h4",{attrs:{id:"parameters-62"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-62"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("solver")]),t._v(": The solver.")]),t._v(" "),a("li",[a("strong",[t._v("domain_factory")]),t._v(": A callable with no argument returning the domain to solve (factory is the domain class if None).")]),t._v(" "),a("li",[a("strong",[t._v("load_path")]),t._v(": The path to restore the solver state from (if None, the solving process will be launched instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-83"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-83"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The new solver (auto-cast to the level of the domain).")]),t._v(" "),a("h3",{attrs:{id:"step-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#step-5"}},[t._v("#")]),t._v(" step "),a("Badge",{attrs:{text:"Environment",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"step",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Run one step of the environment's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Environment.step()")]),t._v(" provides some boilerplate code and internally calls "),a("code",[t._v("Environment._step()")]),t._v(" (which\nreturns a transition outcome). The boilerplate code automatically stores next state into the "),a("code",[t._v("_memory")]),t._v(" attribute\nand samples a corresponding observation.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing environment needs to be wrapped instead of implemented fully in scikit-decide (e.g. compiled\nATARI games), it is recommended to overwrite "),a("code",[t._v("Environment.step()")]),t._v(" to call the external environment and not\nuse the "),a("code",[t._v("Environment._step()")]),t._v(" helper function.")])]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Before calling "),a("code",[t._v("Environment.step()")]),t._v(" the first time or when the end of an episode is\nreached, "),a("code",[t._v("Initializable.reset()")]),t._v(" must be called to reset the environment's state.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-63"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-63"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the current memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-84"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-84"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of this step.")]),t._v(" "),a("h3",{attrs:{id:"check-value-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#check-value-6"}},[t._v("#")]),t._v(" _check_value "),a("Badge",{attrs:{text:"Rewards",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_check_value",sig:{params:[{name:"self"},{name:"value",annotation:"Value[D.T_value]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that a value is compliant with its reward specification.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("This function returns always True by default because any kind of reward should be accepted at this level.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-64"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-64"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("value")]),t._v(": The value to check.")])]),t._v(" "),a("h4",{attrs:{id:"returns-85"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-85"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the value is compliant (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"get-action-space-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-8"}},[t._v("#")]),t._v(" _get_action_space "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_action_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) domain action space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._get_action_space()")]),t._v(" internally calls "),a("code",[t._v("Events._get_action_space_()")]),t._v(" the first time and\nautomatically caches its value to make future calls more efficient (since the action space is assumed to be\nconstant).")]),t._v(" "),a("h4",{attrs:{id:"returns-86"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-86"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The action space.")]),t._v(" "),a("h3",{attrs:{id:"get-action-space-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-9"}},[t._v("#")]),t._v(" _get_action_space_ "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_action_space_",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the domain action space (finite or infinite set).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._get_action_space()")]),t._v(", the difference being that the\nresult is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-87"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-87"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The action space.")]),t._v(" "),a("h3",{attrs:{id:"get-applicable-actions-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-6"}},[t._v("#")]),t._v(" _get_applicable_actions "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_applicable_actions",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history), or in\nthe internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._get_applicable_actions()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_applicable_actions_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-65"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-65"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-88"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-88"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of applicable actions.")]),t._v(" "),a("h3",{attrs:{id:"get-applicable-actions-from-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-from-3"}},[t._v("#")]),t._v(" _get_applicable_actions_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_applicable_actions_from",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._get_applicable_actions()")]),t._v(", the difference being that\nthe memory parameter is mandatory here.")]),t._v(" "),a("h4",{attrs:{id:"parameters-66"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-66"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-89"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-89"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of applicable actions.")]),t._v(" "),a("h3",{attrs:{id:"get-enabled-events-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-6"}},[t._v("#")]),t._v(" _get_enabled_events "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_enabled_events",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"Space[D.T_event]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory), or in the internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._get_enabled_events()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_enabled_events_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-67"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-67"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-90"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-90"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of enabled events.")]),t._v(" "),a("h3",{attrs:{id:"get-enabled-events-from-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-from-3"}},[t._v("#")]),t._v(" _get_enabled_events_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_enabled_events_from",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"Space[D.T_event]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._get_enabled_events()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("h4",{attrs:{id:"parameters-68"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-68"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-91"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-91"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of enabled events.")]),t._v(" "),a("h3",{attrs:{id:"get-memory-maxlen-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-memory-maxlen-4"}},[t._v("#")]),t._v(" _get_memory_maxlen "),a("Badge",{attrs:{text:"History",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_memory_maxlen",sig:{params:[{name:"self"}],return:"int"}}}),t._v(" "),a("p",[t._v("Get the (cached) memory max length.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("FiniteHistory._get_memory_maxlen()")]),t._v(" internally calls "),a("code",[t._v("FiniteHistory._get_memory_maxlen_()")]),t._v(" the first\ntime and automatically caches its value to make future calls more efficient (since the memory max length is\nassumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-92"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-92"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The memory max length.")]),t._v(" "),a("h3",{attrs:{id:"get-memory-maxlen-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-memory-maxlen-5"}},[t._v("#")]),t._v(" _get_memory_maxlen_ "),a("Badge",{attrs:{text:"FiniteHistory",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_memory_maxlen_",sig:{params:[{name:"self"}],return:"int"}}}),t._v(" "),a("p",[t._v("Get the memory max length.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("FiniteHistory._get_memory_maxlen()")]),t._v(", the difference being that\nthe result is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-93"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-93"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The memory max length.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-4"}},[t._v("#")]),t._v(" _get_observation "),a("Badge",{attrs:{text:"TransformedObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Get the deterministic observation given a state and action.")]),t._v(" "),a("h4",{attrs:{id:"parameters-69"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-69"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-94"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-94"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-distribution-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-distribution-6"}},[t._v("#")]),t._v(" _get_observation_distribution "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation_distribution",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"Distribution[D.T_agent[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the probability distribution of the observation given a state and action.")]),t._v(" "),a("p",[t._v("In mathematical terms (discrete case), given an action "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.197ex",height:"1.02ex",viewBox:"0 -441 529 451"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})])])])])]),t._v(", this function represents: "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.078ex",height:"2.262ex",viewBox:"0 -750 4012.7 1000"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"50",d:"M287 628Q287 635 230 637Q206 637 199 638T192 648Q192 649 194 659Q200 679 203 681T397 683Q587 682 600 680Q664 669 707 631T751 530Q751 453 685 389Q616 321 507 303Q500 302 402 301H307L277 182Q247 66 247 59Q247 55 248 54T255 50T272 48T305 46H336Q342 37 342 35Q342 19 335 5Q330 0 319 0Q316 0 282 1T182 2Q120 2 87 2T51 1Q33 1 33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM645 554Q645 567 643 575T634 597T609 619T560 635Q553 636 480 637Q463 637 445 637T416 636T404 636Q391 635 386 627Q384 621 367 550T332 412T314 344Q314 342 395 342H407H430Q542 342 590 392Q617 419 631 471T645 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(751, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(1140, 0)"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1903, 0)"}},[a("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(2181, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2650, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(3094.7, 0)"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3623.7, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(",\nwhere "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.05ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.726ex",height:"1.643ex",viewBox:"0 -704 763 726"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})])])])])]),t._v(" is the random variable of the observation.")],1),t._v(" "),a("h4",{attrs:{id:"parameters-70"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-70"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-95"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-95"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-space-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-8"}},[t._v("#")]),t._v(" _get_observation_space "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) observation space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(" internally\ncalls "),a("code",[t._v("PartiallyObservable._get_observation_space_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the observation space is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-96"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-96"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The observation space.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-space-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-9"}},[t._v("#")]),t._v(" _get_observation_space_ "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation_space_",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the observation space (finite or infinite set).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(", the difference\nbeing that the result is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-97"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-97"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The observation space.")]),t._v(" "),a("h3",{attrs:{id:"init-memory-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#init-memory-3"}},[t._v("#")]),t._v(" _init_memory "),a("Badge",{attrs:{text:"History",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_init_memory",sig:{params:[{name:"self"},{name:"state",default:"None",annotation:"Optional[D.T_state]"}],return:"D.T_memory[D.T_state]"}}}),t._v(" "),a("p",[t._v("Initialize memory (possibly with a state) according to its specification and return it.")]),t._v(" "),a("p",[t._v("This function is automatically called by "),a("code",[t._v("Initializable._reset()")]),t._v(" to reinitialize the internal memory whenever\nthe domain is used as an environment.")]),t._v(" "),a("h4",{attrs:{id:"parameters-71"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-71"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": An optional state to initialize the memory with (typically the initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-98"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-98"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The new initialized memory.")]),t._v(" "),a("h3",{attrs:{id:"is-action-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-action-6"}},[t._v("#")]),t._v(" _is_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_action",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an event is an action (i.e. a controllable event for the agents).")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\naction space provided by "),a("code",[t._v("Events._get_action_space()")]),t._v(", but it can be overridden for faster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-72"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-72"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("event")]),t._v(": The event to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-99"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-99"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is an action (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-applicable-action-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-6"}},[t._v("#")]),t._v(" _is_applicable_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_applicable_action",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an action is applicable in the given memory (state or history), or in the internal one if\nomitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._is_applicable_action()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_applicable_action_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-73"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-73"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-100"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-100"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the action is applicable (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-applicable-action-from-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-from-3"}},[t._v("#")]),t._v(" _is_applicable_action_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_applicable_action_from",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an action is applicable in the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._is_applicable_action()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the space of\napplicable actions provided by "),a("code",[t._v("Events._get_applicable_actions_from()")]),t._v(", but it can be overridden for faster\nimplementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-74"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-74"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-101"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-101"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the action is applicable (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-enabled-event-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-6"}},[t._v("#")]),t._v(" _is_enabled_event "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_enabled_event",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an uncontrollable event is enabled in the given memory (state or history), or in the\ninternal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._is_enabled_event()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_enabled_event_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead\nof the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-75"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-75"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-102"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-102"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is enabled (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-enabled-event-from-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-from-3"}},[t._v("#")]),t._v(" _is_enabled_event_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_enabled_event_from",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an event is enabled in the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._is_enabled_event()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the space of\nenabled events provided by "),a("code",[t._v("Events._get_enabled_events_from()")]),t._v(", but it can be overridden for faster\nimplementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-76"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-76"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-103"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-103"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is enabled (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-observation-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-observation-6"}},[t._v("#")]),t._v(" _is_observation "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_observation",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that an observation indeed belongs to the domain observation space.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\nobservation space provided by "),a("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(", but it can be overridden for\nfaster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-77"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-77"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-104"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-104"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the observation belongs to the domain observation space (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"reset-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#reset-4"}},[t._v("#")]),t._v(" _reset "),a("Badge",{attrs:{text:"Initializable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_reset",sig:{params:[{name:"self"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Reset the state of the environment and return an initial observation.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Initializable._reset()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Initializable._state_reset()")]),t._v(" (which returns an initial state). The boilerplate code automatically stores\nthe initial state into the "),a("code",[t._v("_memory")]),t._v(" attribute and samples a corresponding observation.")]),t._v(" "),a("h4",{attrs:{id:"returns-105"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-105"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("An initial observation.")]),t._v(" "),a("h3",{attrs:{id:"state-reset-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#state-reset-2"}},[t._v("#")]),t._v(" _state_reset "),a("Badge",{attrs:{text:"Initializable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_state_reset",sig:{params:[{name:"self"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("Reset the state of the environment and return an initial state.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Initializable._reset()")]),t._v(". It focuses on the state level, as\nopposed to the observation one for the latter.")]),t._v(" "),a("h4",{attrs:{id:"returns-106"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-106"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("An initial state.")]),t._v(" "),a("h3",{attrs:{id:"state-step-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#state-step-3"}},[t._v("#")]),t._v(" _state_step "),a("Badge",{attrs:{text:"Environment",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_state_step",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"TransitionOutcome[D.T_state, D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Compute one step of the transition's dynamics.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Environment._step()")]),t._v(". It focuses on the state level, as opposed\nto the observation one for the latter.")]),t._v(" "),a("h4",{attrs:{id:"parameters-78"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-78"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the current memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-107"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-107"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The transition outcome of this step.")]),t._v(" "),a("h3",{attrs:{id:"step-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#step-6"}},[t._v("#")]),t._v(" _step "),a("Badge",{attrs:{text:"Environment",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_step",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Run one step of the environment's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Environment._step()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Environment._state_step()")]),t._v(" (which returns a transition outcome). The boilerplate code automatically stores\nnext state into the "),a("code",[t._v("_memory")]),t._v(" attribute and samples a corresponding observation.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing environment needs to be wrapped instead of implemented fully in scikit-decide (e.g. compiled\nATARI games), it is recommended to overwrite "),a("code",[t._v("Environment._step()")]),t._v(" to call the external environment and not\nuse the "),a("code",[t._v("Environment._state_step()")]),t._v(" helper function.")])]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Before calling "),a("code",[t._v("Environment._step()")]),t._v(" the first time or when the end of an episode is\nreached, "),a("code",[t._v("Initializable._reset()")]),t._v(" must be called to reset the environment's state.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-79"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-79"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the current memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-108"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-108"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of this step.")]),t._v(" "),a("h2",{attrs:{id:"statelesssimulatordomain"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#statelesssimulatordomain"}},[t._v("#")]),t._v(" StatelessSimulatorDomain")]),t._v(" "),a("p",[t._v("This is a typical stateless simulator domain class.")]),t._v(" "),a("p",[t._v("This helper class can be used as an alternate base class for domains, inheriting the following:")]),t._v(" "),a("ul",[a("li",[t._v("Domain")]),t._v(" "),a("li",[t._v("SingleAgent")]),t._v(" "),a("li",[t._v("Sequential")]),t._v(" "),a("li",[t._v("Simulation")]),t._v(" "),a("li",[t._v("Actions")]),t._v(" "),a("li",[t._v("Markovian")]),t._v(" "),a("li",[t._v("TransformedObservable")]),t._v(" "),a("li",[t._v("Rewards")])]),t._v(" "),a("p",[t._v("Typical use:")]),t._v(" "),a("div",{staticClass:"language-python extra-class"},[a("pre",{pre:!0,attrs:{class:"language-python"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("class")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("D")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("StatelessSimulatorDomain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("It is also possible to refine any alternate base class, like for instance:")]),t._v(" "),a("div",{staticClass:"language-python extra-class"},[a("pre",{pre:!0,attrs:{class:"language-python"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("class")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("D")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("RLDomain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" FullyObservable"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])])]),t._v(" "),a("h3",{attrs:{id:"check-value-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#check-value-7"}},[t._v("#")]),t._v(" check_value "),a("Badge",{attrs:{text:"Rewards",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"check_value",sig:{params:[{name:"self"},{name:"value",annotation:"Value[D.T_value]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that a value is compliant with its reward specification.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("This function returns always True by default because any kind of reward should be accepted at this level.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-80"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-80"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("value")]),t._v(": The value to check.")])]),t._v(" "),a("h4",{attrs:{id:"returns-109"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-109"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the value is compliant (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"get-action-space-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-10"}},[t._v("#")]),t._v(" get_action_space "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_action_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) domain action space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.get_action_space()")]),t._v(" internally calls "),a("code",[t._v("Events._get_action_space_()")]),t._v(" the first time and\nautomatically caches its value to make future calls more efficient (since the action space is assumed to be\nconstant).")]),t._v(" "),a("h4",{attrs:{id:"returns-110"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-110"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The action space.")]),t._v(" "),a("h3",{attrs:{id:"get-applicable-actions-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-7"}},[t._v("#")]),t._v(" get_applicable_actions "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_applicable_actions",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history), or in\nthe internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.get_applicable_actions()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_applicable_actions()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-81"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-81"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-111"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-111"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of applicable actions.")]),t._v(" "),a("h3",{attrs:{id:"get-enabled-events-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-7"}},[t._v("#")]),t._v(" get_enabled_events "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_enabled_events",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"Space[D.T_event]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory), or in the internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.get_enabled_events()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_enabled_events()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead of\nthe memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-82"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-82"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-112"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-112"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of enabled events.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-5"}},[t._v("#")]),t._v(" get_observation "),a("Badge",{attrs:{text:"TransformedObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_observation",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Get the deterministic observation given a state and action.")]),t._v(" "),a("h4",{attrs:{id:"parameters-83"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-83"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-113"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-113"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-distribution-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-distribution-7"}},[t._v("#")]),t._v(" get_observation_distribution "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_observation_distribution",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"Distribution[D.T_agent[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the probability distribution of the observation given a state and action.")]),t._v(" "),a("p",[t._v("In mathematical terms (discrete case), given an action "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.197ex",height:"1.02ex",viewBox:"0 -441 529 451"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})])])])])]),t._v(", this function represents: "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.078ex",height:"2.262ex",viewBox:"0 -750 4012.7 1000"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"50",d:"M287 628Q287 635 230 637Q206 637 199 638T192 648Q192 649 194 659Q200 679 203 681T397 683Q587 682 600 680Q664 669 707 631T751 530Q751 453 685 389Q616 321 507 303Q500 302 402 301H307L277 182Q247 66 247 59Q247 55 248 54T255 50T272 48T305 46H336Q342 37 342 35Q342 19 335 5Q330 0 319 0Q316 0 282 1T182 2Q120 2 87 2T51 1Q33 1 33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM645 554Q645 567 643 575T634 597T609 619T560 635Q553 636 480 637Q463 637 445 637T416 636T404 636Q391 635 386 627Q384 621 367 550T332 412T314 344Q314 342 395 342H407H430Q542 342 590 392Q617 419 631 471T645 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(751, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(1140, 0)"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1903, 0)"}},[a("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(2181, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2650, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(3094.7, 0)"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3623.7, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(",\nwhere "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.05ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.726ex",height:"1.643ex",viewBox:"0 -704 763 726"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})])])])])]),t._v(" is the random variable of the observation.")],1),t._v(" "),a("h4",{attrs:{id:"parameters-84"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-84"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-114"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-114"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-space-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-10"}},[t._v("#")]),t._v(" get_observation_space "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_observation_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) observation space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("PartiallyObservable.get_observation_space()")]),t._v(" internally\ncalls "),a("code",[t._v("PartiallyObservable._get_observation_space_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the observation space is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-115"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-115"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The observation space.")]),t._v(" "),a("h3",{attrs:{id:"is-action-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-action-7"}},[t._v("#")]),t._v(" is_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_action",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an event is an action (i.e. a controllable event for the agents).")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\naction space provided by "),a("code",[t._v("Events.get_action_space()")]),t._v(", but it can be overridden for faster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-85"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-85"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("event")]),t._v(": The event to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-116"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-116"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is an action (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-applicable-action-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-7"}},[t._v("#")]),t._v(" is_applicable_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_applicable_action",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an action is applicable in the given memory (state or history), or in the internal one if\nomitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.is_applicable_action()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_applicable_action()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead\nof the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-86"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-86"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-117"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-117"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the action is applicable (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-enabled-event-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-7"}},[t._v("#")]),t._v(" is_enabled_event "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_enabled_event",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an uncontrollable event is enabled in the given memory (state or history), or in the\ninternal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.is_enabled_event()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_enabled_event()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead of\nthe memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-87"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-87"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-118"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-118"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is enabled (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-observation-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-observation-7"}},[t._v("#")]),t._v(" is_observation "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_observation",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that an observation indeed belongs to the domain observation space.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\nobservation space provided by "),a("code",[t._v("PartiallyObservable.get_observation_space()")]),t._v(", but it can be overridden for\nfaster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-88"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-88"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-119"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-119"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the observation belongs to the domain observation space (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"sample"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample"}},[t._v("#")]),t._v(" sample "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"sample",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Sample one transition of the simulator's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Simulation.sample()")]),t._v(" provides some boilerplate code and internally calls "),a("code",[t._v("Simulation._sample()")]),t._v("\n(which returns a transition outcome). The boilerplate code automatically samples an observation corresponding to\nthe sampled next state.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing simulator needs to be wrapped instead of implemented fully in scikit-decide (e.g. a\nsimulator), it is recommended to overwrite "),a("code",[t._v("Simulation.sample()")]),t._v(" to call the external simulator and not use\nthe "),a("code",[t._v("Simulation._sample()")]),t._v(" helper function.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-89"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-89"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-120"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-120"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of the sampled transition.")]),t._v(" "),a("h3",{attrs:{id:"set-memory"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#set-memory"}},[t._v("#")]),t._v(" set_memory "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"set_memory",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"None"}}}),t._v(" "),a("p",[t._v("Set internal memory attribute "),a("code",[t._v("_memory")]),t._v(" to given one.")]),t._v(" "),a("p",[t._v('This can be useful to set a specific "starting point" before doing a rollout with successive '),a("code",[t._v("Environment.step()")]),t._v("\ncalls.")]),t._v(" "),a("h4",{attrs:{id:"parameters-90"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-90"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to set internally.")])]),t._v(" "),a("h4",{attrs:{id:"example"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#example"}},[t._v("#")]),t._v(" Example")]),t._v(" "),a("div",{staticClass:"language-python extra-class"},[a("pre",{pre:!0,attrs:{class:"language-python"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Set simulation_domain memory to my_state (assuming Markovian domain)")]),t._v("\nsimulation_domain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("set_memory"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("my_state"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Start a 100-steps rollout from here (applying my_action at every step)")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("for")]),t._v(" _ "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("in")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("range")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n simulation_domain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("step"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("my_action"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("h3",{attrs:{id:"solve-with-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#solve-with-4"}},[t._v("#")]),t._v(" solve_with "),a("Badge",{attrs:{text:"Domain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"solve_with",sig:{params:[{name:"solver",annotation:"Solver"},{name:"domain_factory",default:"None",annotation:"Optional[Callable[[], Domain]]"},{name:"load_path",default:"None",annotation:"Optional[str]"}],return:"Solver"}}}),t._v(" "),a("p",[t._v("Solve the domain with a new or loaded solver and return it auto-cast to the level of the domain.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Solver.check_domain()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Solver._check_domain_additional()")]),t._v(' (which returns True by default but can be overridden to define\nspecific checks in addition to the "domain requirements"). The boilerplate code automatically checks whether all\ndomain requirements are met.')]),t._v(" "),a("h4",{attrs:{id:"parameters-91"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-91"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("solver")]),t._v(": The solver.")]),t._v(" "),a("li",[a("strong",[t._v("domain_factory")]),t._v(": A callable with no argument returning the domain to solve (factory is the domain class if None).")]),t._v(" "),a("li",[a("strong",[t._v("load_path")]),t._v(": The path to restore the solver state from (if None, the solving process will be launched instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-121"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-121"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The new solver (auto-cast to the level of the domain).")]),t._v(" "),a("h3",{attrs:{id:"step-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#step-7"}},[t._v("#")]),t._v(" step "),a("Badge",{attrs:{text:"Environment",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"step",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Run one step of the environment's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Environment.step()")]),t._v(" provides some boilerplate code and internally calls "),a("code",[t._v("Environment._step()")]),t._v(" (which\nreturns a transition outcome). The boilerplate code automatically stores next state into the "),a("code",[t._v("_memory")]),t._v(" attribute\nand samples a corresponding observation.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing environment needs to be wrapped instead of implemented fully in scikit-decide (e.g. compiled\nATARI games), it is recommended to overwrite "),a("code",[t._v("Environment.step()")]),t._v(" to call the external environment and not\nuse the "),a("code",[t._v("Environment._step()")]),t._v(" helper function.")])]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Before calling "),a("code",[t._v("Environment.step()")]),t._v(" the first time or when the end of an episode is\nreached, "),a("code",[t._v("Initializable.reset()")]),t._v(" must be called to reset the environment's state.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-92"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-92"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the current memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-122"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-122"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of this step.")]),t._v(" "),a("h3",{attrs:{id:"check-value-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#check-value-8"}},[t._v("#")]),t._v(" _check_value "),a("Badge",{attrs:{text:"Rewards",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_check_value",sig:{params:[{name:"self"},{name:"value",annotation:"Value[D.T_value]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that a value is compliant with its reward specification.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("This function returns always True by default because any kind of reward should be accepted at this level.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-93"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-93"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("value")]),t._v(": The value to check.")])]),t._v(" "),a("h4",{attrs:{id:"returns-123"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-123"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the value is compliant (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"get-action-space-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-11"}},[t._v("#")]),t._v(" _get_action_space "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_action_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) domain action space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._get_action_space()")]),t._v(" internally calls "),a("code",[t._v("Events._get_action_space_()")]),t._v(" the first time and\nautomatically caches its value to make future calls more efficient (since the action space is assumed to be\nconstant).")]),t._v(" "),a("h4",{attrs:{id:"returns-124"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-124"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The action space.")]),t._v(" "),a("h3",{attrs:{id:"get-action-space-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-12"}},[t._v("#")]),t._v(" _get_action_space_ "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_action_space_",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the domain action space (finite or infinite set).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._get_action_space()")]),t._v(", the difference being that the\nresult is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-125"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-125"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The action space.")]),t._v(" "),a("h3",{attrs:{id:"get-applicable-actions-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-8"}},[t._v("#")]),t._v(" _get_applicable_actions "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_applicable_actions",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history), or in\nthe internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._get_applicable_actions()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_applicable_actions_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-94"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-94"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-126"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-126"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of applicable actions.")]),t._v(" "),a("h3",{attrs:{id:"get-applicable-actions-from-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-from-4"}},[t._v("#")]),t._v(" _get_applicable_actions_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_applicable_actions_from",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._get_applicable_actions()")]),t._v(", the difference being that\nthe memory parameter is mandatory here.")]),t._v(" "),a("h4",{attrs:{id:"parameters-95"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-95"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-127"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-127"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of applicable actions.")]),t._v(" "),a("h3",{attrs:{id:"get-enabled-events-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-8"}},[t._v("#")]),t._v(" _get_enabled_events "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_enabled_events",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"Space[D.T_event]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory), or in the internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._get_enabled_events()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_enabled_events_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-96"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-96"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-128"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-128"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of enabled events.")]),t._v(" "),a("h3",{attrs:{id:"get-enabled-events-from-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-from-4"}},[t._v("#")]),t._v(" _get_enabled_events_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_enabled_events_from",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"Space[D.T_event]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._get_enabled_events()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("h4",{attrs:{id:"parameters-97"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-97"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-129"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-129"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of enabled events.")]),t._v(" "),a("h3",{attrs:{id:"get-memory-maxlen-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-memory-maxlen-6"}},[t._v("#")]),t._v(" _get_memory_maxlen "),a("Badge",{attrs:{text:"History",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_memory_maxlen",sig:{params:[{name:"self"}],return:"int"}}}),t._v(" "),a("p",[t._v("Get the (cached) memory max length.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("FiniteHistory._get_memory_maxlen()")]),t._v(" internally calls "),a("code",[t._v("FiniteHistory._get_memory_maxlen_()")]),t._v(" the first\ntime and automatically caches its value to make future calls more efficient (since the memory max length is\nassumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-130"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-130"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The memory max length.")]),t._v(" "),a("h3",{attrs:{id:"get-memory-maxlen-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-memory-maxlen-7"}},[t._v("#")]),t._v(" _get_memory_maxlen_ "),a("Badge",{attrs:{text:"FiniteHistory",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_memory_maxlen_",sig:{params:[{name:"self"}],return:"int"}}}),t._v(" "),a("p",[t._v("Get the memory max length.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("FiniteHistory._get_memory_maxlen()")]),t._v(", the difference being that\nthe result is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-131"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-131"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The memory max length.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-6"}},[t._v("#")]),t._v(" _get_observation "),a("Badge",{attrs:{text:"TransformedObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Get the deterministic observation given a state and action.")]),t._v(" "),a("h4",{attrs:{id:"parameters-98"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-98"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-132"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-132"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-distribution-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-distribution-8"}},[t._v("#")]),t._v(" _get_observation_distribution "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation_distribution",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"Distribution[D.T_agent[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the probability distribution of the observation given a state and action.")]),t._v(" "),a("p",[t._v("In mathematical terms (discrete case), given an action "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.197ex",height:"1.02ex",viewBox:"0 -441 529 451"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})])])])])]),t._v(", this function represents: "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.078ex",height:"2.262ex",viewBox:"0 -750 4012.7 1000"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"50",d:"M287 628Q287 635 230 637Q206 637 199 638T192 648Q192 649 194 659Q200 679 203 681T397 683Q587 682 600 680Q664 669 707 631T751 530Q751 453 685 389Q616 321 507 303Q500 302 402 301H307L277 182Q247 66 247 59Q247 55 248 54T255 50T272 48T305 46H336Q342 37 342 35Q342 19 335 5Q330 0 319 0Q316 0 282 1T182 2Q120 2 87 2T51 1Q33 1 33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM645 554Q645 567 643 575T634 597T609 619T560 635Q553 636 480 637Q463 637 445 637T416 636T404 636Q391 635 386 627Q384 621 367 550T332 412T314 344Q314 342 395 342H407H430Q542 342 590 392Q617 419 631 471T645 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(751, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(1140, 0)"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1903, 0)"}},[a("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(2181, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2650, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(3094.7, 0)"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3623.7, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(",\nwhere "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.05ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.726ex",height:"1.643ex",viewBox:"0 -704 763 726"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})])])])])]),t._v(" is the random variable of the observation.")],1),t._v(" "),a("h4",{attrs:{id:"parameters-99"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-99"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-133"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-133"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-space-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-11"}},[t._v("#")]),t._v(" _get_observation_space "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) observation space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(" internally\ncalls "),a("code",[t._v("PartiallyObservable._get_observation_space_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the observation space is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-134"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-134"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The observation space.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-space-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-12"}},[t._v("#")]),t._v(" _get_observation_space_ "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation_space_",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the observation space (finite or infinite set).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(", the difference\nbeing that the result is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-135"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-135"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The observation space.")]),t._v(" "),a("h3",{attrs:{id:"init-memory-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#init-memory-4"}},[t._v("#")]),t._v(" _init_memory "),a("Badge",{attrs:{text:"History",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_init_memory",sig:{params:[{name:"self"},{name:"state",default:"None",annotation:"Optional[D.T_state]"}],return:"D.T_memory[D.T_state]"}}}),t._v(" "),a("p",[t._v("Initialize memory (possibly with a state) according to its specification and return it.")]),t._v(" "),a("p",[t._v("This function is automatically called by "),a("code",[t._v("Initializable._reset()")]),t._v(" to reinitialize the internal memory whenever\nthe domain is used as an environment.")]),t._v(" "),a("h4",{attrs:{id:"parameters-100"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-100"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": An optional state to initialize the memory with (typically the initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-136"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-136"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The new initialized memory.")]),t._v(" "),a("h3",{attrs:{id:"is-action-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-action-8"}},[t._v("#")]),t._v(" _is_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_action",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an event is an action (i.e. a controllable event for the agents).")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\naction space provided by "),a("code",[t._v("Events._get_action_space()")]),t._v(", but it can be overridden for faster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-101"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-101"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("event")]),t._v(": The event to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-137"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-137"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is an action (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-applicable-action-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-8"}},[t._v("#")]),t._v(" _is_applicable_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_applicable_action",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an action is applicable in the given memory (state or history), or in the internal one if\nomitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._is_applicable_action()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_applicable_action_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-102"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-102"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-138"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-138"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the action is applicable (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-applicable-action-from-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-from-4"}},[t._v("#")]),t._v(" _is_applicable_action_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_applicable_action_from",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an action is applicable in the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._is_applicable_action()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the space of\napplicable actions provided by "),a("code",[t._v("Events._get_applicable_actions_from()")]),t._v(", but it can be overridden for faster\nimplementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-103"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-103"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-139"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-139"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the action is applicable (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-enabled-event-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-8"}},[t._v("#")]),t._v(" _is_enabled_event "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_enabled_event",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an uncontrollable event is enabled in the given memory (state or history), or in the\ninternal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._is_enabled_event()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_enabled_event_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead\nof the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-104"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-104"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-140"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-140"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is enabled (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-enabled-event-from-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-from-4"}},[t._v("#")]),t._v(" _is_enabled_event_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_enabled_event_from",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an event is enabled in the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._is_enabled_event()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the space of\nenabled events provided by "),a("code",[t._v("Events._get_enabled_events_from()")]),t._v(", but it can be overridden for faster\nimplementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-105"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-105"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-141"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-141"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is enabled (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-observation-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-observation-8"}},[t._v("#")]),t._v(" _is_observation "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_observation",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that an observation indeed belongs to the domain observation space.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\nobservation space provided by "),a("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(", but it can be overridden for\nfaster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-106"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-106"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-142"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-142"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the observation belongs to the domain observation space (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"sample-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample-2"}},[t._v("#")]),t._v(" _sample "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_sample",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Sample one transition of the simulator's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Simulation._sample()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Simulation._state_sample()")]),t._v(" (which returns a transition outcome). The boilerplate code automatically\nsamples an observation corresponding to the sampled next state.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing simulator needs to be wrapped instead of implemented fully in scikit-decide (e.g. a\nsimulator), it is recommended to overwrite "),a("code",[t._v("Simulation._sample()")]),t._v(" to call the external simulator and not use\nthe "),a("code",[t._v("Simulation._state_sample()")]),t._v(" helper function.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-107"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-107"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-143"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-143"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of the sampled transition.")]),t._v(" "),a("h3",{attrs:{id:"set-memory-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#set-memory-2"}},[t._v("#")]),t._v(" _set_memory "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_set_memory",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"None"}}}),t._v(" "),a("p",[t._v("Set internal memory attribute "),a("code",[t._v("_memory")]),t._v(" to given one.")]),t._v(" "),a("p",[t._v('This can be useful to set a specific "starting point" before doing a rollout with\nsuccessive '),a("code",[t._v("Environment._step()")]),t._v(" calls.")]),t._v(" "),a("h4",{attrs:{id:"parameters-108"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-108"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to set internally.")])]),t._v(" "),a("h4",{attrs:{id:"example-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#example-2"}},[t._v("#")]),t._v(" Example")]),t._v(" "),a("div",{staticClass:"language-python extra-class"},[a("pre",{pre:!0,attrs:{class:"language-python"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Set simulation_domain memory to my_state (assuming Markovian domain)")]),t._v("\nsimulation_domain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("_set_memory"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("my_state"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Start a 100-steps rollout from here (applying my_action at every step)")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("for")]),t._v(" _ "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("in")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("range")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n simulation_domain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("_step"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("my_action"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("h3",{attrs:{id:"state-sample"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#state-sample"}},[t._v("#")]),t._v(" _state_sample "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_state_sample",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"TransitionOutcome[D.T_state, D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Compute one sample of the transition's dynamics.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Simulation._sample()")]),t._v(". It focuses on the state level, as\nopposed to the observation one for the latter.")]),t._v(" "),a("h4",{attrs:{id:"parameters-109"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-109"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-144"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-144"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The transition outcome of the sampled transition.")]),t._v(" "),a("h3",{attrs:{id:"state-step-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#state-step-4"}},[t._v("#")]),t._v(" _state_step "),a("Badge",{attrs:{text:"Environment",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_state_step",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"TransitionOutcome[D.T_state, D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Compute one step of the transition's dynamics.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Environment._step()")]),t._v(". It focuses on the state level, as opposed\nto the observation one for the latter.")]),t._v(" "),a("h4",{attrs:{id:"parameters-110"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-110"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the current memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-145"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-145"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The transition outcome of this step.")]),t._v(" "),a("h3",{attrs:{id:"step-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#step-8"}},[t._v("#")]),t._v(" _step "),a("Badge",{attrs:{text:"Environment",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_step",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Run one step of the environment's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Environment._step()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Environment._state_step()")]),t._v(" (which returns a transition outcome). The boilerplate code automatically stores\nnext state into the "),a("code",[t._v("_memory")]),t._v(" attribute and samples a corresponding observation.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing environment needs to be wrapped instead of implemented fully in scikit-decide (e.g. compiled\nATARI games), it is recommended to overwrite "),a("code",[t._v("Environment._step()")]),t._v(" to call the external environment and not\nuse the "),a("code",[t._v("Environment._state_step()")]),t._v(" helper function.")])]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Before calling "),a("code",[t._v("Environment._step()")]),t._v(" the first time or when the end of an episode is\nreached, "),a("code",[t._v("Initializable._reset()")]),t._v(" must be called to reset the environment's state.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-111"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-111"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the current memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-146"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-146"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of this step.")]),t._v(" "),a("h2",{attrs:{id:"mdpdomain"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#mdpdomain"}},[t._v("#")]),t._v(" MDPDomain")]),t._v(" "),a("p",[t._v("This is a typical Markov Decision Process domain class.")]),t._v(" "),a("p",[t._v("This helper class can be used as an alternate base class for domains, inheriting the following:")]),t._v(" "),a("ul",[a("li",[t._v("Domain")]),t._v(" "),a("li",[t._v("SingleAgent")]),t._v(" "),a("li",[t._v("Sequential")]),t._v(" "),a("li",[t._v("EnumerableTransitions")]),t._v(" "),a("li",[t._v("Actions")]),t._v(" "),a("li",[t._v("DeterministicInitialized")]),t._v(" "),a("li",[t._v("Markovian")]),t._v(" "),a("li",[t._v("FullyObservable")]),t._v(" "),a("li",[t._v("Rewards")])]),t._v(" "),a("p",[t._v("Typical use:")]),t._v(" "),a("div",{staticClass:"language-python extra-class"},[a("pre",{pre:!0,attrs:{class:"language-python"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("class")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("D")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("MDPDomain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("It is also possible to refine any alternate base class, like for instance:")]),t._v(" "),a("div",{staticClass:"language-python extra-class"},[a("pre",{pre:!0,attrs:{class:"language-python"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("class")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("D")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("RLDomain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" FullyObservable"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])])]),t._v(" "),a("h3",{attrs:{id:"check-value-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#check-value-9"}},[t._v("#")]),t._v(" check_value "),a("Badge",{attrs:{text:"Rewards",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"check_value",sig:{params:[{name:"self"},{name:"value",annotation:"Value[D.T_value]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that a value is compliant with its reward specification.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("This function returns always True by default because any kind of reward should be accepted at this level.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-112"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-112"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("value")]),t._v(": The value to check.")])]),t._v(" "),a("h4",{attrs:{id:"returns-147"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-147"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the value is compliant (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"get-action-space-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-13"}},[t._v("#")]),t._v(" get_action_space "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_action_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) domain action space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.get_action_space()")]),t._v(" internally calls "),a("code",[t._v("Events._get_action_space_()")]),t._v(" the first time and\nautomatically caches its value to make future calls more efficient (since the action space is assumed to be\nconstant).")]),t._v(" "),a("h4",{attrs:{id:"returns-148"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-148"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The action space.")]),t._v(" "),a("h3",{attrs:{id:"get-applicable-actions-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-9"}},[t._v("#")]),t._v(" get_applicable_actions "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_applicable_actions",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history), or in\nthe internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.get_applicable_actions()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_applicable_actions()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-113"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-113"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-149"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-149"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of applicable actions.")]),t._v(" "),a("h3",{attrs:{id:"get-enabled-events-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-9"}},[t._v("#")]),t._v(" get_enabled_events "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_enabled_events",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"Space[D.T_event]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory), or in the internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.get_enabled_events()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_enabled_events()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead of\nthe memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-114"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-114"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-150"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-150"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of enabled events.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state"}},[t._v("#")]),t._v(" get_initial_state "),a("Badge",{attrs:{text:"DeterministicInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_initial_state",sig:{params:[{name:"self"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("Get the (cached) initial state.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("DeterministicInitialized.get_initial_state()")]),t._v(" internally\ncalls "),a("code",[t._v("DeterministicInitialized._get_initial_state_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the initial state is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-151"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-151"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The initial state.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-distribution"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-distribution"}},[t._v("#")]),t._v(" get_initial_state_distribution "),a("Badge",{attrs:{text:"UncertainInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_initial_state_distribution",sig:{params:[{name:"self"}],return:"Distribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("Get the (cached) probability distribution of initial states.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("UncertainInitialized.get_initial_state_distribution()")]),t._v(" internally\ncalls "),a("code",[t._v("UncertainInitialized._get_initial_state_distribution_()")]),t._v(" the first time and automatically caches its value\nto make future calls more efficient (since the initial state distribution is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-152"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-152"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of initial states.")]),t._v(" "),a("h3",{attrs:{id:"get-next-state-distribution"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-next-state-distribution"}},[t._v("#")]),t._v(" get_next_state_distribution "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_next_state_distribution",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"DiscreteDistribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("Get the discrete probability distribution of next state given a memory and action.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("In the Markovian case (memory only holds last state "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.061ex",height:"1.023ex",viewBox:"0 -442 469 452"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})])])])])]),t._v("), given an action "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.197ex",height:"1.02ex",viewBox:"0 -441 529 451"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})])])])])]),t._v(", this function can\nbe mathematically represented by "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.292ex",height:"2.283ex",viewBox:"0 -759 4107.1 1009"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"50",d:"M287 628Q287 635 230 637Q206 637 199 638T192 648Q192 649 194 659Q200 679 203 681T397 683Q587 682 600 680Q664 669 707 631T751 530Q751 453 685 389Q616 321 507 303Q500 302 402 301H307L277 182Q247 66 247 59Q247 55 248 54T255 50T272 48T305 46H336Q342 37 342 35Q342 19 335 5Q330 0 319 0Q316 0 282 1T182 2Q120 2 87 2T51 1Q33 1 33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM645 554Q645 567 643 575T634 597T609 619T560 635Q553 636 480 637Q463 637 445 637T416 636T404 636Q391 635 386 627Q384 621 367 550T332 412T314 344Q314 342 395 342H407H430Q542 342 590 392Q617 419 631 471T645 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(751, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"msup",transform:"translate(1140, 0)"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"53",d:"M308 24Q367 24 416 76T466 197Q466 260 414 284Q308 311 278 321T236 341Q176 383 176 462Q176 523 208 573T273 648Q302 673 343 688T407 704H418H425Q521 704 564 640Q565 640 577 653T603 682T623 704Q624 704 627 704T632 705Q645 705 645 698T617 577T585 459T569 456Q549 456 549 465Q549 471 550 475Q550 478 551 494T553 520Q553 554 544 579T526 616T501 641Q465 662 419 662Q362 662 313 616T263 510Q263 480 278 458T319 427Q323 425 389 408T456 390Q490 379 522 342T554 242Q554 216 546 186Q541 164 528 137T492 78T426 18T332 -20Q320 -22 298 -22Q199 -22 144 33L134 44L106 13Q83 -14 78 -18T65 -22Q52 -22 52 -14Q52 -11 110 221Q112 227 130 227H143Q149 221 149 216Q149 214 148 207T144 186T142 153Q144 114 160 87T203 47T255 29T308 24Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(613, 363) scale(0.707)"}},[a("path",{attrs:{"data-c":"2032",d:"M79 43Q73 43 52 49T30 61Q30 68 85 293T146 528Q161 560 198 560Q218 560 240 545T262 501Q262 496 260 486Q259 479 173 263T84 45T79 43Z"}})])]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1997.5, 0)"}},[a("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(2275.5, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2744.5, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(3189.1, 0)"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3718.1, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(", where "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.05ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.94ex",height:"1.767ex",viewBox:"0 -759 857.5 781"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"msup"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"53",d:"M308 24Q367 24 416 76T466 197Q466 260 414 284Q308 311 278 321T236 341Q176 383 176 462Q176 523 208 573T273 648Q302 673 343 688T407 704H418H425Q521 704 564 640Q565 640 577 653T603 682T623 704Q624 704 627 704T632 705Q645 705 645 698T617 577T585 459T569 456Q549 456 549 465Q549 471 550 475Q550 478 551 494T553 520Q553 554 544 579T526 616T501 641Q465 662 419 662Q362 662 313 616T263 510Q263 480 278 458T319 427Q323 425 389 408T456 390Q490 379 522 342T554 242Q554 216 546 186Q541 164 528 137T492 78T426 18T332 -20Q320 -22 298 -22Q199 -22 144 33L134 44L106 13Q83 -14 78 -18T65 -22Q52 -22 52 -14Q52 -11 110 221Q112 227 130 227H143Q149 221 149 216Q149 214 148 207T144 186T142 153Q144 114 160 87T203 47T255 29T308 24Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(613, 363) scale(0.707)"}},[a("path",{attrs:{"data-c":"2032",d:"M79 43Q73 43 52 49T30 61Q30 68 85 293T146 528Q161 560 198 560Q218 560 240 545T262 501Q262 496 260 486Q259 479 173 263T84 45T79 43Z"}})])])])])])]),t._v(" is the next state random variable.")],1)]),t._v(" "),a("h4",{attrs:{id:"parameters-115"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-115"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-153"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-153"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The discrete probability distribution of next state.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-7"}},[t._v("#")]),t._v(" get_observation "),a("Badge",{attrs:{text:"TransformedObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_observation",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Get the deterministic observation given a state and action.")]),t._v(" "),a("h4",{attrs:{id:"parameters-116"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-116"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-154"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-154"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-distribution-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-distribution-9"}},[t._v("#")]),t._v(" get_observation_distribution "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_observation_distribution",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"Distribution[D.T_agent[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the probability distribution of the observation given a state and action.")]),t._v(" "),a("p",[t._v("In mathematical terms (discrete case), given an action "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.197ex",height:"1.02ex",viewBox:"0 -441 529 451"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})])])])])]),t._v(", this function represents: "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.078ex",height:"2.262ex",viewBox:"0 -750 4012.7 1000"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"50",d:"M287 628Q287 635 230 637Q206 637 199 638T192 648Q192 649 194 659Q200 679 203 681T397 683Q587 682 600 680Q664 669 707 631T751 530Q751 453 685 389Q616 321 507 303Q500 302 402 301H307L277 182Q247 66 247 59Q247 55 248 54T255 50T272 48T305 46H336Q342 37 342 35Q342 19 335 5Q330 0 319 0Q316 0 282 1T182 2Q120 2 87 2T51 1Q33 1 33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM645 554Q645 567 643 575T634 597T609 619T560 635Q553 636 480 637Q463 637 445 637T416 636T404 636Q391 635 386 627Q384 621 367 550T332 412T314 344Q314 342 395 342H407H430Q542 342 590 392Q617 419 631 471T645 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(751, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(1140, 0)"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1903, 0)"}},[a("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(2181, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2650, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(3094.7, 0)"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3623.7, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(",\nwhere "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.05ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.726ex",height:"1.643ex",viewBox:"0 -704 763 726"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})])])])])]),t._v(" is the random variable of the observation.")],1),t._v(" "),a("h4",{attrs:{id:"parameters-117"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-117"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-155"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-155"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-space-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-13"}},[t._v("#")]),t._v(" get_observation_space "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_observation_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) observation space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("PartiallyObservable.get_observation_space()")]),t._v(" internally\ncalls "),a("code",[t._v("PartiallyObservable._get_observation_space_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the observation space is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-156"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-156"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The observation space.")]),t._v(" "),a("h3",{attrs:{id:"get-transition-value"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-transition-value"}},[t._v("#")]),t._v(" get_transition_value "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_transition_value",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"},{name:"next_state",default:"None",annotation:"Optional[D.T_state]"}],return:"D.T_agent[Value[D.T_value]]"}}}),t._v(" "),a("p",[t._v("Get the value (reward or cost) of a transition.")]),t._v(" "),a("p",[t._v("The transition to consider is defined by the function parameters.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("If this function never depends on the next_state parameter for its computation, it is recommended to\nindicate it by overriding "),a("code",[t._v("UncertainTransitions._is_transition_value_dependent_on_next_state_()")]),t._v(" to return\nFalse. This information can then be exploited by solvers to avoid computing next state to evaluate a\ntransition value (more efficient).")])]),t._v(" "),a("h4",{attrs:{id:"parameters-118"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-118"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")]),t._v(" "),a("li",[a("strong",[t._v("next_state")]),t._v(": The next state in which the transition ends (if needed for the computation).")])]),t._v(" "),a("h4",{attrs:{id:"returns-157"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-157"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The transition value (reward or cost).")]),t._v(" "),a("h3",{attrs:{id:"is-action-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-action-9"}},[t._v("#")]),t._v(" is_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_action",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an event is an action (i.e. a controllable event for the agents).")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\naction space provided by "),a("code",[t._v("Events.get_action_space()")]),t._v(", but it can be overridden for faster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-119"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-119"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("event")]),t._v(": The event to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-158"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-158"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is an action (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-applicable-action-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-9"}},[t._v("#")]),t._v(" is_applicable_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_applicable_action",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an action is applicable in the given memory (state or history), or in the internal one if\nomitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.is_applicable_action()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_applicable_action()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead\nof the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-120"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-120"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-159"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-159"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the action is applicable (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-enabled-event-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-9"}},[t._v("#")]),t._v(" is_enabled_event "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_enabled_event",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an uncontrollable event is enabled in the given memory (state or history), or in the\ninternal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.is_enabled_event()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_enabled_event()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead of\nthe memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-121"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-121"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-160"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-160"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is enabled (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-observation-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-observation-9"}},[t._v("#")]),t._v(" is_observation "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_observation",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that an observation indeed belongs to the domain observation space.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\nobservation space provided by "),a("code",[t._v("PartiallyObservable.get_observation_space()")]),t._v(", but it can be overridden for\nfaster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-122"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-122"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-161"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-161"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the observation belongs to the domain observation space (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-terminal"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-terminal"}},[t._v("#")]),t._v(" is_terminal "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_terminal",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"}],return:"D.T_agent[D.T_predicate]"}}}),t._v(" "),a("p",[t._v("Indicate whether a state is terminal.")]),t._v(" "),a("p",[t._v("A terminal state is a state with no outgoing transition (except to itself with value 0).")]),t._v(" "),a("h4",{attrs:{id:"parameters-123"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-123"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-162"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-162"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the state is terminal (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-transition-value-dependent-on-next-state"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-transition-value-dependent-on-next-state"}},[t._v("#")]),t._v(" is_transition_value_dependent_on_next_state "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_transition_value_dependent_on_next_state",sig:{params:[{name:"self"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether get_transition_value() requires the next_state parameter for its computation (cached).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("UncertainTransitions.is_transition_value_dependent_on_next_state()")]),t._v(" internally\ncalls "),a("code",[t._v("UncertainTransitions._is_transition_value_dependent_on_next_state_()")]),t._v(" the first time and automatically\ncaches its value to make future calls more efficient (since the returned value is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-163"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-163"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the transition value computation depends on next_state (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"reset-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#reset-5"}},[t._v("#")]),t._v(" reset "),a("Badge",{attrs:{text:"Initializable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"reset",sig:{params:[{name:"self"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Reset the state of the environment and return an initial observation.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Initializable.reset()")]),t._v(" provides some boilerplate code and internally calls "),a("code",[t._v("Initializable._reset()")]),t._v("\n(which returns an initial state). The boilerplate code automatically stores the initial state into the "),a("code",[t._v("_memory")]),t._v("\nattribute and samples a corresponding observation.")]),t._v(" "),a("h4",{attrs:{id:"returns-164"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-164"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("An initial observation.")]),t._v(" "),a("h3",{attrs:{id:"sample-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample-3"}},[t._v("#")]),t._v(" sample "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"sample",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Sample one transition of the simulator's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Simulation.sample()")]),t._v(" provides some boilerplate code and internally calls "),a("code",[t._v("Simulation._sample()")]),t._v("\n(which returns a transition outcome). The boilerplate code automatically samples an observation corresponding to\nthe sampled next state.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing simulator needs to be wrapped instead of implemented fully in scikit-decide (e.g. a\nsimulator), it is recommended to overwrite "),a("code",[t._v("Simulation.sample()")]),t._v(" to call the external simulator and not use\nthe "),a("code",[t._v("Simulation._sample()")]),t._v(" helper function.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-124"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-124"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-165"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-165"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of the sampled transition.")]),t._v(" "),a("h3",{attrs:{id:"set-memory-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#set-memory-3"}},[t._v("#")]),t._v(" set_memory "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"set_memory",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"None"}}}),t._v(" "),a("p",[t._v("Set internal memory attribute "),a("code",[t._v("_memory")]),t._v(" to given one.")]),t._v(" "),a("p",[t._v('This can be useful to set a specific "starting point" before doing a rollout with successive '),a("code",[t._v("Environment.step()")]),t._v("\ncalls.")]),t._v(" "),a("h4",{attrs:{id:"parameters-125"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-125"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to set internally.")])]),t._v(" "),a("h4",{attrs:{id:"example-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#example-3"}},[t._v("#")]),t._v(" Example")]),t._v(" "),a("div",{staticClass:"language-python extra-class"},[a("pre",{pre:!0,attrs:{class:"language-python"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Set simulation_domain memory to my_state (assuming Markovian domain)")]),t._v("\nsimulation_domain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("set_memory"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("my_state"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Start a 100-steps rollout from here (applying my_action at every step)")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("for")]),t._v(" _ "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("in")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("range")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n simulation_domain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("step"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("my_action"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("h3",{attrs:{id:"solve-with-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#solve-with-5"}},[t._v("#")]),t._v(" solve_with "),a("Badge",{attrs:{text:"Domain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"solve_with",sig:{params:[{name:"solver",annotation:"Solver"},{name:"domain_factory",default:"None",annotation:"Optional[Callable[[], Domain]]"},{name:"load_path",default:"None",annotation:"Optional[str]"}],return:"Solver"}}}),t._v(" "),a("p",[t._v("Solve the domain with a new or loaded solver and return it auto-cast to the level of the domain.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Solver.check_domain()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Solver._check_domain_additional()")]),t._v(' (which returns True by default but can be overridden to define\nspecific checks in addition to the "domain requirements"). The boilerplate code automatically checks whether all\ndomain requirements are met.')]),t._v(" "),a("h4",{attrs:{id:"parameters-126"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-126"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("solver")]),t._v(": The solver.")]),t._v(" "),a("li",[a("strong",[t._v("domain_factory")]),t._v(": A callable with no argument returning the domain to solve (factory is the domain class if None).")]),t._v(" "),a("li",[a("strong",[t._v("load_path")]),t._v(": The path to restore the solver state from (if None, the solving process will be launched instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-166"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-166"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The new solver (auto-cast to the level of the domain).")]),t._v(" "),a("h3",{attrs:{id:"step-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#step-9"}},[t._v("#")]),t._v(" step "),a("Badge",{attrs:{text:"Environment",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"step",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Run one step of the environment's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Environment.step()")]),t._v(" provides some boilerplate code and internally calls "),a("code",[t._v("Environment._step()")]),t._v(" (which\nreturns a transition outcome). The boilerplate code automatically stores next state into the "),a("code",[t._v("_memory")]),t._v(" attribute\nand samples a corresponding observation.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing environment needs to be wrapped instead of implemented fully in scikit-decide (e.g. compiled\nATARI games), it is recommended to overwrite "),a("code",[t._v("Environment.step()")]),t._v(" to call the external environment and not\nuse the "),a("code",[t._v("Environment._step()")]),t._v(" helper function.")])]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Before calling "),a("code",[t._v("Environment.step()")]),t._v(" the first time or when the end of an episode is\nreached, "),a("code",[t._v("Initializable.reset()")]),t._v(" must be called to reset the environment's state.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-127"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-127"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the current memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-167"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-167"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of this step.")]),t._v(" "),a("h3",{attrs:{id:"check-value-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#check-value-10"}},[t._v("#")]),t._v(" _check_value "),a("Badge",{attrs:{text:"Rewards",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_check_value",sig:{params:[{name:"self"},{name:"value",annotation:"Value[D.T_value]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that a value is compliant with its reward specification.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("This function returns always True by default because any kind of reward should be accepted at this level.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-128"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-128"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("value")]),t._v(": The value to check.")])]),t._v(" "),a("h4",{attrs:{id:"returns-168"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-168"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the value is compliant (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"get-action-space-14"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-14"}},[t._v("#")]),t._v(" _get_action_space "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_action_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) domain action space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._get_action_space()")]),t._v(" internally calls "),a("code",[t._v("Events._get_action_space_()")]),t._v(" the first time and\nautomatically caches its value to make future calls more efficient (since the action space is assumed to be\nconstant).")]),t._v(" "),a("h4",{attrs:{id:"returns-169"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-169"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The action space.")]),t._v(" "),a("h3",{attrs:{id:"get-action-space-15"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-15"}},[t._v("#")]),t._v(" _get_action_space_ "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_action_space_",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the domain action space (finite or infinite set).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._get_action_space()")]),t._v(", the difference being that the\nresult is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-170"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-170"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The action space.")]),t._v(" "),a("h3",{attrs:{id:"get-applicable-actions-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-10"}},[t._v("#")]),t._v(" _get_applicable_actions "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_applicable_actions",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history), or in\nthe internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._get_applicable_actions()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_applicable_actions_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-129"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-129"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-171"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-171"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of applicable actions.")]),t._v(" "),a("h3",{attrs:{id:"get-applicable-actions-from-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-from-5"}},[t._v("#")]),t._v(" _get_applicable_actions_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_applicable_actions_from",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._get_applicable_actions()")]),t._v(", the difference being that\nthe memory parameter is mandatory here.")]),t._v(" "),a("h4",{attrs:{id:"parameters-130"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-130"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-172"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-172"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of applicable actions.")]),t._v(" "),a("h3",{attrs:{id:"get-enabled-events-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-10"}},[t._v("#")]),t._v(" _get_enabled_events "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_enabled_events",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"Space[D.T_event]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory), or in the internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._get_enabled_events()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_enabled_events_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-131"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-131"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-173"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-173"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of enabled events.")]),t._v(" "),a("h3",{attrs:{id:"get-enabled-events-from-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-from-5"}},[t._v("#")]),t._v(" _get_enabled_events_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_enabled_events_from",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"Space[D.T_event]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._get_enabled_events()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("h4",{attrs:{id:"parameters-132"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-132"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-174"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-174"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of enabled events.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-2"}},[t._v("#")]),t._v(" _get_initial_state "),a("Badge",{attrs:{text:"DeterministicInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_initial_state",sig:{params:[{name:"self"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("Get the (cached) initial state.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("DeterministicInitialized._get_initial_state()")]),t._v(" internally\ncalls "),a("code",[t._v("DeterministicInitialized._get_initial_state_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the initial state is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-175"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-175"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The initial state.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-3"}},[t._v("#")]),t._v(" _get_initial_state_ "),a("Badge",{attrs:{text:"DeterministicInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_initial_state_",sig:{params:[{name:"self"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("Get the initial state.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("DeterministicInitialized._get_initial_state()")]),t._v(", the difference\nbeing that the result is not cached here.")]),t._v(" "),a("h4",{attrs:{id:"returns-176"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-176"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The initial state.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-distribution-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-distribution-2"}},[t._v("#")]),t._v(" _get_initial_state_distribution "),a("Badge",{attrs:{text:"UncertainInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_initial_state_distribution",sig:{params:[{name:"self"}],return:"Distribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("Get the (cached) probability distribution of initial states.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("UncertainInitialized._get_initial_state_distribution()")]),t._v(" internally\ncalls "),a("code",[t._v("UncertainInitialized._get_initial_state_distribution_()")]),t._v(" the first time and automatically caches its value\nto make future calls more efficient (since the initial state distribution is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-177"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-177"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of initial states.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-distribution-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-distribution-3"}},[t._v("#")]),t._v(" _get_initial_state_distribution_ "),a("Badge",{attrs:{text:"UncertainInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_initial_state_distribution_",sig:{params:[{name:"self"}],return:"Distribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("Get the probability distribution of initial states.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("UncertainInitialized._get_initial_state_distribution()")]),t._v(", the\ndifference being that the result is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-178"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-178"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of initial states.")]),t._v(" "),a("h3",{attrs:{id:"get-memory-maxlen-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-memory-maxlen-8"}},[t._v("#")]),t._v(" _get_memory_maxlen "),a("Badge",{attrs:{text:"History",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_memory_maxlen",sig:{params:[{name:"self"}],return:"int"}}}),t._v(" "),a("p",[t._v("Get the (cached) memory max length.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("FiniteHistory._get_memory_maxlen()")]),t._v(" internally calls "),a("code",[t._v("FiniteHistory._get_memory_maxlen_()")]),t._v(" the first\ntime and automatically caches its value to make future calls more efficient (since the memory max length is\nassumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-179"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-179"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The memory max length.")]),t._v(" "),a("h3",{attrs:{id:"get-memory-maxlen-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-memory-maxlen-9"}},[t._v("#")]),t._v(" _get_memory_maxlen_ "),a("Badge",{attrs:{text:"FiniteHistory",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_memory_maxlen_",sig:{params:[{name:"self"}],return:"int"}}}),t._v(" "),a("p",[t._v("Get the memory max length.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("FiniteHistory._get_memory_maxlen()")]),t._v(", the difference being that\nthe result is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-180"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-180"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The memory max length.")]),t._v(" "),a("h3",{attrs:{id:"get-next-state-distribution-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-next-state-distribution-2"}},[t._v("#")]),t._v(" _get_next_state_distribution "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_next_state_distribution",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"DiscreteDistribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("Get the discrete probability distribution of next state given a memory and action.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("In the Markovian case (memory only holds last state "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.061ex",height:"1.023ex",viewBox:"0 -442 469 452"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})])])])])]),t._v("), given an action "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.197ex",height:"1.02ex",viewBox:"0 -441 529 451"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})])])])])]),t._v(", this function can\nbe mathematically represented by "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.292ex",height:"2.283ex",viewBox:"0 -759 4107.1 1009"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"50",d:"M287 628Q287 635 230 637Q206 637 199 638T192 648Q192 649 194 659Q200 679 203 681T397 683Q587 682 600 680Q664 669 707 631T751 530Q751 453 685 389Q616 321 507 303Q500 302 402 301H307L277 182Q247 66 247 59Q247 55 248 54T255 50T272 48T305 46H336Q342 37 342 35Q342 19 335 5Q330 0 319 0Q316 0 282 1T182 2Q120 2 87 2T51 1Q33 1 33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM645 554Q645 567 643 575T634 597T609 619T560 635Q553 636 480 637Q463 637 445 637T416 636T404 636Q391 635 386 627Q384 621 367 550T332 412T314 344Q314 342 395 342H407H430Q542 342 590 392Q617 419 631 471T645 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(751, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"msup",transform:"translate(1140, 0)"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"53",d:"M308 24Q367 24 416 76T466 197Q466 260 414 284Q308 311 278 321T236 341Q176 383 176 462Q176 523 208 573T273 648Q302 673 343 688T407 704H418H425Q521 704 564 640Q565 640 577 653T603 682T623 704Q624 704 627 704T632 705Q645 705 645 698T617 577T585 459T569 456Q549 456 549 465Q549 471 550 475Q550 478 551 494T553 520Q553 554 544 579T526 616T501 641Q465 662 419 662Q362 662 313 616T263 510Q263 480 278 458T319 427Q323 425 389 408T456 390Q490 379 522 342T554 242Q554 216 546 186Q541 164 528 137T492 78T426 18T332 -20Q320 -22 298 -22Q199 -22 144 33L134 44L106 13Q83 -14 78 -18T65 -22Q52 -22 52 -14Q52 -11 110 221Q112 227 130 227H143Q149 221 149 216Q149 214 148 207T144 186T142 153Q144 114 160 87T203 47T255 29T308 24Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(613, 363) scale(0.707)"}},[a("path",{attrs:{"data-c":"2032",d:"M79 43Q73 43 52 49T30 61Q30 68 85 293T146 528Q161 560 198 560Q218 560 240 545T262 501Q262 496 260 486Q259 479 173 263T84 45T79 43Z"}})])]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1997.5, 0)"}},[a("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(2275.5, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2744.5, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(3189.1, 0)"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3718.1, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(", where "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.05ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.94ex",height:"1.767ex",viewBox:"0 -759 857.5 781"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"msup"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"53",d:"M308 24Q367 24 416 76T466 197Q466 260 414 284Q308 311 278 321T236 341Q176 383 176 462Q176 523 208 573T273 648Q302 673 343 688T407 704H418H425Q521 704 564 640Q565 640 577 653T603 682T623 704Q624 704 627 704T632 705Q645 705 645 698T617 577T585 459T569 456Q549 456 549 465Q549 471 550 475Q550 478 551 494T553 520Q553 554 544 579T526 616T501 641Q465 662 419 662Q362 662 313 616T263 510Q263 480 278 458T319 427Q323 425 389 408T456 390Q490 379 522 342T554 242Q554 216 546 186Q541 164 528 137T492 78T426 18T332 -20Q320 -22 298 -22Q199 -22 144 33L134 44L106 13Q83 -14 78 -18T65 -22Q52 -22 52 -14Q52 -11 110 221Q112 227 130 227H143Q149 221 149 216Q149 214 148 207T144 186T142 153Q144 114 160 87T203 47T255 29T308 24Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(613, 363) scale(0.707)"}},[a("path",{attrs:{"data-c":"2032",d:"M79 43Q73 43 52 49T30 61Q30 68 85 293T146 528Q161 560 198 560Q218 560 240 545T262 501Q262 496 260 486Q259 479 173 263T84 45T79 43Z"}})])])])])])]),t._v(" is the next state random variable.")],1)]),t._v(" "),a("h4",{attrs:{id:"parameters-133"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-133"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-181"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-181"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The discrete probability distribution of next state.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-8"}},[t._v("#")]),t._v(" _get_observation "),a("Badge",{attrs:{text:"TransformedObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Get the deterministic observation given a state and action.")]),t._v(" "),a("h4",{attrs:{id:"parameters-134"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-134"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-182"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-182"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-distribution-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-distribution-10"}},[t._v("#")]),t._v(" _get_observation_distribution "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation_distribution",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"Distribution[D.T_agent[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the probability distribution of the observation given a state and action.")]),t._v(" "),a("p",[t._v("In mathematical terms (discrete case), given an action "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.197ex",height:"1.02ex",viewBox:"0 -441 529 451"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})])])])])]),t._v(", this function represents: "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.078ex",height:"2.262ex",viewBox:"0 -750 4012.7 1000"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"50",d:"M287 628Q287 635 230 637Q206 637 199 638T192 648Q192 649 194 659Q200 679 203 681T397 683Q587 682 600 680Q664 669 707 631T751 530Q751 453 685 389Q616 321 507 303Q500 302 402 301H307L277 182Q247 66 247 59Q247 55 248 54T255 50T272 48T305 46H336Q342 37 342 35Q342 19 335 5Q330 0 319 0Q316 0 282 1T182 2Q120 2 87 2T51 1Q33 1 33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM645 554Q645 567 643 575T634 597T609 619T560 635Q553 636 480 637Q463 637 445 637T416 636T404 636Q391 635 386 627Q384 621 367 550T332 412T314 344Q314 342 395 342H407H430Q542 342 590 392Q617 419 631 471T645 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(751, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(1140, 0)"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1903, 0)"}},[a("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(2181, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2650, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(3094.7, 0)"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3623.7, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(",\nwhere "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.05ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.726ex",height:"1.643ex",viewBox:"0 -704 763 726"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})])])])])]),t._v(" is the random variable of the observation.")],1),t._v(" "),a("h4",{attrs:{id:"parameters-135"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-135"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-183"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-183"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-space-14"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-14"}},[t._v("#")]),t._v(" _get_observation_space "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) observation space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(" internally\ncalls "),a("code",[t._v("PartiallyObservable._get_observation_space_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the observation space is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-184"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-184"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The observation space.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-space-15"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-15"}},[t._v("#")]),t._v(" _get_observation_space_ "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation_space_",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the observation space (finite or infinite set).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(", the difference\nbeing that the result is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-185"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-185"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The observation space.")]),t._v(" "),a("h3",{attrs:{id:"get-transition-value-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-transition-value-2"}},[t._v("#")]),t._v(" _get_transition_value "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_transition_value",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"},{name:"next_state",default:"None",annotation:"Optional[D.T_state]"}],return:"D.T_agent[Value[D.T_value]]"}}}),t._v(" "),a("p",[t._v("Get the value (reward or cost) of a transition.")]),t._v(" "),a("p",[t._v("The transition to consider is defined by the function parameters.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("If this function never depends on the next_state parameter for its computation, it is recommended to\nindicate it by overriding "),a("code",[t._v("UncertainTransitions._is_transition_value_dependent_on_next_state_()")]),t._v(" to return\nFalse. This information can then be exploited by solvers to avoid computing next state to evaluate a\ntransition value (more efficient).")])]),t._v(" "),a("h4",{attrs:{id:"parameters-136"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-136"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")]),t._v(" "),a("li",[a("strong",[t._v("next_state")]),t._v(": The next state in which the transition ends (if needed for the computation).")])]),t._v(" "),a("h4",{attrs:{id:"returns-186"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-186"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The transition value (reward or cost).")]),t._v(" "),a("h3",{attrs:{id:"init-memory-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#init-memory-5"}},[t._v("#")]),t._v(" _init_memory "),a("Badge",{attrs:{text:"History",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_init_memory",sig:{params:[{name:"self"},{name:"state",default:"None",annotation:"Optional[D.T_state]"}],return:"D.T_memory[D.T_state]"}}}),t._v(" "),a("p",[t._v("Initialize memory (possibly with a state) according to its specification and return it.")]),t._v(" "),a("p",[t._v("This function is automatically called by "),a("code",[t._v("Initializable._reset()")]),t._v(" to reinitialize the internal memory whenever\nthe domain is used as an environment.")]),t._v(" "),a("h4",{attrs:{id:"parameters-137"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-137"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": An optional state to initialize the memory with (typically the initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-187"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-187"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The new initialized memory.")]),t._v(" "),a("h3",{attrs:{id:"is-action-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-action-10"}},[t._v("#")]),t._v(" _is_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_action",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an event is an action (i.e. a controllable event for the agents).")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\naction space provided by "),a("code",[t._v("Events._get_action_space()")]),t._v(", but it can be overridden for faster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-138"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-138"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("event")]),t._v(": The event to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-188"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-188"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is an action (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-applicable-action-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-10"}},[t._v("#")]),t._v(" _is_applicable_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_applicable_action",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an action is applicable in the given memory (state or history), or in the internal one if\nomitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._is_applicable_action()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_applicable_action_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-139"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-139"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-189"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-189"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the action is applicable (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-applicable-action-from-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-from-5"}},[t._v("#")]),t._v(" _is_applicable_action_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_applicable_action_from",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an action is applicable in the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._is_applicable_action()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the space of\napplicable actions provided by "),a("code",[t._v("Events._get_applicable_actions_from()")]),t._v(", but it can be overridden for faster\nimplementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-140"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-140"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-190"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-190"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the action is applicable (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-enabled-event-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-10"}},[t._v("#")]),t._v(" _is_enabled_event "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_enabled_event",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an uncontrollable event is enabled in the given memory (state or history), or in the\ninternal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._is_enabled_event()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_enabled_event_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead\nof the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-141"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-141"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-191"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-191"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is enabled (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-enabled-event-from-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-from-5"}},[t._v("#")]),t._v(" _is_enabled_event_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_enabled_event_from",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an event is enabled in the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._is_enabled_event()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the space of\nenabled events provided by "),a("code",[t._v("Events._get_enabled_events_from()")]),t._v(", but it can be overridden for faster\nimplementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-142"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-142"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-192"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-192"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is enabled (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-observation-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-observation-10"}},[t._v("#")]),t._v(" _is_observation "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_observation",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that an observation indeed belongs to the domain observation space.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\nobservation space provided by "),a("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(", but it can be overridden for\nfaster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-143"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-143"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-193"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-193"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the observation belongs to the domain observation space (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-terminal-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-terminal-2"}},[t._v("#")]),t._v(" _is_terminal "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_terminal",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"}],return:"D.T_agent[D.T_predicate]"}}}),t._v(" "),a("p",[t._v("Indicate whether a state is terminal.")]),t._v(" "),a("p",[t._v("A terminal state is a state with no outgoing transition (except to itself with value 0).")]),t._v(" "),a("h4",{attrs:{id:"parameters-144"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-144"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-194"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-194"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the state is terminal (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-transition-value-dependent-on-next-state-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-transition-value-dependent-on-next-state-2"}},[t._v("#")]),t._v(" _is_transition_value_dependent_on_next_state "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_transition_value_dependent_on_next_state",sig:{params:[{name:"self"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether _get_transition_value() requires the next_state parameter for its computation (cached).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("UncertainTransitions._is_transition_value_dependent_on_next_state()")]),t._v(" internally\ncalls "),a("code",[t._v("UncertainTransitions._is_transition_value_dependent_on_next_state_()")]),t._v(" the first time and automatically\ncaches its value to make future calls more efficient (since the returned value is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-195"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-195"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the transition value computation depends on next_state (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-transition-value-dependent-on-next-state-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-transition-value-dependent-on-next-state-3"}},[t._v("#")]),t._v(" _is_transition_value_dependent_on_next_state_ "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_transition_value_dependent_on_next_state_",sig:{params:[{name:"self"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether _get_transition_value() requires the next_state parameter for its computation.")]),t._v(" "),a("p",[t._v("This is a helper function called by default\nfrom "),a("code",[t._v("UncertainTransitions._is_transition_value_dependent_on_next_state()")]),t._v(", the difference being that the result\nis not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-196"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-196"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the transition value computation depends on next_state (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"reset-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#reset-6"}},[t._v("#")]),t._v(" _reset "),a("Badge",{attrs:{text:"Initializable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_reset",sig:{params:[{name:"self"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Reset the state of the environment and return an initial observation.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Initializable._reset()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Initializable._state_reset()")]),t._v(" (which returns an initial state). The boilerplate code automatically stores\nthe initial state into the "),a("code",[t._v("_memory")]),t._v(" attribute and samples a corresponding observation.")]),t._v(" "),a("h4",{attrs:{id:"returns-197"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-197"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("An initial observation.")]),t._v(" "),a("h3",{attrs:{id:"sample-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample-4"}},[t._v("#")]),t._v(" _sample "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_sample",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Sample one transition of the simulator's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Simulation._sample()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Simulation._state_sample()")]),t._v(" (which returns a transition outcome). The boilerplate code automatically\nsamples an observation corresponding to the sampled next state.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing simulator needs to be wrapped instead of implemented fully in scikit-decide (e.g. a\nsimulator), it is recommended to overwrite "),a("code",[t._v("Simulation._sample()")]),t._v(" to call the external simulator and not use\nthe "),a("code",[t._v("Simulation._state_sample()")]),t._v(" helper function.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-145"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-145"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-198"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-198"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of the sampled transition.")]),t._v(" "),a("h3",{attrs:{id:"set-memory-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#set-memory-4"}},[t._v("#")]),t._v(" _set_memory "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_set_memory",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"None"}}}),t._v(" "),a("p",[t._v("Set internal memory attribute "),a("code",[t._v("_memory")]),t._v(" to given one.")]),t._v(" "),a("p",[t._v('This can be useful to set a specific "starting point" before doing a rollout with\nsuccessive '),a("code",[t._v("Environment._step()")]),t._v(" calls.")]),t._v(" "),a("h4",{attrs:{id:"parameters-146"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-146"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to set internally.")])]),t._v(" "),a("h4",{attrs:{id:"example-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#example-4"}},[t._v("#")]),t._v(" Example")]),t._v(" "),a("div",{staticClass:"language-python extra-class"},[a("pre",{pre:!0,attrs:{class:"language-python"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Set simulation_domain memory to my_state (assuming Markovian domain)")]),t._v("\nsimulation_domain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("_set_memory"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("my_state"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Start a 100-steps rollout from here (applying my_action at every step)")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("for")]),t._v(" _ "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("in")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("range")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n simulation_domain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("_step"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("my_action"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("h3",{attrs:{id:"state-reset-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#state-reset-3"}},[t._v("#")]),t._v(" _state_reset "),a("Badge",{attrs:{text:"Initializable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_state_reset",sig:{params:[{name:"self"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("Reset the state of the environment and return an initial state.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Initializable._reset()")]),t._v(". It focuses on the state level, as\nopposed to the observation one for the latter.")]),t._v(" "),a("h4",{attrs:{id:"returns-199"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-199"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("An initial state.")]),t._v(" "),a("h3",{attrs:{id:"state-sample-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#state-sample-2"}},[t._v("#")]),t._v(" _state_sample "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_state_sample",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"TransitionOutcome[D.T_state, D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Compute one sample of the transition's dynamics.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Simulation._sample()")]),t._v(". It focuses on the state level, as\nopposed to the observation one for the latter.")]),t._v(" "),a("h4",{attrs:{id:"parameters-147"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-147"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-200"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-200"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The transition outcome of the sampled transition.")]),t._v(" "),a("h3",{attrs:{id:"state-step-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#state-step-5"}},[t._v("#")]),t._v(" _state_step "),a("Badge",{attrs:{text:"Environment",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_state_step",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"TransitionOutcome[D.T_state, D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Compute one step of the transition's dynamics.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Environment._step()")]),t._v(". It focuses on the state level, as opposed\nto the observation one for the latter.")]),t._v(" "),a("h4",{attrs:{id:"parameters-148"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-148"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the current memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-201"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-201"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The transition outcome of this step.")]),t._v(" "),a("h3",{attrs:{id:"step-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#step-10"}},[t._v("#")]),t._v(" _step "),a("Badge",{attrs:{text:"Environment",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_step",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Run one step of the environment's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Environment._step()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Environment._state_step()")]),t._v(" (which returns a transition outcome). The boilerplate code automatically stores\nnext state into the "),a("code",[t._v("_memory")]),t._v(" attribute and samples a corresponding observation.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing environment needs to be wrapped instead of implemented fully in scikit-decide (e.g. compiled\nATARI games), it is recommended to overwrite "),a("code",[t._v("Environment._step()")]),t._v(" to call the external environment and not\nuse the "),a("code",[t._v("Environment._state_step()")]),t._v(" helper function.")])]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Before calling "),a("code",[t._v("Environment._step()")]),t._v(" the first time or when the end of an episode is\nreached, "),a("code",[t._v("Initializable._reset()")]),t._v(" must be called to reset the environment's state.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-149"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-149"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the current memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-202"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-202"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of this step.")]),t._v(" "),a("h2",{attrs:{id:"pomdpdomain"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#pomdpdomain"}},[t._v("#")]),t._v(" POMDPDomain")]),t._v(" "),a("p",[t._v("This is a typical Partially Observable Markov Decision Process domain class.")]),t._v(" "),a("p",[t._v("This helper class can be used as an alternate base class for domains, inheriting the following:")]),t._v(" "),a("ul",[a("li",[t._v("Domain")]),t._v(" "),a("li",[t._v("SingleAgent")]),t._v(" "),a("li",[t._v("Sequential")]),t._v(" "),a("li",[t._v("EnumerableTransitions")]),t._v(" "),a("li",[t._v("Actions")]),t._v(" "),a("li",[t._v("UncertainInitialized")]),t._v(" "),a("li",[t._v("Markovian")]),t._v(" "),a("li",[t._v("PartiallyObservable")]),t._v(" "),a("li",[t._v("Rewards")])]),t._v(" "),a("p",[t._v("Typical use:")]),t._v(" "),a("div",{staticClass:"language-python extra-class"},[a("pre",{pre:!0,attrs:{class:"language-python"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("class")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("D")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("POMDPDomain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("It is also possible to refine any alternate base class, like for instance:")]),t._v(" "),a("div",{staticClass:"language-python extra-class"},[a("pre",{pre:!0,attrs:{class:"language-python"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("class")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("D")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("RLDomain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" FullyObservable"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])])]),t._v(" "),a("h3",{attrs:{id:"check-value-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#check-value-11"}},[t._v("#")]),t._v(" check_value "),a("Badge",{attrs:{text:"Rewards",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"check_value",sig:{params:[{name:"self"},{name:"value",annotation:"Value[D.T_value]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that a value is compliant with its reward specification.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("This function returns always True by default because any kind of reward should be accepted at this level.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-150"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-150"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("value")]),t._v(": The value to check.")])]),t._v(" "),a("h4",{attrs:{id:"returns-203"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-203"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the value is compliant (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"get-action-space-16"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-16"}},[t._v("#")]),t._v(" get_action_space "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_action_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) domain action space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.get_action_space()")]),t._v(" internally calls "),a("code",[t._v("Events._get_action_space_()")]),t._v(" the first time and\nautomatically caches its value to make future calls more efficient (since the action space is assumed to be\nconstant).")]),t._v(" "),a("h4",{attrs:{id:"returns-204"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-204"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The action space.")]),t._v(" "),a("h3",{attrs:{id:"get-applicable-actions-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-11"}},[t._v("#")]),t._v(" get_applicable_actions "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_applicable_actions",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history), or in\nthe internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.get_applicable_actions()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_applicable_actions()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-151"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-151"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-205"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-205"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of applicable actions.")]),t._v(" "),a("h3",{attrs:{id:"get-enabled-events-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-11"}},[t._v("#")]),t._v(" get_enabled_events "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_enabled_events",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"Space[D.T_event]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory), or in the internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.get_enabled_events()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_enabled_events()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead of\nthe memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-152"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-152"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-206"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-206"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of enabled events.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-distribution-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-distribution-4"}},[t._v("#")]),t._v(" get_initial_state_distribution "),a("Badge",{attrs:{text:"UncertainInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_initial_state_distribution",sig:{params:[{name:"self"}],return:"Distribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("Get the (cached) probability distribution of initial states.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("UncertainInitialized.get_initial_state_distribution()")]),t._v(" internally\ncalls "),a("code",[t._v("UncertainInitialized._get_initial_state_distribution_()")]),t._v(" the first time and automatically caches its value\nto make future calls more efficient (since the initial state distribution is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-207"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-207"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of initial states.")]),t._v(" "),a("h3",{attrs:{id:"get-next-state-distribution-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-next-state-distribution-3"}},[t._v("#")]),t._v(" get_next_state_distribution "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_next_state_distribution",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"DiscreteDistribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("Get the discrete probability distribution of next state given a memory and action.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("In the Markovian case (memory only holds last state "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.061ex",height:"1.023ex",viewBox:"0 -442 469 452"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})])])])])]),t._v("), given an action "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.197ex",height:"1.02ex",viewBox:"0 -441 529 451"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})])])])])]),t._v(", this function can\nbe mathematically represented by "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.292ex",height:"2.283ex",viewBox:"0 -759 4107.1 1009"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"50",d:"M287 628Q287 635 230 637Q206 637 199 638T192 648Q192 649 194 659Q200 679 203 681T397 683Q587 682 600 680Q664 669 707 631T751 530Q751 453 685 389Q616 321 507 303Q500 302 402 301H307L277 182Q247 66 247 59Q247 55 248 54T255 50T272 48T305 46H336Q342 37 342 35Q342 19 335 5Q330 0 319 0Q316 0 282 1T182 2Q120 2 87 2T51 1Q33 1 33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM645 554Q645 567 643 575T634 597T609 619T560 635Q553 636 480 637Q463 637 445 637T416 636T404 636Q391 635 386 627Q384 621 367 550T332 412T314 344Q314 342 395 342H407H430Q542 342 590 392Q617 419 631 471T645 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(751, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"msup",transform:"translate(1140, 0)"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"53",d:"M308 24Q367 24 416 76T466 197Q466 260 414 284Q308 311 278 321T236 341Q176 383 176 462Q176 523 208 573T273 648Q302 673 343 688T407 704H418H425Q521 704 564 640Q565 640 577 653T603 682T623 704Q624 704 627 704T632 705Q645 705 645 698T617 577T585 459T569 456Q549 456 549 465Q549 471 550 475Q550 478 551 494T553 520Q553 554 544 579T526 616T501 641Q465 662 419 662Q362 662 313 616T263 510Q263 480 278 458T319 427Q323 425 389 408T456 390Q490 379 522 342T554 242Q554 216 546 186Q541 164 528 137T492 78T426 18T332 -20Q320 -22 298 -22Q199 -22 144 33L134 44L106 13Q83 -14 78 -18T65 -22Q52 -22 52 -14Q52 -11 110 221Q112 227 130 227H143Q149 221 149 216Q149 214 148 207T144 186T142 153Q144 114 160 87T203 47T255 29T308 24Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(613, 363) scale(0.707)"}},[a("path",{attrs:{"data-c":"2032",d:"M79 43Q73 43 52 49T30 61Q30 68 85 293T146 528Q161 560 198 560Q218 560 240 545T262 501Q262 496 260 486Q259 479 173 263T84 45T79 43Z"}})])]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1997.5, 0)"}},[a("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(2275.5, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2744.5, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(3189.1, 0)"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3718.1, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(", where "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.05ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.94ex",height:"1.767ex",viewBox:"0 -759 857.5 781"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"msup"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"53",d:"M308 24Q367 24 416 76T466 197Q466 260 414 284Q308 311 278 321T236 341Q176 383 176 462Q176 523 208 573T273 648Q302 673 343 688T407 704H418H425Q521 704 564 640Q565 640 577 653T603 682T623 704Q624 704 627 704T632 705Q645 705 645 698T617 577T585 459T569 456Q549 456 549 465Q549 471 550 475Q550 478 551 494T553 520Q553 554 544 579T526 616T501 641Q465 662 419 662Q362 662 313 616T263 510Q263 480 278 458T319 427Q323 425 389 408T456 390Q490 379 522 342T554 242Q554 216 546 186Q541 164 528 137T492 78T426 18T332 -20Q320 -22 298 -22Q199 -22 144 33L134 44L106 13Q83 -14 78 -18T65 -22Q52 -22 52 -14Q52 -11 110 221Q112 227 130 227H143Q149 221 149 216Q149 214 148 207T144 186T142 153Q144 114 160 87T203 47T255 29T308 24Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(613, 363) scale(0.707)"}},[a("path",{attrs:{"data-c":"2032",d:"M79 43Q73 43 52 49T30 61Q30 68 85 293T146 528Q161 560 198 560Q218 560 240 545T262 501Q262 496 260 486Q259 479 173 263T84 45T79 43Z"}})])])])])])]),t._v(" is the next state random variable.")],1)]),t._v(" "),a("h4",{attrs:{id:"parameters-153"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-153"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-208"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-208"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The discrete probability distribution of next state.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-distribution-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-distribution-11"}},[t._v("#")]),t._v(" get_observation_distribution "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_observation_distribution",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"Distribution[D.T_agent[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the probability distribution of the observation given a state and action.")]),t._v(" "),a("p",[t._v("In mathematical terms (discrete case), given an action "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.197ex",height:"1.02ex",viewBox:"0 -441 529 451"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})])])])])]),t._v(", this function represents: "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.078ex",height:"2.262ex",viewBox:"0 -750 4012.7 1000"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"50",d:"M287 628Q287 635 230 637Q206 637 199 638T192 648Q192 649 194 659Q200 679 203 681T397 683Q587 682 600 680Q664 669 707 631T751 530Q751 453 685 389Q616 321 507 303Q500 302 402 301H307L277 182Q247 66 247 59Q247 55 248 54T255 50T272 48T305 46H336Q342 37 342 35Q342 19 335 5Q330 0 319 0Q316 0 282 1T182 2Q120 2 87 2T51 1Q33 1 33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM645 554Q645 567 643 575T634 597T609 619T560 635Q553 636 480 637Q463 637 445 637T416 636T404 636Q391 635 386 627Q384 621 367 550T332 412T314 344Q314 342 395 342H407H430Q542 342 590 392Q617 419 631 471T645 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(751, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(1140, 0)"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1903, 0)"}},[a("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(2181, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2650, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(3094.7, 0)"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3623.7, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(",\nwhere "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.05ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.726ex",height:"1.643ex",viewBox:"0 -704 763 726"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})])])])])]),t._v(" is the random variable of the observation.")],1),t._v(" "),a("h4",{attrs:{id:"parameters-154"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-154"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-209"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-209"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-space-16"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-16"}},[t._v("#")]),t._v(" get_observation_space "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_observation_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) observation space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("PartiallyObservable.get_observation_space()")]),t._v(" internally\ncalls "),a("code",[t._v("PartiallyObservable._get_observation_space_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the observation space is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-210"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-210"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The observation space.")]),t._v(" "),a("h3",{attrs:{id:"get-transition-value-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-transition-value-3"}},[t._v("#")]),t._v(" get_transition_value "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_transition_value",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"},{name:"next_state",default:"None",annotation:"Optional[D.T_state]"}],return:"D.T_agent[Value[D.T_value]]"}}}),t._v(" "),a("p",[t._v("Get the value (reward or cost) of a transition.")]),t._v(" "),a("p",[t._v("The transition to consider is defined by the function parameters.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("If this function never depends on the next_state parameter for its computation, it is recommended to\nindicate it by overriding "),a("code",[t._v("UncertainTransitions._is_transition_value_dependent_on_next_state_()")]),t._v(" to return\nFalse. This information can then be exploited by solvers to avoid computing next state to evaluate a\ntransition value (more efficient).")])]),t._v(" "),a("h4",{attrs:{id:"parameters-155"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-155"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")]),t._v(" "),a("li",[a("strong",[t._v("next_state")]),t._v(": The next state in which the transition ends (if needed for the computation).")])]),t._v(" "),a("h4",{attrs:{id:"returns-211"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-211"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The transition value (reward or cost).")]),t._v(" "),a("h3",{attrs:{id:"is-action-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-action-11"}},[t._v("#")]),t._v(" is_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_action",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an event is an action (i.e. a controllable event for the agents).")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\naction space provided by "),a("code",[t._v("Events.get_action_space()")]),t._v(", but it can be overridden for faster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-156"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-156"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("event")]),t._v(": The event to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-212"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-212"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is an action (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-applicable-action-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-11"}},[t._v("#")]),t._v(" is_applicable_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_applicable_action",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an action is applicable in the given memory (state or history), or in the internal one if\nomitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.is_applicable_action()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_applicable_action()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead\nof the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-157"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-157"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-213"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-213"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the action is applicable (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-enabled-event-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-11"}},[t._v("#")]),t._v(" is_enabled_event "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_enabled_event",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an uncontrollable event is enabled in the given memory (state or history), or in the\ninternal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.is_enabled_event()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_enabled_event()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead of\nthe memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-158"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-158"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-214"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-214"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is enabled (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-observation-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-observation-11"}},[t._v("#")]),t._v(" is_observation "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_observation",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that an observation indeed belongs to the domain observation space.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\nobservation space provided by "),a("code",[t._v("PartiallyObservable.get_observation_space()")]),t._v(", but it can be overridden for\nfaster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-159"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-159"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-215"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-215"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the observation belongs to the domain observation space (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-terminal-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-terminal-3"}},[t._v("#")]),t._v(" is_terminal "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_terminal",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"}],return:"D.T_agent[D.T_predicate]"}}}),t._v(" "),a("p",[t._v("Indicate whether a state is terminal.")]),t._v(" "),a("p",[t._v("A terminal state is a state with no outgoing transition (except to itself with value 0).")]),t._v(" "),a("h4",{attrs:{id:"parameters-160"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-160"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-216"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-216"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the state is terminal (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-transition-value-dependent-on-next-state-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-transition-value-dependent-on-next-state-4"}},[t._v("#")]),t._v(" is_transition_value_dependent_on_next_state "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_transition_value_dependent_on_next_state",sig:{params:[{name:"self"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether get_transition_value() requires the next_state parameter for its computation (cached).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("UncertainTransitions.is_transition_value_dependent_on_next_state()")]),t._v(" internally\ncalls "),a("code",[t._v("UncertainTransitions._is_transition_value_dependent_on_next_state_()")]),t._v(" the first time and automatically\ncaches its value to make future calls more efficient (since the returned value is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-217"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-217"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the transition value computation depends on next_state (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"reset-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#reset-7"}},[t._v("#")]),t._v(" reset "),a("Badge",{attrs:{text:"Initializable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"reset",sig:{params:[{name:"self"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Reset the state of the environment and return an initial observation.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Initializable.reset()")]),t._v(" provides some boilerplate code and internally calls "),a("code",[t._v("Initializable._reset()")]),t._v("\n(which returns an initial state). The boilerplate code automatically stores the initial state into the "),a("code",[t._v("_memory")]),t._v("\nattribute and samples a corresponding observation.")]),t._v(" "),a("h4",{attrs:{id:"returns-218"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-218"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("An initial observation.")]),t._v(" "),a("h3",{attrs:{id:"sample-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample-5"}},[t._v("#")]),t._v(" sample "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"sample",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Sample one transition of the simulator's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Simulation.sample()")]),t._v(" provides some boilerplate code and internally calls "),a("code",[t._v("Simulation._sample()")]),t._v("\n(which returns a transition outcome). The boilerplate code automatically samples an observation corresponding to\nthe sampled next state.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing simulator needs to be wrapped instead of implemented fully in scikit-decide (e.g. a\nsimulator), it is recommended to overwrite "),a("code",[t._v("Simulation.sample()")]),t._v(" to call the external simulator and not use\nthe "),a("code",[t._v("Simulation._sample()")]),t._v(" helper function.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-161"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-161"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-219"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-219"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of the sampled transition.")]),t._v(" "),a("h3",{attrs:{id:"set-memory-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#set-memory-5"}},[t._v("#")]),t._v(" set_memory "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"set_memory",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"None"}}}),t._v(" "),a("p",[t._v("Set internal memory attribute "),a("code",[t._v("_memory")]),t._v(" to given one.")]),t._v(" "),a("p",[t._v('This can be useful to set a specific "starting point" before doing a rollout with successive '),a("code",[t._v("Environment.step()")]),t._v("\ncalls.")]),t._v(" "),a("h4",{attrs:{id:"parameters-162"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-162"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to set internally.")])]),t._v(" "),a("h4",{attrs:{id:"example-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#example-5"}},[t._v("#")]),t._v(" Example")]),t._v(" "),a("div",{staticClass:"language-python extra-class"},[a("pre",{pre:!0,attrs:{class:"language-python"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Set simulation_domain memory to my_state (assuming Markovian domain)")]),t._v("\nsimulation_domain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("set_memory"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("my_state"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Start a 100-steps rollout from here (applying my_action at every step)")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("for")]),t._v(" _ "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("in")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("range")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n simulation_domain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("step"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("my_action"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("h3",{attrs:{id:"solve-with-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#solve-with-6"}},[t._v("#")]),t._v(" solve_with "),a("Badge",{attrs:{text:"Domain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"solve_with",sig:{params:[{name:"solver",annotation:"Solver"},{name:"domain_factory",default:"None",annotation:"Optional[Callable[[], Domain]]"},{name:"load_path",default:"None",annotation:"Optional[str]"}],return:"Solver"}}}),t._v(" "),a("p",[t._v("Solve the domain with a new or loaded solver and return it auto-cast to the level of the domain.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Solver.check_domain()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Solver._check_domain_additional()")]),t._v(' (which returns True by default but can be overridden to define\nspecific checks in addition to the "domain requirements"). The boilerplate code automatically checks whether all\ndomain requirements are met.')]),t._v(" "),a("h4",{attrs:{id:"parameters-163"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-163"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("solver")]),t._v(": The solver.")]),t._v(" "),a("li",[a("strong",[t._v("domain_factory")]),t._v(": A callable with no argument returning the domain to solve (factory is the domain class if None).")]),t._v(" "),a("li",[a("strong",[t._v("load_path")]),t._v(": The path to restore the solver state from (if None, the solving process will be launched instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-220"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-220"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The new solver (auto-cast to the level of the domain).")]),t._v(" "),a("h3",{attrs:{id:"step-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#step-11"}},[t._v("#")]),t._v(" step "),a("Badge",{attrs:{text:"Environment",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"step",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Run one step of the environment's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Environment.step()")]),t._v(" provides some boilerplate code and internally calls "),a("code",[t._v("Environment._step()")]),t._v(" (which\nreturns a transition outcome). The boilerplate code automatically stores next state into the "),a("code",[t._v("_memory")]),t._v(" attribute\nand samples a corresponding observation.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing environment needs to be wrapped instead of implemented fully in scikit-decide (e.g. compiled\nATARI games), it is recommended to overwrite "),a("code",[t._v("Environment.step()")]),t._v(" to call the external environment and not\nuse the "),a("code",[t._v("Environment._step()")]),t._v(" helper function.")])]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Before calling "),a("code",[t._v("Environment.step()")]),t._v(" the first time or when the end of an episode is\nreached, "),a("code",[t._v("Initializable.reset()")]),t._v(" must be called to reset the environment's state.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-164"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-164"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the current memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-221"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-221"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of this step.")]),t._v(" "),a("h3",{attrs:{id:"check-value-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#check-value-12"}},[t._v("#")]),t._v(" _check_value "),a("Badge",{attrs:{text:"Rewards",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_check_value",sig:{params:[{name:"self"},{name:"value",annotation:"Value[D.T_value]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that a value is compliant with its reward specification.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("This function returns always True by default because any kind of reward should be accepted at this level.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-165"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-165"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("value")]),t._v(": The value to check.")])]),t._v(" "),a("h4",{attrs:{id:"returns-222"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-222"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the value is compliant (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"get-action-space-17"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-17"}},[t._v("#")]),t._v(" _get_action_space "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_action_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) domain action space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._get_action_space()")]),t._v(" internally calls "),a("code",[t._v("Events._get_action_space_()")]),t._v(" the first time and\nautomatically caches its value to make future calls more efficient (since the action space is assumed to be\nconstant).")]),t._v(" "),a("h4",{attrs:{id:"returns-223"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-223"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The action space.")]),t._v(" "),a("h3",{attrs:{id:"get-action-space-18"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-18"}},[t._v("#")]),t._v(" _get_action_space_ "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_action_space_",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the domain action space (finite or infinite set).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._get_action_space()")]),t._v(", the difference being that the\nresult is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-224"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-224"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The action space.")]),t._v(" "),a("h3",{attrs:{id:"get-applicable-actions-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-12"}},[t._v("#")]),t._v(" _get_applicable_actions "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_applicable_actions",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history), or in\nthe internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._get_applicable_actions()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_applicable_actions_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-166"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-166"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-225"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-225"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of applicable actions.")]),t._v(" "),a("h3",{attrs:{id:"get-applicable-actions-from-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-from-6"}},[t._v("#")]),t._v(" _get_applicable_actions_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_applicable_actions_from",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._get_applicable_actions()")]),t._v(", the difference being that\nthe memory parameter is mandatory here.")]),t._v(" "),a("h4",{attrs:{id:"parameters-167"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-167"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-226"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-226"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of applicable actions.")]),t._v(" "),a("h3",{attrs:{id:"get-enabled-events-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-12"}},[t._v("#")]),t._v(" _get_enabled_events "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_enabled_events",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"Space[D.T_event]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory), or in the internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._get_enabled_events()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_enabled_events_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-168"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-168"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-227"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-227"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of enabled events.")]),t._v(" "),a("h3",{attrs:{id:"get-enabled-events-from-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-from-6"}},[t._v("#")]),t._v(" _get_enabled_events_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_enabled_events_from",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"Space[D.T_event]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._get_enabled_events()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("h4",{attrs:{id:"parameters-169"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-169"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-228"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-228"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of enabled events.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-distribution-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-distribution-5"}},[t._v("#")]),t._v(" _get_initial_state_distribution "),a("Badge",{attrs:{text:"UncertainInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_initial_state_distribution",sig:{params:[{name:"self"}],return:"Distribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("Get the (cached) probability distribution of initial states.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("UncertainInitialized._get_initial_state_distribution()")]),t._v(" internally\ncalls "),a("code",[t._v("UncertainInitialized._get_initial_state_distribution_()")]),t._v(" the first time and automatically caches its value\nto make future calls more efficient (since the initial state distribution is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-229"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-229"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of initial states.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-distribution-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-distribution-6"}},[t._v("#")]),t._v(" _get_initial_state_distribution_ "),a("Badge",{attrs:{text:"UncertainInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_initial_state_distribution_",sig:{params:[{name:"self"}],return:"Distribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("Get the probability distribution of initial states.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("UncertainInitialized._get_initial_state_distribution()")]),t._v(", the\ndifference being that the result is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-230"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-230"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of initial states.")]),t._v(" "),a("h3",{attrs:{id:"get-memory-maxlen-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-memory-maxlen-10"}},[t._v("#")]),t._v(" _get_memory_maxlen "),a("Badge",{attrs:{text:"History",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_memory_maxlen",sig:{params:[{name:"self"}],return:"int"}}}),t._v(" "),a("p",[t._v("Get the (cached) memory max length.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("FiniteHistory._get_memory_maxlen()")]),t._v(" internally calls "),a("code",[t._v("FiniteHistory._get_memory_maxlen_()")]),t._v(" the first\ntime and automatically caches its value to make future calls more efficient (since the memory max length is\nassumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-231"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-231"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The memory max length.")]),t._v(" "),a("h3",{attrs:{id:"get-memory-maxlen-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-memory-maxlen-11"}},[t._v("#")]),t._v(" _get_memory_maxlen_ "),a("Badge",{attrs:{text:"FiniteHistory",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_memory_maxlen_",sig:{params:[{name:"self"}],return:"int"}}}),t._v(" "),a("p",[t._v("Get the memory max length.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("FiniteHistory._get_memory_maxlen()")]),t._v(", the difference being that\nthe result is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-232"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-232"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The memory max length.")]),t._v(" "),a("h3",{attrs:{id:"get-next-state-distribution-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-next-state-distribution-4"}},[t._v("#")]),t._v(" _get_next_state_distribution "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_next_state_distribution",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"DiscreteDistribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("Get the discrete probability distribution of next state given a memory and action.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("In the Markovian case (memory only holds last state "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.061ex",height:"1.023ex",viewBox:"0 -442 469 452"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})])])])])]),t._v("), given an action "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.197ex",height:"1.02ex",viewBox:"0 -441 529 451"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})])])])])]),t._v(", this function can\nbe mathematically represented by "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.292ex",height:"2.283ex",viewBox:"0 -759 4107.1 1009"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"50",d:"M287 628Q287 635 230 637Q206 637 199 638T192 648Q192 649 194 659Q200 679 203 681T397 683Q587 682 600 680Q664 669 707 631T751 530Q751 453 685 389Q616 321 507 303Q500 302 402 301H307L277 182Q247 66 247 59Q247 55 248 54T255 50T272 48T305 46H336Q342 37 342 35Q342 19 335 5Q330 0 319 0Q316 0 282 1T182 2Q120 2 87 2T51 1Q33 1 33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM645 554Q645 567 643 575T634 597T609 619T560 635Q553 636 480 637Q463 637 445 637T416 636T404 636Q391 635 386 627Q384 621 367 550T332 412T314 344Q314 342 395 342H407H430Q542 342 590 392Q617 419 631 471T645 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(751, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"msup",transform:"translate(1140, 0)"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"53",d:"M308 24Q367 24 416 76T466 197Q466 260 414 284Q308 311 278 321T236 341Q176 383 176 462Q176 523 208 573T273 648Q302 673 343 688T407 704H418H425Q521 704 564 640Q565 640 577 653T603 682T623 704Q624 704 627 704T632 705Q645 705 645 698T617 577T585 459T569 456Q549 456 549 465Q549 471 550 475Q550 478 551 494T553 520Q553 554 544 579T526 616T501 641Q465 662 419 662Q362 662 313 616T263 510Q263 480 278 458T319 427Q323 425 389 408T456 390Q490 379 522 342T554 242Q554 216 546 186Q541 164 528 137T492 78T426 18T332 -20Q320 -22 298 -22Q199 -22 144 33L134 44L106 13Q83 -14 78 -18T65 -22Q52 -22 52 -14Q52 -11 110 221Q112 227 130 227H143Q149 221 149 216Q149 214 148 207T144 186T142 153Q144 114 160 87T203 47T255 29T308 24Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(613, 363) scale(0.707)"}},[a("path",{attrs:{"data-c":"2032",d:"M79 43Q73 43 52 49T30 61Q30 68 85 293T146 528Q161 560 198 560Q218 560 240 545T262 501Q262 496 260 486Q259 479 173 263T84 45T79 43Z"}})])]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1997.5, 0)"}},[a("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(2275.5, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2744.5, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(3189.1, 0)"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3718.1, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(", where "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.05ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.94ex",height:"1.767ex",viewBox:"0 -759 857.5 781"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"msup"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"53",d:"M308 24Q367 24 416 76T466 197Q466 260 414 284Q308 311 278 321T236 341Q176 383 176 462Q176 523 208 573T273 648Q302 673 343 688T407 704H418H425Q521 704 564 640Q565 640 577 653T603 682T623 704Q624 704 627 704T632 705Q645 705 645 698T617 577T585 459T569 456Q549 456 549 465Q549 471 550 475Q550 478 551 494T553 520Q553 554 544 579T526 616T501 641Q465 662 419 662Q362 662 313 616T263 510Q263 480 278 458T319 427Q323 425 389 408T456 390Q490 379 522 342T554 242Q554 216 546 186Q541 164 528 137T492 78T426 18T332 -20Q320 -22 298 -22Q199 -22 144 33L134 44L106 13Q83 -14 78 -18T65 -22Q52 -22 52 -14Q52 -11 110 221Q112 227 130 227H143Q149 221 149 216Q149 214 148 207T144 186T142 153Q144 114 160 87T203 47T255 29T308 24Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(613, 363) scale(0.707)"}},[a("path",{attrs:{"data-c":"2032",d:"M79 43Q73 43 52 49T30 61Q30 68 85 293T146 528Q161 560 198 560Q218 560 240 545T262 501Q262 496 260 486Q259 479 173 263T84 45T79 43Z"}})])])])])])]),t._v(" is the next state random variable.")],1)]),t._v(" "),a("h4",{attrs:{id:"parameters-170"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-170"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-233"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-233"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The discrete probability distribution of next state.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-distribution-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-distribution-12"}},[t._v("#")]),t._v(" _get_observation_distribution "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation_distribution",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"Distribution[D.T_agent[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the probability distribution of the observation given a state and action.")]),t._v(" "),a("p",[t._v("In mathematical terms (discrete case), given an action "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.197ex",height:"1.02ex",viewBox:"0 -441 529 451"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})])])])])]),t._v(", this function represents: "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.078ex",height:"2.262ex",viewBox:"0 -750 4012.7 1000"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"50",d:"M287 628Q287 635 230 637Q206 637 199 638T192 648Q192 649 194 659Q200 679 203 681T397 683Q587 682 600 680Q664 669 707 631T751 530Q751 453 685 389Q616 321 507 303Q500 302 402 301H307L277 182Q247 66 247 59Q247 55 248 54T255 50T272 48T305 46H336Q342 37 342 35Q342 19 335 5Q330 0 319 0Q316 0 282 1T182 2Q120 2 87 2T51 1Q33 1 33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM645 554Q645 567 643 575T634 597T609 619T560 635Q553 636 480 637Q463 637 445 637T416 636T404 636Q391 635 386 627Q384 621 367 550T332 412T314 344Q314 342 395 342H407H430Q542 342 590 392Q617 419 631 471T645 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(751, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(1140, 0)"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1903, 0)"}},[a("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(2181, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2650, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(3094.7, 0)"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3623.7, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(",\nwhere "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.05ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.726ex",height:"1.643ex",viewBox:"0 -704 763 726"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})])])])])]),t._v(" is the random variable of the observation.")],1),t._v(" "),a("h4",{attrs:{id:"parameters-171"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-171"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-234"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-234"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-space-17"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-17"}},[t._v("#")]),t._v(" _get_observation_space "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) observation space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(" internally\ncalls "),a("code",[t._v("PartiallyObservable._get_observation_space_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the observation space is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-235"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-235"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The observation space.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-space-18"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-18"}},[t._v("#")]),t._v(" _get_observation_space_ "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation_space_",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the observation space (finite or infinite set).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(", the difference\nbeing that the result is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-236"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-236"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The observation space.")]),t._v(" "),a("h3",{attrs:{id:"get-transition-value-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-transition-value-4"}},[t._v("#")]),t._v(" _get_transition_value "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_transition_value",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"},{name:"next_state",default:"None",annotation:"Optional[D.T_state]"}],return:"D.T_agent[Value[D.T_value]]"}}}),t._v(" "),a("p",[t._v("Get the value (reward or cost) of a transition.")]),t._v(" "),a("p",[t._v("The transition to consider is defined by the function parameters.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("If this function never depends on the next_state parameter for its computation, it is recommended to\nindicate it by overriding "),a("code",[t._v("UncertainTransitions._is_transition_value_dependent_on_next_state_()")]),t._v(" to return\nFalse. This information can then be exploited by solvers to avoid computing next state to evaluate a\ntransition value (more efficient).")])]),t._v(" "),a("h4",{attrs:{id:"parameters-172"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-172"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")]),t._v(" "),a("li",[a("strong",[t._v("next_state")]),t._v(": The next state in which the transition ends (if needed for the computation).")])]),t._v(" "),a("h4",{attrs:{id:"returns-237"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-237"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The transition value (reward or cost).")]),t._v(" "),a("h3",{attrs:{id:"init-memory-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#init-memory-6"}},[t._v("#")]),t._v(" _init_memory "),a("Badge",{attrs:{text:"History",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_init_memory",sig:{params:[{name:"self"},{name:"state",default:"None",annotation:"Optional[D.T_state]"}],return:"D.T_memory[D.T_state]"}}}),t._v(" "),a("p",[t._v("Initialize memory (possibly with a state) according to its specification and return it.")]),t._v(" "),a("p",[t._v("This function is automatically called by "),a("code",[t._v("Initializable._reset()")]),t._v(" to reinitialize the internal memory whenever\nthe domain is used as an environment.")]),t._v(" "),a("h4",{attrs:{id:"parameters-173"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-173"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": An optional state to initialize the memory with (typically the initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-238"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-238"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The new initialized memory.")]),t._v(" "),a("h3",{attrs:{id:"is-action-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-action-12"}},[t._v("#")]),t._v(" _is_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_action",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an event is an action (i.e. a controllable event for the agents).")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\naction space provided by "),a("code",[t._v("Events._get_action_space()")]),t._v(", but it can be overridden for faster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-174"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-174"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("event")]),t._v(": The event to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-239"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-239"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is an action (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-applicable-action-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-12"}},[t._v("#")]),t._v(" _is_applicable_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_applicable_action",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an action is applicable in the given memory (state or history), or in the internal one if\nomitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._is_applicable_action()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_applicable_action_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-175"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-175"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-240"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-240"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the action is applicable (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-applicable-action-from-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-from-6"}},[t._v("#")]),t._v(" _is_applicable_action_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_applicable_action_from",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an action is applicable in the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._is_applicable_action()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the space of\napplicable actions provided by "),a("code",[t._v("Events._get_applicable_actions_from()")]),t._v(", but it can be overridden for faster\nimplementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-176"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-176"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-241"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-241"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the action is applicable (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-enabled-event-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-12"}},[t._v("#")]),t._v(" _is_enabled_event "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_enabled_event",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an uncontrollable event is enabled in the given memory (state or history), or in the\ninternal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._is_enabled_event()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_enabled_event_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead\nof the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-177"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-177"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-242"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-242"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is enabled (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-enabled-event-from-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-from-6"}},[t._v("#")]),t._v(" _is_enabled_event_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_enabled_event_from",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an event is enabled in the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._is_enabled_event()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the space of\nenabled events provided by "),a("code",[t._v("Events._get_enabled_events_from()")]),t._v(", but it can be overridden for faster\nimplementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-178"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-178"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-243"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-243"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is enabled (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-observation-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-observation-12"}},[t._v("#")]),t._v(" _is_observation "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_observation",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that an observation indeed belongs to the domain observation space.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\nobservation space provided by "),a("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(", but it can be overridden for\nfaster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-179"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-179"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-244"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-244"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the observation belongs to the domain observation space (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-terminal-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-terminal-4"}},[t._v("#")]),t._v(" _is_terminal "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_terminal",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"}],return:"D.T_agent[D.T_predicate]"}}}),t._v(" "),a("p",[t._v("Indicate whether a state is terminal.")]),t._v(" "),a("p",[t._v("A terminal state is a state with no outgoing transition (except to itself with value 0).")]),t._v(" "),a("h4",{attrs:{id:"parameters-180"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-180"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-245"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-245"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the state is terminal (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-transition-value-dependent-on-next-state-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-transition-value-dependent-on-next-state-5"}},[t._v("#")]),t._v(" _is_transition_value_dependent_on_next_state "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_transition_value_dependent_on_next_state",sig:{params:[{name:"self"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether _get_transition_value() requires the next_state parameter for its computation (cached).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("UncertainTransitions._is_transition_value_dependent_on_next_state()")]),t._v(" internally\ncalls "),a("code",[t._v("UncertainTransitions._is_transition_value_dependent_on_next_state_()")]),t._v(" the first time and automatically\ncaches its value to make future calls more efficient (since the returned value is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-246"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-246"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the transition value computation depends on next_state (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-transition-value-dependent-on-next-state-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-transition-value-dependent-on-next-state-6"}},[t._v("#")]),t._v(" _is_transition_value_dependent_on_next_state_ "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_transition_value_dependent_on_next_state_",sig:{params:[{name:"self"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether _get_transition_value() requires the next_state parameter for its computation.")]),t._v(" "),a("p",[t._v("This is a helper function called by default\nfrom "),a("code",[t._v("UncertainTransitions._is_transition_value_dependent_on_next_state()")]),t._v(", the difference being that the result\nis not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-247"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-247"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the transition value computation depends on next_state (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"reset-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#reset-8"}},[t._v("#")]),t._v(" _reset "),a("Badge",{attrs:{text:"Initializable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_reset",sig:{params:[{name:"self"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Reset the state of the environment and return an initial observation.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Initializable._reset()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Initializable._state_reset()")]),t._v(" (which returns an initial state). The boilerplate code automatically stores\nthe initial state into the "),a("code",[t._v("_memory")]),t._v(" attribute and samples a corresponding observation.")]),t._v(" "),a("h4",{attrs:{id:"returns-248"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-248"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("An initial observation.")]),t._v(" "),a("h3",{attrs:{id:"sample-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample-6"}},[t._v("#")]),t._v(" _sample "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_sample",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Sample one transition of the simulator's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Simulation._sample()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Simulation._state_sample()")]),t._v(" (which returns a transition outcome). The boilerplate code automatically\nsamples an observation corresponding to the sampled next state.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing simulator needs to be wrapped instead of implemented fully in scikit-decide (e.g. a\nsimulator), it is recommended to overwrite "),a("code",[t._v("Simulation._sample()")]),t._v(" to call the external simulator and not use\nthe "),a("code",[t._v("Simulation._state_sample()")]),t._v(" helper function.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-181"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-181"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-249"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-249"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of the sampled transition.")]),t._v(" "),a("h3",{attrs:{id:"set-memory-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#set-memory-6"}},[t._v("#")]),t._v(" _set_memory "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_set_memory",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"None"}}}),t._v(" "),a("p",[t._v("Set internal memory attribute "),a("code",[t._v("_memory")]),t._v(" to given one.")]),t._v(" "),a("p",[t._v('This can be useful to set a specific "starting point" before doing a rollout with\nsuccessive '),a("code",[t._v("Environment._step()")]),t._v(" calls.")]),t._v(" "),a("h4",{attrs:{id:"parameters-182"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-182"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to set internally.")])]),t._v(" "),a("h4",{attrs:{id:"example-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#example-6"}},[t._v("#")]),t._v(" Example")]),t._v(" "),a("div",{staticClass:"language-python extra-class"},[a("pre",{pre:!0,attrs:{class:"language-python"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Set simulation_domain memory to my_state (assuming Markovian domain)")]),t._v("\nsimulation_domain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("_set_memory"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("my_state"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Start a 100-steps rollout from here (applying my_action at every step)")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("for")]),t._v(" _ "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("in")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("range")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n simulation_domain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("_step"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("my_action"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("h3",{attrs:{id:"state-reset-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#state-reset-4"}},[t._v("#")]),t._v(" _state_reset "),a("Badge",{attrs:{text:"Initializable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_state_reset",sig:{params:[{name:"self"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("Reset the state of the environment and return an initial state.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Initializable._reset()")]),t._v(". It focuses on the state level, as\nopposed to the observation one for the latter.")]),t._v(" "),a("h4",{attrs:{id:"returns-250"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-250"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("An initial state.")]),t._v(" "),a("h3",{attrs:{id:"state-sample-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#state-sample-3"}},[t._v("#")]),t._v(" _state_sample "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_state_sample",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"TransitionOutcome[D.T_state, D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Compute one sample of the transition's dynamics.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Simulation._sample()")]),t._v(". It focuses on the state level, as\nopposed to the observation one for the latter.")]),t._v(" "),a("h4",{attrs:{id:"parameters-183"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-183"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-251"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-251"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The transition outcome of the sampled transition.")]),t._v(" "),a("h3",{attrs:{id:"state-step-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#state-step-6"}},[t._v("#")]),t._v(" _state_step "),a("Badge",{attrs:{text:"Environment",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_state_step",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"TransitionOutcome[D.T_state, D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Compute one step of the transition's dynamics.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Environment._step()")]),t._v(". It focuses on the state level, as opposed\nto the observation one for the latter.")]),t._v(" "),a("h4",{attrs:{id:"parameters-184"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-184"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the current memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-252"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-252"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The transition outcome of this step.")]),t._v(" "),a("h3",{attrs:{id:"step-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#step-12"}},[t._v("#")]),t._v(" _step "),a("Badge",{attrs:{text:"Environment",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_step",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Run one step of the environment's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Environment._step()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Environment._state_step()")]),t._v(" (which returns a transition outcome). The boilerplate code automatically stores\nnext state into the "),a("code",[t._v("_memory")]),t._v(" attribute and samples a corresponding observation.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing environment needs to be wrapped instead of implemented fully in scikit-decide (e.g. compiled\nATARI games), it is recommended to overwrite "),a("code",[t._v("Environment._step()")]),t._v(" to call the external environment and not\nuse the "),a("code",[t._v("Environment._state_step()")]),t._v(" helper function.")])]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Before calling "),a("code",[t._v("Environment._step()")]),t._v(" the first time or when the end of an episode is\nreached, "),a("code",[t._v("Initializable._reset()")]),t._v(" must be called to reset the environment's state.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-185"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-185"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the current memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-253"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-253"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of this step.")]),t._v(" "),a("h2",{attrs:{id:"goalmdpdomain"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#goalmdpdomain"}},[t._v("#")]),t._v(" GoalMDPDomain")]),t._v(" "),a("p",[t._v("This is a typical Goal Markov Decision Process domain class.")]),t._v(" "),a("p",[t._v("This helper class can be used as an alternate base class for domains, inheriting the following:")]),t._v(" "),a("ul",[a("li",[t._v("Domain")]),t._v(" "),a("li",[t._v("SingleAgent")]),t._v(" "),a("li",[t._v("Sequential")]),t._v(" "),a("li",[t._v("EnumerableTransitions")]),t._v(" "),a("li",[t._v("Actions")]),t._v(" "),a("li",[t._v("Goals")]),t._v(" "),a("li",[t._v("DeterministicInitialized")]),t._v(" "),a("li",[t._v("Markovian")]),t._v(" "),a("li",[t._v("FullyObservable")]),t._v(" "),a("li",[t._v("PositiveCosts")])]),t._v(" "),a("p",[t._v("Typical use:")]),t._v(" "),a("div",{staticClass:"language-python extra-class"},[a("pre",{pre:!0,attrs:{class:"language-python"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("class")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("D")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("GoalMDPDomain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("It is also possible to refine any alternate base class, like for instance:")]),t._v(" "),a("div",{staticClass:"language-python extra-class"},[a("pre",{pre:!0,attrs:{class:"language-python"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("class")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("D")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("RLDomain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" FullyObservable"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])])]),t._v(" "),a("h3",{attrs:{id:"check-value-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#check-value-13"}},[t._v("#")]),t._v(" check_value "),a("Badge",{attrs:{text:"Rewards",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"check_value",sig:{params:[{name:"self"},{name:"value",annotation:"Value[D.T_value]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that a value is compliant with its reward specification.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("This function returns always True by default because any kind of reward should be accepted at this level.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-186"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-186"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("value")]),t._v(": The value to check.")])]),t._v(" "),a("h4",{attrs:{id:"returns-254"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-254"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the value is compliant (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"get-action-space-19"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-19"}},[t._v("#")]),t._v(" get_action_space "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_action_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) domain action space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.get_action_space()")]),t._v(" internally calls "),a("code",[t._v("Events._get_action_space_()")]),t._v(" the first time and\nautomatically caches its value to make future calls more efficient (since the action space is assumed to be\nconstant).")]),t._v(" "),a("h4",{attrs:{id:"returns-255"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-255"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The action space.")]),t._v(" "),a("h3",{attrs:{id:"get-applicable-actions-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-13"}},[t._v("#")]),t._v(" get_applicable_actions "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_applicable_actions",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history), or in\nthe internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.get_applicable_actions()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_applicable_actions()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-187"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-187"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-256"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-256"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of applicable actions.")]),t._v(" "),a("h3",{attrs:{id:"get-enabled-events-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-13"}},[t._v("#")]),t._v(" get_enabled_events "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_enabled_events",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"Space[D.T_event]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory), or in the internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.get_enabled_events()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_enabled_events()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead of\nthe memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-188"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-188"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-257"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-257"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of enabled events.")]),t._v(" "),a("h3",{attrs:{id:"get-goals"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-goals"}},[t._v("#")]),t._v(" get_goals "),a("Badge",{attrs:{text:"Goals",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_goals",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) domain goals space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Goals.get_goals()")]),t._v(" internally calls "),a("code",[t._v("Goals._get_goals_()")]),t._v(" the first time and automatically caches its\nvalue to make future calls more efficient (since the goals space is assumed to be constant).")]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Goal states are assumed to be fully observable (i.e. observation = state) so that there is never uncertainty\nabout whether the goal has been reached or not. This assumption guarantees that any policy that does not\nreach the goal with certainty incurs in infinite expected cost. - "),a("em",[t._v("Geffner, 2013: A Concise Introduction to\nModels and Methods for Automated Planning")])])]),t._v(" "),a("h4",{attrs:{id:"returns-258"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-258"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The goals space.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-4"}},[t._v("#")]),t._v(" get_initial_state "),a("Badge",{attrs:{text:"DeterministicInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_initial_state",sig:{params:[{name:"self"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("Get the (cached) initial state.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("DeterministicInitialized.get_initial_state()")]),t._v(" internally\ncalls "),a("code",[t._v("DeterministicInitialized._get_initial_state_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the initial state is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-259"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-259"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The initial state.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-distribution-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-distribution-7"}},[t._v("#")]),t._v(" get_initial_state_distribution "),a("Badge",{attrs:{text:"UncertainInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_initial_state_distribution",sig:{params:[{name:"self"}],return:"Distribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("Get the (cached) probability distribution of initial states.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("UncertainInitialized.get_initial_state_distribution()")]),t._v(" internally\ncalls "),a("code",[t._v("UncertainInitialized._get_initial_state_distribution_()")]),t._v(" the first time and automatically caches its value\nto make future calls more efficient (since the initial state distribution is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-260"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-260"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of initial states.")]),t._v(" "),a("h3",{attrs:{id:"get-next-state-distribution-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-next-state-distribution-5"}},[t._v("#")]),t._v(" get_next_state_distribution "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_next_state_distribution",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"DiscreteDistribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("Get the discrete probability distribution of next state given a memory and action.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("In the Markovian case (memory only holds last state "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.061ex",height:"1.023ex",viewBox:"0 -442 469 452"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})])])])])]),t._v("), given an action "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.197ex",height:"1.02ex",viewBox:"0 -441 529 451"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})])])])])]),t._v(", this function can\nbe mathematically represented by "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.292ex",height:"2.283ex",viewBox:"0 -759 4107.1 1009"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"50",d:"M287 628Q287 635 230 637Q206 637 199 638T192 648Q192 649 194 659Q200 679 203 681T397 683Q587 682 600 680Q664 669 707 631T751 530Q751 453 685 389Q616 321 507 303Q500 302 402 301H307L277 182Q247 66 247 59Q247 55 248 54T255 50T272 48T305 46H336Q342 37 342 35Q342 19 335 5Q330 0 319 0Q316 0 282 1T182 2Q120 2 87 2T51 1Q33 1 33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM645 554Q645 567 643 575T634 597T609 619T560 635Q553 636 480 637Q463 637 445 637T416 636T404 636Q391 635 386 627Q384 621 367 550T332 412T314 344Q314 342 395 342H407H430Q542 342 590 392Q617 419 631 471T645 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(751, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"msup",transform:"translate(1140, 0)"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"53",d:"M308 24Q367 24 416 76T466 197Q466 260 414 284Q308 311 278 321T236 341Q176 383 176 462Q176 523 208 573T273 648Q302 673 343 688T407 704H418H425Q521 704 564 640Q565 640 577 653T603 682T623 704Q624 704 627 704T632 705Q645 705 645 698T617 577T585 459T569 456Q549 456 549 465Q549 471 550 475Q550 478 551 494T553 520Q553 554 544 579T526 616T501 641Q465 662 419 662Q362 662 313 616T263 510Q263 480 278 458T319 427Q323 425 389 408T456 390Q490 379 522 342T554 242Q554 216 546 186Q541 164 528 137T492 78T426 18T332 -20Q320 -22 298 -22Q199 -22 144 33L134 44L106 13Q83 -14 78 -18T65 -22Q52 -22 52 -14Q52 -11 110 221Q112 227 130 227H143Q149 221 149 216Q149 214 148 207T144 186T142 153Q144 114 160 87T203 47T255 29T308 24Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(613, 363) scale(0.707)"}},[a("path",{attrs:{"data-c":"2032",d:"M79 43Q73 43 52 49T30 61Q30 68 85 293T146 528Q161 560 198 560Q218 560 240 545T262 501Q262 496 260 486Q259 479 173 263T84 45T79 43Z"}})])]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1997.5, 0)"}},[a("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(2275.5, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2744.5, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(3189.1, 0)"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3718.1, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(", where "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.05ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.94ex",height:"1.767ex",viewBox:"0 -759 857.5 781"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"msup"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"53",d:"M308 24Q367 24 416 76T466 197Q466 260 414 284Q308 311 278 321T236 341Q176 383 176 462Q176 523 208 573T273 648Q302 673 343 688T407 704H418H425Q521 704 564 640Q565 640 577 653T603 682T623 704Q624 704 627 704T632 705Q645 705 645 698T617 577T585 459T569 456Q549 456 549 465Q549 471 550 475Q550 478 551 494T553 520Q553 554 544 579T526 616T501 641Q465 662 419 662Q362 662 313 616T263 510Q263 480 278 458T319 427Q323 425 389 408T456 390Q490 379 522 342T554 242Q554 216 546 186Q541 164 528 137T492 78T426 18T332 -20Q320 -22 298 -22Q199 -22 144 33L134 44L106 13Q83 -14 78 -18T65 -22Q52 -22 52 -14Q52 -11 110 221Q112 227 130 227H143Q149 221 149 216Q149 214 148 207T144 186T142 153Q144 114 160 87T203 47T255 29T308 24Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(613, 363) scale(0.707)"}},[a("path",{attrs:{"data-c":"2032",d:"M79 43Q73 43 52 49T30 61Q30 68 85 293T146 528Q161 560 198 560Q218 560 240 545T262 501Q262 496 260 486Q259 479 173 263T84 45T79 43Z"}})])])])])])]),t._v(" is the next state random variable.")],1)]),t._v(" "),a("h4",{attrs:{id:"parameters-189"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-189"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-261"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-261"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The discrete probability distribution of next state.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-9"}},[t._v("#")]),t._v(" get_observation "),a("Badge",{attrs:{text:"TransformedObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_observation",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Get the deterministic observation given a state and action.")]),t._v(" "),a("h4",{attrs:{id:"parameters-190"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-190"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-262"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-262"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-distribution-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-distribution-13"}},[t._v("#")]),t._v(" get_observation_distribution "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_observation_distribution",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"Distribution[D.T_agent[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the probability distribution of the observation given a state and action.")]),t._v(" "),a("p",[t._v("In mathematical terms (discrete case), given an action "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.197ex",height:"1.02ex",viewBox:"0 -441 529 451"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})])])])])]),t._v(", this function represents: "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.078ex",height:"2.262ex",viewBox:"0 -750 4012.7 1000"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"50",d:"M287 628Q287 635 230 637Q206 637 199 638T192 648Q192 649 194 659Q200 679 203 681T397 683Q587 682 600 680Q664 669 707 631T751 530Q751 453 685 389Q616 321 507 303Q500 302 402 301H307L277 182Q247 66 247 59Q247 55 248 54T255 50T272 48T305 46H336Q342 37 342 35Q342 19 335 5Q330 0 319 0Q316 0 282 1T182 2Q120 2 87 2T51 1Q33 1 33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM645 554Q645 567 643 575T634 597T609 619T560 635Q553 636 480 637Q463 637 445 637T416 636T404 636Q391 635 386 627Q384 621 367 550T332 412T314 344Q314 342 395 342H407H430Q542 342 590 392Q617 419 631 471T645 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(751, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(1140, 0)"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1903, 0)"}},[a("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(2181, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2650, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(3094.7, 0)"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3623.7, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(",\nwhere "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.05ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.726ex",height:"1.643ex",viewBox:"0 -704 763 726"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})])])])])]),t._v(" is the random variable of the observation.")],1),t._v(" "),a("h4",{attrs:{id:"parameters-191"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-191"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-263"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-263"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-space-19"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-19"}},[t._v("#")]),t._v(" get_observation_space "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_observation_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) observation space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("PartiallyObservable.get_observation_space()")]),t._v(" internally\ncalls "),a("code",[t._v("PartiallyObservable._get_observation_space_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the observation space is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-264"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-264"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The observation space.")]),t._v(" "),a("h3",{attrs:{id:"get-transition-value-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-transition-value-5"}},[t._v("#")]),t._v(" get_transition_value "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_transition_value",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"},{name:"next_state",default:"None",annotation:"Optional[D.T_state]"}],return:"D.T_agent[Value[D.T_value]]"}}}),t._v(" "),a("p",[t._v("Get the value (reward or cost) of a transition.")]),t._v(" "),a("p",[t._v("The transition to consider is defined by the function parameters.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("If this function never depends on the next_state parameter for its computation, it is recommended to\nindicate it by overriding "),a("code",[t._v("UncertainTransitions._is_transition_value_dependent_on_next_state_()")]),t._v(" to return\nFalse. This information can then be exploited by solvers to avoid computing next state to evaluate a\ntransition value (more efficient).")])]),t._v(" "),a("h4",{attrs:{id:"parameters-192"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-192"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")]),t._v(" "),a("li",[a("strong",[t._v("next_state")]),t._v(": The next state in which the transition ends (if needed for the computation).")])]),t._v(" "),a("h4",{attrs:{id:"returns-265"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-265"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The transition value (reward or cost).")]),t._v(" "),a("h3",{attrs:{id:"is-action-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-action-13"}},[t._v("#")]),t._v(" is_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_action",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an event is an action (i.e. a controllable event for the agents).")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\naction space provided by "),a("code",[t._v("Events.get_action_space()")]),t._v(", but it can be overridden for faster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-193"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-193"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("event")]),t._v(": The event to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-266"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-266"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is an action (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-applicable-action-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-13"}},[t._v("#")]),t._v(" is_applicable_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_applicable_action",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an action is applicable in the given memory (state or history), or in the internal one if\nomitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.is_applicable_action()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_applicable_action()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead\nof the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-194"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-194"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-267"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-267"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the action is applicable (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-enabled-event-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-13"}},[t._v("#")]),t._v(" is_enabled_event "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_enabled_event",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an uncontrollable event is enabled in the given memory (state or history), or in the\ninternal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.is_enabled_event()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_enabled_event()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead of\nthe memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-195"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-195"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-268"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-268"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is enabled (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-goal"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-goal"}},[t._v("#")]),t._v(" is_goal "),a("Badge",{attrs:{text:"Goals",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_goal",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"D.T_agent[D.T_predicate]"}}}),t._v(" "),a("p",[t._v("Indicate whether an observation belongs to the goals.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\ngoals space provided by "),a("code",[t._v("Goals.get_goals()")]),t._v(", but it can be overridden for faster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-196"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-196"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-269"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-269"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the observation is a goal (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-observation-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-observation-13"}},[t._v("#")]),t._v(" is_observation "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_observation",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that an observation indeed belongs to the domain observation space.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\nobservation space provided by "),a("code",[t._v("PartiallyObservable.get_observation_space()")]),t._v(", but it can be overridden for\nfaster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-197"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-197"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-270"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-270"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the observation belongs to the domain observation space (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-terminal-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-terminal-5"}},[t._v("#")]),t._v(" is_terminal "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_terminal",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"}],return:"D.T_agent[D.T_predicate]"}}}),t._v(" "),a("p",[t._v("Indicate whether a state is terminal.")]),t._v(" "),a("p",[t._v("A terminal state is a state with no outgoing transition (except to itself with value 0).")]),t._v(" "),a("h4",{attrs:{id:"parameters-198"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-198"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-271"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-271"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the state is terminal (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-transition-value-dependent-on-next-state-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-transition-value-dependent-on-next-state-7"}},[t._v("#")]),t._v(" is_transition_value_dependent_on_next_state "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_transition_value_dependent_on_next_state",sig:{params:[{name:"self"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether get_transition_value() requires the next_state parameter for its computation (cached).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("UncertainTransitions.is_transition_value_dependent_on_next_state()")]),t._v(" internally\ncalls "),a("code",[t._v("UncertainTransitions._is_transition_value_dependent_on_next_state_()")]),t._v(" the first time and automatically\ncaches its value to make future calls more efficient (since the returned value is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-272"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-272"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the transition value computation depends on next_state (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"reset-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#reset-9"}},[t._v("#")]),t._v(" reset "),a("Badge",{attrs:{text:"Initializable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"reset",sig:{params:[{name:"self"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Reset the state of the environment and return an initial observation.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Initializable.reset()")]),t._v(" provides some boilerplate code and internally calls "),a("code",[t._v("Initializable._reset()")]),t._v("\n(which returns an initial state). The boilerplate code automatically stores the initial state into the "),a("code",[t._v("_memory")]),t._v("\nattribute and samples a corresponding observation.")]),t._v(" "),a("h4",{attrs:{id:"returns-273"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-273"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("An initial observation.")]),t._v(" "),a("h3",{attrs:{id:"sample-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample-7"}},[t._v("#")]),t._v(" sample "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"sample",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Sample one transition of the simulator's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Simulation.sample()")]),t._v(" provides some boilerplate code and internally calls "),a("code",[t._v("Simulation._sample()")]),t._v("\n(which returns a transition outcome). The boilerplate code automatically samples an observation corresponding to\nthe sampled next state.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing simulator needs to be wrapped instead of implemented fully in scikit-decide (e.g. a\nsimulator), it is recommended to overwrite "),a("code",[t._v("Simulation.sample()")]),t._v(" to call the external simulator and not use\nthe "),a("code",[t._v("Simulation._sample()")]),t._v(" helper function.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-199"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-199"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-274"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-274"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of the sampled transition.")]),t._v(" "),a("h3",{attrs:{id:"set-memory-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#set-memory-7"}},[t._v("#")]),t._v(" set_memory "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"set_memory",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"None"}}}),t._v(" "),a("p",[t._v("Set internal memory attribute "),a("code",[t._v("_memory")]),t._v(" to given one.")]),t._v(" "),a("p",[t._v('This can be useful to set a specific "starting point" before doing a rollout with successive '),a("code",[t._v("Environment.step()")]),t._v("\ncalls.")]),t._v(" "),a("h4",{attrs:{id:"parameters-200"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-200"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to set internally.")])]),t._v(" "),a("h4",{attrs:{id:"example-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#example-7"}},[t._v("#")]),t._v(" Example")]),t._v(" "),a("div",{staticClass:"language-python extra-class"},[a("pre",{pre:!0,attrs:{class:"language-python"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Set simulation_domain memory to my_state (assuming Markovian domain)")]),t._v("\nsimulation_domain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("set_memory"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("my_state"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Start a 100-steps rollout from here (applying my_action at every step)")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("for")]),t._v(" _ "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("in")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("range")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n simulation_domain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("step"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("my_action"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("h3",{attrs:{id:"solve-with-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#solve-with-7"}},[t._v("#")]),t._v(" solve_with "),a("Badge",{attrs:{text:"Domain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"solve_with",sig:{params:[{name:"solver",annotation:"Solver"},{name:"domain_factory",default:"None",annotation:"Optional[Callable[[], Domain]]"},{name:"load_path",default:"None",annotation:"Optional[str]"}],return:"Solver"}}}),t._v(" "),a("p",[t._v("Solve the domain with a new or loaded solver and return it auto-cast to the level of the domain.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Solver.check_domain()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Solver._check_domain_additional()")]),t._v(' (which returns True by default but can be overridden to define\nspecific checks in addition to the "domain requirements"). The boilerplate code automatically checks whether all\ndomain requirements are met.')]),t._v(" "),a("h4",{attrs:{id:"parameters-201"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-201"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("solver")]),t._v(": The solver.")]),t._v(" "),a("li",[a("strong",[t._v("domain_factory")]),t._v(": A callable with no argument returning the domain to solve (factory is the domain class if None).")]),t._v(" "),a("li",[a("strong",[t._v("load_path")]),t._v(": The path to restore the solver state from (if None, the solving process will be launched instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-275"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-275"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The new solver (auto-cast to the level of the domain).")]),t._v(" "),a("h3",{attrs:{id:"step-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#step-13"}},[t._v("#")]),t._v(" step "),a("Badge",{attrs:{text:"Environment",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"step",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Run one step of the environment's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Environment.step()")]),t._v(" provides some boilerplate code and internally calls "),a("code",[t._v("Environment._step()")]),t._v(" (which\nreturns a transition outcome). The boilerplate code automatically stores next state into the "),a("code",[t._v("_memory")]),t._v(" attribute\nand samples a corresponding observation.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing environment needs to be wrapped instead of implemented fully in scikit-decide (e.g. compiled\nATARI games), it is recommended to overwrite "),a("code",[t._v("Environment.step()")]),t._v(" to call the external environment and not\nuse the "),a("code",[t._v("Environment._step()")]),t._v(" helper function.")])]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Before calling "),a("code",[t._v("Environment.step()")]),t._v(" the first time or when the end of an episode is\nreached, "),a("code",[t._v("Initializable.reset()")]),t._v(" must be called to reset the environment's state.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-202"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-202"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the current memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-276"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-276"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of this step.")]),t._v(" "),a("h3",{attrs:{id:"check-value-14"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#check-value-14"}},[t._v("#")]),t._v(" _check_value "),a("Badge",{attrs:{text:"Rewards",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_check_value",sig:{params:[{name:"self"},{name:"value",annotation:"Value[D.T_value]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that a value is compliant with its cost specification (must be positive).")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("This function calls "),a("code",[t._v("PositiveCost._is_positive()")]),t._v(" to determine if a value is positive (can be overridden for\nadvanced value types).")])]),t._v(" "),a("h4",{attrs:{id:"parameters-203"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-203"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("value")]),t._v(": The value to check.")])]),t._v(" "),a("h4",{attrs:{id:"returns-277"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-277"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the value is compliant (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"get-action-space-20"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-20"}},[t._v("#")]),t._v(" _get_action_space "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_action_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) domain action space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._get_action_space()")]),t._v(" internally calls "),a("code",[t._v("Events._get_action_space_()")]),t._v(" the first time and\nautomatically caches its value to make future calls more efficient (since the action space is assumed to be\nconstant).")]),t._v(" "),a("h4",{attrs:{id:"returns-278"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-278"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The action space.")]),t._v(" "),a("h3",{attrs:{id:"get-action-space-21"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-21"}},[t._v("#")]),t._v(" _get_action_space_ "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_action_space_",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the domain action space (finite or infinite set).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._get_action_space()")]),t._v(", the difference being that the\nresult is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-279"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-279"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The action space.")]),t._v(" "),a("h3",{attrs:{id:"get-applicable-actions-14"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-14"}},[t._v("#")]),t._v(" _get_applicable_actions "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_applicable_actions",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history), or in\nthe internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._get_applicable_actions()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_applicable_actions_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-204"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-204"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-280"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-280"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of applicable actions.")]),t._v(" "),a("h3",{attrs:{id:"get-applicable-actions-from-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-from-7"}},[t._v("#")]),t._v(" _get_applicable_actions_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_applicable_actions_from",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._get_applicable_actions()")]),t._v(", the difference being that\nthe memory parameter is mandatory here.")]),t._v(" "),a("h4",{attrs:{id:"parameters-205"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-205"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-281"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-281"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of applicable actions.")]),t._v(" "),a("h3",{attrs:{id:"get-enabled-events-14"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-14"}},[t._v("#")]),t._v(" _get_enabled_events "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_enabled_events",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"Space[D.T_event]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory), or in the internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._get_enabled_events()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_enabled_events_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-206"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-206"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-282"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-282"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of enabled events.")]),t._v(" "),a("h3",{attrs:{id:"get-enabled-events-from-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-from-7"}},[t._v("#")]),t._v(" _get_enabled_events_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_enabled_events_from",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"Space[D.T_event]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._get_enabled_events()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("h4",{attrs:{id:"parameters-207"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-207"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-283"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-283"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of enabled events.")]),t._v(" "),a("h3",{attrs:{id:"get-goals-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-goals-2"}},[t._v("#")]),t._v(" _get_goals "),a("Badge",{attrs:{text:"Goals",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_goals",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) domain goals space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Goals._get_goals()")]),t._v(" internally calls "),a("code",[t._v("Goals._get_goals_()")]),t._v(" the first time and automatically caches\nits value to make future calls more efficient (since the goals space is assumed to be constant).")]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Goal states are assumed to be fully observable (i.e. observation = state) so that there is never uncertainty\nabout whether the goal has been reached or not. This assumption guarantees that any policy that does not\nreach the goal with certainty incurs in infinite expected cost. - "),a("em",[t._v("Geffner, 2013: A Concise Introduction to\nModels and Methods for Automated Planning")])])]),t._v(" "),a("h4",{attrs:{id:"returns-284"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-284"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The goals space.")]),t._v(" "),a("h3",{attrs:{id:"get-goals-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-goals-3"}},[t._v("#")]),t._v(" _get_goals_ "),a("Badge",{attrs:{text:"Goals",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_goals_",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the domain goals space (finite or infinite set).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Goals._get_goals()")]),t._v(", the difference being that the result is\nnot cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-285"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-285"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The goals space.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-5"}},[t._v("#")]),t._v(" _get_initial_state "),a("Badge",{attrs:{text:"DeterministicInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_initial_state",sig:{params:[{name:"self"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("Get the (cached) initial state.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("DeterministicInitialized._get_initial_state()")]),t._v(" internally\ncalls "),a("code",[t._v("DeterministicInitialized._get_initial_state_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the initial state is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-286"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-286"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The initial state.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-6"}},[t._v("#")]),t._v(" _get_initial_state_ "),a("Badge",{attrs:{text:"DeterministicInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_initial_state_",sig:{params:[{name:"self"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("Get the initial state.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("DeterministicInitialized._get_initial_state()")]),t._v(", the difference\nbeing that the result is not cached here.")]),t._v(" "),a("h4",{attrs:{id:"returns-287"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-287"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The initial state.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-distribution-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-distribution-8"}},[t._v("#")]),t._v(" _get_initial_state_distribution "),a("Badge",{attrs:{text:"UncertainInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_initial_state_distribution",sig:{params:[{name:"self"}],return:"Distribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("Get the (cached) probability distribution of initial states.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("UncertainInitialized._get_initial_state_distribution()")]),t._v(" internally\ncalls "),a("code",[t._v("UncertainInitialized._get_initial_state_distribution_()")]),t._v(" the first time and automatically caches its value\nto make future calls more efficient (since the initial state distribution is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-288"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-288"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of initial states.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-distribution-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-distribution-9"}},[t._v("#")]),t._v(" _get_initial_state_distribution_ "),a("Badge",{attrs:{text:"UncertainInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_initial_state_distribution_",sig:{params:[{name:"self"}],return:"Distribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("Get the probability distribution of initial states.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("UncertainInitialized._get_initial_state_distribution()")]),t._v(", the\ndifference being that the result is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-289"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-289"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of initial states.")]),t._v(" "),a("h3",{attrs:{id:"get-memory-maxlen-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-memory-maxlen-12"}},[t._v("#")]),t._v(" _get_memory_maxlen "),a("Badge",{attrs:{text:"History",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_memory_maxlen",sig:{params:[{name:"self"}],return:"int"}}}),t._v(" "),a("p",[t._v("Get the (cached) memory max length.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("FiniteHistory._get_memory_maxlen()")]),t._v(" internally calls "),a("code",[t._v("FiniteHistory._get_memory_maxlen_()")]),t._v(" the first\ntime and automatically caches its value to make future calls more efficient (since the memory max length is\nassumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-290"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-290"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The memory max length.")]),t._v(" "),a("h3",{attrs:{id:"get-memory-maxlen-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-memory-maxlen-13"}},[t._v("#")]),t._v(" _get_memory_maxlen_ "),a("Badge",{attrs:{text:"FiniteHistory",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_memory_maxlen_",sig:{params:[{name:"self"}],return:"int"}}}),t._v(" "),a("p",[t._v("Get the memory max length.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("FiniteHistory._get_memory_maxlen()")]),t._v(", the difference being that\nthe result is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-291"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-291"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The memory max length.")]),t._v(" "),a("h3",{attrs:{id:"get-next-state-distribution-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-next-state-distribution-6"}},[t._v("#")]),t._v(" _get_next_state_distribution "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_next_state_distribution",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"DiscreteDistribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("Get the discrete probability distribution of next state given a memory and action.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("In the Markovian case (memory only holds last state "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.061ex",height:"1.023ex",viewBox:"0 -442 469 452"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})])])])])]),t._v("), given an action "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.197ex",height:"1.02ex",viewBox:"0 -441 529 451"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})])])])])]),t._v(", this function can\nbe mathematically represented by "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.292ex",height:"2.283ex",viewBox:"0 -759 4107.1 1009"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"50",d:"M287 628Q287 635 230 637Q206 637 199 638T192 648Q192 649 194 659Q200 679 203 681T397 683Q587 682 600 680Q664 669 707 631T751 530Q751 453 685 389Q616 321 507 303Q500 302 402 301H307L277 182Q247 66 247 59Q247 55 248 54T255 50T272 48T305 46H336Q342 37 342 35Q342 19 335 5Q330 0 319 0Q316 0 282 1T182 2Q120 2 87 2T51 1Q33 1 33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM645 554Q645 567 643 575T634 597T609 619T560 635Q553 636 480 637Q463 637 445 637T416 636T404 636Q391 635 386 627Q384 621 367 550T332 412T314 344Q314 342 395 342H407H430Q542 342 590 392Q617 419 631 471T645 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(751, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"msup",transform:"translate(1140, 0)"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"53",d:"M308 24Q367 24 416 76T466 197Q466 260 414 284Q308 311 278 321T236 341Q176 383 176 462Q176 523 208 573T273 648Q302 673 343 688T407 704H418H425Q521 704 564 640Q565 640 577 653T603 682T623 704Q624 704 627 704T632 705Q645 705 645 698T617 577T585 459T569 456Q549 456 549 465Q549 471 550 475Q550 478 551 494T553 520Q553 554 544 579T526 616T501 641Q465 662 419 662Q362 662 313 616T263 510Q263 480 278 458T319 427Q323 425 389 408T456 390Q490 379 522 342T554 242Q554 216 546 186Q541 164 528 137T492 78T426 18T332 -20Q320 -22 298 -22Q199 -22 144 33L134 44L106 13Q83 -14 78 -18T65 -22Q52 -22 52 -14Q52 -11 110 221Q112 227 130 227H143Q149 221 149 216Q149 214 148 207T144 186T142 153Q144 114 160 87T203 47T255 29T308 24Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(613, 363) scale(0.707)"}},[a("path",{attrs:{"data-c":"2032",d:"M79 43Q73 43 52 49T30 61Q30 68 85 293T146 528Q161 560 198 560Q218 560 240 545T262 501Q262 496 260 486Q259 479 173 263T84 45T79 43Z"}})])]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1997.5, 0)"}},[a("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(2275.5, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2744.5, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(3189.1, 0)"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3718.1, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(", where "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.05ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.94ex",height:"1.767ex",viewBox:"0 -759 857.5 781"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"msup"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"53",d:"M308 24Q367 24 416 76T466 197Q466 260 414 284Q308 311 278 321T236 341Q176 383 176 462Q176 523 208 573T273 648Q302 673 343 688T407 704H418H425Q521 704 564 640Q565 640 577 653T603 682T623 704Q624 704 627 704T632 705Q645 705 645 698T617 577T585 459T569 456Q549 456 549 465Q549 471 550 475Q550 478 551 494T553 520Q553 554 544 579T526 616T501 641Q465 662 419 662Q362 662 313 616T263 510Q263 480 278 458T319 427Q323 425 389 408T456 390Q490 379 522 342T554 242Q554 216 546 186Q541 164 528 137T492 78T426 18T332 -20Q320 -22 298 -22Q199 -22 144 33L134 44L106 13Q83 -14 78 -18T65 -22Q52 -22 52 -14Q52 -11 110 221Q112 227 130 227H143Q149 221 149 216Q149 214 148 207T144 186T142 153Q144 114 160 87T203 47T255 29T308 24Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(613, 363) scale(0.707)"}},[a("path",{attrs:{"data-c":"2032",d:"M79 43Q73 43 52 49T30 61Q30 68 85 293T146 528Q161 560 198 560Q218 560 240 545T262 501Q262 496 260 486Q259 479 173 263T84 45T79 43Z"}})])])])])])]),t._v(" is the next state random variable.")],1)]),t._v(" "),a("h4",{attrs:{id:"parameters-208"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-208"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-292"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-292"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The discrete probability distribution of next state.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-10"}},[t._v("#")]),t._v(" _get_observation "),a("Badge",{attrs:{text:"TransformedObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Get the deterministic observation given a state and action.")]),t._v(" "),a("h4",{attrs:{id:"parameters-209"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-209"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-293"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-293"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-distribution-14"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-distribution-14"}},[t._v("#")]),t._v(" _get_observation_distribution "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation_distribution",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"Distribution[D.T_agent[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the probability distribution of the observation given a state and action.")]),t._v(" "),a("p",[t._v("In mathematical terms (discrete case), given an action "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.197ex",height:"1.02ex",viewBox:"0 -441 529 451"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})])])])])]),t._v(", this function represents: "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.078ex",height:"2.262ex",viewBox:"0 -750 4012.7 1000"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"50",d:"M287 628Q287 635 230 637Q206 637 199 638T192 648Q192 649 194 659Q200 679 203 681T397 683Q587 682 600 680Q664 669 707 631T751 530Q751 453 685 389Q616 321 507 303Q500 302 402 301H307L277 182Q247 66 247 59Q247 55 248 54T255 50T272 48T305 46H336Q342 37 342 35Q342 19 335 5Q330 0 319 0Q316 0 282 1T182 2Q120 2 87 2T51 1Q33 1 33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM645 554Q645 567 643 575T634 597T609 619T560 635Q553 636 480 637Q463 637 445 637T416 636T404 636Q391 635 386 627Q384 621 367 550T332 412T314 344Q314 342 395 342H407H430Q542 342 590 392Q617 419 631 471T645 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(751, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(1140, 0)"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1903, 0)"}},[a("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(2181, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2650, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(3094.7, 0)"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3623.7, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(",\nwhere "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.05ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.726ex",height:"1.643ex",viewBox:"0 -704 763 726"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})])])])])]),t._v(" is the random variable of the observation.")],1),t._v(" "),a("h4",{attrs:{id:"parameters-210"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-210"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-294"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-294"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-space-20"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-20"}},[t._v("#")]),t._v(" _get_observation_space "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) observation space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(" internally\ncalls "),a("code",[t._v("PartiallyObservable._get_observation_space_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the observation space is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-295"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-295"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The observation space.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-space-21"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-21"}},[t._v("#")]),t._v(" _get_observation_space_ "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation_space_",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the observation space (finite or infinite set).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(", the difference\nbeing that the result is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-296"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-296"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The observation space.")]),t._v(" "),a("h3",{attrs:{id:"get-transition-value-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-transition-value-6"}},[t._v("#")]),t._v(" _get_transition_value "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_transition_value",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"},{name:"next_state",default:"None",annotation:"Optional[D.T_state]"}],return:"D.T_agent[Value[D.T_value]]"}}}),t._v(" "),a("p",[t._v("Get the value (reward or cost) of a transition.")]),t._v(" "),a("p",[t._v("The transition to consider is defined by the function parameters.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("If this function never depends on the next_state parameter for its computation, it is recommended to\nindicate it by overriding "),a("code",[t._v("UncertainTransitions._is_transition_value_dependent_on_next_state_()")]),t._v(" to return\nFalse. This information can then be exploited by solvers to avoid computing next state to evaluate a\ntransition value (more efficient).")])]),t._v(" "),a("h4",{attrs:{id:"parameters-211"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-211"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")]),t._v(" "),a("li",[a("strong",[t._v("next_state")]),t._v(": The next state in which the transition ends (if needed for the computation).")])]),t._v(" "),a("h4",{attrs:{id:"returns-297"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-297"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The transition value (reward or cost).")]),t._v(" "),a("h3",{attrs:{id:"init-memory-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#init-memory-7"}},[t._v("#")]),t._v(" _init_memory "),a("Badge",{attrs:{text:"History",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_init_memory",sig:{params:[{name:"self"},{name:"state",default:"None",annotation:"Optional[D.T_state]"}],return:"D.T_memory[D.T_state]"}}}),t._v(" "),a("p",[t._v("Initialize memory (possibly with a state) according to its specification and return it.")]),t._v(" "),a("p",[t._v("This function is automatically called by "),a("code",[t._v("Initializable._reset()")]),t._v(" to reinitialize the internal memory whenever\nthe domain is used as an environment.")]),t._v(" "),a("h4",{attrs:{id:"parameters-212"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-212"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": An optional state to initialize the memory with (typically the initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-298"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-298"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The new initialized memory.")]),t._v(" "),a("h3",{attrs:{id:"is-action-14"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-action-14"}},[t._v("#")]),t._v(" _is_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_action",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an event is an action (i.e. a controllable event for the agents).")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\naction space provided by "),a("code",[t._v("Events._get_action_space()")]),t._v(", but it can be overridden for faster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-213"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-213"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("event")]),t._v(": The event to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-299"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-299"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is an action (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-applicable-action-14"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-14"}},[t._v("#")]),t._v(" _is_applicable_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_applicable_action",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an action is applicable in the given memory (state or history), or in the internal one if\nomitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._is_applicable_action()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_applicable_action_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-214"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-214"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-300"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-300"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the action is applicable (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-applicable-action-from-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-from-7"}},[t._v("#")]),t._v(" _is_applicable_action_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_applicable_action_from",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an action is applicable in the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._is_applicable_action()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the space of\napplicable actions provided by "),a("code",[t._v("Events._get_applicable_actions_from()")]),t._v(", but it can be overridden for faster\nimplementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-215"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-215"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-301"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-301"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the action is applicable (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-enabled-event-14"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-14"}},[t._v("#")]),t._v(" _is_enabled_event "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_enabled_event",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an uncontrollable event is enabled in the given memory (state or history), or in the\ninternal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._is_enabled_event()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_enabled_event_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead\nof the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-216"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-216"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-302"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-302"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is enabled (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-enabled-event-from-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-from-7"}},[t._v("#")]),t._v(" _is_enabled_event_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_enabled_event_from",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an event is enabled in the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._is_enabled_event()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the space of\nenabled events provided by "),a("code",[t._v("Events._get_enabled_events_from()")]),t._v(", but it can be overridden for faster\nimplementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-217"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-217"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-303"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-303"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is enabled (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-goal-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-goal-2"}},[t._v("#")]),t._v(" _is_goal "),a("Badge",{attrs:{text:"Goals",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_goal",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"D.T_agent[D.T_predicate]"}}}),t._v(" "),a("p",[t._v("Indicate whether an observation belongs to the goals.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\ngoals space provided by "),a("code",[t._v("Goals._get_goals()")]),t._v(", but it can be overridden for faster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-218"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-218"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-304"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-304"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the observation is a goal (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-observation-14"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-observation-14"}},[t._v("#")]),t._v(" _is_observation "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_observation",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that an observation indeed belongs to the domain observation space.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\nobservation space provided by "),a("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(", but it can be overridden for\nfaster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-219"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-219"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-305"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-305"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the observation belongs to the domain observation space (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-positive"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-positive"}},[t._v("#")]),t._v(" _is_positive "),a("Badge",{attrs:{text:"PositiveCosts",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_positive",sig:{params:[{name:"self"},{name:"cost",annotation:"D.T_value"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Determine if a value is positive (can be overridden for advanced value types).")]),t._v(" "),a("h4",{attrs:{id:"parameters-220"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-220"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("cost")]),t._v(": The cost to evaluate.")])]),t._v(" "),a("h4",{attrs:{id:"returns-306"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-306"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the cost is positive (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-terminal-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-terminal-6"}},[t._v("#")]),t._v(" _is_terminal "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_terminal",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"}],return:"D.T_agent[D.T_predicate]"}}}),t._v(" "),a("p",[t._v("Indicate whether a state is terminal.")]),t._v(" "),a("p",[t._v("A terminal state is a state with no outgoing transition (except to itself with value 0).")]),t._v(" "),a("h4",{attrs:{id:"parameters-221"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-221"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-307"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-307"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the state is terminal (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-transition-value-dependent-on-next-state-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-transition-value-dependent-on-next-state-8"}},[t._v("#")]),t._v(" _is_transition_value_dependent_on_next_state "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_transition_value_dependent_on_next_state",sig:{params:[{name:"self"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether _get_transition_value() requires the next_state parameter for its computation (cached).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("UncertainTransitions._is_transition_value_dependent_on_next_state()")]),t._v(" internally\ncalls "),a("code",[t._v("UncertainTransitions._is_transition_value_dependent_on_next_state_()")]),t._v(" the first time and automatically\ncaches its value to make future calls more efficient (since the returned value is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-308"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-308"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the transition value computation depends on next_state (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-transition-value-dependent-on-next-state-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-transition-value-dependent-on-next-state-9"}},[t._v("#")]),t._v(" _is_transition_value_dependent_on_next_state_ "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_transition_value_dependent_on_next_state_",sig:{params:[{name:"self"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether _get_transition_value() requires the next_state parameter for its computation.")]),t._v(" "),a("p",[t._v("This is a helper function called by default\nfrom "),a("code",[t._v("UncertainTransitions._is_transition_value_dependent_on_next_state()")]),t._v(", the difference being that the result\nis not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-309"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-309"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the transition value computation depends on next_state (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"reset-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#reset-10"}},[t._v("#")]),t._v(" _reset "),a("Badge",{attrs:{text:"Initializable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_reset",sig:{params:[{name:"self"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Reset the state of the environment and return an initial observation.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Initializable._reset()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Initializable._state_reset()")]),t._v(" (which returns an initial state). The boilerplate code automatically stores\nthe initial state into the "),a("code",[t._v("_memory")]),t._v(" attribute and samples a corresponding observation.")]),t._v(" "),a("h4",{attrs:{id:"returns-310"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-310"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("An initial observation.")]),t._v(" "),a("h3",{attrs:{id:"sample-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample-8"}},[t._v("#")]),t._v(" _sample "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_sample",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Sample one transition of the simulator's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Simulation._sample()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Simulation._state_sample()")]),t._v(" (which returns a transition outcome). The boilerplate code automatically\nsamples an observation corresponding to the sampled next state.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing simulator needs to be wrapped instead of implemented fully in scikit-decide (e.g. a\nsimulator), it is recommended to overwrite "),a("code",[t._v("Simulation._sample()")]),t._v(" to call the external simulator and not use\nthe "),a("code",[t._v("Simulation._state_sample()")]),t._v(" helper function.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-222"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-222"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-311"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-311"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of the sampled transition.")]),t._v(" "),a("h3",{attrs:{id:"set-memory-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#set-memory-8"}},[t._v("#")]),t._v(" _set_memory "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_set_memory",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"None"}}}),t._v(" "),a("p",[t._v("Set internal memory attribute "),a("code",[t._v("_memory")]),t._v(" to given one.")]),t._v(" "),a("p",[t._v('This can be useful to set a specific "starting point" before doing a rollout with\nsuccessive '),a("code",[t._v("Environment._step()")]),t._v(" calls.")]),t._v(" "),a("h4",{attrs:{id:"parameters-223"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-223"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to set internally.")])]),t._v(" "),a("h4",{attrs:{id:"example-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#example-8"}},[t._v("#")]),t._v(" Example")]),t._v(" "),a("div",{staticClass:"language-python extra-class"},[a("pre",{pre:!0,attrs:{class:"language-python"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Set simulation_domain memory to my_state (assuming Markovian domain)")]),t._v("\nsimulation_domain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("_set_memory"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("my_state"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Start a 100-steps rollout from here (applying my_action at every step)")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("for")]),t._v(" _ "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("in")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("range")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n simulation_domain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("_step"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("my_action"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("h3",{attrs:{id:"state-reset-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#state-reset-5"}},[t._v("#")]),t._v(" _state_reset "),a("Badge",{attrs:{text:"Initializable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_state_reset",sig:{params:[{name:"self"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("Reset the state of the environment and return an initial state.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Initializable._reset()")]),t._v(". It focuses on the state level, as\nopposed to the observation one for the latter.")]),t._v(" "),a("h4",{attrs:{id:"returns-312"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-312"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("An initial state.")]),t._v(" "),a("h3",{attrs:{id:"state-sample-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#state-sample-4"}},[t._v("#")]),t._v(" _state_sample "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_state_sample",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"TransitionOutcome[D.T_state, D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Compute one sample of the transition's dynamics.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Simulation._sample()")]),t._v(". It focuses on the state level, as\nopposed to the observation one for the latter.")]),t._v(" "),a("h4",{attrs:{id:"parameters-224"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-224"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-313"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-313"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The transition outcome of the sampled transition.")]),t._v(" "),a("h3",{attrs:{id:"state-step-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#state-step-7"}},[t._v("#")]),t._v(" _state_step "),a("Badge",{attrs:{text:"Environment",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_state_step",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"TransitionOutcome[D.T_state, D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Compute one step of the transition's dynamics.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Environment._step()")]),t._v(". It focuses on the state level, as opposed\nto the observation one for the latter.")]),t._v(" "),a("h4",{attrs:{id:"parameters-225"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-225"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the current memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-314"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-314"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The transition outcome of this step.")]),t._v(" "),a("h3",{attrs:{id:"step-14"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#step-14"}},[t._v("#")]),t._v(" _step "),a("Badge",{attrs:{text:"Environment",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_step",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Run one step of the environment's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Environment._step()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Environment._state_step()")]),t._v(" (which returns a transition outcome). The boilerplate code automatically stores\nnext state into the "),a("code",[t._v("_memory")]),t._v(" attribute and samples a corresponding observation.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing environment needs to be wrapped instead of implemented fully in scikit-decide (e.g. compiled\nATARI games), it is recommended to overwrite "),a("code",[t._v("Environment._step()")]),t._v(" to call the external environment and not\nuse the "),a("code",[t._v("Environment._state_step()")]),t._v(" helper function.")])]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Before calling "),a("code",[t._v("Environment._step()")]),t._v(" the first time or when the end of an episode is\nreached, "),a("code",[t._v("Initializable._reset()")]),t._v(" must be called to reset the environment's state.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-226"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-226"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the current memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-315"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-315"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of this step.")]),t._v(" "),a("h2",{attrs:{id:"goalpomdpdomain"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#goalpomdpdomain"}},[t._v("#")]),t._v(" GoalPOMDPDomain")]),t._v(" "),a("p",[t._v("This is a typical Goal Partially Observable Markov Decision Process domain class.")]),t._v(" "),a("p",[t._v("This helper class can be used as an alternate base class for domains, inheriting the following:")]),t._v(" "),a("ul",[a("li",[t._v("Domain")]),t._v(" "),a("li",[t._v("SingleAgent")]),t._v(" "),a("li",[t._v("Sequential")]),t._v(" "),a("li",[t._v("EnumerableTransitions")]),t._v(" "),a("li",[t._v("Actions")]),t._v(" "),a("li",[t._v("Goals")]),t._v(" "),a("li",[t._v("UncertainInitialized")]),t._v(" "),a("li",[t._v("Markovian")]),t._v(" "),a("li",[t._v("PartiallyObservable")]),t._v(" "),a("li",[t._v("PositiveCosts")])]),t._v(" "),a("p",[t._v("Typical use:")]),t._v(" "),a("div",{staticClass:"language-python extra-class"},[a("pre",{pre:!0,attrs:{class:"language-python"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("class")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("D")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("GoalPOMDPDomain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("It is also possible to refine any alternate base class, like for instance:")]),t._v(" "),a("div",{staticClass:"language-python extra-class"},[a("pre",{pre:!0,attrs:{class:"language-python"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("class")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("D")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("RLDomain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" FullyObservable"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])])]),t._v(" "),a("h3",{attrs:{id:"check-value-15"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#check-value-15"}},[t._v("#")]),t._v(" check_value "),a("Badge",{attrs:{text:"Rewards",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"check_value",sig:{params:[{name:"self"},{name:"value",annotation:"Value[D.T_value]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that a value is compliant with its reward specification.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("This function returns always True by default because any kind of reward should be accepted at this level.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-227"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-227"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("value")]),t._v(": The value to check.")])]),t._v(" "),a("h4",{attrs:{id:"returns-316"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-316"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the value is compliant (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"get-action-space-22"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-22"}},[t._v("#")]),t._v(" get_action_space "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_action_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) domain action space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.get_action_space()")]),t._v(" internally calls "),a("code",[t._v("Events._get_action_space_()")]),t._v(" the first time and\nautomatically caches its value to make future calls more efficient (since the action space is assumed to be\nconstant).")]),t._v(" "),a("h4",{attrs:{id:"returns-317"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-317"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The action space.")]),t._v(" "),a("h3",{attrs:{id:"get-applicable-actions-15"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-15"}},[t._v("#")]),t._v(" get_applicable_actions "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_applicable_actions",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history), or in\nthe internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.get_applicable_actions()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_applicable_actions()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-228"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-228"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-318"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-318"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of applicable actions.")]),t._v(" "),a("h3",{attrs:{id:"get-enabled-events-15"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-15"}},[t._v("#")]),t._v(" get_enabled_events "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_enabled_events",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"Space[D.T_event]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory), or in the internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.get_enabled_events()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_enabled_events()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead of\nthe memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-229"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-229"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-319"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-319"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of enabled events.")]),t._v(" "),a("h3",{attrs:{id:"get-goals-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-goals-4"}},[t._v("#")]),t._v(" get_goals "),a("Badge",{attrs:{text:"Goals",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_goals",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) domain goals space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Goals.get_goals()")]),t._v(" internally calls "),a("code",[t._v("Goals._get_goals_()")]),t._v(" the first time and automatically caches its\nvalue to make future calls more efficient (since the goals space is assumed to be constant).")]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Goal states are assumed to be fully observable (i.e. observation = state) so that there is never uncertainty\nabout whether the goal has been reached or not. This assumption guarantees that any policy that does not\nreach the goal with certainty incurs in infinite expected cost. - "),a("em",[t._v("Geffner, 2013: A Concise Introduction to\nModels and Methods for Automated Planning")])])]),t._v(" "),a("h4",{attrs:{id:"returns-320"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-320"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The goals space.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-distribution-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-distribution-10"}},[t._v("#")]),t._v(" get_initial_state_distribution "),a("Badge",{attrs:{text:"UncertainInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_initial_state_distribution",sig:{params:[{name:"self"}],return:"Distribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("Get the (cached) probability distribution of initial states.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("UncertainInitialized.get_initial_state_distribution()")]),t._v(" internally\ncalls "),a("code",[t._v("UncertainInitialized._get_initial_state_distribution_()")]),t._v(" the first time and automatically caches its value\nto make future calls more efficient (since the initial state distribution is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-321"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-321"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of initial states.")]),t._v(" "),a("h3",{attrs:{id:"get-next-state-distribution-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-next-state-distribution-7"}},[t._v("#")]),t._v(" get_next_state_distribution "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_next_state_distribution",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"DiscreteDistribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("Get the discrete probability distribution of next state given a memory and action.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("In the Markovian case (memory only holds last state "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.061ex",height:"1.023ex",viewBox:"0 -442 469 452"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})])])])])]),t._v("), given an action "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.197ex",height:"1.02ex",viewBox:"0 -441 529 451"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})])])])])]),t._v(", this function can\nbe mathematically represented by "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.292ex",height:"2.283ex",viewBox:"0 -759 4107.1 1009"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"50",d:"M287 628Q287 635 230 637Q206 637 199 638T192 648Q192 649 194 659Q200 679 203 681T397 683Q587 682 600 680Q664 669 707 631T751 530Q751 453 685 389Q616 321 507 303Q500 302 402 301H307L277 182Q247 66 247 59Q247 55 248 54T255 50T272 48T305 46H336Q342 37 342 35Q342 19 335 5Q330 0 319 0Q316 0 282 1T182 2Q120 2 87 2T51 1Q33 1 33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM645 554Q645 567 643 575T634 597T609 619T560 635Q553 636 480 637Q463 637 445 637T416 636T404 636Q391 635 386 627Q384 621 367 550T332 412T314 344Q314 342 395 342H407H430Q542 342 590 392Q617 419 631 471T645 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(751, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"msup",transform:"translate(1140, 0)"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"53",d:"M308 24Q367 24 416 76T466 197Q466 260 414 284Q308 311 278 321T236 341Q176 383 176 462Q176 523 208 573T273 648Q302 673 343 688T407 704H418H425Q521 704 564 640Q565 640 577 653T603 682T623 704Q624 704 627 704T632 705Q645 705 645 698T617 577T585 459T569 456Q549 456 549 465Q549 471 550 475Q550 478 551 494T553 520Q553 554 544 579T526 616T501 641Q465 662 419 662Q362 662 313 616T263 510Q263 480 278 458T319 427Q323 425 389 408T456 390Q490 379 522 342T554 242Q554 216 546 186Q541 164 528 137T492 78T426 18T332 -20Q320 -22 298 -22Q199 -22 144 33L134 44L106 13Q83 -14 78 -18T65 -22Q52 -22 52 -14Q52 -11 110 221Q112 227 130 227H143Q149 221 149 216Q149 214 148 207T144 186T142 153Q144 114 160 87T203 47T255 29T308 24Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(613, 363) scale(0.707)"}},[a("path",{attrs:{"data-c":"2032",d:"M79 43Q73 43 52 49T30 61Q30 68 85 293T146 528Q161 560 198 560Q218 560 240 545T262 501Q262 496 260 486Q259 479 173 263T84 45T79 43Z"}})])]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1997.5, 0)"}},[a("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(2275.5, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2744.5, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(3189.1, 0)"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3718.1, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(", where "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.05ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.94ex",height:"1.767ex",viewBox:"0 -759 857.5 781"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"msup"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"53",d:"M308 24Q367 24 416 76T466 197Q466 260 414 284Q308 311 278 321T236 341Q176 383 176 462Q176 523 208 573T273 648Q302 673 343 688T407 704H418H425Q521 704 564 640Q565 640 577 653T603 682T623 704Q624 704 627 704T632 705Q645 705 645 698T617 577T585 459T569 456Q549 456 549 465Q549 471 550 475Q550 478 551 494T553 520Q553 554 544 579T526 616T501 641Q465 662 419 662Q362 662 313 616T263 510Q263 480 278 458T319 427Q323 425 389 408T456 390Q490 379 522 342T554 242Q554 216 546 186Q541 164 528 137T492 78T426 18T332 -20Q320 -22 298 -22Q199 -22 144 33L134 44L106 13Q83 -14 78 -18T65 -22Q52 -22 52 -14Q52 -11 110 221Q112 227 130 227H143Q149 221 149 216Q149 214 148 207T144 186T142 153Q144 114 160 87T203 47T255 29T308 24Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(613, 363) scale(0.707)"}},[a("path",{attrs:{"data-c":"2032",d:"M79 43Q73 43 52 49T30 61Q30 68 85 293T146 528Q161 560 198 560Q218 560 240 545T262 501Q262 496 260 486Q259 479 173 263T84 45T79 43Z"}})])])])])])]),t._v(" is the next state random variable.")],1)]),t._v(" "),a("h4",{attrs:{id:"parameters-230"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-230"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-322"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-322"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The discrete probability distribution of next state.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-distribution-15"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-distribution-15"}},[t._v("#")]),t._v(" get_observation_distribution "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_observation_distribution",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"Distribution[D.T_agent[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the probability distribution of the observation given a state and action.")]),t._v(" "),a("p",[t._v("In mathematical terms (discrete case), given an action "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.197ex",height:"1.02ex",viewBox:"0 -441 529 451"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})])])])])]),t._v(", this function represents: "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.078ex",height:"2.262ex",viewBox:"0 -750 4012.7 1000"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"50",d:"M287 628Q287 635 230 637Q206 637 199 638T192 648Q192 649 194 659Q200 679 203 681T397 683Q587 682 600 680Q664 669 707 631T751 530Q751 453 685 389Q616 321 507 303Q500 302 402 301H307L277 182Q247 66 247 59Q247 55 248 54T255 50T272 48T305 46H336Q342 37 342 35Q342 19 335 5Q330 0 319 0Q316 0 282 1T182 2Q120 2 87 2T51 1Q33 1 33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM645 554Q645 567 643 575T634 597T609 619T560 635Q553 636 480 637Q463 637 445 637T416 636T404 636Q391 635 386 627Q384 621 367 550T332 412T314 344Q314 342 395 342H407H430Q542 342 590 392Q617 419 631 471T645 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(751, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(1140, 0)"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1903, 0)"}},[a("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(2181, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2650, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(3094.7, 0)"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3623.7, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(",\nwhere "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.05ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.726ex",height:"1.643ex",viewBox:"0 -704 763 726"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})])])])])]),t._v(" is the random variable of the observation.")],1),t._v(" "),a("h4",{attrs:{id:"parameters-231"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-231"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-323"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-323"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-space-22"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-22"}},[t._v("#")]),t._v(" get_observation_space "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_observation_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) observation space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("PartiallyObservable.get_observation_space()")]),t._v(" internally\ncalls "),a("code",[t._v("PartiallyObservable._get_observation_space_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the observation space is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-324"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-324"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The observation space.")]),t._v(" "),a("h3",{attrs:{id:"get-transition-value-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-transition-value-7"}},[t._v("#")]),t._v(" get_transition_value "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_transition_value",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"},{name:"next_state",default:"None",annotation:"Optional[D.T_state]"}],return:"D.T_agent[Value[D.T_value]]"}}}),t._v(" "),a("p",[t._v("Get the value (reward or cost) of a transition.")]),t._v(" "),a("p",[t._v("The transition to consider is defined by the function parameters.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("If this function never depends on the next_state parameter for its computation, it is recommended to\nindicate it by overriding "),a("code",[t._v("UncertainTransitions._is_transition_value_dependent_on_next_state_()")]),t._v(" to return\nFalse. This information can then be exploited by solvers to avoid computing next state to evaluate a\ntransition value (more efficient).")])]),t._v(" "),a("h4",{attrs:{id:"parameters-232"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-232"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")]),t._v(" "),a("li",[a("strong",[t._v("next_state")]),t._v(": The next state in which the transition ends (if needed for the computation).")])]),t._v(" "),a("h4",{attrs:{id:"returns-325"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-325"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The transition value (reward or cost).")]),t._v(" "),a("h3",{attrs:{id:"is-action-15"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-action-15"}},[t._v("#")]),t._v(" is_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_action",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an event is an action (i.e. a controllable event for the agents).")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\naction space provided by "),a("code",[t._v("Events.get_action_space()")]),t._v(", but it can be overridden for faster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-233"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-233"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("event")]),t._v(": The event to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-326"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-326"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is an action (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-applicable-action-15"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-15"}},[t._v("#")]),t._v(" is_applicable_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_applicable_action",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an action is applicable in the given memory (state or history), or in the internal one if\nomitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.is_applicable_action()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_applicable_action()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead\nof the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-234"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-234"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-327"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-327"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the action is applicable (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-enabled-event-15"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-15"}},[t._v("#")]),t._v(" is_enabled_event "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_enabled_event",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an uncontrollable event is enabled in the given memory (state or history), or in the\ninternal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.is_enabled_event()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_enabled_event()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead of\nthe memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-235"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-235"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-328"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-328"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is enabled (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-goal-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-goal-3"}},[t._v("#")]),t._v(" is_goal "),a("Badge",{attrs:{text:"Goals",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_goal",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"D.T_agent[D.T_predicate]"}}}),t._v(" "),a("p",[t._v("Indicate whether an observation belongs to the goals.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\ngoals space provided by "),a("code",[t._v("Goals.get_goals()")]),t._v(", but it can be overridden for faster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-236"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-236"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-329"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-329"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the observation is a goal (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-observation-15"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-observation-15"}},[t._v("#")]),t._v(" is_observation "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_observation",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that an observation indeed belongs to the domain observation space.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\nobservation space provided by "),a("code",[t._v("PartiallyObservable.get_observation_space()")]),t._v(", but it can be overridden for\nfaster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-237"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-237"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-330"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-330"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the observation belongs to the domain observation space (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-terminal-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-terminal-7"}},[t._v("#")]),t._v(" is_terminal "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_terminal",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"}],return:"D.T_agent[D.T_predicate]"}}}),t._v(" "),a("p",[t._v("Indicate whether a state is terminal.")]),t._v(" "),a("p",[t._v("A terminal state is a state with no outgoing transition (except to itself with value 0).")]),t._v(" "),a("h4",{attrs:{id:"parameters-238"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-238"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-331"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-331"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the state is terminal (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-transition-value-dependent-on-next-state-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-transition-value-dependent-on-next-state-10"}},[t._v("#")]),t._v(" is_transition_value_dependent_on_next_state "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_transition_value_dependent_on_next_state",sig:{params:[{name:"self"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether get_transition_value() requires the next_state parameter for its computation (cached).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("UncertainTransitions.is_transition_value_dependent_on_next_state()")]),t._v(" internally\ncalls "),a("code",[t._v("UncertainTransitions._is_transition_value_dependent_on_next_state_()")]),t._v(" the first time and automatically\ncaches its value to make future calls more efficient (since the returned value is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-332"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-332"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the transition value computation depends on next_state (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"reset-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#reset-11"}},[t._v("#")]),t._v(" reset "),a("Badge",{attrs:{text:"Initializable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"reset",sig:{params:[{name:"self"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Reset the state of the environment and return an initial observation.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Initializable.reset()")]),t._v(" provides some boilerplate code and internally calls "),a("code",[t._v("Initializable._reset()")]),t._v("\n(which returns an initial state). The boilerplate code automatically stores the initial state into the "),a("code",[t._v("_memory")]),t._v("\nattribute and samples a corresponding observation.")]),t._v(" "),a("h4",{attrs:{id:"returns-333"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-333"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("An initial observation.")]),t._v(" "),a("h3",{attrs:{id:"sample-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample-9"}},[t._v("#")]),t._v(" sample "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"sample",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Sample one transition of the simulator's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Simulation.sample()")]),t._v(" provides some boilerplate code and internally calls "),a("code",[t._v("Simulation._sample()")]),t._v("\n(which returns a transition outcome). The boilerplate code automatically samples an observation corresponding to\nthe sampled next state.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing simulator needs to be wrapped instead of implemented fully in scikit-decide (e.g. a\nsimulator), it is recommended to overwrite "),a("code",[t._v("Simulation.sample()")]),t._v(" to call the external simulator and not use\nthe "),a("code",[t._v("Simulation._sample()")]),t._v(" helper function.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-239"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-239"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-334"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-334"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of the sampled transition.")]),t._v(" "),a("h3",{attrs:{id:"set-memory-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#set-memory-9"}},[t._v("#")]),t._v(" set_memory "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"set_memory",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"None"}}}),t._v(" "),a("p",[t._v("Set internal memory attribute "),a("code",[t._v("_memory")]),t._v(" to given one.")]),t._v(" "),a("p",[t._v('This can be useful to set a specific "starting point" before doing a rollout with successive '),a("code",[t._v("Environment.step()")]),t._v("\ncalls.")]),t._v(" "),a("h4",{attrs:{id:"parameters-240"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-240"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to set internally.")])]),t._v(" "),a("h4",{attrs:{id:"example-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#example-9"}},[t._v("#")]),t._v(" Example")]),t._v(" "),a("div",{staticClass:"language-python extra-class"},[a("pre",{pre:!0,attrs:{class:"language-python"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Set simulation_domain memory to my_state (assuming Markovian domain)")]),t._v("\nsimulation_domain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("set_memory"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("my_state"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Start a 100-steps rollout from here (applying my_action at every step)")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("for")]),t._v(" _ "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("in")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("range")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n simulation_domain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("step"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("my_action"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("h3",{attrs:{id:"solve-with-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#solve-with-8"}},[t._v("#")]),t._v(" solve_with "),a("Badge",{attrs:{text:"Domain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"solve_with",sig:{params:[{name:"solver",annotation:"Solver"},{name:"domain_factory",default:"None",annotation:"Optional[Callable[[], Domain]]"},{name:"load_path",default:"None",annotation:"Optional[str]"}],return:"Solver"}}}),t._v(" "),a("p",[t._v("Solve the domain with a new or loaded solver and return it auto-cast to the level of the domain.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Solver.check_domain()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Solver._check_domain_additional()")]),t._v(' (which returns True by default but can be overridden to define\nspecific checks in addition to the "domain requirements"). The boilerplate code automatically checks whether all\ndomain requirements are met.')]),t._v(" "),a("h4",{attrs:{id:"parameters-241"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-241"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("solver")]),t._v(": The solver.")]),t._v(" "),a("li",[a("strong",[t._v("domain_factory")]),t._v(": A callable with no argument returning the domain to solve (factory is the domain class if None).")]),t._v(" "),a("li",[a("strong",[t._v("load_path")]),t._v(": The path to restore the solver state from (if None, the solving process will be launched instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-335"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-335"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The new solver (auto-cast to the level of the domain).")]),t._v(" "),a("h3",{attrs:{id:"step-15"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#step-15"}},[t._v("#")]),t._v(" step "),a("Badge",{attrs:{text:"Environment",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"step",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Run one step of the environment's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Environment.step()")]),t._v(" provides some boilerplate code and internally calls "),a("code",[t._v("Environment._step()")]),t._v(" (which\nreturns a transition outcome). The boilerplate code automatically stores next state into the "),a("code",[t._v("_memory")]),t._v(" attribute\nand samples a corresponding observation.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing environment needs to be wrapped instead of implemented fully in scikit-decide (e.g. compiled\nATARI games), it is recommended to overwrite "),a("code",[t._v("Environment.step()")]),t._v(" to call the external environment and not\nuse the "),a("code",[t._v("Environment._step()")]),t._v(" helper function.")])]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Before calling "),a("code",[t._v("Environment.step()")]),t._v(" the first time or when the end of an episode is\nreached, "),a("code",[t._v("Initializable.reset()")]),t._v(" must be called to reset the environment's state.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-242"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-242"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the current memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-336"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-336"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of this step.")]),t._v(" "),a("h3",{attrs:{id:"check-value-16"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#check-value-16"}},[t._v("#")]),t._v(" _check_value "),a("Badge",{attrs:{text:"Rewards",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_check_value",sig:{params:[{name:"self"},{name:"value",annotation:"Value[D.T_value]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that a value is compliant with its cost specification (must be positive).")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("This function calls "),a("code",[t._v("PositiveCost._is_positive()")]),t._v(" to determine if a value is positive (can be overridden for\nadvanced value types).")])]),t._v(" "),a("h4",{attrs:{id:"parameters-243"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-243"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("value")]),t._v(": The value to check.")])]),t._v(" "),a("h4",{attrs:{id:"returns-337"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-337"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the value is compliant (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"get-action-space-23"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-23"}},[t._v("#")]),t._v(" _get_action_space "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_action_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) domain action space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._get_action_space()")]),t._v(" internally calls "),a("code",[t._v("Events._get_action_space_()")]),t._v(" the first time and\nautomatically caches its value to make future calls more efficient (since the action space is assumed to be\nconstant).")]),t._v(" "),a("h4",{attrs:{id:"returns-338"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-338"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The action space.")]),t._v(" "),a("h3",{attrs:{id:"get-action-space-24"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-24"}},[t._v("#")]),t._v(" _get_action_space_ "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_action_space_",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the domain action space (finite or infinite set).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._get_action_space()")]),t._v(", the difference being that the\nresult is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-339"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-339"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The action space.")]),t._v(" "),a("h3",{attrs:{id:"get-applicable-actions-16"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-16"}},[t._v("#")]),t._v(" _get_applicable_actions "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_applicable_actions",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history), or in\nthe internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._get_applicable_actions()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_applicable_actions_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-244"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-244"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-340"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-340"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of applicable actions.")]),t._v(" "),a("h3",{attrs:{id:"get-applicable-actions-from-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-from-8"}},[t._v("#")]),t._v(" _get_applicable_actions_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_applicable_actions_from",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._get_applicable_actions()")]),t._v(", the difference being that\nthe memory parameter is mandatory here.")]),t._v(" "),a("h4",{attrs:{id:"parameters-245"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-245"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-341"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-341"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of applicable actions.")]),t._v(" "),a("h3",{attrs:{id:"get-enabled-events-16"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-16"}},[t._v("#")]),t._v(" _get_enabled_events "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_enabled_events",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"Space[D.T_event]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory), or in the internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._get_enabled_events()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_enabled_events_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-246"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-246"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-342"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-342"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of enabled events.")]),t._v(" "),a("h3",{attrs:{id:"get-enabled-events-from-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-from-8"}},[t._v("#")]),t._v(" _get_enabled_events_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_enabled_events_from",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"Space[D.T_event]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._get_enabled_events()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("h4",{attrs:{id:"parameters-247"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-247"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-343"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-343"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of enabled events.")]),t._v(" "),a("h3",{attrs:{id:"get-goals-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-goals-5"}},[t._v("#")]),t._v(" _get_goals "),a("Badge",{attrs:{text:"Goals",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_goals",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) domain goals space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Goals._get_goals()")]),t._v(" internally calls "),a("code",[t._v("Goals._get_goals_()")]),t._v(" the first time and automatically caches\nits value to make future calls more efficient (since the goals space is assumed to be constant).")]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Goal states are assumed to be fully observable (i.e. observation = state) so that there is never uncertainty\nabout whether the goal has been reached or not. This assumption guarantees that any policy that does not\nreach the goal with certainty incurs in infinite expected cost. - "),a("em",[t._v("Geffner, 2013: A Concise Introduction to\nModels and Methods for Automated Planning")])])]),t._v(" "),a("h4",{attrs:{id:"returns-344"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-344"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The goals space.")]),t._v(" "),a("h3",{attrs:{id:"get-goals-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-goals-6"}},[t._v("#")]),t._v(" _get_goals_ "),a("Badge",{attrs:{text:"Goals",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_goals_",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the domain goals space (finite or infinite set).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Goals._get_goals()")]),t._v(", the difference being that the result is\nnot cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-345"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-345"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The goals space.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-distribution-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-distribution-11"}},[t._v("#")]),t._v(" _get_initial_state_distribution "),a("Badge",{attrs:{text:"UncertainInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_initial_state_distribution",sig:{params:[{name:"self"}],return:"Distribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("Get the (cached) probability distribution of initial states.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("UncertainInitialized._get_initial_state_distribution()")]),t._v(" internally\ncalls "),a("code",[t._v("UncertainInitialized._get_initial_state_distribution_()")]),t._v(" the first time and automatically caches its value\nto make future calls more efficient (since the initial state distribution is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-346"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-346"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of initial states.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-distribution-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-distribution-12"}},[t._v("#")]),t._v(" _get_initial_state_distribution_ "),a("Badge",{attrs:{text:"UncertainInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_initial_state_distribution_",sig:{params:[{name:"self"}],return:"Distribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("Get the probability distribution of initial states.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("UncertainInitialized._get_initial_state_distribution()")]),t._v(", the\ndifference being that the result is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-347"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-347"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of initial states.")]),t._v(" "),a("h3",{attrs:{id:"get-memory-maxlen-14"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-memory-maxlen-14"}},[t._v("#")]),t._v(" _get_memory_maxlen "),a("Badge",{attrs:{text:"History",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_memory_maxlen",sig:{params:[{name:"self"}],return:"int"}}}),t._v(" "),a("p",[t._v("Get the (cached) memory max length.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("FiniteHistory._get_memory_maxlen()")]),t._v(" internally calls "),a("code",[t._v("FiniteHistory._get_memory_maxlen_()")]),t._v(" the first\ntime and automatically caches its value to make future calls more efficient (since the memory max length is\nassumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-348"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-348"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The memory max length.")]),t._v(" "),a("h3",{attrs:{id:"get-memory-maxlen-15"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-memory-maxlen-15"}},[t._v("#")]),t._v(" _get_memory_maxlen_ "),a("Badge",{attrs:{text:"FiniteHistory",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_memory_maxlen_",sig:{params:[{name:"self"}],return:"int"}}}),t._v(" "),a("p",[t._v("Get the memory max length.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("FiniteHistory._get_memory_maxlen()")]),t._v(", the difference being that\nthe result is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-349"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-349"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The memory max length.")]),t._v(" "),a("h3",{attrs:{id:"get-next-state-distribution-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-next-state-distribution-8"}},[t._v("#")]),t._v(" _get_next_state_distribution "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_next_state_distribution",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"DiscreteDistribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("Get the discrete probability distribution of next state given a memory and action.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("In the Markovian case (memory only holds last state "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.061ex",height:"1.023ex",viewBox:"0 -442 469 452"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})])])])])]),t._v("), given an action "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.197ex",height:"1.02ex",viewBox:"0 -441 529 451"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})])])])])]),t._v(", this function can\nbe mathematically represented by "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.292ex",height:"2.283ex",viewBox:"0 -759 4107.1 1009"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"50",d:"M287 628Q287 635 230 637Q206 637 199 638T192 648Q192 649 194 659Q200 679 203 681T397 683Q587 682 600 680Q664 669 707 631T751 530Q751 453 685 389Q616 321 507 303Q500 302 402 301H307L277 182Q247 66 247 59Q247 55 248 54T255 50T272 48T305 46H336Q342 37 342 35Q342 19 335 5Q330 0 319 0Q316 0 282 1T182 2Q120 2 87 2T51 1Q33 1 33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM645 554Q645 567 643 575T634 597T609 619T560 635Q553 636 480 637Q463 637 445 637T416 636T404 636Q391 635 386 627Q384 621 367 550T332 412T314 344Q314 342 395 342H407H430Q542 342 590 392Q617 419 631 471T645 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(751, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"msup",transform:"translate(1140, 0)"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"53",d:"M308 24Q367 24 416 76T466 197Q466 260 414 284Q308 311 278 321T236 341Q176 383 176 462Q176 523 208 573T273 648Q302 673 343 688T407 704H418H425Q521 704 564 640Q565 640 577 653T603 682T623 704Q624 704 627 704T632 705Q645 705 645 698T617 577T585 459T569 456Q549 456 549 465Q549 471 550 475Q550 478 551 494T553 520Q553 554 544 579T526 616T501 641Q465 662 419 662Q362 662 313 616T263 510Q263 480 278 458T319 427Q323 425 389 408T456 390Q490 379 522 342T554 242Q554 216 546 186Q541 164 528 137T492 78T426 18T332 -20Q320 -22 298 -22Q199 -22 144 33L134 44L106 13Q83 -14 78 -18T65 -22Q52 -22 52 -14Q52 -11 110 221Q112 227 130 227H143Q149 221 149 216Q149 214 148 207T144 186T142 153Q144 114 160 87T203 47T255 29T308 24Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(613, 363) scale(0.707)"}},[a("path",{attrs:{"data-c":"2032",d:"M79 43Q73 43 52 49T30 61Q30 68 85 293T146 528Q161 560 198 560Q218 560 240 545T262 501Q262 496 260 486Q259 479 173 263T84 45T79 43Z"}})])]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1997.5, 0)"}},[a("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(2275.5, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2744.5, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(3189.1, 0)"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3718.1, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(", where "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.05ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.94ex",height:"1.767ex",viewBox:"0 -759 857.5 781"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"msup"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"53",d:"M308 24Q367 24 416 76T466 197Q466 260 414 284Q308 311 278 321T236 341Q176 383 176 462Q176 523 208 573T273 648Q302 673 343 688T407 704H418H425Q521 704 564 640Q565 640 577 653T603 682T623 704Q624 704 627 704T632 705Q645 705 645 698T617 577T585 459T569 456Q549 456 549 465Q549 471 550 475Q550 478 551 494T553 520Q553 554 544 579T526 616T501 641Q465 662 419 662Q362 662 313 616T263 510Q263 480 278 458T319 427Q323 425 389 408T456 390Q490 379 522 342T554 242Q554 216 546 186Q541 164 528 137T492 78T426 18T332 -20Q320 -22 298 -22Q199 -22 144 33L134 44L106 13Q83 -14 78 -18T65 -22Q52 -22 52 -14Q52 -11 110 221Q112 227 130 227H143Q149 221 149 216Q149 214 148 207T144 186T142 153Q144 114 160 87T203 47T255 29T308 24Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(613, 363) scale(0.707)"}},[a("path",{attrs:{"data-c":"2032",d:"M79 43Q73 43 52 49T30 61Q30 68 85 293T146 528Q161 560 198 560Q218 560 240 545T262 501Q262 496 260 486Q259 479 173 263T84 45T79 43Z"}})])])])])])]),t._v(" is the next state random variable.")],1)]),t._v(" "),a("h4",{attrs:{id:"parameters-248"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-248"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-350"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-350"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The discrete probability distribution of next state.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-distribution-16"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-distribution-16"}},[t._v("#")]),t._v(" _get_observation_distribution "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation_distribution",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"Distribution[D.T_agent[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the probability distribution of the observation given a state and action.")]),t._v(" "),a("p",[t._v("In mathematical terms (discrete case), given an action "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.197ex",height:"1.02ex",viewBox:"0 -441 529 451"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})])])])])]),t._v(", this function represents: "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.078ex",height:"2.262ex",viewBox:"0 -750 4012.7 1000"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"50",d:"M287 628Q287 635 230 637Q206 637 199 638T192 648Q192 649 194 659Q200 679 203 681T397 683Q587 682 600 680Q664 669 707 631T751 530Q751 453 685 389Q616 321 507 303Q500 302 402 301H307L277 182Q247 66 247 59Q247 55 248 54T255 50T272 48T305 46H336Q342 37 342 35Q342 19 335 5Q330 0 319 0Q316 0 282 1T182 2Q120 2 87 2T51 1Q33 1 33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM645 554Q645 567 643 575T634 597T609 619T560 635Q553 636 480 637Q463 637 445 637T416 636T404 636Q391 635 386 627Q384 621 367 550T332 412T314 344Q314 342 395 342H407H430Q542 342 590 392Q617 419 631 471T645 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(751, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(1140, 0)"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1903, 0)"}},[a("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(2181, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2650, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(3094.7, 0)"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3623.7, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(",\nwhere "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.05ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.726ex",height:"1.643ex",viewBox:"0 -704 763 726"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})])])])])]),t._v(" is the random variable of the observation.")],1),t._v(" "),a("h4",{attrs:{id:"parameters-249"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-249"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-351"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-351"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-space-23"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-23"}},[t._v("#")]),t._v(" _get_observation_space "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) observation space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(" internally\ncalls "),a("code",[t._v("PartiallyObservable._get_observation_space_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the observation space is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-352"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-352"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The observation space.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-space-24"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-24"}},[t._v("#")]),t._v(" _get_observation_space_ "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation_space_",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the observation space (finite or infinite set).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(", the difference\nbeing that the result is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-353"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-353"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The observation space.")]),t._v(" "),a("h3",{attrs:{id:"get-transition-value-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-transition-value-8"}},[t._v("#")]),t._v(" _get_transition_value "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_transition_value",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"},{name:"next_state",default:"None",annotation:"Optional[D.T_state]"}],return:"D.T_agent[Value[D.T_value]]"}}}),t._v(" "),a("p",[t._v("Get the value (reward or cost) of a transition.")]),t._v(" "),a("p",[t._v("The transition to consider is defined by the function parameters.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("If this function never depends on the next_state parameter for its computation, it is recommended to\nindicate it by overriding "),a("code",[t._v("UncertainTransitions._is_transition_value_dependent_on_next_state_()")]),t._v(" to return\nFalse. This information can then be exploited by solvers to avoid computing next state to evaluate a\ntransition value (more efficient).")])]),t._v(" "),a("h4",{attrs:{id:"parameters-250"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-250"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")]),t._v(" "),a("li",[a("strong",[t._v("next_state")]),t._v(": The next state in which the transition ends (if needed for the computation).")])]),t._v(" "),a("h4",{attrs:{id:"returns-354"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-354"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The transition value (reward or cost).")]),t._v(" "),a("h3",{attrs:{id:"init-memory-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#init-memory-8"}},[t._v("#")]),t._v(" _init_memory "),a("Badge",{attrs:{text:"History",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_init_memory",sig:{params:[{name:"self"},{name:"state",default:"None",annotation:"Optional[D.T_state]"}],return:"D.T_memory[D.T_state]"}}}),t._v(" "),a("p",[t._v("Initialize memory (possibly with a state) according to its specification and return it.")]),t._v(" "),a("p",[t._v("This function is automatically called by "),a("code",[t._v("Initializable._reset()")]),t._v(" to reinitialize the internal memory whenever\nthe domain is used as an environment.")]),t._v(" "),a("h4",{attrs:{id:"parameters-251"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-251"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": An optional state to initialize the memory with (typically the initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-355"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-355"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The new initialized memory.")]),t._v(" "),a("h3",{attrs:{id:"is-action-16"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-action-16"}},[t._v("#")]),t._v(" _is_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_action",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an event is an action (i.e. a controllable event for the agents).")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\naction space provided by "),a("code",[t._v("Events._get_action_space()")]),t._v(", but it can be overridden for faster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-252"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-252"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("event")]),t._v(": The event to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-356"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-356"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is an action (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-applicable-action-16"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-16"}},[t._v("#")]),t._v(" _is_applicable_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_applicable_action",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an action is applicable in the given memory (state or history), or in the internal one if\nomitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._is_applicable_action()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_applicable_action_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-253"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-253"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-357"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-357"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the action is applicable (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-applicable-action-from-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-from-8"}},[t._v("#")]),t._v(" _is_applicable_action_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_applicable_action_from",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an action is applicable in the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._is_applicable_action()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the space of\napplicable actions provided by "),a("code",[t._v("Events._get_applicable_actions_from()")]),t._v(", but it can be overridden for faster\nimplementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-254"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-254"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-358"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-358"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the action is applicable (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-enabled-event-16"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-16"}},[t._v("#")]),t._v(" _is_enabled_event "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_enabled_event",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an uncontrollable event is enabled in the given memory (state or history), or in the\ninternal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._is_enabled_event()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_enabled_event_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead\nof the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-255"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-255"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-359"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-359"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is enabled (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-enabled-event-from-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-from-8"}},[t._v("#")]),t._v(" _is_enabled_event_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_enabled_event_from",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an event is enabled in the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._is_enabled_event()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the space of\nenabled events provided by "),a("code",[t._v("Events._get_enabled_events_from()")]),t._v(", but it can be overridden for faster\nimplementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-256"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-256"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-360"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-360"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is enabled (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-goal-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-goal-4"}},[t._v("#")]),t._v(" _is_goal "),a("Badge",{attrs:{text:"Goals",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_goal",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"D.T_agent[D.T_predicate]"}}}),t._v(" "),a("p",[t._v("Indicate whether an observation belongs to the goals.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\ngoals space provided by "),a("code",[t._v("Goals._get_goals()")]),t._v(", but it can be overridden for faster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-257"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-257"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-361"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-361"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the observation is a goal (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-observation-16"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-observation-16"}},[t._v("#")]),t._v(" _is_observation "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_observation",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that an observation indeed belongs to the domain observation space.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\nobservation space provided by "),a("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(", but it can be overridden for\nfaster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-258"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-258"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-362"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-362"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the observation belongs to the domain observation space (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-positive-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-positive-2"}},[t._v("#")]),t._v(" _is_positive "),a("Badge",{attrs:{text:"PositiveCosts",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_positive",sig:{params:[{name:"self"},{name:"cost",annotation:"D.T_value"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Determine if a value is positive (can be overridden for advanced value types).")]),t._v(" "),a("h4",{attrs:{id:"parameters-259"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-259"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("cost")]),t._v(": The cost to evaluate.")])]),t._v(" "),a("h4",{attrs:{id:"returns-363"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-363"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the cost is positive (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-terminal-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-terminal-8"}},[t._v("#")]),t._v(" _is_terminal "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_terminal",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"}],return:"D.T_agent[D.T_predicate]"}}}),t._v(" "),a("p",[t._v("Indicate whether a state is terminal.")]),t._v(" "),a("p",[t._v("A terminal state is a state with no outgoing transition (except to itself with value 0).")]),t._v(" "),a("h4",{attrs:{id:"parameters-260"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-260"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-364"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-364"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the state is terminal (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-transition-value-dependent-on-next-state-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-transition-value-dependent-on-next-state-11"}},[t._v("#")]),t._v(" _is_transition_value_dependent_on_next_state "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_transition_value_dependent_on_next_state",sig:{params:[{name:"self"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether _get_transition_value() requires the next_state parameter for its computation (cached).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("UncertainTransitions._is_transition_value_dependent_on_next_state()")]),t._v(" internally\ncalls "),a("code",[t._v("UncertainTransitions._is_transition_value_dependent_on_next_state_()")]),t._v(" the first time and automatically\ncaches its value to make future calls more efficient (since the returned value is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-365"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-365"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the transition value computation depends on next_state (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-transition-value-dependent-on-next-state-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-transition-value-dependent-on-next-state-12"}},[t._v("#")]),t._v(" _is_transition_value_dependent_on_next_state_ "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_transition_value_dependent_on_next_state_",sig:{params:[{name:"self"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether _get_transition_value() requires the next_state parameter for its computation.")]),t._v(" "),a("p",[t._v("This is a helper function called by default\nfrom "),a("code",[t._v("UncertainTransitions._is_transition_value_dependent_on_next_state()")]),t._v(", the difference being that the result\nis not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-366"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-366"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the transition value computation depends on next_state (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"reset-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#reset-12"}},[t._v("#")]),t._v(" _reset "),a("Badge",{attrs:{text:"Initializable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_reset",sig:{params:[{name:"self"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Reset the state of the environment and return an initial observation.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Initializable._reset()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Initializable._state_reset()")]),t._v(" (which returns an initial state). The boilerplate code automatically stores\nthe initial state into the "),a("code",[t._v("_memory")]),t._v(" attribute and samples a corresponding observation.")]),t._v(" "),a("h4",{attrs:{id:"returns-367"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-367"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("An initial observation.")]),t._v(" "),a("h3",{attrs:{id:"sample-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample-10"}},[t._v("#")]),t._v(" _sample "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_sample",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Sample one transition of the simulator's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Simulation._sample()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Simulation._state_sample()")]),t._v(" (which returns a transition outcome). The boilerplate code automatically\nsamples an observation corresponding to the sampled next state.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing simulator needs to be wrapped instead of implemented fully in scikit-decide (e.g. a\nsimulator), it is recommended to overwrite "),a("code",[t._v("Simulation._sample()")]),t._v(" to call the external simulator and not use\nthe "),a("code",[t._v("Simulation._state_sample()")]),t._v(" helper function.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-261"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-261"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-368"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-368"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of the sampled transition.")]),t._v(" "),a("h3",{attrs:{id:"set-memory-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#set-memory-10"}},[t._v("#")]),t._v(" _set_memory "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_set_memory",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"None"}}}),t._v(" "),a("p",[t._v("Set internal memory attribute "),a("code",[t._v("_memory")]),t._v(" to given one.")]),t._v(" "),a("p",[t._v('This can be useful to set a specific "starting point" before doing a rollout with\nsuccessive '),a("code",[t._v("Environment._step()")]),t._v(" calls.")]),t._v(" "),a("h4",{attrs:{id:"parameters-262"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-262"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to set internally.")])]),t._v(" "),a("h4",{attrs:{id:"example-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#example-10"}},[t._v("#")]),t._v(" Example")]),t._v(" "),a("div",{staticClass:"language-python extra-class"},[a("pre",{pre:!0,attrs:{class:"language-python"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Set simulation_domain memory to my_state (assuming Markovian domain)")]),t._v("\nsimulation_domain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("_set_memory"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("my_state"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Start a 100-steps rollout from here (applying my_action at every step)")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("for")]),t._v(" _ "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("in")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("range")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n simulation_domain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("_step"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("my_action"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("h3",{attrs:{id:"state-reset-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#state-reset-6"}},[t._v("#")]),t._v(" _state_reset "),a("Badge",{attrs:{text:"Initializable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_state_reset",sig:{params:[{name:"self"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("Reset the state of the environment and return an initial state.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Initializable._reset()")]),t._v(". It focuses on the state level, as\nopposed to the observation one for the latter.")]),t._v(" "),a("h4",{attrs:{id:"returns-369"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-369"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("An initial state.")]),t._v(" "),a("h3",{attrs:{id:"state-sample-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#state-sample-5"}},[t._v("#")]),t._v(" _state_sample "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_state_sample",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"TransitionOutcome[D.T_state, D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Compute one sample of the transition's dynamics.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Simulation._sample()")]),t._v(". It focuses on the state level, as\nopposed to the observation one for the latter.")]),t._v(" "),a("h4",{attrs:{id:"parameters-263"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-263"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-370"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-370"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The transition outcome of the sampled transition.")]),t._v(" "),a("h3",{attrs:{id:"state-step-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#state-step-8"}},[t._v("#")]),t._v(" _state_step "),a("Badge",{attrs:{text:"Environment",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_state_step",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"TransitionOutcome[D.T_state, D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Compute one step of the transition's dynamics.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Environment._step()")]),t._v(". It focuses on the state level, as opposed\nto the observation one for the latter.")]),t._v(" "),a("h4",{attrs:{id:"parameters-264"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-264"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the current memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-371"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-371"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The transition outcome of this step.")]),t._v(" "),a("h3",{attrs:{id:"step-16"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#step-16"}},[t._v("#")]),t._v(" _step "),a("Badge",{attrs:{text:"Environment",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_step",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Run one step of the environment's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Environment._step()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Environment._state_step()")]),t._v(" (which returns a transition outcome). The boilerplate code automatically stores\nnext state into the "),a("code",[t._v("_memory")]),t._v(" attribute and samples a corresponding observation.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing environment needs to be wrapped instead of implemented fully in scikit-decide (e.g. compiled\nATARI games), it is recommended to overwrite "),a("code",[t._v("Environment._step()")]),t._v(" to call the external environment and not\nuse the "),a("code",[t._v("Environment._state_step()")]),t._v(" helper function.")])]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Before calling "),a("code",[t._v("Environment._step()")]),t._v(" the first time or when the end of an episode is\nreached, "),a("code",[t._v("Initializable._reset()")]),t._v(" must be called to reset the environment's state.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-265"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-265"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the current memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-372"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-372"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of this step.")]),t._v(" "),a("h2",{attrs:{id:"deterministicplanningdomain"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#deterministicplanningdomain"}},[t._v("#")]),t._v(" DeterministicPlanningDomain")]),t._v(" "),a("p",[t._v("This is a typical deterministic planning domain class.")]),t._v(" "),a("p",[t._v("This helper class can be used as an alternate base class for domains, inheriting the following:")]),t._v(" "),a("ul",[a("li",[t._v("Domain")]),t._v(" "),a("li",[t._v("SingleAgent")]),t._v(" "),a("li",[t._v("Sequential")]),t._v(" "),a("li",[t._v("DeterministicTransitions")]),t._v(" "),a("li",[t._v("Actions")]),t._v(" "),a("li",[t._v("Goals")]),t._v(" "),a("li",[t._v("DeterministicInitialized")]),t._v(" "),a("li",[t._v("Markovian")]),t._v(" "),a("li",[t._v("FullyObservable")]),t._v(" "),a("li",[t._v("PositiveCosts")])]),t._v(" "),a("p",[t._v("Typical use:")]),t._v(" "),a("div",{staticClass:"language-python extra-class"},[a("pre",{pre:!0,attrs:{class:"language-python"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("class")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("D")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("DeterministicPlanningDomain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("It is also possible to refine any alternate base class, like for instance:")]),t._v(" "),a("div",{staticClass:"language-python extra-class"},[a("pre",{pre:!0,attrs:{class:"language-python"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("class")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("D")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("RLDomain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" FullyObservable"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])])]),t._v(" "),a("h3",{attrs:{id:"check-value-17"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#check-value-17"}},[t._v("#")]),t._v(" check_value "),a("Badge",{attrs:{text:"Rewards",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"check_value",sig:{params:[{name:"self"},{name:"value",annotation:"Value[D.T_value]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that a value is compliant with its reward specification.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("This function returns always True by default because any kind of reward should be accepted at this level.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-266"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-266"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("value")]),t._v(": The value to check.")])]),t._v(" "),a("h4",{attrs:{id:"returns-373"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-373"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the value is compliant (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"get-action-space-25"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-25"}},[t._v("#")]),t._v(" get_action_space "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_action_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) domain action space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.get_action_space()")]),t._v(" internally calls "),a("code",[t._v("Events._get_action_space_()")]),t._v(" the first time and\nautomatically caches its value to make future calls more efficient (since the action space is assumed to be\nconstant).")]),t._v(" "),a("h4",{attrs:{id:"returns-374"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-374"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The action space.")]),t._v(" "),a("h3",{attrs:{id:"get-applicable-actions-17"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-17"}},[t._v("#")]),t._v(" get_applicable_actions "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_applicable_actions",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history), or in\nthe internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.get_applicable_actions()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_applicable_actions()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-267"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-267"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-375"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-375"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of applicable actions.")]),t._v(" "),a("h3",{attrs:{id:"get-enabled-events-17"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-17"}},[t._v("#")]),t._v(" get_enabled_events "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_enabled_events",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"Space[D.T_event]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory), or in the internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.get_enabled_events()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_enabled_events()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead of\nthe memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-268"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-268"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-376"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-376"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of enabled events.")]),t._v(" "),a("h3",{attrs:{id:"get-goals-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-goals-7"}},[t._v("#")]),t._v(" get_goals "),a("Badge",{attrs:{text:"Goals",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_goals",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) domain goals space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Goals.get_goals()")]),t._v(" internally calls "),a("code",[t._v("Goals._get_goals_()")]),t._v(" the first time and automatically caches its\nvalue to make future calls more efficient (since the goals space is assumed to be constant).")]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Goal states are assumed to be fully observable (i.e. observation = state) so that there is never uncertainty\nabout whether the goal has been reached or not. This assumption guarantees that any policy that does not\nreach the goal with certainty incurs in infinite expected cost. - "),a("em",[t._v("Geffner, 2013: A Concise Introduction to\nModels and Methods for Automated Planning")])])]),t._v(" "),a("h4",{attrs:{id:"returns-377"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-377"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The goals space.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-7"}},[t._v("#")]),t._v(" get_initial_state "),a("Badge",{attrs:{text:"DeterministicInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_initial_state",sig:{params:[{name:"self"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("Get the (cached) initial state.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("DeterministicInitialized.get_initial_state()")]),t._v(" internally\ncalls "),a("code",[t._v("DeterministicInitialized._get_initial_state_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the initial state is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-378"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-378"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The initial state.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-distribution-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-distribution-13"}},[t._v("#")]),t._v(" get_initial_state_distribution "),a("Badge",{attrs:{text:"UncertainInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_initial_state_distribution",sig:{params:[{name:"self"}],return:"Distribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("Get the (cached) probability distribution of initial states.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("UncertainInitialized.get_initial_state_distribution()")]),t._v(" internally\ncalls "),a("code",[t._v("UncertainInitialized._get_initial_state_distribution_()")]),t._v(" the first time and automatically caches its value\nto make future calls more efficient (since the initial state distribution is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-379"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-379"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of initial states.")]),t._v(" "),a("h3",{attrs:{id:"get-next-state"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-next-state"}},[t._v("#")]),t._v(" get_next_state "),a("Badge",{attrs:{text:"DeterministicTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_next_state",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("Get the next state given a memory and action.")]),t._v(" "),a("h4",{attrs:{id:"parameters-269"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-269"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-380"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-380"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The deterministic next state.")]),t._v(" "),a("h3",{attrs:{id:"get-next-state-distribution-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-next-state-distribution-9"}},[t._v("#")]),t._v(" get_next_state_distribution "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_next_state_distribution",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"DiscreteDistribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("Get the discrete probability distribution of next state given a memory and action.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("In the Markovian case (memory only holds last state "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.061ex",height:"1.023ex",viewBox:"0 -442 469 452"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})])])])])]),t._v("), given an action "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.197ex",height:"1.02ex",viewBox:"0 -441 529 451"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})])])])])]),t._v(", this function can\nbe mathematically represented by "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.292ex",height:"2.283ex",viewBox:"0 -759 4107.1 1009"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"50",d:"M287 628Q287 635 230 637Q206 637 199 638T192 648Q192 649 194 659Q200 679 203 681T397 683Q587 682 600 680Q664 669 707 631T751 530Q751 453 685 389Q616 321 507 303Q500 302 402 301H307L277 182Q247 66 247 59Q247 55 248 54T255 50T272 48T305 46H336Q342 37 342 35Q342 19 335 5Q330 0 319 0Q316 0 282 1T182 2Q120 2 87 2T51 1Q33 1 33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM645 554Q645 567 643 575T634 597T609 619T560 635Q553 636 480 637Q463 637 445 637T416 636T404 636Q391 635 386 627Q384 621 367 550T332 412T314 344Q314 342 395 342H407H430Q542 342 590 392Q617 419 631 471T645 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(751, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"msup",transform:"translate(1140, 0)"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"53",d:"M308 24Q367 24 416 76T466 197Q466 260 414 284Q308 311 278 321T236 341Q176 383 176 462Q176 523 208 573T273 648Q302 673 343 688T407 704H418H425Q521 704 564 640Q565 640 577 653T603 682T623 704Q624 704 627 704T632 705Q645 705 645 698T617 577T585 459T569 456Q549 456 549 465Q549 471 550 475Q550 478 551 494T553 520Q553 554 544 579T526 616T501 641Q465 662 419 662Q362 662 313 616T263 510Q263 480 278 458T319 427Q323 425 389 408T456 390Q490 379 522 342T554 242Q554 216 546 186Q541 164 528 137T492 78T426 18T332 -20Q320 -22 298 -22Q199 -22 144 33L134 44L106 13Q83 -14 78 -18T65 -22Q52 -22 52 -14Q52 -11 110 221Q112 227 130 227H143Q149 221 149 216Q149 214 148 207T144 186T142 153Q144 114 160 87T203 47T255 29T308 24Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(613, 363) scale(0.707)"}},[a("path",{attrs:{"data-c":"2032",d:"M79 43Q73 43 52 49T30 61Q30 68 85 293T146 528Q161 560 198 560Q218 560 240 545T262 501Q262 496 260 486Q259 479 173 263T84 45T79 43Z"}})])]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1997.5, 0)"}},[a("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(2275.5, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2744.5, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(3189.1, 0)"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3718.1, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(", where "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.05ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.94ex",height:"1.767ex",viewBox:"0 -759 857.5 781"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"msup"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"53",d:"M308 24Q367 24 416 76T466 197Q466 260 414 284Q308 311 278 321T236 341Q176 383 176 462Q176 523 208 573T273 648Q302 673 343 688T407 704H418H425Q521 704 564 640Q565 640 577 653T603 682T623 704Q624 704 627 704T632 705Q645 705 645 698T617 577T585 459T569 456Q549 456 549 465Q549 471 550 475Q550 478 551 494T553 520Q553 554 544 579T526 616T501 641Q465 662 419 662Q362 662 313 616T263 510Q263 480 278 458T319 427Q323 425 389 408T456 390Q490 379 522 342T554 242Q554 216 546 186Q541 164 528 137T492 78T426 18T332 -20Q320 -22 298 -22Q199 -22 144 33L134 44L106 13Q83 -14 78 -18T65 -22Q52 -22 52 -14Q52 -11 110 221Q112 227 130 227H143Q149 221 149 216Q149 214 148 207T144 186T142 153Q144 114 160 87T203 47T255 29T308 24Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(613, 363) scale(0.707)"}},[a("path",{attrs:{"data-c":"2032",d:"M79 43Q73 43 52 49T30 61Q30 68 85 293T146 528Q161 560 198 560Q218 560 240 545T262 501Q262 496 260 486Q259 479 173 263T84 45T79 43Z"}})])])])])])]),t._v(" is the next state random variable.")],1)]),t._v(" "),a("h4",{attrs:{id:"parameters-270"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-270"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-381"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-381"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The discrete probability distribution of next state.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-11"}},[t._v("#")]),t._v(" get_observation "),a("Badge",{attrs:{text:"TransformedObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_observation",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Get the deterministic observation given a state and action.")]),t._v(" "),a("h4",{attrs:{id:"parameters-271"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-271"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-382"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-382"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-distribution-17"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-distribution-17"}},[t._v("#")]),t._v(" get_observation_distribution "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_observation_distribution",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"Distribution[D.T_agent[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the probability distribution of the observation given a state and action.")]),t._v(" "),a("p",[t._v("In mathematical terms (discrete case), given an action "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.197ex",height:"1.02ex",viewBox:"0 -441 529 451"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})])])])])]),t._v(", this function represents: "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.078ex",height:"2.262ex",viewBox:"0 -750 4012.7 1000"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"50",d:"M287 628Q287 635 230 637Q206 637 199 638T192 648Q192 649 194 659Q200 679 203 681T397 683Q587 682 600 680Q664 669 707 631T751 530Q751 453 685 389Q616 321 507 303Q500 302 402 301H307L277 182Q247 66 247 59Q247 55 248 54T255 50T272 48T305 46H336Q342 37 342 35Q342 19 335 5Q330 0 319 0Q316 0 282 1T182 2Q120 2 87 2T51 1Q33 1 33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM645 554Q645 567 643 575T634 597T609 619T560 635Q553 636 480 637Q463 637 445 637T416 636T404 636Q391 635 386 627Q384 621 367 550T332 412T314 344Q314 342 395 342H407H430Q542 342 590 392Q617 419 631 471T645 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(751, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(1140, 0)"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1903, 0)"}},[a("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(2181, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2650, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(3094.7, 0)"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3623.7, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(",\nwhere "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.05ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.726ex",height:"1.643ex",viewBox:"0 -704 763 726"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})])])])])]),t._v(" is the random variable of the observation.")],1),t._v(" "),a("h4",{attrs:{id:"parameters-272"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-272"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-383"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-383"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-space-25"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-25"}},[t._v("#")]),t._v(" get_observation_space "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_observation_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) observation space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("PartiallyObservable.get_observation_space()")]),t._v(" internally\ncalls "),a("code",[t._v("PartiallyObservable._get_observation_space_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the observation space is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-384"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-384"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The observation space.")]),t._v(" "),a("h3",{attrs:{id:"get-transition-value-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-transition-value-9"}},[t._v("#")]),t._v(" get_transition_value "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_transition_value",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"},{name:"next_state",default:"None",annotation:"Optional[D.T_state]"}],return:"D.T_agent[Value[D.T_value]]"}}}),t._v(" "),a("p",[t._v("Get the value (reward or cost) of a transition.")]),t._v(" "),a("p",[t._v("The transition to consider is defined by the function parameters.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("If this function never depends on the next_state parameter for its computation, it is recommended to\nindicate it by overriding "),a("code",[t._v("UncertainTransitions._is_transition_value_dependent_on_next_state_()")]),t._v(" to return\nFalse. This information can then be exploited by solvers to avoid computing next state to evaluate a\ntransition value (more efficient).")])]),t._v(" "),a("h4",{attrs:{id:"parameters-273"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-273"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")]),t._v(" "),a("li",[a("strong",[t._v("next_state")]),t._v(": The next state in which the transition ends (if needed for the computation).")])]),t._v(" "),a("h4",{attrs:{id:"returns-385"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-385"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The transition value (reward or cost).")]),t._v(" "),a("h3",{attrs:{id:"is-action-17"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-action-17"}},[t._v("#")]),t._v(" is_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_action",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an event is an action (i.e. a controllable event for the agents).")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\naction space provided by "),a("code",[t._v("Events.get_action_space()")]),t._v(", but it can be overridden for faster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-274"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-274"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("event")]),t._v(": The event to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-386"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-386"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is an action (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-applicable-action-17"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-17"}},[t._v("#")]),t._v(" is_applicable_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_applicable_action",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an action is applicable in the given memory (state or history), or in the internal one if\nomitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.is_applicable_action()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_applicable_action()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead\nof the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-275"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-275"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-387"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-387"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the action is applicable (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-enabled-event-17"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-17"}},[t._v("#")]),t._v(" is_enabled_event "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_enabled_event",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an uncontrollable event is enabled in the given memory (state or history), or in the\ninternal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.is_enabled_event()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_enabled_event()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead of\nthe memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-276"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-276"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-388"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-388"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is enabled (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-goal-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-goal-5"}},[t._v("#")]),t._v(" is_goal "),a("Badge",{attrs:{text:"Goals",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_goal",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"D.T_agent[D.T_predicate]"}}}),t._v(" "),a("p",[t._v("Indicate whether an observation belongs to the goals.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\ngoals space provided by "),a("code",[t._v("Goals.get_goals()")]),t._v(", but it can be overridden for faster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-277"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-277"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-389"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-389"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the observation is a goal (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-observation-17"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-observation-17"}},[t._v("#")]),t._v(" is_observation "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_observation",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that an observation indeed belongs to the domain observation space.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\nobservation space provided by "),a("code",[t._v("PartiallyObservable.get_observation_space()")]),t._v(", but it can be overridden for\nfaster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-278"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-278"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-390"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-390"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the observation belongs to the domain observation space (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-terminal-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-terminal-9"}},[t._v("#")]),t._v(" is_terminal "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_terminal",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"}],return:"D.T_agent[D.T_predicate]"}}}),t._v(" "),a("p",[t._v("Indicate whether a state is terminal.")]),t._v(" "),a("p",[t._v("A terminal state is a state with no outgoing transition (except to itself with value 0).")]),t._v(" "),a("h4",{attrs:{id:"parameters-279"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-279"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-391"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-391"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the state is terminal (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-transition-value-dependent-on-next-state-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-transition-value-dependent-on-next-state-13"}},[t._v("#")]),t._v(" is_transition_value_dependent_on_next_state "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_transition_value_dependent_on_next_state",sig:{params:[{name:"self"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether get_transition_value() requires the next_state parameter for its computation (cached).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("UncertainTransitions.is_transition_value_dependent_on_next_state()")]),t._v(" internally\ncalls "),a("code",[t._v("UncertainTransitions._is_transition_value_dependent_on_next_state_()")]),t._v(" the first time and automatically\ncaches its value to make future calls more efficient (since the returned value is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-392"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-392"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the transition value computation depends on next_state (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"reset-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#reset-13"}},[t._v("#")]),t._v(" reset "),a("Badge",{attrs:{text:"Initializable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"reset",sig:{params:[{name:"self"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Reset the state of the environment and return an initial observation.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Initializable.reset()")]),t._v(" provides some boilerplate code and internally calls "),a("code",[t._v("Initializable._reset()")]),t._v("\n(which returns an initial state). The boilerplate code automatically stores the initial state into the "),a("code",[t._v("_memory")]),t._v("\nattribute and samples a corresponding observation.")]),t._v(" "),a("h4",{attrs:{id:"returns-393"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-393"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("An initial observation.")]),t._v(" "),a("h3",{attrs:{id:"sample-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample-11"}},[t._v("#")]),t._v(" sample "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"sample",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Sample one transition of the simulator's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Simulation.sample()")]),t._v(" provides some boilerplate code and internally calls "),a("code",[t._v("Simulation._sample()")]),t._v("\n(which returns a transition outcome). The boilerplate code automatically samples an observation corresponding to\nthe sampled next state.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing simulator needs to be wrapped instead of implemented fully in scikit-decide (e.g. a\nsimulator), it is recommended to overwrite "),a("code",[t._v("Simulation.sample()")]),t._v(" to call the external simulator and not use\nthe "),a("code",[t._v("Simulation._sample()")]),t._v(" helper function.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-280"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-280"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-394"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-394"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of the sampled transition.")]),t._v(" "),a("h3",{attrs:{id:"set-memory-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#set-memory-11"}},[t._v("#")]),t._v(" set_memory "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"set_memory",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"None"}}}),t._v(" "),a("p",[t._v("Set internal memory attribute "),a("code",[t._v("_memory")]),t._v(" to given one.")]),t._v(" "),a("p",[t._v('This can be useful to set a specific "starting point" before doing a rollout with successive '),a("code",[t._v("Environment.step()")]),t._v("\ncalls.")]),t._v(" "),a("h4",{attrs:{id:"parameters-281"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-281"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to set internally.")])]),t._v(" "),a("h4",{attrs:{id:"example-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#example-11"}},[t._v("#")]),t._v(" Example")]),t._v(" "),a("div",{staticClass:"language-python extra-class"},[a("pre",{pre:!0,attrs:{class:"language-python"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Set simulation_domain memory to my_state (assuming Markovian domain)")]),t._v("\nsimulation_domain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("set_memory"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("my_state"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Start a 100-steps rollout from here (applying my_action at every step)")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("for")]),t._v(" _ "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("in")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("range")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n simulation_domain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("step"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("my_action"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("h3",{attrs:{id:"solve-with-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#solve-with-9"}},[t._v("#")]),t._v(" solve_with "),a("Badge",{attrs:{text:"Domain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"solve_with",sig:{params:[{name:"solver",annotation:"Solver"},{name:"domain_factory",default:"None",annotation:"Optional[Callable[[], Domain]]"},{name:"load_path",default:"None",annotation:"Optional[str]"}],return:"Solver"}}}),t._v(" "),a("p",[t._v("Solve the domain with a new or loaded solver and return it auto-cast to the level of the domain.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Solver.check_domain()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Solver._check_domain_additional()")]),t._v(' (which returns True by default but can be overridden to define\nspecific checks in addition to the "domain requirements"). The boilerplate code automatically checks whether all\ndomain requirements are met.')]),t._v(" "),a("h4",{attrs:{id:"parameters-282"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-282"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("solver")]),t._v(": The solver.")]),t._v(" "),a("li",[a("strong",[t._v("domain_factory")]),t._v(": A callable with no argument returning the domain to solve (factory is the domain class if None).")]),t._v(" "),a("li",[a("strong",[t._v("load_path")]),t._v(": The path to restore the solver state from (if None, the solving process will be launched instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-395"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-395"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The new solver (auto-cast to the level of the domain).")]),t._v(" "),a("h3",{attrs:{id:"step-17"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#step-17"}},[t._v("#")]),t._v(" step "),a("Badge",{attrs:{text:"Environment",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"step",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Run one step of the environment's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Environment.step()")]),t._v(" provides some boilerplate code and internally calls "),a("code",[t._v("Environment._step()")]),t._v(" (which\nreturns a transition outcome). The boilerplate code automatically stores next state into the "),a("code",[t._v("_memory")]),t._v(" attribute\nand samples a corresponding observation.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing environment needs to be wrapped instead of implemented fully in scikit-decide (e.g. compiled\nATARI games), it is recommended to overwrite "),a("code",[t._v("Environment.step()")]),t._v(" to call the external environment and not\nuse the "),a("code",[t._v("Environment._step()")]),t._v(" helper function.")])]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Before calling "),a("code",[t._v("Environment.step()")]),t._v(" the first time or when the end of an episode is\nreached, "),a("code",[t._v("Initializable.reset()")]),t._v(" must be called to reset the environment's state.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-283"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-283"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the current memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-396"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-396"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of this step.")]),t._v(" "),a("h3",{attrs:{id:"check-value-18"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#check-value-18"}},[t._v("#")]),t._v(" _check_value "),a("Badge",{attrs:{text:"Rewards",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_check_value",sig:{params:[{name:"self"},{name:"value",annotation:"Value[D.T_value]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that a value is compliant with its cost specification (must be positive).")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("This function calls "),a("code",[t._v("PositiveCost._is_positive()")]),t._v(" to determine if a value is positive (can be overridden for\nadvanced value types).")])]),t._v(" "),a("h4",{attrs:{id:"parameters-284"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-284"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("value")]),t._v(": The value to check.")])]),t._v(" "),a("h4",{attrs:{id:"returns-397"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-397"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the value is compliant (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"get-action-space-26"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-26"}},[t._v("#")]),t._v(" _get_action_space "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_action_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) domain action space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._get_action_space()")]),t._v(" internally calls "),a("code",[t._v("Events._get_action_space_()")]),t._v(" the first time and\nautomatically caches its value to make future calls more efficient (since the action space is assumed to be\nconstant).")]),t._v(" "),a("h4",{attrs:{id:"returns-398"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-398"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The action space.")]),t._v(" "),a("h3",{attrs:{id:"get-action-space-27"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-27"}},[t._v("#")]),t._v(" _get_action_space_ "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_action_space_",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the domain action space (finite or infinite set).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._get_action_space()")]),t._v(", the difference being that the\nresult is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-399"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-399"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The action space.")]),t._v(" "),a("h3",{attrs:{id:"get-applicable-actions-18"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-18"}},[t._v("#")]),t._v(" _get_applicable_actions "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_applicable_actions",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history), or in\nthe internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._get_applicable_actions()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_applicable_actions_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-285"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-285"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-400"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-400"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of applicable actions.")]),t._v(" "),a("h3",{attrs:{id:"get-applicable-actions-from-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-from-9"}},[t._v("#")]),t._v(" _get_applicable_actions_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_applicable_actions_from",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._get_applicable_actions()")]),t._v(", the difference being that\nthe memory parameter is mandatory here.")]),t._v(" "),a("h4",{attrs:{id:"parameters-286"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-286"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-401"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-401"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of applicable actions.")]),t._v(" "),a("h3",{attrs:{id:"get-enabled-events-18"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-18"}},[t._v("#")]),t._v(" _get_enabled_events "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_enabled_events",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"Space[D.T_event]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory), or in the internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._get_enabled_events()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_enabled_events_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-287"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-287"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-402"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-402"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of enabled events.")]),t._v(" "),a("h3",{attrs:{id:"get-enabled-events-from-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-from-9"}},[t._v("#")]),t._v(" _get_enabled_events_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_enabled_events_from",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"Space[D.T_event]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._get_enabled_events()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("h4",{attrs:{id:"parameters-288"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-288"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-403"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-403"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of enabled events.")]),t._v(" "),a("h3",{attrs:{id:"get-goals-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-goals-8"}},[t._v("#")]),t._v(" _get_goals "),a("Badge",{attrs:{text:"Goals",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_goals",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) domain goals space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Goals._get_goals()")]),t._v(" internally calls "),a("code",[t._v("Goals._get_goals_()")]),t._v(" the first time and automatically caches\nits value to make future calls more efficient (since the goals space is assumed to be constant).")]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Goal states are assumed to be fully observable (i.e. observation = state) so that there is never uncertainty\nabout whether the goal has been reached or not. This assumption guarantees that any policy that does not\nreach the goal with certainty incurs in infinite expected cost. - "),a("em",[t._v("Geffner, 2013: A Concise Introduction to\nModels and Methods for Automated Planning")])])]),t._v(" "),a("h4",{attrs:{id:"returns-404"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-404"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The goals space.")]),t._v(" "),a("h3",{attrs:{id:"get-goals-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-goals-9"}},[t._v("#")]),t._v(" _get_goals_ "),a("Badge",{attrs:{text:"Goals",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_goals_",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the domain goals space (finite or infinite set).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Goals._get_goals()")]),t._v(", the difference being that the result is\nnot cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-405"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-405"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The goals space.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-8"}},[t._v("#")]),t._v(" _get_initial_state "),a("Badge",{attrs:{text:"DeterministicInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_initial_state",sig:{params:[{name:"self"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("Get the (cached) initial state.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("DeterministicInitialized._get_initial_state()")]),t._v(" internally\ncalls "),a("code",[t._v("DeterministicInitialized._get_initial_state_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the initial state is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-406"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-406"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The initial state.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-9"}},[t._v("#")]),t._v(" _get_initial_state_ "),a("Badge",{attrs:{text:"DeterministicInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_initial_state_",sig:{params:[{name:"self"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("Get the initial state.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("DeterministicInitialized._get_initial_state()")]),t._v(", the difference\nbeing that the result is not cached here.")]),t._v(" "),a("h4",{attrs:{id:"returns-407"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-407"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The initial state.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-distribution-14"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-distribution-14"}},[t._v("#")]),t._v(" _get_initial_state_distribution "),a("Badge",{attrs:{text:"UncertainInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_initial_state_distribution",sig:{params:[{name:"self"}],return:"Distribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("Get the (cached) probability distribution of initial states.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("UncertainInitialized._get_initial_state_distribution()")]),t._v(" internally\ncalls "),a("code",[t._v("UncertainInitialized._get_initial_state_distribution_()")]),t._v(" the first time and automatically caches its value\nto make future calls more efficient (since the initial state distribution is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-408"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-408"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of initial states.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-distribution-15"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-distribution-15"}},[t._v("#")]),t._v(" _get_initial_state_distribution_ "),a("Badge",{attrs:{text:"UncertainInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_initial_state_distribution_",sig:{params:[{name:"self"}],return:"Distribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("Get the probability distribution of initial states.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("UncertainInitialized._get_initial_state_distribution()")]),t._v(", the\ndifference being that the result is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-409"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-409"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of initial states.")]),t._v(" "),a("h3",{attrs:{id:"get-memory-maxlen-16"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-memory-maxlen-16"}},[t._v("#")]),t._v(" _get_memory_maxlen "),a("Badge",{attrs:{text:"History",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_memory_maxlen",sig:{params:[{name:"self"}],return:"int"}}}),t._v(" "),a("p",[t._v("Get the (cached) memory max length.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("FiniteHistory._get_memory_maxlen()")]),t._v(" internally calls "),a("code",[t._v("FiniteHistory._get_memory_maxlen_()")]),t._v(" the first\ntime and automatically caches its value to make future calls more efficient (since the memory max length is\nassumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-410"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-410"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The memory max length.")]),t._v(" "),a("h3",{attrs:{id:"get-memory-maxlen-17"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-memory-maxlen-17"}},[t._v("#")]),t._v(" _get_memory_maxlen_ "),a("Badge",{attrs:{text:"FiniteHistory",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_memory_maxlen_",sig:{params:[{name:"self"}],return:"int"}}}),t._v(" "),a("p",[t._v("Get the memory max length.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("FiniteHistory._get_memory_maxlen()")]),t._v(", the difference being that\nthe result is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-411"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-411"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The memory max length.")]),t._v(" "),a("h3",{attrs:{id:"get-next-state-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-next-state-2"}},[t._v("#")]),t._v(" _get_next_state "),a("Badge",{attrs:{text:"DeterministicTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_next_state",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("Get the next state given a memory and action.")]),t._v(" "),a("h4",{attrs:{id:"parameters-289"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-289"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-412"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-412"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The deterministic next state.")]),t._v(" "),a("h3",{attrs:{id:"get-next-state-distribution-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-next-state-distribution-10"}},[t._v("#")]),t._v(" _get_next_state_distribution "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_next_state_distribution",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"SingleValueDistribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("Get the discrete probability distribution of next state given a memory and action.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("In the Markovian case (memory only holds last state "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.061ex",height:"1.023ex",viewBox:"0 -442 469 452"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})])])])])]),t._v("), given an action "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.197ex",height:"1.02ex",viewBox:"0 -441 529 451"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})])])])])]),t._v(", this function can\nbe mathematically represented by "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.292ex",height:"2.283ex",viewBox:"0 -759 4107.1 1009"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"50",d:"M287 628Q287 635 230 637Q206 637 199 638T192 648Q192 649 194 659Q200 679 203 681T397 683Q587 682 600 680Q664 669 707 631T751 530Q751 453 685 389Q616 321 507 303Q500 302 402 301H307L277 182Q247 66 247 59Q247 55 248 54T255 50T272 48T305 46H336Q342 37 342 35Q342 19 335 5Q330 0 319 0Q316 0 282 1T182 2Q120 2 87 2T51 1Q33 1 33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM645 554Q645 567 643 575T634 597T609 619T560 635Q553 636 480 637Q463 637 445 637T416 636T404 636Q391 635 386 627Q384 621 367 550T332 412T314 344Q314 342 395 342H407H430Q542 342 590 392Q617 419 631 471T645 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(751, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"msup",transform:"translate(1140, 0)"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"53",d:"M308 24Q367 24 416 76T466 197Q466 260 414 284Q308 311 278 321T236 341Q176 383 176 462Q176 523 208 573T273 648Q302 673 343 688T407 704H418H425Q521 704 564 640Q565 640 577 653T603 682T623 704Q624 704 627 704T632 705Q645 705 645 698T617 577T585 459T569 456Q549 456 549 465Q549 471 550 475Q550 478 551 494T553 520Q553 554 544 579T526 616T501 641Q465 662 419 662Q362 662 313 616T263 510Q263 480 278 458T319 427Q323 425 389 408T456 390Q490 379 522 342T554 242Q554 216 546 186Q541 164 528 137T492 78T426 18T332 -20Q320 -22 298 -22Q199 -22 144 33L134 44L106 13Q83 -14 78 -18T65 -22Q52 -22 52 -14Q52 -11 110 221Q112 227 130 227H143Q149 221 149 216Q149 214 148 207T144 186T142 153Q144 114 160 87T203 47T255 29T308 24Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(613, 363) scale(0.707)"}},[a("path",{attrs:{"data-c":"2032",d:"M79 43Q73 43 52 49T30 61Q30 68 85 293T146 528Q161 560 198 560Q218 560 240 545T262 501Q262 496 260 486Q259 479 173 263T84 45T79 43Z"}})])]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1997.5, 0)"}},[a("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(2275.5, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2744.5, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(3189.1, 0)"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3718.1, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(", where "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.05ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.94ex",height:"1.767ex",viewBox:"0 -759 857.5 781"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"msup"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"53",d:"M308 24Q367 24 416 76T466 197Q466 260 414 284Q308 311 278 321T236 341Q176 383 176 462Q176 523 208 573T273 648Q302 673 343 688T407 704H418H425Q521 704 564 640Q565 640 577 653T603 682T623 704Q624 704 627 704T632 705Q645 705 645 698T617 577T585 459T569 456Q549 456 549 465Q549 471 550 475Q550 478 551 494T553 520Q553 554 544 579T526 616T501 641Q465 662 419 662Q362 662 313 616T263 510Q263 480 278 458T319 427Q323 425 389 408T456 390Q490 379 522 342T554 242Q554 216 546 186Q541 164 528 137T492 78T426 18T332 -20Q320 -22 298 -22Q199 -22 144 33L134 44L106 13Q83 -14 78 -18T65 -22Q52 -22 52 -14Q52 -11 110 221Q112 227 130 227H143Q149 221 149 216Q149 214 148 207T144 186T142 153Q144 114 160 87T203 47T255 29T308 24Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(613, 363) scale(0.707)"}},[a("path",{attrs:{"data-c":"2032",d:"M79 43Q73 43 52 49T30 61Q30 68 85 293T146 528Q161 560 198 560Q218 560 240 545T262 501Q262 496 260 486Q259 479 173 263T84 45T79 43Z"}})])])])])])]),t._v(" is the next state random variable.")],1)]),t._v(" "),a("h4",{attrs:{id:"parameters-290"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-290"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-413"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-413"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The discrete probability distribution of next state.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-12"}},[t._v("#")]),t._v(" _get_observation "),a("Badge",{attrs:{text:"TransformedObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Get the deterministic observation given a state and action.")]),t._v(" "),a("h4",{attrs:{id:"parameters-291"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-291"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-414"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-414"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-distribution-18"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-distribution-18"}},[t._v("#")]),t._v(" _get_observation_distribution "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation_distribution",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"Distribution[D.T_agent[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the probability distribution of the observation given a state and action.")]),t._v(" "),a("p",[t._v("In mathematical terms (discrete case), given an action "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.197ex",height:"1.02ex",viewBox:"0 -441 529 451"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})])])])])]),t._v(", this function represents: "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.078ex",height:"2.262ex",viewBox:"0 -750 4012.7 1000"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"50",d:"M287 628Q287 635 230 637Q206 637 199 638T192 648Q192 649 194 659Q200 679 203 681T397 683Q587 682 600 680Q664 669 707 631T751 530Q751 453 685 389Q616 321 507 303Q500 302 402 301H307L277 182Q247 66 247 59Q247 55 248 54T255 50T272 48T305 46H336Q342 37 342 35Q342 19 335 5Q330 0 319 0Q316 0 282 1T182 2Q120 2 87 2T51 1Q33 1 33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM645 554Q645 567 643 575T634 597T609 619T560 635Q553 636 480 637Q463 637 445 637T416 636T404 636Q391 635 386 627Q384 621 367 550T332 412T314 344Q314 342 395 342H407H430Q542 342 590 392Q617 419 631 471T645 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(751, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(1140, 0)"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1903, 0)"}},[a("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(2181, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2650, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(3094.7, 0)"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3623.7, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(",\nwhere "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.05ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.726ex",height:"1.643ex",viewBox:"0 -704 763 726"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})])])])])]),t._v(" is the random variable of the observation.")],1),t._v(" "),a("h4",{attrs:{id:"parameters-292"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-292"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-415"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-415"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-space-26"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-26"}},[t._v("#")]),t._v(" _get_observation_space "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) observation space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(" internally\ncalls "),a("code",[t._v("PartiallyObservable._get_observation_space_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the observation space is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-416"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-416"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The observation space.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-space-27"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-27"}},[t._v("#")]),t._v(" _get_observation_space_ "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation_space_",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the observation space (finite or infinite set).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(", the difference\nbeing that the result is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-417"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-417"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The observation space.")]),t._v(" "),a("h3",{attrs:{id:"get-transition-value-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-transition-value-10"}},[t._v("#")]),t._v(" _get_transition_value "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_transition_value",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"},{name:"next_state",default:"None",annotation:"Optional[D.T_state]"}],return:"D.T_agent[Value[D.T_value]]"}}}),t._v(" "),a("p",[t._v("Get the value (reward or cost) of a transition.")]),t._v(" "),a("p",[t._v("The transition to consider is defined by the function parameters.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("If this function never depends on the next_state parameter for its computation, it is recommended to\nindicate it by overriding "),a("code",[t._v("UncertainTransitions._is_transition_value_dependent_on_next_state_()")]),t._v(" to return\nFalse. This information can then be exploited by solvers to avoid computing next state to evaluate a\ntransition value (more efficient).")])]),t._v(" "),a("h4",{attrs:{id:"parameters-293"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-293"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")]),t._v(" "),a("li",[a("strong",[t._v("next_state")]),t._v(": The next state in which the transition ends (if needed for the computation).")])]),t._v(" "),a("h4",{attrs:{id:"returns-418"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-418"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The transition value (reward or cost).")]),t._v(" "),a("h3",{attrs:{id:"init-memory-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#init-memory-9"}},[t._v("#")]),t._v(" _init_memory "),a("Badge",{attrs:{text:"History",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_init_memory",sig:{params:[{name:"self"},{name:"state",default:"None",annotation:"Optional[D.T_state]"}],return:"D.T_memory[D.T_state]"}}}),t._v(" "),a("p",[t._v("Initialize memory (possibly with a state) according to its specification and return it.")]),t._v(" "),a("p",[t._v("This function is automatically called by "),a("code",[t._v("Initializable._reset()")]),t._v(" to reinitialize the internal memory whenever\nthe domain is used as an environment.")]),t._v(" "),a("h4",{attrs:{id:"parameters-294"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-294"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": An optional state to initialize the memory with (typically the initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-419"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-419"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The new initialized memory.")]),t._v(" "),a("h3",{attrs:{id:"is-action-18"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-action-18"}},[t._v("#")]),t._v(" _is_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_action",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an event is an action (i.e. a controllable event for the agents).")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\naction space provided by "),a("code",[t._v("Events._get_action_space()")]),t._v(", but it can be overridden for faster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-295"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-295"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("event")]),t._v(": The event to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-420"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-420"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is an action (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-applicable-action-18"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-18"}},[t._v("#")]),t._v(" _is_applicable_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_applicable_action",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an action is applicable in the given memory (state or history), or in the internal one if\nomitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._is_applicable_action()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_applicable_action_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-296"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-296"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-421"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-421"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the action is applicable (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-applicable-action-from-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-from-9"}},[t._v("#")]),t._v(" _is_applicable_action_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_applicable_action_from",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an action is applicable in the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._is_applicable_action()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the space of\napplicable actions provided by "),a("code",[t._v("Events._get_applicable_actions_from()")]),t._v(", but it can be overridden for faster\nimplementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-297"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-297"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-422"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-422"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the action is applicable (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-enabled-event-18"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-18"}},[t._v("#")]),t._v(" _is_enabled_event "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_enabled_event",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an uncontrollable event is enabled in the given memory (state or history), or in the\ninternal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._is_enabled_event()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_enabled_event_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead\nof the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-298"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-298"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-423"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-423"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is enabled (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-enabled-event-from-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-from-9"}},[t._v("#")]),t._v(" _is_enabled_event_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_enabled_event_from",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an event is enabled in the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._is_enabled_event()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the space of\nenabled events provided by "),a("code",[t._v("Events._get_enabled_events_from()")]),t._v(", but it can be overridden for faster\nimplementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-299"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-299"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-424"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-424"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is enabled (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-goal-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-goal-6"}},[t._v("#")]),t._v(" _is_goal "),a("Badge",{attrs:{text:"Goals",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_goal",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"D.T_agent[D.T_predicate]"}}}),t._v(" "),a("p",[t._v("Indicate whether an observation belongs to the goals.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\ngoals space provided by "),a("code",[t._v("Goals._get_goals()")]),t._v(", but it can be overridden for faster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-300"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-300"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-425"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-425"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the observation is a goal (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-observation-18"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-observation-18"}},[t._v("#")]),t._v(" _is_observation "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_observation",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that an observation indeed belongs to the domain observation space.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\nobservation space provided by "),a("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(", but it can be overridden for\nfaster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-301"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-301"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-426"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-426"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the observation belongs to the domain observation space (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-positive-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-positive-3"}},[t._v("#")]),t._v(" _is_positive "),a("Badge",{attrs:{text:"PositiveCosts",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_positive",sig:{params:[{name:"self"},{name:"cost",annotation:"D.T_value"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Determine if a value is positive (can be overridden for advanced value types).")]),t._v(" "),a("h4",{attrs:{id:"parameters-302"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-302"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("cost")]),t._v(": The cost to evaluate.")])]),t._v(" "),a("h4",{attrs:{id:"returns-427"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-427"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the cost is positive (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-terminal-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-terminal-10"}},[t._v("#")]),t._v(" _is_terminal "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_terminal",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"}],return:"D.T_agent[D.T_predicate]"}}}),t._v(" "),a("p",[t._v("Indicate whether a state is terminal.")]),t._v(" "),a("p",[t._v("A terminal state is a state with no outgoing transition (except to itself with value 0).")]),t._v(" "),a("h4",{attrs:{id:"parameters-303"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-303"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-428"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-428"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the state is terminal (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-transition-value-dependent-on-next-state-14"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-transition-value-dependent-on-next-state-14"}},[t._v("#")]),t._v(" _is_transition_value_dependent_on_next_state "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_transition_value_dependent_on_next_state",sig:{params:[{name:"self"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether _get_transition_value() requires the next_state parameter for its computation (cached).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("UncertainTransitions._is_transition_value_dependent_on_next_state()")]),t._v(" internally\ncalls "),a("code",[t._v("UncertainTransitions._is_transition_value_dependent_on_next_state_()")]),t._v(" the first time and automatically\ncaches its value to make future calls more efficient (since the returned value is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-429"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-429"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the transition value computation depends on next_state (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-transition-value-dependent-on-next-state-15"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-transition-value-dependent-on-next-state-15"}},[t._v("#")]),t._v(" _is_transition_value_dependent_on_next_state_ "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_transition_value_dependent_on_next_state_",sig:{params:[{name:"self"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether _get_transition_value() requires the next_state parameter for its computation.")]),t._v(" "),a("p",[t._v("This is a helper function called by default\nfrom "),a("code",[t._v("UncertainTransitions._is_transition_value_dependent_on_next_state()")]),t._v(", the difference being that the result\nis not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-430"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-430"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the transition value computation depends on next_state (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"reset-14"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#reset-14"}},[t._v("#")]),t._v(" _reset "),a("Badge",{attrs:{text:"Initializable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_reset",sig:{params:[{name:"self"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Reset the state of the environment and return an initial observation.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Initializable._reset()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Initializable._state_reset()")]),t._v(" (which returns an initial state). The boilerplate code automatically stores\nthe initial state into the "),a("code",[t._v("_memory")]),t._v(" attribute and samples a corresponding observation.")]),t._v(" "),a("h4",{attrs:{id:"returns-431"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-431"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("An initial observation.")]),t._v(" "),a("h3",{attrs:{id:"sample-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample-12"}},[t._v("#")]),t._v(" _sample "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_sample",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Sample one transition of the simulator's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Simulation._sample()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Simulation._state_sample()")]),t._v(" (which returns a transition outcome). The boilerplate code automatically\nsamples an observation corresponding to the sampled next state.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing simulator needs to be wrapped instead of implemented fully in scikit-decide (e.g. a\nsimulator), it is recommended to overwrite "),a("code",[t._v("Simulation._sample()")]),t._v(" to call the external simulator and not use\nthe "),a("code",[t._v("Simulation._state_sample()")]),t._v(" helper function.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-304"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-304"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-432"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-432"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of the sampled transition.")]),t._v(" "),a("h3",{attrs:{id:"set-memory-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#set-memory-12"}},[t._v("#")]),t._v(" _set_memory "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_set_memory",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"None"}}}),t._v(" "),a("p",[t._v("Set internal memory attribute "),a("code",[t._v("_memory")]),t._v(" to given one.")]),t._v(" "),a("p",[t._v('This can be useful to set a specific "starting point" before doing a rollout with\nsuccessive '),a("code",[t._v("Environment._step()")]),t._v(" calls.")]),t._v(" "),a("h4",{attrs:{id:"parameters-305"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-305"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to set internally.")])]),t._v(" "),a("h4",{attrs:{id:"example-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#example-12"}},[t._v("#")]),t._v(" Example")]),t._v(" "),a("div",{staticClass:"language-python extra-class"},[a("pre",{pre:!0,attrs:{class:"language-python"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Set simulation_domain memory to my_state (assuming Markovian domain)")]),t._v("\nsimulation_domain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("_set_memory"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("my_state"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Start a 100-steps rollout from here (applying my_action at every step)")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("for")]),t._v(" _ "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("in")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("range")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n simulation_domain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("_step"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("my_action"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("h3",{attrs:{id:"state-reset-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#state-reset-7"}},[t._v("#")]),t._v(" _state_reset "),a("Badge",{attrs:{text:"Initializable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_state_reset",sig:{params:[{name:"self"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("Reset the state of the environment and return an initial state.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Initializable._reset()")]),t._v(". It focuses on the state level, as\nopposed to the observation one for the latter.")]),t._v(" "),a("h4",{attrs:{id:"returns-433"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-433"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("An initial state.")]),t._v(" "),a("h3",{attrs:{id:"state-sample-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#state-sample-6"}},[t._v("#")]),t._v(" _state_sample "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_state_sample",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"TransitionOutcome[D.T_state, D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Compute one sample of the transition's dynamics.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Simulation._sample()")]),t._v(". It focuses on the state level, as\nopposed to the observation one for the latter.")]),t._v(" "),a("h4",{attrs:{id:"parameters-306"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-306"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-434"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-434"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The transition outcome of the sampled transition.")]),t._v(" "),a("h3",{attrs:{id:"state-step-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#state-step-9"}},[t._v("#")]),t._v(" _state_step "),a("Badge",{attrs:{text:"Environment",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_state_step",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"TransitionOutcome[D.T_state, D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Compute one step of the transition's dynamics.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Environment._step()")]),t._v(". It focuses on the state level, as opposed\nto the observation one for the latter.")]),t._v(" "),a("h4",{attrs:{id:"parameters-307"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-307"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the current memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-435"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-435"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The transition outcome of this step.")]),t._v(" "),a("h3",{attrs:{id:"step-18"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#step-18"}},[t._v("#")]),t._v(" _step "),a("Badge",{attrs:{text:"Environment",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_step",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Run one step of the environment's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Environment._step()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Environment._state_step()")]),t._v(" (which returns a transition outcome). The boilerplate code automatically stores\nnext state into the "),a("code",[t._v("_memory")]),t._v(" attribute and samples a corresponding observation.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing environment needs to be wrapped instead of implemented fully in scikit-decide (e.g. compiled\nATARI games), it is recommended to overwrite "),a("code",[t._v("Environment._step()")]),t._v(" to call the external environment and not\nuse the "),a("code",[t._v("Environment._state_step()")]),t._v(" helper function.")])]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Before calling "),a("code",[t._v("Environment._step()")]),t._v(" the first time or when the end of an episode is\nreached, "),a("code",[t._v("Initializable._reset()")]),t._v(" must be called to reset the environment's state.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-308"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-308"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the current memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-436"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-436"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of this step.")])],1)}),[],!1,null,null,null);e.default=r.exports}}]); \ No newline at end of file diff --git a/assets/js/59.aade58ac.js b/assets/js/59.0c516308.js similarity index 96% rename from assets/js/59.aade58ac.js rename to assets/js/59.0c516308.js index c73c5ca387..751d5e2d6b 100644 --- a/assets/js/59.aade58ac.js +++ b/assets/js/59.0c516308.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[59],{574:function(t,e,a){"use strict";a.r(e);var r=a(38),n=Object(r.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"hub-domain-flight-planning-weather-interpolator-weather-tools-common-utils"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#hub-domain-flight-planning-weather-interpolator-weather-tools-common-utils"}},[t._v("#")]),t._v(" hub.domain.flight_planning.weather_interpolator.weather_tools.common_utils")]),t._v(" "),a("p",[t._v("Created on Tue May 3 12:09:06 2016 !!!\nUseful custom functions callable by many part of the projects\n@author: popo")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("Domain specification")]),t._v(" "),a("skdecide-summary")],1),t._v(" "),a("h2",{attrs:{id:"get-regular-interval"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-regular-interval"}},[t._v("#")]),t._v(" get_regular_interval")]),t._v(" "),a("skdecide-signature",{attrs:{name:"get_regular_interval",sig:{params:[{name:"l"},{name:"n",default:"100"}]}}}),t._v(" "),a("p",[t._v("Return a regular array of length n of a sorted iterable")]),t._v(" "),a("p",[t._v(":param l: A sorted iterable\n:param n: Number of discrete value we want\n:return: a sorted regular numpy array from l[0] to l[-1] with n step\n:rtype: "),a("code",[t._v("numpy.array")])]),t._v(" "),a("h2",{attrs:{id:"intersect-interval"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#intersect-interval"}},[t._v("#")]),t._v(" intersect_interval")]),t._v(" "),a("skdecide-signature",{attrs:{name:"intersect_interval",sig:{params:[{name:"x"},{name:"y"}]}}}),t._v(" "),a("p",[t._v("X and Y given by [low_bound, high_bound]")])],1)}),[],!1,null,null,null);e.default=n.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[59],{572:function(t,e,a){"use strict";a.r(e);var r=a(38),n=Object(r.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"hub-domain-flight-planning-weather-interpolator-weather-tools-common-utils"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#hub-domain-flight-planning-weather-interpolator-weather-tools-common-utils"}},[t._v("#")]),t._v(" hub.domain.flight_planning.weather_interpolator.weather_tools.common_utils")]),t._v(" "),a("p",[t._v("Created on Tue May 3 12:09:06 2016 !!!\nUseful custom functions callable by many part of the projects\n@author: popo")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("Domain specification")]),t._v(" "),a("skdecide-summary")],1),t._v(" "),a("h2",{attrs:{id:"get-regular-interval"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-regular-interval"}},[t._v("#")]),t._v(" get_regular_interval")]),t._v(" "),a("skdecide-signature",{attrs:{name:"get_regular_interval",sig:{params:[{name:"l"},{name:"n",default:"100"}]}}}),t._v(" "),a("p",[t._v("Return a regular array of length n of a sorted iterable")]),t._v(" "),a("p",[t._v(":param l: A sorted iterable\n:param n: Number of discrete value we want\n:return: a sorted regular numpy array from l[0] to l[-1] with n step\n:rtype: "),a("code",[t._v("numpy.array")])]),t._v(" "),a("h2",{attrs:{id:"intersect-interval"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#intersect-interval"}},[t._v("#")]),t._v(" intersect_interval")]),t._v(" "),a("skdecide-signature",{attrs:{name:"intersect_interval",sig:{params:[{name:"x"},{name:"y"}]}}}),t._v(" "),a("p",[t._v("X and Y given by [low_bound, high_bound]")])],1)}),[],!1,null,null,null);e.default=n.exports}}]); \ No newline at end of file diff --git a/assets/js/60.c3098f33.js b/assets/js/60.e7e90057.js similarity index 97% rename from assets/js/60.c3098f33.js rename to assets/js/60.e7e90057.js index 6d708d6f7c..0c8aff65fc 100644 --- a/assets/js/60.c3098f33.js +++ b/assets/js/60.e7e90057.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[60],{575:function(t,e,a){"use strict";a.r(e);var r=a(38),n=Object(r.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"hub-domain-flight-planning-weather-interpolator-weather-tools-interpolator-intergrid"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#hub-domain-flight-planning-weather-interpolator-weather-tools-interpolator-intergrid"}},[t._v("#")]),t._v(" hub.domain.flight_planning.weather_interpolator.weather_tools.interpolator.intergrid")]),t._v(" "),a("p",[t._v("Created on Mon Apr 18 11:53:11 2016")]),t._v(" "),a("p",[t._v("@author: popo")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("Domain specification")]),t._v(" "),a("skdecide-summary")],1),t._v(" "),a("h2",{attrs:{id:"intergrid"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#intergrid"}},[t._v("#")]),t._v(" Intergrid")]),t._v(" "),a("p",[t._v("Created on Mon Apr 18 11:53:11 2016")]),t._v(" "),a("p",[t._v("@author: popo")]),t._v(" "),a("h3",{attrs:{id:"constructor"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#constructor"}},[t._v("#")]),t._v(" Constructor "),a("Badge",{attrs:{text:"Intergrid",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"Intergrid",sig:{params:[{name:"griddata"},{name:"lo"},{name:"hi"},{name:"maps",default:"[]"},{name:"copy",default:"True"},{name:"verbose",default:"1"},{name:"order",default:"1"},{name:"prefilter",default:"False"},{name:"mode",default:"nearest"},{name:"cval",default:"None"}]}}}),t._v(" "),a("p",[t._v("Initialize self. See help(type(self)) for accurate signature.")]),t._v(" "),a("h3",{attrs:{id:"at"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#at"}},[t._v("#")]),t._v(" at "),a("Badge",{attrs:{text:"Intergrid",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"at",sig:{params:[{name:"self"},{name:"X"},{name:"out",default:"None"}]}}}),t._v(" "),a("p",[t._v("query_values = Intergrid(...) ( query_points npt x dim )")]),t._v(" "),a("h3",{attrs:{id:"map-to-uniform-grid"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#map-to-uniform-grid"}},[t._v("#")]),t._v(" _map_to_uniform_grid "),a("Badge",{attrs:{text:"Intergrid",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_map_to_uniform_grid",sig:{params:[{name:"self"},{name:"X"}]}}}),t._v(" "),a("p",[t._v("clip, map X linear / nonlinear inplace")])],1)}),[],!1,null,null,null);e.default=n.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[60],{573:function(t,e,a){"use strict";a.r(e);var r=a(38),n=Object(r.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"hub-domain-flight-planning-weather-interpolator-weather-tools-interpolator-intergrid"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#hub-domain-flight-planning-weather-interpolator-weather-tools-interpolator-intergrid"}},[t._v("#")]),t._v(" hub.domain.flight_planning.weather_interpolator.weather_tools.interpolator.intergrid")]),t._v(" "),a("p",[t._v("Created on Mon Apr 18 11:53:11 2016")]),t._v(" "),a("p",[t._v("@author: popo")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("Domain specification")]),t._v(" "),a("skdecide-summary")],1),t._v(" "),a("h2",{attrs:{id:"intergrid"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#intergrid"}},[t._v("#")]),t._v(" Intergrid")]),t._v(" "),a("p",[t._v("Created on Mon Apr 18 11:53:11 2016")]),t._v(" "),a("p",[t._v("@author: popo")]),t._v(" "),a("h3",{attrs:{id:"constructor"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#constructor"}},[t._v("#")]),t._v(" Constructor "),a("Badge",{attrs:{text:"Intergrid",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"Intergrid",sig:{params:[{name:"griddata"},{name:"lo"},{name:"hi"},{name:"maps",default:"[]"},{name:"copy",default:"True"},{name:"verbose",default:"1"},{name:"order",default:"1"},{name:"prefilter",default:"False"},{name:"mode",default:"nearest"},{name:"cval",default:"None"}]}}}),t._v(" "),a("p",[t._v("Initialize self. See help(type(self)) for accurate signature.")]),t._v(" "),a("h3",{attrs:{id:"at"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#at"}},[t._v("#")]),t._v(" at "),a("Badge",{attrs:{text:"Intergrid",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"at",sig:{params:[{name:"self"},{name:"X"},{name:"out",default:"None"}]}}}),t._v(" "),a("p",[t._v("query_values = Intergrid(...) ( query_points npt x dim )")]),t._v(" "),a("h3",{attrs:{id:"map-to-uniform-grid"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#map-to-uniform-grid"}},[t._v("#")]),t._v(" _map_to_uniform_grid "),a("Badge",{attrs:{text:"Intergrid",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_map_to_uniform_grid",sig:{params:[{name:"self"},{name:"X"}]}}}),t._v(" "),a("p",[t._v("clip, map X linear / nonlinear inplace")])],1)}),[],!1,null,null,null);e.default=n.exports}}]); \ No newline at end of file diff --git a/assets/js/61.2d939b63.js b/assets/js/61.1d91d3b3.js similarity index 99% rename from assets/js/61.2d939b63.js rename to assets/js/61.1d91d3b3.js index 3e4b5785de..ea5ff97575 100644 --- a/assets/js/61.2d939b63.js +++ b/assets/js/61.1d91d3b3.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[61],{576:function(t,e,a){"use strict";a.r(e);var s=a(38),i=Object(s.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"hub-domain-flight-planning-weather-interpolator-weather-tools-std-atm"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#hub-domain-flight-planning-weather-interpolator-weather-tools-std-atm"}},[t._v("#")]),t._v(" hub.domain.flight_planning.weather_interpolator.weather_tools.std_atm")]),t._v(" "),a("p",[t._v("Calculate standard atmosphere parametres.")]),t._v(" "),a("p",[t._v("Calculates standard atmosphere parametres, using the 1976 International\nStandard Atmosphere. The default units for the input and output are defined\nin default_units.py")]),t._v(" "),a("p",[t._v("All altitudes are geopotential altitudes (i.e. it is assumed that there is\nno variation with altitude of the acceleration due to gravity).")]),t._v(" "),a("p",[t._v("Works up to 84.852 km (278,386 ft) altitude.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("Domain specification")]),t._v(" "),a("skdecide-summary")],1),t._v(" "),a("h2",{attrs:{id:"alt2temp"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#alt2temp"}},[t._v("#")]),t._v(" alt2temp")]),t._v(" "),a("skdecide-signature",{attrs:{name:"alt2temp",sig:{params:[{name:"H"},{name:"alt_units",default:"ft"},{name:"temp_units",default:"C"}]}}}),t._v(" "),a("p",[t._v("Return the standard temperature for the specified altitude. Altitude\nunits may be feet ('ft'), metres ('m'), statute miles, ('sm') or\nnautical miles ('nm'). Temperature units may be degrees C, F, K or R\n('C', 'F', 'K' or 'R')")]),t._v(" "),a("p",[t._v("If the units are not specified, the units in default_units.py are used.")]),t._v(" "),a("p",[t._v("Examples:")]),t._v(" "),a("p",[t._v("Calculate the standard temperature (in default temperature units) at\n5,000 (default altitude units):")]),t._v(" "),a("blockquote",[a("blockquote",[a("blockquote",[a("p",[t._v("alt2temp(5000)\n5.0939999999999941")])])])]),t._v(" "),a("p",[t._v("Calculate the standard temperature in deg F at sea level:")]),t._v(" "),a("blockquote",[a("blockquote",[a("blockquote",[a("p",[t._v("alt2temp(0, temp_units = 'F')\n59.0")])])])]),t._v(" "),a("p",[t._v("Calculate the standard temperature in deg K at 11,000 m:")]),t._v(" "),a("blockquote",[a("blockquote",[a("blockquote",[a("p",[t._v("alt2temp(11000, alt_units = 'm', temp_units = 'K')\n216.64999999999998")])])])]),t._v(" "),a("p",[t._v("Calculate the standard temperature at 11 statute miles in deg R:")]),t._v(" "),a("blockquote",[a("blockquote",[a("blockquote",[a("p",[t._v("alt2temp(11, alt_units = 'sm', temp_units = 'R')\n389.96999999999997")])])])]),t._v(" "),a("p",[t._v("The input value may be an expression:")]),t._v(" "),a("blockquote",[a("blockquote",[a("blockquote",[a("p",[t._v("alt2temp(11 * 5280, temp_units = 'R')\n389.96999999999997")])])])]),t._v(" "),a("h2",{attrs:{id:"alt2temp-ratio"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#alt2temp-ratio"}},[t._v("#")]),t._v(" alt2temp_ratio")]),t._v(" "),a("skdecide-signature",{attrs:{name:"alt2temp_ratio",sig:{params:[{name:"H"},{name:"alt_units",default:"ft"}]}}}),t._v(" "),a("p",[t._v("Return the temperature ratio (temperature / standard temperature for\nsea level). The altitude is specified in feet ('ft'), metres ('m'),\nstatute miles, ('sm') or nautical miles ('nm').")]),t._v(" "),a("p",[t._v("If the units are not specified, the units in default_units.py are used.")]),t._v(" "),a("p",[t._v("Examples:")]),t._v(" "),a("p",[t._v("Calculate the temperature ratio at 8,000 (default altitude units)")]),t._v(" "),a("blockquote",[a("blockquote",[a("blockquote",[a("p",[t._v("alt2temp_ratio(8000)\n0.94499531494013533")])])])]),t._v(" "),a("p",[t._v("Calculate the temperature ratio at 8,000 m.")]),t._v(" "),a("blockquote",[a("blockquote",[a("blockquote",[a("p",[t._v("alt2temp_ratio(8000, alt_units = 'm')\n0.81953843484296374")])])])]),t._v(" "),a("h2",{attrs:{id:"isa2temp"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#isa2temp"}},[t._v("#")]),t._v(" isa2temp")]),t._v(" "),a("skdecide-signature",{attrs:{name:"isa2temp",sig:{params:[{name:"ISA_dev"},{name:"altitude"},{name:"temp_units",default:"C"},{name:"alt_units",default:"ft"}]}}}),t._v(" "),a("p",[t._v("Return the temperature that is a specified amount warmer or cooler\nthan the standard temperature for the altitude.")]),t._v(" "),a("p",[t._v("The temperature may be in deg C, F, K or R.")]),t._v(" "),a("p",[t._v("The altitude may be in feet ('ft'), metres ('m'), kilometres ('km'),\nstatute miles, ('sm') or nautical miles ('nm').")]),t._v(" "),a("p",[t._v("If the units are not specified, the units in default_units.py are used.")]),t._v(" "),a("p",[t._v("Examples:")]),t._v(" "),a("p",[t._v("Determine the temperature that is 10 deg (default temperature units) warmer\nthan the standard temperature at 8,000 (default altitude units):")]),t._v(" "),a("blockquote",[a("blockquote",[a("blockquote",[a("p",[t._v("isa2temp(10, 8000)\n9.1503999999999905")])])])]),t._v(" "),a("p",[t._v("Determine the temperature that is 25 degrees K cooler than the standard\ntemperature at 2000 m.")]),t._v(" "),a("blockquote",[a("blockquote",[a("blockquote",[a("p",[t._v("isa2temp(-25, 2000, temp_units = 'K', alt_units = 'm')\n250.14999999999998")])])])]),t._v(" "),a("h2",{attrs:{id:"temp2isa"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#temp2isa"}},[t._v("#")]),t._v(" temp2isa")]),t._v(" "),a("skdecide-signature",{attrs:{name:"temp2isa",sig:{params:[{name:"temp"},{name:"altitude"},{name:"temp_units",default:"C"},{name:"alt_units",default:"ft"}]}}}),t._v(" "),a("p",[t._v("Return the amount that the specified temperature is warmer or cooler\nthan the standard temperature for the altitude.")]),t._v(" "),a("p",[t._v("The temperature may be in deg C, F, K or R.")]),t._v(" "),a("p",[t._v("The altitude may be in feet ('ft'), metres ('m'), kilometres ('km'),\nstatute miles, ('sm') or nautical miles ('nm').")]),t._v(" "),a("p",[t._v("If the units are not specified, the units in default_units.py are used.")]),t._v(" "),a("p",[t._v("Examples:")]),t._v(" "),a("p",[t._v("Determine the ISA deviation for a temperature of 30 deg (default\ntemperature units) at an altitude of 2000 (default altitude units):")]),t._v(" "),a("blockquote",[a("blockquote",[a("blockquote",[a("p",[t._v("temp2isa(30, 2000)\n18.962400000000002")])])])]),t._v(" "),a("p",[t._v("Determine the ISA deviation in degrees F for a temperature of 45 deg F\nat an altitude of 1000 m:")]),t._v(" "),a("blockquote",[a("blockquote",[a("blockquote",[a("p",[t._v("temp2isa(45, 1000, temp_units = 'F', alt_units = 'm')\n-2.2999999999999972")])])])]),t._v(" "),a("h2",{attrs:{id:"alt2press-ratio"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#alt2press-ratio"}},[t._v("#")]),t._v(" alt2press_ratio")]),t._v(" "),a("skdecide-signature",{attrs:{name:"alt2press_ratio",sig:{params:[{name:"H"},{name:"alt_units",default:"ft"}]}}}),t._v(" "),a("p",[t._v("Return the pressure ratio (atmospheric pressure / standard pressure\nfor sea level). The altitude is specified in feet ('ft'), metres ('m'),\nstatute miles, ('sm') or nautical miles ('nm').")]),t._v(" "),a("p",[t._v("If the units are not specified, the units in default_units.py are used.")]),t._v(" "),a("p",[t._v("Examples:")]),t._v(" "),a("p",[t._v("Calculate the pressure ratio at 5000 (default altitude units):")]),t._v(" "),a("blockquote",[a("blockquote",[a("blockquote",[a("p",[t._v("alt2press_ratio(5000)\n0.8320481158727735")])])])]),t._v(" "),a("p",[t._v("Calculate the pressure ratio at 1000 m:")]),t._v(" "),a("blockquote",[a("blockquote",[a("blockquote",[a("p",[t._v("alt2press_ratio(1000, alt_units = 'm')\n0.88699304638887044")])])])]),t._v(" "),a("p",[t._v("The functions are only implemented at altitudes of 84.852 km and lower.")]),t._v(" "),a("blockquote",[a("blockquote",[a("blockquote",[a("p",[t._v("alt2press_ratio(90, alt_units = 'km')\nTraceback (most recent call last):\nFile '', line 1, in ?\nFile './std_atm.py', line 189, in alt2press_ratio\nif H <= 20:\nValueError: This function is only implemented for altitudes of 84.852 km and below.")])])])]),t._v(" "),a("h2",{attrs:{id:"alt2press"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#alt2press"}},[t._v("#")]),t._v(" alt2press")]),t._v(" "),a("skdecide-signature",{attrs:{name:"alt2press",sig:{params:[{name:"H"},{name:"alt_units",default:"ft"},{name:"press_units",default:"in HG"}]}}}),t._v(" "),a("p",[t._v("Return the atmospheric pressure for a given altitude, with the\naltitude in feet ('ft'), metres ('m'), statute miles, ('sm') or nautical\nmiles ('nm'), and the pressure in inches of HG ('in HG'), mm of HG\n('mm HG'), psi, lb per sq. ft ('psf'), pa, hpa or mb.")]),t._v(" "),a("p",[t._v("If the units are not specified, the units in default_units.py are used.")]),t._v(" "),a("p",[t._v("Examples:")]),t._v(" "),a("p",[t._v("Calculate the pressure in inches of mercury at 5,000 (default altitude\nunits):")]),t._v(" "),a("blockquote",[a("blockquote",[a("blockquote",[a("p",[t._v("alt2press(5000)\n24.895961289464015")])])])]),t._v(" "),a("p",[t._v("Calculate the pressure in pounds per square foot at 10,000 (default\naltitude units):")]),t._v(" "),a("blockquote",[a("blockquote",[a("blockquote",[a("p",[t._v("alt2press(10000, press_units = 'psf')\n1455.3301392981359")])])])]),t._v(" "),a("p",[t._v("Calculate the pressure in pascal at 20 km:")]),t._v(" "),a("blockquote",[a("blockquote",[a("blockquote",[a("p",[t._v("alt2press(20, press_units = 'pa', alt_units = 'km')\n5474.8827144576408")])])])]),t._v(" "),a("h2",{attrs:{id:"pressure-alt"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#pressure-alt"}},[t._v("#")]),t._v(" pressure_alt")]),t._v(" "),a("skdecide-signature",{attrs:{name:"pressure_alt",sig:{params:[{name:"H"},{name:"alt_setting"},{name:"alt_units",default:"ft"}]}}}),t._v(" "),a("p",[t._v("Return the pressure altitude, given the barometric altitude and the\naltimeter setting.")]),t._v(" "),a("p",[t._v("Altimeter setting may have units of inches of HG, or hpa or mb. If the\naltimeter setting value is less than 35, the units are assumed to be\nin HG, otherwise they are assumed to be hpa. The altimeter setting must\nbe in the range of 25 to 35 inches of mercury.")]),t._v(" "),a("p",[t._v("The altitude may have units of feet ('ft'), metres ('m'), statute miles,\n('sm') or nautical miles ('nm').")]),t._v(" "),a("p",[t._v("If the units are not specified, the units in default_units.py are used.")]),t._v(" "),a("p",[t._v("Examples:")]),t._v(" "),a("p",[t._v("Calculate the pressure altitude for 1,000 (default altitude units)\nbarometric altitude with altimeter setting of 30.92 in HG:")]),t._v(" "),a("blockquote",[a("blockquote",[a("blockquote",[a("p",[t._v("pressure_alt(1000, 30.92)\n88.612734282205338")])])])]),t._v(" "),a("p",[t._v("Calculate the pressure altitude for 1,000 (default altitude units)\nbarometric altitude with altimeter setting of 1008 mb:")]),t._v(" "),a("blockquote",[a("blockquote",[a("blockquote",[a("p",[t._v("pressure_alt(1000, 1008)\n1143.6503495627171")])])])]),t._v(" "),a("p",[t._v("Calculate the pressure altitude in metres for 304.8 m barometric\naltitude with altimeter setting of 1008 mb:")]),t._v(" "),a("blockquote",[a("blockquote",[a("blockquote",[a("p",[t._v("pressure_alt(304.8, 1008, alt_units = 'm')\n348.58462654671621")])])])]),t._v(" "),a("h2",{attrs:{id:"qnh"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#qnh"}},[t._v("#")]),t._v(" QNH")]),t._v(" "),a("skdecide-signature",{attrs:{name:"QNH",sig:{params:[{name:"HP"},{name:"H"},{name:"alt_units",default:"ft"},{name:"alt_setting_units",default:"in HG"}]}}}),t._v(" "),a("p",[t._v("Return the altimeter setting, given the pressure altitude (HP) and the\nbarometric altitude (H).")]),t._v(" "),a("h2",{attrs:{id:"alt2density-ratio"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#alt2density-ratio"}},[t._v("#")]),t._v(" alt2density_ratio")]),t._v(" "),a("skdecide-signature",{attrs:{name:"alt2density_ratio",sig:{params:[{name:"H"},{name:"alt_units",default:"ft"}]}}}),t._v(" "),a("p",[t._v("Return the density ratio (atmospheric density / standard density\nfor sea level). The altitude is specified in feet ('ft'), metres ('m'),\nstatute miles, ('sm') or nautical miles ('nm').")]),t._v(" "),a("p",[t._v("If the units are not specified, the units in default_units.py are used.")]),t._v(" "),a("p",[t._v("Examples:")]),t._v(" "),a("p",[t._v("Calculate the density ratio at 7,500 (default altitude units):")]),t._v(" "),a("blockquote",[a("blockquote",[a("blockquote",[a("p",[t._v("alt2density_ratio(7500)\n0.79825819881753035")])])])]),t._v(" "),a("p",[t._v("Calculate the density ratio at 2 km:")]),t._v(" "),a("blockquote",[a("blockquote",[a("blockquote",[a("p",[t._v("alt2density_ratio(2, alt_units = 'km')\n0.8216246960994622")])])])]),t._v(" "),a("h2",{attrs:{id:"alt2density"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#alt2density"}},[t._v("#")]),t._v(" alt2density")]),t._v(" "),a("skdecide-signature",{attrs:{name:"alt2density",sig:{params:[{name:"H"},{name:"alt_units",default:"ft"},{name:"density_units",default:"lb/ft**3"}]}}}),t._v(" "),a("p",[t._v("Return the density given the pressure altitude. The altitude is\nspecified in feet ('ft'), metres ('m'), statute miles, ('sm') or\nnautical miles ('nm').")]),t._v(" "),a("p",[t._v("The desired density units are specified as 'lb/ft"),a("strong",[t._v("3', 'slug/ft")]),t._v("3' or\n'kg/m**3'.")]),t._v(" "),a("p",[t._v("If the units are not specified, the units in default_units.py are used.")]),t._v(" "),a("p",[t._v("Examples:")]),t._v(" "),a("p",[t._v("Calculate the density in lb / ft cubed at 7,500 (default altitude units):")]),t._v(" "),a("blockquote",[a("blockquote",[a("blockquote",[a("p",[t._v("alt2density(7500)\n0.061046199847730374")])])])]),t._v(" "),a("p",[t._v("Calculate the density in slugs / ft cubed at 5,000 (default altitude units):")]),t._v(" "),a("blockquote",[a("blockquote",[a("blockquote",[a("p",[t._v("alt2density(5000, density_units = 'slug/ft**3')\n0.0020480982157718704")])])])]),t._v(" "),a("p",[t._v("Calculate the density in kg / m cubed at 0 (default altitude units:")]),t._v(" "),a("blockquote",[a("blockquote",[a("blockquote",[a("p",[t._v("alt2density(0, density_units = 'kg/m**3')\n1.2250000000000001")])])])]),t._v(" "),a("p",[t._v("Calculate the density in kg / m cubed at 81,000 m:")]),t._v(" "),a("blockquote",[a("blockquote",[a("blockquote",[a("p",[t._v("alt2density(81000, density_units = 'kg/m**3', alt_units = 'm')\n1.3320480184052337e-05")])])])]),t._v(" "),a("h2",{attrs:{id:"density2alt"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#density2alt"}},[t._v("#")]),t._v(" density2alt")]),t._v(" "),a("skdecide-signature",{attrs:{name:"density2alt",sig:{params:[{name:"Rho"},{name:"density_units",default:"lb/ft**3"},{name:"alt_units",default:"ft"}]}}}),t._v(" "),a("p",[t._v("Return the altitude corresponding to the specified density, with\ndensity in 'lb/ft"),a("strong",[t._v("3', 'slug/ft")]),t._v("3' or 'kg/m**3'.")]),t._v(" "),a("p",[t._v("The altitude is specified in feet ('ft'), metres ('m'), statute miles,\n('sm') or nautical miles ('nm').")]),t._v(" "),a("p",[t._v("If the units are not specified, the units in default_units.py are used.")]),t._v(" "),a("p",[t._v("Examples:")]),t._v(" "),a("p",[t._v("Calculate the altitude in default altitude units where the density is\n0.056475 in default density units:")]),t._v(" "),a("blockquote",[a("blockquote",[a("blockquote",[a("p",[t._v("density2alt(.056475)\n9999.8040934937271")])])])]),t._v(" "),a("p",[t._v("Calculate the altitude in metres where the density is 0.018012 kg / m\ncubed:")]),t._v(" "),a("blockquote",[a("blockquote",[a("blockquote",[a("p",[t._v("density2alt(.018012, alt_units = 'm', density_units = 'kg/m**3')\n29999.978688508152")])])])]),t._v(" "),a("h2",{attrs:{id:"density-ratio2alt"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#density-ratio2alt"}},[t._v("#")]),t._v(" density_ratio2alt")]),t._v(" "),a("skdecide-signature",{attrs:{name:"density_ratio2alt",sig:{params:[{name:"DR"},{name:"alt_units",default:"ft"}]}}}),t._v(" "),a("p",[t._v("Return the altitude for the specified density ratio. The altitude is in\nfeet ('ft'), metres ('m'), statute miles, ('sm') or nautical miles\n('nm').")]),t._v(" "),a("p",[t._v("If the units are not specified, the units in default_units.py are used.")]),t._v(" "),a("p",[t._v("Examples:")]),t._v(" "),a("p",[t._v("Calculate the altitude in default altitude units where the density ratio is\n1:")]),t._v(" "),a("blockquote",[a("blockquote",[a("blockquote",[a("p",[t._v("density_ratio2alt(1)\n0.0")])])])]),t._v(" "),a("p",[t._v("Calculate the altitude in feet where the density ratio is 0.5:")]),t._v(" "),a("blockquote",[a("blockquote",[a("blockquote",[a("p",[t._v("density_ratio2alt(.5)\n21859.50324995652")])])])]),t._v(" "),a("p",[t._v("Calculate the altitude in km where the density ratio is 0.1")]),t._v(" "),a("blockquote",[a("blockquote",[a("blockquote",[a("p",[t._v("density_ratio2alt(.1, alt_units = 'km')\n17.9048674520646")])])])]),t._v(" "),a("h2",{attrs:{id:"density-alt"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#density-alt"}},[t._v("#")]),t._v(" density_alt")]),t._v(" "),a("skdecide-signature",{attrs:{name:"density_alt",sig:{params:[{name:"H"},{name:"T"},{name:"alt_setting",default:"29.9213"},{name:"DP",default:"FALSE"},{name:"RH",default:"0.0"},{name:"alt_units",default:"ft"},{name:"temp_units",default:"C"}]}}}),t._v(" "),a("p",[t._v("Return density altitude, given the pressure altitude and the\ntemperature with altitudes in units of feet ('ft'), metres ('m'),\nstatute miles, ('sm') or nautical miles ('nm'), and temperature in units\nof deg C, F, K or R ('C', 'F', 'K' or 'R').")]),t._v(" "),a("p",[t._v("Mandatory parametres:\nH = altitude\nT = temperature")]),t._v(" "),a("p",[t._v("Optional parametres:\nalt_setting = altimeter setting (defaults to 29.9213 if not provided\nDP = dew point\nRH = relative humidity\nalt_units = units for the altitude. 'ft', 'm', or 'km'.\ntemp_units = units for the temperature and dew point. 'C', 'F', 'K'\nor 'R'.")]),t._v(" "),a("p",[t._v("The altimeter setting units are assumed to be inches of HG, unless the\nvalue is greater than 35. In this case the units are assumed to be mb.")]),t._v(" "),a("p",[t._v("If the dew point or relative humidity are not specified, the air is\nassumed to be completely dry. If both the dew point and relative humidity\nare specified, the relative humidity value is ignored.")]),t._v(" "),a("p",[t._v("If the units are not specified, the units in default_units.py are used.")]),t._v(" "),a("p",[t._v("The method is from: http://wahiduddin.net/calc/density_altitude.htm")]),t._v(" "),a("p",[t._v("Examples:")]),t._v(" "),a("p",[t._v("Calculate the density altitude in default altitude units for a pressure\naltitude of 7000 default altitude units and a temperature of 15 deg\n(default temperature units). The altimeter setting is not specified, so it\ndefaults to standard pressure of 29.9213 in HG or 1013.25 mb:")]),t._v(" "),a("blockquote",[a("blockquote",[a("blockquote",[a("p",[t._v("density_alt(7000, 15)\n8595.3465863232504")])])])]),t._v(" "),a("p",[t._v("Calculate the density altitude in default altitude units for a pressure\naltitude of 7000 default altitude units and a temperature of 85 deg F.\nThe altimeter setting is not specified, so it defaults to standard pressure\nof 29.9213 in HG or 1013.25 mb. The dew point and relative humidity are\nnot specified, so the air is assumed to be dry:")]),t._v(" "),a("blockquote",[a("blockquote",[a("blockquote",[a("p",[t._v("density_alt(7000, 85, temp_units = 'F')\n10159.10696106757")])])])]),t._v(" "),a("p",[t._v("Calculate the density altitude in default altitude units for a pressure\naltitude of 7000 default altitude units, an altimeter setting of 29.80 and\na temperature of 85 deg F and a dew point of 55 deg F:")]),t._v(" "),a("blockquote",[a("blockquote",[a("blockquote",[a("p",[t._v("density_alt(7000, 85, 29.80, 55, temp_units = 'F')\n10522.776013011618")])])])]),t._v(" "),a("p",[t._v("Calculate the density altitude in metres for a pressure altitude of\n2000 m, an altimeter setting of 1010 mb, a temperature of 15 deg (default\ntemperature units) and a relative humidity of 50%:")]),t._v(" "),a("blockquote",[a("blockquote",[a("blockquote",[a("p",[t._v("density_alt(2000, 15, 1010, alt_units = 'm', RH = 0.5)\n2529.8230634449737")])])])]),t._v(" "),a("p",[t._v("The dew point may be specified in one of two ways: as the fourth\nargument on the command line, or via the keyword argument DP.")]),t._v(" "),a("blockquote",[a("blockquote",[a("blockquote",[a("p",[t._v("density_alt(2000, 15, 1010, alt_units = 'm', DP = 5)\n2530.7528237990618")])])])]),t._v(" "),a("p",[t._v("The relative humidity must be in the range of 0 to 1:")]),t._v(" "),a("blockquote",[a("blockquote",[a("blockquote",[a("p",[t._v("density_alt(2000, 15, 1010, alt_units = 'm', RH = 1.1)\nTraceback (most recent call last):\nFile '', line 1, in ?\nFile 'std_atm.py', line 533, in density_alt\nraise ValueError, 'The relative humidity must be in the range of 0 to 1.'\nValueError: The relative humidity must be in the range of 0 to 1.")])])])]),t._v(" "),a("h2",{attrs:{id:"sat-press"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sat-press"}},[t._v("#")]),t._v(" _sat_press")]),t._v(" "),a("skdecide-signature",{attrs:{name:"_sat_press",sig:{params:[{name:"T"}]}}}),t._v(" "),a("p",[t._v("Return the saturation pressure in mb of the water vapour, given\ntemperature in deg C. Equation from:\nhttp://wahiduddin.net/calc/density_altitude.htm")]),t._v(" "),a("h2",{attrs:{id:"sat-press-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sat-press-2"}},[t._v("#")]),t._v(" sat_press")]),t._v(" "),a("skdecide-signature",{attrs:{name:"sat_press",sig:{params:[{name:"T",default:"FALSE"},{name:"DP",default:"FALSE"},{name:"RH",default:"0.0"},{name:"temp_units",default:"C"},{name:"press_units",default:"in HG"}]}}}),t._v(" "),a("p",[t._v("Return the saturated vapour pressure of water. Either the dew point, or\nthe temperature and the relative humidity must be specified. If both the\ndew point and relative humidity are specified, the relative humidity value\nis ignored.")]),t._v(" "),a("p",[t._v("If the temperature and dew point are both specified, the dew point cannot\nbe greater than the temperature:")]),t._v(" "),a("p",[t._v("If the units are not specified, the units in default_units.py are used.")]),t._v(" "),a("blockquote",[a("blockquote",[a("blockquote",[a("p",[t._v("sat_press(T=10, DP=11)\nTraceback (most recent call last):\nFile '', line 1, in \nFile 'std_atm.py', line 795, in sat_press\nraise ValueError, 'The dew point cannot be greater than the temperature.'\nValueError: The dew point cannot be greater than the temperature.")])])])]),t._v(" "),a("p",[t._v("Dew point is 11 deg (default temperature units). Find the water vapour\npressure in default pressure units:")]),t._v(" "),a("blockquote",[a("blockquote",[a("blockquote",[a("p",[t._v("sat_press(DP=11)\n0.38741015927568667")])])])]),t._v(" "),a("p",[t._v("Dew point is 65 deg F. Find the water vapour pressure in default pressure units:")]),t._v(" "),a("blockquote",[a("blockquote",[a("blockquote",[a("p",[t._v("sat_press(DP=65, temp_units = 'F')\n0.62207710701956165")])])])]),t._v(" "),a("p",[t._v("Dew point is 212 deg F (the boiling point of water at sea level).\nFind the water vapour pressure in lb per sq. inch:")]),t._v(" "),a("blockquote",[a("blockquote",[a("blockquote",[a("p",[t._v("sat_press(DP=212, temp_units = 'F', press_units = 'psi')\n14.696764873564959")])])])]),t._v(" "),a("p",[t._v("Temperature is 30 deg C. Find the water vapour pressure in default pressure units:\nfor 50% relative humidity:")]),t._v(" "),a("blockquote",[a("blockquote",[a("blockquote",[a("p",[t._v("sat_press(T=30, RH = 0.5)\n0.62647666996057927")])])])]),t._v(" "),a("h2",{attrs:{id:"dry-press"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#dry-press"}},[t._v("#")]),t._v(" dry_press")]),t._v(" "),a("skdecide-signature",{attrs:{name:"dry_press",sig:{params:[{name:"H"},{name:"Pv"},{name:"alt_setting",default:"29.9213"},{name:"alt_units",default:"ft"},{name:"press_units",default:"in HG"}]}}}),t._v(" "),a("p",[t._v("Returns dry air pressure, i.e. the total air pressure, less the water\nvapour pressure.")]),t._v(" "),a("h2",{attrs:{id:"density-alt2temp"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#density-alt2temp"}},[t._v("#")]),t._v(" density_alt2temp")]),t._v(" "),a("skdecide-signature",{attrs:{name:"density_alt2temp",sig:{params:[{name:"density_alt_seek"},{name:"press_alt"},{name:"alt_units",default:"ft"},{name:"temp_units",default:"C"}]}}}),t._v(" "),a("p",[t._v("Return temperature to achieve a desired density altitude.")]),t._v(" "),a("p",[t._v("If the units are not specified, the units in default_units.py are used.")]),t._v(" "),a("h2",{attrs:{id:"density-alt-table"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#density-alt-table"}},[t._v("#")]),t._v(" density_alt_table")]),t._v(" "),a("skdecide-signature",{attrs:{name:"density_alt_table",sig:{params:[{name:"density_alt_seek"},{name:"alt_range",default:"2000"},{name:"alt_inc",default:"100"},{name:"alt_units",default:"ft"},{name:"temp_units",default:"C"},{name:"multi_units",default:"False"},{name:"file",default:""},{name:"format",default:"text"}]}}}),t._v(" "),a("p",[t._v("Return a text or html table of required temperature vs pressure altitude.")]),t._v(" "),a("p",[t._v("If the units are not specified, the units in default_units.py are used.")]),t._v(" "),a("h2",{attrs:{id:"press2alt"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#press2alt"}},[t._v("#")]),t._v(" press2alt")]),t._v(" "),a("skdecide-signature",{attrs:{name:"press2alt",sig:{params:[{name:"P"},{name:"press_units",default:"in HG"},{name:"alt_units",default:"ft"}]}}}),t._v(" "),a("p",[t._v("Return the altitude corresponding to the specified pressure, with\npressure in inches of HG, mm of HG, psi, psf (lb per sq. ft), pa, hpa or\nmb.")]),t._v(" "),a("p",[t._v("The altitude is in units of feet ('ft'), metres ('m'), statute miles,\n('sm') or nautical miles ('nm')")]),t._v(" "),a("p",[t._v("If the units are not specified, the units in default_units.py are used.")]),t._v(" "),a("p",[t._v("Examples:")]),t._v(" "),a("p",[t._v("Calculate the pressure altitude in feet for a pressure of 31.0185 inches\nof HG:")]),t._v(" "),a("blockquote",[a("blockquote",[a("blockquote",[a("p",[t._v("press2alt(31.0185)\n-999.98992888235091")])])])]),t._v(" "),a("p",[t._v("Calculate the pressure altitude in feet for a pressure of\n1455.33 lb sq. ft:")]),t._v(" "),a("blockquote",[a("blockquote",[a("blockquote",[a("p",[t._v("press2alt(1455.33, press_units = 'psf')\n10000.002466564831")])])])]),t._v(" "),a("p",[t._v("Calculate the pressure altitude in metres for a pressure of\n90.3415 mm HG:")]),t._v(" "),a("blockquote",[a("blockquote",[a("blockquote",[a("p",[t._v("press2alt(90.3415, press_units = 'mm HG', alt_units = 'm')\n15000.025465320754")])])])]),t._v(" "),a("p",[t._v("Calculate the pressure altitude in metres for a pressure of\n1171.86 pascal:")]),t._v(" "),a("blockquote",[a("blockquote",[a("blockquote",[a("p",[t._v("press2alt(1171.86, press_units = 'pa', alt_units = 'm')\n30000.029510365184")])])])]),t._v(" "),a("h2",{attrs:{id:"press-ratio2alt"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#press-ratio2alt"}},[t._v("#")]),t._v(" press_ratio2alt")]),t._v(" "),a("skdecide-signature",{attrs:{name:"press_ratio2alt",sig:{params:[{name:"PR"},{name:"alt_units",default:"ft"}]}}}),t._v(" "),a("p",[t._v("Return the pressure ratio for the specified altitude. The altitude is\nspecified in feet ('ft'), metres ('m'), statute miles, ('sm') or\nnautical miles ('nm').")]),t._v(" "),a("p",[t._v("If the units are not specified, the units in default_units.py are used.")]),t._v(" "),a("p",[t._v("Examples:")]),t._v(" "),a("p",[t._v("Calculate the altitude in feet where the pressure ratio is 0.5:")]),t._v(" "),a("blockquote",[a("blockquote",[a("blockquote",[a("p",[t._v("press_ratio2alt(.5)\n17969.990746028907")])])])]),t._v(" "),a("p",[t._v("Calculate the altitude in metres where the pressure ratio is 0.1:")]),t._v(" "),a("blockquote",[a("blockquote",[a("blockquote",[a("p",[t._v("press_ratio2alt(.1, alt_units = 'm')\n16096.249927559489")])])])]),t._v(" "),a("h2",{attrs:{id:"temp2speed-of-sound"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#temp2speed-of-sound"}},[t._v("#")]),t._v(" temp2speed_of_sound")]),t._v(" "),a("skdecide-signature",{attrs:{name:"temp2speed_of_sound",sig:{params:[{name:"temp"},{name:"temp_units",default:"C"},{name:"speed_units",default:"kt"}]}}}),t._v(" "),a("p",[t._v("Return the speed of sound, given the air temperature.")]),t._v(" "),a("p",[t._v("The temperature units may be deg C, F, K or R ('C', 'F', 'K' or 'R').")]),t._v(" "),a("p",[t._v("The speed units may be 'kt', 'mph', 'km/h', 'm/s' and 'ft/s'.")]),t._v(" "),a("p",[t._v("If the units are not specified, the units in default_units.py are used.")]),t._v(" "),a("p",[t._v("Examples:")]),t._v(" "),a("p",[t._v("Determine speed of sound in knots at 15 deg (default temperature units):")]),t._v(" "),a("blockquote",[a("blockquote",[a("blockquote",[a("p",[t._v("temp2speed_of_sound(15)\n661.47882487301808")])])])]),t._v(" "),a("p",[t._v("Determine speed of sound in mph at 120 deg F:")]),t._v(" "),a("blockquote",[a("blockquote",[a("blockquote",[a("p",[t._v("temp2speed_of_sound(120, speed_units = 'mph', temp_units = 'F')\n804.73500154991291")])])])])],1)}),[],!1,null,null,null);e.default=i.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[61],{574:function(t,e,a){"use strict";a.r(e);var s=a(38),i=Object(s.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"hub-domain-flight-planning-weather-interpolator-weather-tools-std-atm"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#hub-domain-flight-planning-weather-interpolator-weather-tools-std-atm"}},[t._v("#")]),t._v(" hub.domain.flight_planning.weather_interpolator.weather_tools.std_atm")]),t._v(" "),a("p",[t._v("Calculate standard atmosphere parametres.")]),t._v(" "),a("p",[t._v("Calculates standard atmosphere parametres, using the 1976 International\nStandard Atmosphere. The default units for the input and output are defined\nin default_units.py")]),t._v(" "),a("p",[t._v("All altitudes are geopotential altitudes (i.e. it is assumed that there is\nno variation with altitude of the acceleration due to gravity).")]),t._v(" "),a("p",[t._v("Works up to 84.852 km (278,386 ft) altitude.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("Domain specification")]),t._v(" "),a("skdecide-summary")],1),t._v(" "),a("h2",{attrs:{id:"alt2temp"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#alt2temp"}},[t._v("#")]),t._v(" alt2temp")]),t._v(" "),a("skdecide-signature",{attrs:{name:"alt2temp",sig:{params:[{name:"H"},{name:"alt_units",default:"ft"},{name:"temp_units",default:"C"}]}}}),t._v(" "),a("p",[t._v("Return the standard temperature for the specified altitude. Altitude\nunits may be feet ('ft'), metres ('m'), statute miles, ('sm') or\nnautical miles ('nm'). Temperature units may be degrees C, F, K or R\n('C', 'F', 'K' or 'R')")]),t._v(" "),a("p",[t._v("If the units are not specified, the units in default_units.py are used.")]),t._v(" "),a("p",[t._v("Examples:")]),t._v(" "),a("p",[t._v("Calculate the standard temperature (in default temperature units) at\n5,000 (default altitude units):")]),t._v(" "),a("blockquote",[a("blockquote",[a("blockquote",[a("p",[t._v("alt2temp(5000)\n5.0939999999999941")])])])]),t._v(" "),a("p",[t._v("Calculate the standard temperature in deg F at sea level:")]),t._v(" "),a("blockquote",[a("blockquote",[a("blockquote",[a("p",[t._v("alt2temp(0, temp_units = 'F')\n59.0")])])])]),t._v(" "),a("p",[t._v("Calculate the standard temperature in deg K at 11,000 m:")]),t._v(" "),a("blockquote",[a("blockquote",[a("blockquote",[a("p",[t._v("alt2temp(11000, alt_units = 'm', temp_units = 'K')\n216.64999999999998")])])])]),t._v(" "),a("p",[t._v("Calculate the standard temperature at 11 statute miles in deg R:")]),t._v(" "),a("blockquote",[a("blockquote",[a("blockquote",[a("p",[t._v("alt2temp(11, alt_units = 'sm', temp_units = 'R')\n389.96999999999997")])])])]),t._v(" "),a("p",[t._v("The input value may be an expression:")]),t._v(" "),a("blockquote",[a("blockquote",[a("blockquote",[a("p",[t._v("alt2temp(11 * 5280, temp_units = 'R')\n389.96999999999997")])])])]),t._v(" "),a("h2",{attrs:{id:"alt2temp-ratio"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#alt2temp-ratio"}},[t._v("#")]),t._v(" alt2temp_ratio")]),t._v(" "),a("skdecide-signature",{attrs:{name:"alt2temp_ratio",sig:{params:[{name:"H"},{name:"alt_units",default:"ft"}]}}}),t._v(" "),a("p",[t._v("Return the temperature ratio (temperature / standard temperature for\nsea level). The altitude is specified in feet ('ft'), metres ('m'),\nstatute miles, ('sm') or nautical miles ('nm').")]),t._v(" "),a("p",[t._v("If the units are not specified, the units in default_units.py are used.")]),t._v(" "),a("p",[t._v("Examples:")]),t._v(" "),a("p",[t._v("Calculate the temperature ratio at 8,000 (default altitude units)")]),t._v(" "),a("blockquote",[a("blockquote",[a("blockquote",[a("p",[t._v("alt2temp_ratio(8000)\n0.94499531494013533")])])])]),t._v(" "),a("p",[t._v("Calculate the temperature ratio at 8,000 m.")]),t._v(" "),a("blockquote",[a("blockquote",[a("blockquote",[a("p",[t._v("alt2temp_ratio(8000, alt_units = 'm')\n0.81953843484296374")])])])]),t._v(" "),a("h2",{attrs:{id:"isa2temp"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#isa2temp"}},[t._v("#")]),t._v(" isa2temp")]),t._v(" "),a("skdecide-signature",{attrs:{name:"isa2temp",sig:{params:[{name:"ISA_dev"},{name:"altitude"},{name:"temp_units",default:"C"},{name:"alt_units",default:"ft"}]}}}),t._v(" "),a("p",[t._v("Return the temperature that is a specified amount warmer or cooler\nthan the standard temperature for the altitude.")]),t._v(" "),a("p",[t._v("The temperature may be in deg C, F, K or R.")]),t._v(" "),a("p",[t._v("The altitude may be in feet ('ft'), metres ('m'), kilometres ('km'),\nstatute miles, ('sm') or nautical miles ('nm').")]),t._v(" "),a("p",[t._v("If the units are not specified, the units in default_units.py are used.")]),t._v(" "),a("p",[t._v("Examples:")]),t._v(" "),a("p",[t._v("Determine the temperature that is 10 deg (default temperature units) warmer\nthan the standard temperature at 8,000 (default altitude units):")]),t._v(" "),a("blockquote",[a("blockquote",[a("blockquote",[a("p",[t._v("isa2temp(10, 8000)\n9.1503999999999905")])])])]),t._v(" "),a("p",[t._v("Determine the temperature that is 25 degrees K cooler than the standard\ntemperature at 2000 m.")]),t._v(" "),a("blockquote",[a("blockquote",[a("blockquote",[a("p",[t._v("isa2temp(-25, 2000, temp_units = 'K', alt_units = 'm')\n250.14999999999998")])])])]),t._v(" "),a("h2",{attrs:{id:"temp2isa"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#temp2isa"}},[t._v("#")]),t._v(" temp2isa")]),t._v(" "),a("skdecide-signature",{attrs:{name:"temp2isa",sig:{params:[{name:"temp"},{name:"altitude"},{name:"temp_units",default:"C"},{name:"alt_units",default:"ft"}]}}}),t._v(" "),a("p",[t._v("Return the amount that the specified temperature is warmer or cooler\nthan the standard temperature for the altitude.")]),t._v(" "),a("p",[t._v("The temperature may be in deg C, F, K or R.")]),t._v(" "),a("p",[t._v("The altitude may be in feet ('ft'), metres ('m'), kilometres ('km'),\nstatute miles, ('sm') or nautical miles ('nm').")]),t._v(" "),a("p",[t._v("If the units are not specified, the units in default_units.py are used.")]),t._v(" "),a("p",[t._v("Examples:")]),t._v(" "),a("p",[t._v("Determine the ISA deviation for a temperature of 30 deg (default\ntemperature units) at an altitude of 2000 (default altitude units):")]),t._v(" "),a("blockquote",[a("blockquote",[a("blockquote",[a("p",[t._v("temp2isa(30, 2000)\n18.962400000000002")])])])]),t._v(" "),a("p",[t._v("Determine the ISA deviation in degrees F for a temperature of 45 deg F\nat an altitude of 1000 m:")]),t._v(" "),a("blockquote",[a("blockquote",[a("blockquote",[a("p",[t._v("temp2isa(45, 1000, temp_units = 'F', alt_units = 'm')\n-2.2999999999999972")])])])]),t._v(" "),a("h2",{attrs:{id:"alt2press-ratio"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#alt2press-ratio"}},[t._v("#")]),t._v(" alt2press_ratio")]),t._v(" "),a("skdecide-signature",{attrs:{name:"alt2press_ratio",sig:{params:[{name:"H"},{name:"alt_units",default:"ft"}]}}}),t._v(" "),a("p",[t._v("Return the pressure ratio (atmospheric pressure / standard pressure\nfor sea level). The altitude is specified in feet ('ft'), metres ('m'),\nstatute miles, ('sm') or nautical miles ('nm').")]),t._v(" "),a("p",[t._v("If the units are not specified, the units in default_units.py are used.")]),t._v(" "),a("p",[t._v("Examples:")]),t._v(" "),a("p",[t._v("Calculate the pressure ratio at 5000 (default altitude units):")]),t._v(" "),a("blockquote",[a("blockquote",[a("blockquote",[a("p",[t._v("alt2press_ratio(5000)\n0.8320481158727735")])])])]),t._v(" "),a("p",[t._v("Calculate the pressure ratio at 1000 m:")]),t._v(" "),a("blockquote",[a("blockquote",[a("blockquote",[a("p",[t._v("alt2press_ratio(1000, alt_units = 'm')\n0.88699304638887044")])])])]),t._v(" "),a("p",[t._v("The functions are only implemented at altitudes of 84.852 km and lower.")]),t._v(" "),a("blockquote",[a("blockquote",[a("blockquote",[a("p",[t._v("alt2press_ratio(90, alt_units = 'km')\nTraceback (most recent call last):\nFile '', line 1, in ?\nFile './std_atm.py', line 189, in alt2press_ratio\nif H <= 20:\nValueError: This function is only implemented for altitudes of 84.852 km and below.")])])])]),t._v(" "),a("h2",{attrs:{id:"alt2press"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#alt2press"}},[t._v("#")]),t._v(" alt2press")]),t._v(" "),a("skdecide-signature",{attrs:{name:"alt2press",sig:{params:[{name:"H"},{name:"alt_units",default:"ft"},{name:"press_units",default:"in HG"}]}}}),t._v(" "),a("p",[t._v("Return the atmospheric pressure for a given altitude, with the\naltitude in feet ('ft'), metres ('m'), statute miles, ('sm') or nautical\nmiles ('nm'), and the pressure in inches of HG ('in HG'), mm of HG\n('mm HG'), psi, lb per sq. ft ('psf'), pa, hpa or mb.")]),t._v(" "),a("p",[t._v("If the units are not specified, the units in default_units.py are used.")]),t._v(" "),a("p",[t._v("Examples:")]),t._v(" "),a("p",[t._v("Calculate the pressure in inches of mercury at 5,000 (default altitude\nunits):")]),t._v(" "),a("blockquote",[a("blockquote",[a("blockquote",[a("p",[t._v("alt2press(5000)\n24.895961289464015")])])])]),t._v(" "),a("p",[t._v("Calculate the pressure in pounds per square foot at 10,000 (default\naltitude units):")]),t._v(" "),a("blockquote",[a("blockquote",[a("blockquote",[a("p",[t._v("alt2press(10000, press_units = 'psf')\n1455.3301392981359")])])])]),t._v(" "),a("p",[t._v("Calculate the pressure in pascal at 20 km:")]),t._v(" "),a("blockquote",[a("blockquote",[a("blockquote",[a("p",[t._v("alt2press(20, press_units = 'pa', alt_units = 'km')\n5474.8827144576408")])])])]),t._v(" "),a("h2",{attrs:{id:"pressure-alt"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#pressure-alt"}},[t._v("#")]),t._v(" pressure_alt")]),t._v(" "),a("skdecide-signature",{attrs:{name:"pressure_alt",sig:{params:[{name:"H"},{name:"alt_setting"},{name:"alt_units",default:"ft"}]}}}),t._v(" "),a("p",[t._v("Return the pressure altitude, given the barometric altitude and the\naltimeter setting.")]),t._v(" "),a("p",[t._v("Altimeter setting may have units of inches of HG, or hpa or mb. If the\naltimeter setting value is less than 35, the units are assumed to be\nin HG, otherwise they are assumed to be hpa. The altimeter setting must\nbe in the range of 25 to 35 inches of mercury.")]),t._v(" "),a("p",[t._v("The altitude may have units of feet ('ft'), metres ('m'), statute miles,\n('sm') or nautical miles ('nm').")]),t._v(" "),a("p",[t._v("If the units are not specified, the units in default_units.py are used.")]),t._v(" "),a("p",[t._v("Examples:")]),t._v(" "),a("p",[t._v("Calculate the pressure altitude for 1,000 (default altitude units)\nbarometric altitude with altimeter setting of 30.92 in HG:")]),t._v(" "),a("blockquote",[a("blockquote",[a("blockquote",[a("p",[t._v("pressure_alt(1000, 30.92)\n88.612734282205338")])])])]),t._v(" "),a("p",[t._v("Calculate the pressure altitude for 1,000 (default altitude units)\nbarometric altitude with altimeter setting of 1008 mb:")]),t._v(" "),a("blockquote",[a("blockquote",[a("blockquote",[a("p",[t._v("pressure_alt(1000, 1008)\n1143.6503495627171")])])])]),t._v(" "),a("p",[t._v("Calculate the pressure altitude in metres for 304.8 m barometric\naltitude with altimeter setting of 1008 mb:")]),t._v(" "),a("blockquote",[a("blockquote",[a("blockquote",[a("p",[t._v("pressure_alt(304.8, 1008, alt_units = 'm')\n348.58462654671621")])])])]),t._v(" "),a("h2",{attrs:{id:"qnh"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#qnh"}},[t._v("#")]),t._v(" QNH")]),t._v(" "),a("skdecide-signature",{attrs:{name:"QNH",sig:{params:[{name:"HP"},{name:"H"},{name:"alt_units",default:"ft"},{name:"alt_setting_units",default:"in HG"}]}}}),t._v(" "),a("p",[t._v("Return the altimeter setting, given the pressure altitude (HP) and the\nbarometric altitude (H).")]),t._v(" "),a("h2",{attrs:{id:"alt2density-ratio"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#alt2density-ratio"}},[t._v("#")]),t._v(" alt2density_ratio")]),t._v(" "),a("skdecide-signature",{attrs:{name:"alt2density_ratio",sig:{params:[{name:"H"},{name:"alt_units",default:"ft"}]}}}),t._v(" "),a("p",[t._v("Return the density ratio (atmospheric density / standard density\nfor sea level). The altitude is specified in feet ('ft'), metres ('m'),\nstatute miles, ('sm') or nautical miles ('nm').")]),t._v(" "),a("p",[t._v("If the units are not specified, the units in default_units.py are used.")]),t._v(" "),a("p",[t._v("Examples:")]),t._v(" "),a("p",[t._v("Calculate the density ratio at 7,500 (default altitude units):")]),t._v(" "),a("blockquote",[a("blockquote",[a("blockquote",[a("p",[t._v("alt2density_ratio(7500)\n0.79825819881753035")])])])]),t._v(" "),a("p",[t._v("Calculate the density ratio at 2 km:")]),t._v(" "),a("blockquote",[a("blockquote",[a("blockquote",[a("p",[t._v("alt2density_ratio(2, alt_units = 'km')\n0.8216246960994622")])])])]),t._v(" "),a("h2",{attrs:{id:"alt2density"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#alt2density"}},[t._v("#")]),t._v(" alt2density")]),t._v(" "),a("skdecide-signature",{attrs:{name:"alt2density",sig:{params:[{name:"H"},{name:"alt_units",default:"ft"},{name:"density_units",default:"lb/ft**3"}]}}}),t._v(" "),a("p",[t._v("Return the density given the pressure altitude. The altitude is\nspecified in feet ('ft'), metres ('m'), statute miles, ('sm') or\nnautical miles ('nm').")]),t._v(" "),a("p",[t._v("The desired density units are specified as 'lb/ft"),a("strong",[t._v("3', 'slug/ft")]),t._v("3' or\n'kg/m**3'.")]),t._v(" "),a("p",[t._v("If the units are not specified, the units in default_units.py are used.")]),t._v(" "),a("p",[t._v("Examples:")]),t._v(" "),a("p",[t._v("Calculate the density in lb / ft cubed at 7,500 (default altitude units):")]),t._v(" "),a("blockquote",[a("blockquote",[a("blockquote",[a("p",[t._v("alt2density(7500)\n0.061046199847730374")])])])]),t._v(" "),a("p",[t._v("Calculate the density in slugs / ft cubed at 5,000 (default altitude units):")]),t._v(" "),a("blockquote",[a("blockquote",[a("blockquote",[a("p",[t._v("alt2density(5000, density_units = 'slug/ft**3')\n0.0020480982157718704")])])])]),t._v(" "),a("p",[t._v("Calculate the density in kg / m cubed at 0 (default altitude units:")]),t._v(" "),a("blockquote",[a("blockquote",[a("blockquote",[a("p",[t._v("alt2density(0, density_units = 'kg/m**3')\n1.2250000000000001")])])])]),t._v(" "),a("p",[t._v("Calculate the density in kg / m cubed at 81,000 m:")]),t._v(" "),a("blockquote",[a("blockquote",[a("blockquote",[a("p",[t._v("alt2density(81000, density_units = 'kg/m**3', alt_units = 'm')\n1.3320480184052337e-05")])])])]),t._v(" "),a("h2",{attrs:{id:"density2alt"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#density2alt"}},[t._v("#")]),t._v(" density2alt")]),t._v(" "),a("skdecide-signature",{attrs:{name:"density2alt",sig:{params:[{name:"Rho"},{name:"density_units",default:"lb/ft**3"},{name:"alt_units",default:"ft"}]}}}),t._v(" "),a("p",[t._v("Return the altitude corresponding to the specified density, with\ndensity in 'lb/ft"),a("strong",[t._v("3', 'slug/ft")]),t._v("3' or 'kg/m**3'.")]),t._v(" "),a("p",[t._v("The altitude is specified in feet ('ft'), metres ('m'), statute miles,\n('sm') or nautical miles ('nm').")]),t._v(" "),a("p",[t._v("If the units are not specified, the units in default_units.py are used.")]),t._v(" "),a("p",[t._v("Examples:")]),t._v(" "),a("p",[t._v("Calculate the altitude in default altitude units where the density is\n0.056475 in default density units:")]),t._v(" "),a("blockquote",[a("blockquote",[a("blockquote",[a("p",[t._v("density2alt(.056475)\n9999.8040934937271")])])])]),t._v(" "),a("p",[t._v("Calculate the altitude in metres where the density is 0.018012 kg / m\ncubed:")]),t._v(" "),a("blockquote",[a("blockquote",[a("blockquote",[a("p",[t._v("density2alt(.018012, alt_units = 'm', density_units = 'kg/m**3')\n29999.978688508152")])])])]),t._v(" "),a("h2",{attrs:{id:"density-ratio2alt"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#density-ratio2alt"}},[t._v("#")]),t._v(" density_ratio2alt")]),t._v(" "),a("skdecide-signature",{attrs:{name:"density_ratio2alt",sig:{params:[{name:"DR"},{name:"alt_units",default:"ft"}]}}}),t._v(" "),a("p",[t._v("Return the altitude for the specified density ratio. The altitude is in\nfeet ('ft'), metres ('m'), statute miles, ('sm') or nautical miles\n('nm').")]),t._v(" "),a("p",[t._v("If the units are not specified, the units in default_units.py are used.")]),t._v(" "),a("p",[t._v("Examples:")]),t._v(" "),a("p",[t._v("Calculate the altitude in default altitude units where the density ratio is\n1:")]),t._v(" "),a("blockquote",[a("blockquote",[a("blockquote",[a("p",[t._v("density_ratio2alt(1)\n0.0")])])])]),t._v(" "),a("p",[t._v("Calculate the altitude in feet where the density ratio is 0.5:")]),t._v(" "),a("blockquote",[a("blockquote",[a("blockquote",[a("p",[t._v("density_ratio2alt(.5)\n21859.50324995652")])])])]),t._v(" "),a("p",[t._v("Calculate the altitude in km where the density ratio is 0.1")]),t._v(" "),a("blockquote",[a("blockquote",[a("blockquote",[a("p",[t._v("density_ratio2alt(.1, alt_units = 'km')\n17.9048674520646")])])])]),t._v(" "),a("h2",{attrs:{id:"density-alt"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#density-alt"}},[t._v("#")]),t._v(" density_alt")]),t._v(" "),a("skdecide-signature",{attrs:{name:"density_alt",sig:{params:[{name:"H"},{name:"T"},{name:"alt_setting",default:"29.9213"},{name:"DP",default:"FALSE"},{name:"RH",default:"0.0"},{name:"alt_units",default:"ft"},{name:"temp_units",default:"C"}]}}}),t._v(" "),a("p",[t._v("Return density altitude, given the pressure altitude and the\ntemperature with altitudes in units of feet ('ft'), metres ('m'),\nstatute miles, ('sm') or nautical miles ('nm'), and temperature in units\nof deg C, F, K or R ('C', 'F', 'K' or 'R').")]),t._v(" "),a("p",[t._v("Mandatory parametres:\nH = altitude\nT = temperature")]),t._v(" "),a("p",[t._v("Optional parametres:\nalt_setting = altimeter setting (defaults to 29.9213 if not provided\nDP = dew point\nRH = relative humidity\nalt_units = units for the altitude. 'ft', 'm', or 'km'.\ntemp_units = units for the temperature and dew point. 'C', 'F', 'K'\nor 'R'.")]),t._v(" "),a("p",[t._v("The altimeter setting units are assumed to be inches of HG, unless the\nvalue is greater than 35. In this case the units are assumed to be mb.")]),t._v(" "),a("p",[t._v("If the dew point or relative humidity are not specified, the air is\nassumed to be completely dry. If both the dew point and relative humidity\nare specified, the relative humidity value is ignored.")]),t._v(" "),a("p",[t._v("If the units are not specified, the units in default_units.py are used.")]),t._v(" "),a("p",[t._v("The method is from: http://wahiduddin.net/calc/density_altitude.htm")]),t._v(" "),a("p",[t._v("Examples:")]),t._v(" "),a("p",[t._v("Calculate the density altitude in default altitude units for a pressure\naltitude of 7000 default altitude units and a temperature of 15 deg\n(default temperature units). The altimeter setting is not specified, so it\ndefaults to standard pressure of 29.9213 in HG or 1013.25 mb:")]),t._v(" "),a("blockquote",[a("blockquote",[a("blockquote",[a("p",[t._v("density_alt(7000, 15)\n8595.3465863232504")])])])]),t._v(" "),a("p",[t._v("Calculate the density altitude in default altitude units for a pressure\naltitude of 7000 default altitude units and a temperature of 85 deg F.\nThe altimeter setting is not specified, so it defaults to standard pressure\nof 29.9213 in HG or 1013.25 mb. The dew point and relative humidity are\nnot specified, so the air is assumed to be dry:")]),t._v(" "),a("blockquote",[a("blockquote",[a("blockquote",[a("p",[t._v("density_alt(7000, 85, temp_units = 'F')\n10159.10696106757")])])])]),t._v(" "),a("p",[t._v("Calculate the density altitude in default altitude units for a pressure\naltitude of 7000 default altitude units, an altimeter setting of 29.80 and\na temperature of 85 deg F and a dew point of 55 deg F:")]),t._v(" "),a("blockquote",[a("blockquote",[a("blockquote",[a("p",[t._v("density_alt(7000, 85, 29.80, 55, temp_units = 'F')\n10522.776013011618")])])])]),t._v(" "),a("p",[t._v("Calculate the density altitude in metres for a pressure altitude of\n2000 m, an altimeter setting of 1010 mb, a temperature of 15 deg (default\ntemperature units) and a relative humidity of 50%:")]),t._v(" "),a("blockquote",[a("blockquote",[a("blockquote",[a("p",[t._v("density_alt(2000, 15, 1010, alt_units = 'm', RH = 0.5)\n2529.8230634449737")])])])]),t._v(" "),a("p",[t._v("The dew point may be specified in one of two ways: as the fourth\nargument on the command line, or via the keyword argument DP.")]),t._v(" "),a("blockquote",[a("blockquote",[a("blockquote",[a("p",[t._v("density_alt(2000, 15, 1010, alt_units = 'm', DP = 5)\n2530.7528237990618")])])])]),t._v(" "),a("p",[t._v("The relative humidity must be in the range of 0 to 1:")]),t._v(" "),a("blockquote",[a("blockquote",[a("blockquote",[a("p",[t._v("density_alt(2000, 15, 1010, alt_units = 'm', RH = 1.1)\nTraceback (most recent call last):\nFile '', line 1, in ?\nFile 'std_atm.py', line 533, in density_alt\nraise ValueError, 'The relative humidity must be in the range of 0 to 1.'\nValueError: The relative humidity must be in the range of 0 to 1.")])])])]),t._v(" "),a("h2",{attrs:{id:"sat-press"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sat-press"}},[t._v("#")]),t._v(" _sat_press")]),t._v(" "),a("skdecide-signature",{attrs:{name:"_sat_press",sig:{params:[{name:"T"}]}}}),t._v(" "),a("p",[t._v("Return the saturation pressure in mb of the water vapour, given\ntemperature in deg C. Equation from:\nhttp://wahiduddin.net/calc/density_altitude.htm")]),t._v(" "),a("h2",{attrs:{id:"sat-press-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sat-press-2"}},[t._v("#")]),t._v(" sat_press")]),t._v(" "),a("skdecide-signature",{attrs:{name:"sat_press",sig:{params:[{name:"T",default:"FALSE"},{name:"DP",default:"FALSE"},{name:"RH",default:"0.0"},{name:"temp_units",default:"C"},{name:"press_units",default:"in HG"}]}}}),t._v(" "),a("p",[t._v("Return the saturated vapour pressure of water. Either the dew point, or\nthe temperature and the relative humidity must be specified. If both the\ndew point and relative humidity are specified, the relative humidity value\nis ignored.")]),t._v(" "),a("p",[t._v("If the temperature and dew point are both specified, the dew point cannot\nbe greater than the temperature:")]),t._v(" "),a("p",[t._v("If the units are not specified, the units in default_units.py are used.")]),t._v(" "),a("blockquote",[a("blockquote",[a("blockquote",[a("p",[t._v("sat_press(T=10, DP=11)\nTraceback (most recent call last):\nFile '', line 1, in \nFile 'std_atm.py', line 795, in sat_press\nraise ValueError, 'The dew point cannot be greater than the temperature.'\nValueError: The dew point cannot be greater than the temperature.")])])])]),t._v(" "),a("p",[t._v("Dew point is 11 deg (default temperature units). Find the water vapour\npressure in default pressure units:")]),t._v(" "),a("blockquote",[a("blockquote",[a("blockquote",[a("p",[t._v("sat_press(DP=11)\n0.38741015927568667")])])])]),t._v(" "),a("p",[t._v("Dew point is 65 deg F. Find the water vapour pressure in default pressure units:")]),t._v(" "),a("blockquote",[a("blockquote",[a("blockquote",[a("p",[t._v("sat_press(DP=65, temp_units = 'F')\n0.62207710701956165")])])])]),t._v(" "),a("p",[t._v("Dew point is 212 deg F (the boiling point of water at sea level).\nFind the water vapour pressure in lb per sq. inch:")]),t._v(" "),a("blockquote",[a("blockquote",[a("blockquote",[a("p",[t._v("sat_press(DP=212, temp_units = 'F', press_units = 'psi')\n14.696764873564959")])])])]),t._v(" "),a("p",[t._v("Temperature is 30 deg C. Find the water vapour pressure in default pressure units:\nfor 50% relative humidity:")]),t._v(" "),a("blockquote",[a("blockquote",[a("blockquote",[a("p",[t._v("sat_press(T=30, RH = 0.5)\n0.62647666996057927")])])])]),t._v(" "),a("h2",{attrs:{id:"dry-press"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#dry-press"}},[t._v("#")]),t._v(" dry_press")]),t._v(" "),a("skdecide-signature",{attrs:{name:"dry_press",sig:{params:[{name:"H"},{name:"Pv"},{name:"alt_setting",default:"29.9213"},{name:"alt_units",default:"ft"},{name:"press_units",default:"in HG"}]}}}),t._v(" "),a("p",[t._v("Returns dry air pressure, i.e. the total air pressure, less the water\nvapour pressure.")]),t._v(" "),a("h2",{attrs:{id:"density-alt2temp"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#density-alt2temp"}},[t._v("#")]),t._v(" density_alt2temp")]),t._v(" "),a("skdecide-signature",{attrs:{name:"density_alt2temp",sig:{params:[{name:"density_alt_seek"},{name:"press_alt"},{name:"alt_units",default:"ft"},{name:"temp_units",default:"C"}]}}}),t._v(" "),a("p",[t._v("Return temperature to achieve a desired density altitude.")]),t._v(" "),a("p",[t._v("If the units are not specified, the units in default_units.py are used.")]),t._v(" "),a("h2",{attrs:{id:"density-alt-table"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#density-alt-table"}},[t._v("#")]),t._v(" density_alt_table")]),t._v(" "),a("skdecide-signature",{attrs:{name:"density_alt_table",sig:{params:[{name:"density_alt_seek"},{name:"alt_range",default:"2000"},{name:"alt_inc",default:"100"},{name:"alt_units",default:"ft"},{name:"temp_units",default:"C"},{name:"multi_units",default:"False"},{name:"file",default:""},{name:"format",default:"text"}]}}}),t._v(" "),a("p",[t._v("Return a text or html table of required temperature vs pressure altitude.")]),t._v(" "),a("p",[t._v("If the units are not specified, the units in default_units.py are used.")]),t._v(" "),a("h2",{attrs:{id:"press2alt"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#press2alt"}},[t._v("#")]),t._v(" press2alt")]),t._v(" "),a("skdecide-signature",{attrs:{name:"press2alt",sig:{params:[{name:"P"},{name:"press_units",default:"in HG"},{name:"alt_units",default:"ft"}]}}}),t._v(" "),a("p",[t._v("Return the altitude corresponding to the specified pressure, with\npressure in inches of HG, mm of HG, psi, psf (lb per sq. ft), pa, hpa or\nmb.")]),t._v(" "),a("p",[t._v("The altitude is in units of feet ('ft'), metres ('m'), statute miles,\n('sm') or nautical miles ('nm')")]),t._v(" "),a("p",[t._v("If the units are not specified, the units in default_units.py are used.")]),t._v(" "),a("p",[t._v("Examples:")]),t._v(" "),a("p",[t._v("Calculate the pressure altitude in feet for a pressure of 31.0185 inches\nof HG:")]),t._v(" "),a("blockquote",[a("blockquote",[a("blockquote",[a("p",[t._v("press2alt(31.0185)\n-999.98992888235091")])])])]),t._v(" "),a("p",[t._v("Calculate the pressure altitude in feet for a pressure of\n1455.33 lb sq. ft:")]),t._v(" "),a("blockquote",[a("blockquote",[a("blockquote",[a("p",[t._v("press2alt(1455.33, press_units = 'psf')\n10000.002466564831")])])])]),t._v(" "),a("p",[t._v("Calculate the pressure altitude in metres for a pressure of\n90.3415 mm HG:")]),t._v(" "),a("blockquote",[a("blockquote",[a("blockquote",[a("p",[t._v("press2alt(90.3415, press_units = 'mm HG', alt_units = 'm')\n15000.025465320754")])])])]),t._v(" "),a("p",[t._v("Calculate the pressure altitude in metres for a pressure of\n1171.86 pascal:")]),t._v(" "),a("blockquote",[a("blockquote",[a("blockquote",[a("p",[t._v("press2alt(1171.86, press_units = 'pa', alt_units = 'm')\n30000.029510365184")])])])]),t._v(" "),a("h2",{attrs:{id:"press-ratio2alt"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#press-ratio2alt"}},[t._v("#")]),t._v(" press_ratio2alt")]),t._v(" "),a("skdecide-signature",{attrs:{name:"press_ratio2alt",sig:{params:[{name:"PR"},{name:"alt_units",default:"ft"}]}}}),t._v(" "),a("p",[t._v("Return the pressure ratio for the specified altitude. The altitude is\nspecified in feet ('ft'), metres ('m'), statute miles, ('sm') or\nnautical miles ('nm').")]),t._v(" "),a("p",[t._v("If the units are not specified, the units in default_units.py are used.")]),t._v(" "),a("p",[t._v("Examples:")]),t._v(" "),a("p",[t._v("Calculate the altitude in feet where the pressure ratio is 0.5:")]),t._v(" "),a("blockquote",[a("blockquote",[a("blockquote",[a("p",[t._v("press_ratio2alt(.5)\n17969.990746028907")])])])]),t._v(" "),a("p",[t._v("Calculate the altitude in metres where the pressure ratio is 0.1:")]),t._v(" "),a("blockquote",[a("blockquote",[a("blockquote",[a("p",[t._v("press_ratio2alt(.1, alt_units = 'm')\n16096.249927559489")])])])]),t._v(" "),a("h2",{attrs:{id:"temp2speed-of-sound"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#temp2speed-of-sound"}},[t._v("#")]),t._v(" temp2speed_of_sound")]),t._v(" "),a("skdecide-signature",{attrs:{name:"temp2speed_of_sound",sig:{params:[{name:"temp"},{name:"temp_units",default:"C"},{name:"speed_units",default:"kt"}]}}}),t._v(" "),a("p",[t._v("Return the speed of sound, given the air temperature.")]),t._v(" "),a("p",[t._v("The temperature units may be deg C, F, K or R ('C', 'F', 'K' or 'R').")]),t._v(" "),a("p",[t._v("The speed units may be 'kt', 'mph', 'km/h', 'm/s' and 'ft/s'.")]),t._v(" "),a("p",[t._v("If the units are not specified, the units in default_units.py are used.")]),t._v(" "),a("p",[t._v("Examples:")]),t._v(" "),a("p",[t._v("Determine speed of sound in knots at 15 deg (default temperature units):")]),t._v(" "),a("blockquote",[a("blockquote",[a("blockquote",[a("p",[t._v("temp2speed_of_sound(15)\n661.47882487301808")])])])]),t._v(" "),a("p",[t._v("Determine speed of sound in mph at 120 deg F:")]),t._v(" "),a("blockquote",[a("blockquote",[a("blockquote",[a("p",[t._v("temp2speed_of_sound(120, speed_units = 'mph', temp_units = 'F')\n804.73500154991291")])])])])],1)}),[],!1,null,null,null);e.default=i.exports}}]); \ No newline at end of file diff --git a/assets/js/62.51bd9adb.js b/assets/js/62.fa270052.js similarity index 99% rename from assets/js/62.51bd9adb.js rename to assets/js/62.fa270052.js index ad1533e109..6cc98c59cc 100644 --- a/assets/js/62.51bd9adb.js +++ b/assets/js/62.fa270052.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[62],{577:function(e,t,n){"use strict";n.r(t);var o=n(38),a=Object(o.a)({},(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[n("h1",{attrs:{id:"hub-domain-flight-planning-weather-interpolator-weather-tools-unit-conversion"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#hub-domain-flight-planning-weather-interpolator-weather-tools-unit-conversion"}},[e._v("#")]),e._v(" hub.domain.flight_planning.weather_interpolator.weather_tools.unit_conversion")]),e._v(" "),n("p",[e._v("Convert between various units.")]),e._v(" "),n("div",{staticClass:"custom-block tip"},[n("p",{staticClass:"custom-block-title"},[e._v("Domain specification")]),e._v(" "),n("skdecide-summary")],1),e._v(" "),n("h2",{attrs:{id:"area-conv"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#area-conv"}},[e._v("#")]),e._v(" area_conv")]),e._v(" "),n("skdecide-signature",{attrs:{name:"area_conv",sig:{params:[{name:"A"},{name:"from_units",default:"ft**2"},{name:"to_units",default:"ft**2"}]}}}),e._v(" "),n("p",[e._v("Convert area values between ft"),n("strong",[e._v("2, in")]),e._v("2, m"),n("strong",[e._v("2, km")]),e._v("2, sm"),n("strong",[e._v("2 and nm")]),e._v("2.")]),e._v(" "),n("p",[e._v("The incoming value is first converted to ft**2, then it is converted to\ndesired return value.")]),e._v(" "),n("p",[e._v("The units default to those specified in default_units.py")]),e._v(" "),n("p",[e._v("Examples:")]),e._v(" "),n("p",[e._v("Convert 1 ft"),n("strong",[e._v("2 to inches")]),e._v("2, with ft**2 already defined as the default\nunits:")]),e._v(" "),n("blockquote",[n("blockquote",[n("blockquote",[n("p",[e._v("area_conv(1, to_units = 'in**2')\n144.0")])])])]),e._v(" "),n("p",[e._v("Convert 288 square inches to square feet, with ft**2 already defined as the default\nunits:")]),e._v(" "),n("blockquote",[n("blockquote",[n("blockquote",[n("p",[e._v("area_conv(288, from_units = 'in**2')\n2.0")])])])]),e._v(" "),n("p",[e._v("Convert 10 square metres to square inches:")]),e._v(" "),n("blockquote",[n("blockquote",[n("blockquote",[n("p",[e._v("area_conv(1000, from_units = 'm"),n("strong",[e._v("2', to_units = 'in")]),e._v("2')\n1550003.1000061999")])])])]),e._v(" "),n("h2",{attrs:{id:"density-conv"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#density-conv"}},[e._v("#")]),e._v(" density_conv")]),e._v(" "),n("skdecide-signature",{attrs:{name:"density_conv",sig:{params:[{name:"D"},{name:"from_units"},{name:"to_units"}]}}}),e._v(" "),n("p",[e._v("Convert density values between kg/m"),n("strong",[e._v("3, slug/ft")]),e._v("3 and lb/ft**3.")]),e._v(" "),n("p",[e._v("The incoming value is first converted to kg/m**3, then it is converted\nto desired return value.")]),e._v(" "),n("p",[e._v("There are no default units. Both the from_units and the to_units must\nbe specified.")]),e._v(" "),n("p",[e._v("Example:")]),e._v(" "),n("p",[e._v("Convert 1.225 kg per metre cubed to lb per foot cubed:")]),e._v(" "),n("blockquote",[n("blockquote",[n("blockquote",[n("p",[e._v("density_conv(1.225, from_units = 'kg/m"),n("strong",[e._v("3', to_units = 'lb/ft")]),e._v("3')\n0.076474253491112101")])])])]),e._v(" "),n("h2",{attrs:{id:"force-conv"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#force-conv"}},[e._v("#")]),e._v(" force_conv")]),e._v(" "),n("skdecide-signature",{attrs:{name:"force_conv",sig:{params:[{name:"F"},{name:"from_units",default:"lb"},{name:"to_units",default:"lb"}]}}}),e._v(" "),n("p",[e._v("Convert force values between lb and N.")]),e._v(" "),n("p",[e._v("The incoming value is first converted to N, then it is converted to the\ndesired return value.")]),e._v(" "),n("h2",{attrs:{id:"len-conv"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#len-conv"}},[e._v("#")]),e._v(" len_conv")]),e._v(" "),n("skdecide-signature",{attrs:{name:"len_conv",sig:{params:[{name:"L"},{name:"from_units",default:"ft"},{name:"to_units",default:"ft"}]}}}),e._v(" "),n("p",[e._v("Convert length values between ft, in, m, km, sm and nm.")]),e._v(" "),n("p",[e._v("The incoming value is first converted to ft, then it is converted to\ndesired return value.")]),e._v(" "),n("p",[e._v("The units default to those specified in default_units.py")]),e._v(" "),n("p",[e._v("Examples:")]),e._v(" "),n("p",[e._v("Convert 5280 ft to statute miles, with feet already defined as the default\nunits:")]),e._v(" "),n("blockquote",[n("blockquote",[n("blockquote",[n("p",[e._v("len_conv(5280, to_units = 'sm')\n1.0")])])])]),e._v(" "),n("p",[e._v("Convert 1 nautical mile to feet, with feet already defined as the default\nunits:")]),e._v(" "),n("blockquote",[n("blockquote",[n("blockquote",[n("p",[e._v("len_conv(1, from_units = 'nm')\n6076.1154855643044")])])])]),e._v(" "),n("p",[e._v("Convert 1000 metres to kilometres:")]),e._v(" "),n("blockquote",[n("blockquote",[n("blockquote",[n("p",[e._v("len_conv(1000, from_units = 'm', to_units = 'km')\n0.99999999999999989")])])])]),e._v(" "),n("h2",{attrs:{id:"power-conv"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#power-conv"}},[e._v("#")]),e._v(" power_conv")]),e._v(" "),n("skdecide-signature",{attrs:{name:"power_conv",sig:{params:[{name:"P"},{name:"from_units",default:"hp"},{name:"to_units",default:"hp"}]}}}),e._v(" "),n("p",[e._v("Convert power values between horsepower, ft-lb/mn, ft-lb/s, watts,\nkilowatts, BTU/hr and BTU/mn.")]),e._v(" "),n("p",[e._v("The incoming value is first converted to hp, then it is converted to the\ndesired return value.\nThe units default to those specified in default_units.py")]),e._v(" "),n("h2",{attrs:{id:"press-conv"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#press-conv"}},[e._v("#")]),e._v(" press_conv")]),e._v(" "),n("skdecide-signature",{attrs:{name:"press_conv",sig:{params:[{name:"P"},{name:"from_units",default:"in HG"},{name:"to_units",default:"in HG"}]}}}),e._v(" "),n("p",[e._v("Convert pressure values between inches of HG, mm of HG, psi, lb/ft^2,\nhpa and mb.")]),e._v(" "),n("p",[e._v("The incoming value is first converted to Pa, then it is converted to\ndesired return value.\nThe units default to those specified in default_units.py")]),e._v(" "),n("p",[e._v("Examples:")]),e._v(" "),n("p",[e._v("Convert 1013.25 hpa to default pressure units:")]),e._v(" "),n("blockquote",[n("blockquote",[n("blockquote",[n("p",[e._v("press_conv(1013.25, from_units = 'hpa')\n29.921331923765198")])])])]),e._v(" "),n("p",[e._v("Convert 29.9213 default pressure units to mm of HG:")]),e._v(" "),n("blockquote",[n("blockquote",[n("blockquote",[n("p",[e._v("press_conv(29.9213, to_units = 'mm HG')\n760.00128931459176")])])])]),e._v(" "),n("p",[e._v("Convert 2116.22 lb per sq. ft to lb per sq. inch:")]),e._v(" "),n("blockquote",[n("blockquote",[n("blockquote",[n("p",[e._v("press_conv(2116.22, from_units = 'psf', to_units = 'psi')\n14.695973160069311")])])])]),e._v(" "),n("h2",{attrs:{id:"speed-conv"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#speed-conv"}},[e._v("#")]),e._v(" speed_conv")]),e._v(" "),n("skdecide-signature",{attrs:{name:"speed_conv",sig:{params:[{name:"S"},{name:"from_units",default:"kt"},{name:"to_units",default:"kt"}]}}}),e._v(" "),n("p",[e._v("Convert speed values between kt, mph, km/h, m/s and ft/s.")]),e._v(" "),n("p",[e._v("The incoming value is first converted to kt, then it is converted to\ndesired return value.\nThe units default to those specified in default_units.py")]),e._v(" "),n("p",[e._v("Example:")]),e._v(" "),n("p",[e._v("Convert 230 mph to kt:")]),e._v(" "),n("blockquote",[n("blockquote",[n("blockquote",[n("p",[e._v("speed_conv(230, from_units = 'mph', to_units = 'kt')\n199.86453563714903")])])])]),e._v(" "),n("h2",{attrs:{id:"temp-conv"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#temp-conv"}},[e._v("#")]),e._v(" temp_conv")]),e._v(" "),n("skdecide-signature",{attrs:{name:"temp_conv",sig:{params:[{name:"T"},{name:"from_units",default:"C"},{name:"to_units",default:"C"}]}}}),e._v(" "),n("p",[e._v("Convert absolute temperature values between deg C, F, K and R.")]),e._v(" "),n("p",[e._v("This function should not be used for relative temperature conversions,\ni.e. temperature differences.")]),e._v(" "),n("p",[e._v("The incoming value is first converted to deg K, then it is converted to\ndesired return value.\nThe units default to those specified in default_units.py")]),e._v(" "),n("p",[e._v("Examples:")]),e._v(" "),n("p",[e._v("Convert 32 deg F to deg C, with deg C as the default units:")]),e._v(" "),n("blockquote",[n("blockquote",[n("blockquote",[n("p",[e._v("temp_conv(32, from_units = 'F')\n0.0")])])])]),e._v(" "),n("p",[e._v("Convert 100 deg C to deg F, with deg C as the default units:")]),e._v(" "),n("blockquote",[n("blockquote",[n("blockquote",[n("p",[e._v("temp_conv(100, to_units = 'F')\n212.0")])])])]),e._v(" "),n("p",[e._v("Convert 59 deg F to deg K")]),e._v(" "),n("blockquote",[n("blockquote",[n("blockquote",[n("p",[e._v("temp_conv(59, from_units = 'F', to_units = 'K')\n288.14999999999998")])])])]),e._v(" "),n("h2",{attrs:{id:"vol-conv"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#vol-conv"}},[e._v("#")]),e._v(" vol_conv")]),e._v(" "),n("skdecide-signature",{attrs:{name:"vol_conv",sig:{params:[{name:"V"},{name:"from_units",default:"ft**3"},{name:"to_units",default:"ft**3"}]}}}),e._v(" "),n("p",[e._v("Convert volume values between USG, ImpGal (Imperial gallons), l (litres), ft"),n("strong",[e._v("3, in")]),e._v("3, m"),n("strong",[e._v("3, km")]),e._v("3, sm"),n("strong",[e._v("3 and nm")]),e._v("3.")]),e._v(" "),n("p",[e._v("The incoming value is first converted to ft**3, then it is converted to\ndesired return value.")]),e._v(" "),n("p",[e._v("The units default to those specified in default_units.py")]),e._v(" "),n("p",[e._v("Examples:")]),e._v(" "),n("p",[e._v("Convert 1 cubic foot to US gallons, with cubic feet already defined as\nthe default units:")]),e._v(" "),n("blockquote",[n("blockquote",[n("blockquote",[n("p",[e._v("vol_conv(1, to_units = 'USG')\n7.4805194804946105")])])])]),e._v(" "),n("p",[e._v("Convert 1 Imperial gallon to cubic feet, with cubic feet already defined\nas the default units:")]),e._v(" "),n("blockquote",[n("blockquote",[n("blockquote",[n("p",[e._v("vol_conv(1, from_units = 'ImpGal')\n0.16054365323600001")])])])]),e._v(" "),n("p",[e._v("Convert 10 US gallon to litres:")]),e._v(" "),n("blockquote",[n("blockquote",[n("blockquote",[n("p",[e._v("vol_conv(10, from_units = 'USG', to_units = 'l')\n37.854117840125852")])])])]),e._v(" "),n("h2",{attrs:{id:"wt-conv"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#wt-conv"}},[e._v("#")]),e._v(" wt_conv")]),e._v(" "),n("skdecide-signature",{attrs:{name:"wt_conv",sig:{params:[{name:"W"},{name:"from_units",default:"lb"},{name:"to_units",default:"lb"}]}}}),e._v(" "),n("p",[e._v("Convert weight values between lb and kg.")]),e._v(" "),n("p",[e._v("Purists will yell that lb is a unit of weight, and kg is a unit of mass.\nGet over it.")]),e._v(" "),n("p",[e._v("The incoming value is first converted to kg, then it is converted to the\ndesired return value.")]),e._v(" "),n("p",[e._v("The units default to those specified in default_units.py")]),e._v(" "),n("h2",{attrs:{id:"avgas-conv"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#avgas-conv"}},[e._v("#")]),e._v(" avgas_conv")]),e._v(" "),n("skdecide-signature",{attrs:{name:"avgas_conv",sig:{params:[{name:"AG"},{name:"from_units",default:"lb"},{name:"to_units",default:"lb"},{name:"temp",default:"15"},{name:"temp_units",default:"C"},{name:"grade",default:"nominal"}]}}}),e._v(" "),n("p",[e._v("Convert aviation gasoline between units of lb, US Gallon (USG),\nImperial Gallon (Imp Gal), litres (l) and kg, assuming nominal\ndensity for aviation gasoline of 6.01 lb per USG.")]),e._v(" "),n("p",[e._v("The units default to those specified in default_units.py")]),e._v(" "),n("p",[e._v("Note: it was difficult to find authoritative values for aviation gasoline\ndensity. Conventional wisdom is that aviation gasoline has a density of\n6 lb/USG. The Canada Flight Supplement provides densities of:\ntemp density density density\n(deg C) (lb/USG) (lb/ImpGal) (lb/l)\n-40 6.41 7.68 1.69\n-20 6.26 7.50 1.65\n0 6.12 7.33 1.62\n15 6.01 7.20 1.59\n30 5.90 7.07 1.56")]),e._v(" "),n("p",[e._v("However, the Canada Flight Supplement does not provide a source for its\ndensity data. And, the values for the different volume units are not\ncompletly consistent, as they don't vary by exactly the correct factor.\nFor example, if the density at 15 deg C is 6.01 lb/USG, we would expect\nthe density in lb/ImpGal to be 7.22, (given that 1 ImpGal = 1.201 USG)\nyet the Canada Flight Supplement has 7.20.")]),e._v(" "),n("p",[e._v('The only authoritative source for aviation gasoline density that was\nfound on the web was the "Air BP Handbook of Products" on the British\nPetroleum (BP) web site:')]),e._v(" "),n("p",[e._v("")]),e._v(" "),n("p",[e._v("It provides the following density data valid at 15 deg C (the BP document\nonly provides density in kg/m"),n("strong",[e._v("3 - the density in lb/USG were calculated\nby Kevin Horton):\nAvgas density density\nType (kg/m")]),e._v("3) (lb/USG)\n80 690 5.76\n100 695 5.80\n100LL 715 5.97")]),e._v(" "),n("p",[e._v("The available aviation gasoline specifications do not appear to define an\nallowable density range. They do define allowable ranges for various\nparametres of the distillation process - the density of the final product\nwill vary depending on where in the allowable range the refinery is run.\nThus there will be some variation in density from refinery to refinery.")]),e._v(" "),n("p",[e._v("This function uses the 15 deg C density values provided by BP, with the\nvariation with temperature provided in the Canada Flight Supplement.")]),e._v(" "),n("p",[e._v('The grade may be specified as "80", "100" or "100LL". It defaults to\n"100LL" if it is not specified.')]),e._v(" "),n("p",[e._v("The temperature defaults to 15 deg C if it is not specified.")])],1)}),[],!1,null,null,null);t.default=a.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[62],{576:function(e,t,n){"use strict";n.r(t);var o=n(38),a=Object(o.a)({},(function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[n("h1",{attrs:{id:"hub-domain-flight-planning-weather-interpolator-weather-tools-unit-conversion"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#hub-domain-flight-planning-weather-interpolator-weather-tools-unit-conversion"}},[e._v("#")]),e._v(" hub.domain.flight_planning.weather_interpolator.weather_tools.unit_conversion")]),e._v(" "),n("p",[e._v("Convert between various units.")]),e._v(" "),n("div",{staticClass:"custom-block tip"},[n("p",{staticClass:"custom-block-title"},[e._v("Domain specification")]),e._v(" "),n("skdecide-summary")],1),e._v(" "),n("h2",{attrs:{id:"area-conv"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#area-conv"}},[e._v("#")]),e._v(" area_conv")]),e._v(" "),n("skdecide-signature",{attrs:{name:"area_conv",sig:{params:[{name:"A"},{name:"from_units",default:"ft**2"},{name:"to_units",default:"ft**2"}]}}}),e._v(" "),n("p",[e._v("Convert area values between ft"),n("strong",[e._v("2, in")]),e._v("2, m"),n("strong",[e._v("2, km")]),e._v("2, sm"),n("strong",[e._v("2 and nm")]),e._v("2.")]),e._v(" "),n("p",[e._v("The incoming value is first converted to ft**2, then it is converted to\ndesired return value.")]),e._v(" "),n("p",[e._v("The units default to those specified in default_units.py")]),e._v(" "),n("p",[e._v("Examples:")]),e._v(" "),n("p",[e._v("Convert 1 ft"),n("strong",[e._v("2 to inches")]),e._v("2, with ft**2 already defined as the default\nunits:")]),e._v(" "),n("blockquote",[n("blockquote",[n("blockquote",[n("p",[e._v("area_conv(1, to_units = 'in**2')\n144.0")])])])]),e._v(" "),n("p",[e._v("Convert 288 square inches to square feet, with ft**2 already defined as the default\nunits:")]),e._v(" "),n("blockquote",[n("blockquote",[n("blockquote",[n("p",[e._v("area_conv(288, from_units = 'in**2')\n2.0")])])])]),e._v(" "),n("p",[e._v("Convert 10 square metres to square inches:")]),e._v(" "),n("blockquote",[n("blockquote",[n("blockquote",[n("p",[e._v("area_conv(1000, from_units = 'm"),n("strong",[e._v("2', to_units = 'in")]),e._v("2')\n1550003.1000061999")])])])]),e._v(" "),n("h2",{attrs:{id:"density-conv"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#density-conv"}},[e._v("#")]),e._v(" density_conv")]),e._v(" "),n("skdecide-signature",{attrs:{name:"density_conv",sig:{params:[{name:"D"},{name:"from_units"},{name:"to_units"}]}}}),e._v(" "),n("p",[e._v("Convert density values between kg/m"),n("strong",[e._v("3, slug/ft")]),e._v("3 and lb/ft**3.")]),e._v(" "),n("p",[e._v("The incoming value is first converted to kg/m**3, then it is converted\nto desired return value.")]),e._v(" "),n("p",[e._v("There are no default units. Both the from_units and the to_units must\nbe specified.")]),e._v(" "),n("p",[e._v("Example:")]),e._v(" "),n("p",[e._v("Convert 1.225 kg per metre cubed to lb per foot cubed:")]),e._v(" "),n("blockquote",[n("blockquote",[n("blockquote",[n("p",[e._v("density_conv(1.225, from_units = 'kg/m"),n("strong",[e._v("3', to_units = 'lb/ft")]),e._v("3')\n0.076474253491112101")])])])]),e._v(" "),n("h2",{attrs:{id:"force-conv"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#force-conv"}},[e._v("#")]),e._v(" force_conv")]),e._v(" "),n("skdecide-signature",{attrs:{name:"force_conv",sig:{params:[{name:"F"},{name:"from_units",default:"lb"},{name:"to_units",default:"lb"}]}}}),e._v(" "),n("p",[e._v("Convert force values between lb and N.")]),e._v(" "),n("p",[e._v("The incoming value is first converted to N, then it is converted to the\ndesired return value.")]),e._v(" "),n("h2",{attrs:{id:"len-conv"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#len-conv"}},[e._v("#")]),e._v(" len_conv")]),e._v(" "),n("skdecide-signature",{attrs:{name:"len_conv",sig:{params:[{name:"L"},{name:"from_units",default:"ft"},{name:"to_units",default:"ft"}]}}}),e._v(" "),n("p",[e._v("Convert length values between ft, in, m, km, sm and nm.")]),e._v(" "),n("p",[e._v("The incoming value is first converted to ft, then it is converted to\ndesired return value.")]),e._v(" "),n("p",[e._v("The units default to those specified in default_units.py")]),e._v(" "),n("p",[e._v("Examples:")]),e._v(" "),n("p",[e._v("Convert 5280 ft to statute miles, with feet already defined as the default\nunits:")]),e._v(" "),n("blockquote",[n("blockquote",[n("blockquote",[n("p",[e._v("len_conv(5280, to_units = 'sm')\n1.0")])])])]),e._v(" "),n("p",[e._v("Convert 1 nautical mile to feet, with feet already defined as the default\nunits:")]),e._v(" "),n("blockquote",[n("blockquote",[n("blockquote",[n("p",[e._v("len_conv(1, from_units = 'nm')\n6076.1154855643044")])])])]),e._v(" "),n("p",[e._v("Convert 1000 metres to kilometres:")]),e._v(" "),n("blockquote",[n("blockquote",[n("blockquote",[n("p",[e._v("len_conv(1000, from_units = 'm', to_units = 'km')\n0.99999999999999989")])])])]),e._v(" "),n("h2",{attrs:{id:"power-conv"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#power-conv"}},[e._v("#")]),e._v(" power_conv")]),e._v(" "),n("skdecide-signature",{attrs:{name:"power_conv",sig:{params:[{name:"P"},{name:"from_units",default:"hp"},{name:"to_units",default:"hp"}]}}}),e._v(" "),n("p",[e._v("Convert power values between horsepower, ft-lb/mn, ft-lb/s, watts,\nkilowatts, BTU/hr and BTU/mn.")]),e._v(" "),n("p",[e._v("The incoming value is first converted to hp, then it is converted to the\ndesired return value.\nThe units default to those specified in default_units.py")]),e._v(" "),n("h2",{attrs:{id:"press-conv"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#press-conv"}},[e._v("#")]),e._v(" press_conv")]),e._v(" "),n("skdecide-signature",{attrs:{name:"press_conv",sig:{params:[{name:"P"},{name:"from_units",default:"in HG"},{name:"to_units",default:"in HG"}]}}}),e._v(" "),n("p",[e._v("Convert pressure values between inches of HG, mm of HG, psi, lb/ft^2,\nhpa and mb.")]),e._v(" "),n("p",[e._v("The incoming value is first converted to Pa, then it is converted to\ndesired return value.\nThe units default to those specified in default_units.py")]),e._v(" "),n("p",[e._v("Examples:")]),e._v(" "),n("p",[e._v("Convert 1013.25 hpa to default pressure units:")]),e._v(" "),n("blockquote",[n("blockquote",[n("blockquote",[n("p",[e._v("press_conv(1013.25, from_units = 'hpa')\n29.921331923765198")])])])]),e._v(" "),n("p",[e._v("Convert 29.9213 default pressure units to mm of HG:")]),e._v(" "),n("blockquote",[n("blockquote",[n("blockquote",[n("p",[e._v("press_conv(29.9213, to_units = 'mm HG')\n760.00128931459176")])])])]),e._v(" "),n("p",[e._v("Convert 2116.22 lb per sq. ft to lb per sq. inch:")]),e._v(" "),n("blockquote",[n("blockquote",[n("blockquote",[n("p",[e._v("press_conv(2116.22, from_units = 'psf', to_units = 'psi')\n14.695973160069311")])])])]),e._v(" "),n("h2",{attrs:{id:"speed-conv"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#speed-conv"}},[e._v("#")]),e._v(" speed_conv")]),e._v(" "),n("skdecide-signature",{attrs:{name:"speed_conv",sig:{params:[{name:"S"},{name:"from_units",default:"kt"},{name:"to_units",default:"kt"}]}}}),e._v(" "),n("p",[e._v("Convert speed values between kt, mph, km/h, m/s and ft/s.")]),e._v(" "),n("p",[e._v("The incoming value is first converted to kt, then it is converted to\ndesired return value.\nThe units default to those specified in default_units.py")]),e._v(" "),n("p",[e._v("Example:")]),e._v(" "),n("p",[e._v("Convert 230 mph to kt:")]),e._v(" "),n("blockquote",[n("blockquote",[n("blockquote",[n("p",[e._v("speed_conv(230, from_units = 'mph', to_units = 'kt')\n199.86453563714903")])])])]),e._v(" "),n("h2",{attrs:{id:"temp-conv"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#temp-conv"}},[e._v("#")]),e._v(" temp_conv")]),e._v(" "),n("skdecide-signature",{attrs:{name:"temp_conv",sig:{params:[{name:"T"},{name:"from_units",default:"C"},{name:"to_units",default:"C"}]}}}),e._v(" "),n("p",[e._v("Convert absolute temperature values between deg C, F, K and R.")]),e._v(" "),n("p",[e._v("This function should not be used for relative temperature conversions,\ni.e. temperature differences.")]),e._v(" "),n("p",[e._v("The incoming value is first converted to deg K, then it is converted to\ndesired return value.\nThe units default to those specified in default_units.py")]),e._v(" "),n("p",[e._v("Examples:")]),e._v(" "),n("p",[e._v("Convert 32 deg F to deg C, with deg C as the default units:")]),e._v(" "),n("blockquote",[n("blockquote",[n("blockquote",[n("p",[e._v("temp_conv(32, from_units = 'F')\n0.0")])])])]),e._v(" "),n("p",[e._v("Convert 100 deg C to deg F, with deg C as the default units:")]),e._v(" "),n("blockquote",[n("blockquote",[n("blockquote",[n("p",[e._v("temp_conv(100, to_units = 'F')\n212.0")])])])]),e._v(" "),n("p",[e._v("Convert 59 deg F to deg K")]),e._v(" "),n("blockquote",[n("blockquote",[n("blockquote",[n("p",[e._v("temp_conv(59, from_units = 'F', to_units = 'K')\n288.14999999999998")])])])]),e._v(" "),n("h2",{attrs:{id:"vol-conv"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#vol-conv"}},[e._v("#")]),e._v(" vol_conv")]),e._v(" "),n("skdecide-signature",{attrs:{name:"vol_conv",sig:{params:[{name:"V"},{name:"from_units",default:"ft**3"},{name:"to_units",default:"ft**3"}]}}}),e._v(" "),n("p",[e._v("Convert volume values between USG, ImpGal (Imperial gallons), l (litres), ft"),n("strong",[e._v("3, in")]),e._v("3, m"),n("strong",[e._v("3, km")]),e._v("3, sm"),n("strong",[e._v("3 and nm")]),e._v("3.")]),e._v(" "),n("p",[e._v("The incoming value is first converted to ft**3, then it is converted to\ndesired return value.")]),e._v(" "),n("p",[e._v("The units default to those specified in default_units.py")]),e._v(" "),n("p",[e._v("Examples:")]),e._v(" "),n("p",[e._v("Convert 1 cubic foot to US gallons, with cubic feet already defined as\nthe default units:")]),e._v(" "),n("blockquote",[n("blockquote",[n("blockquote",[n("p",[e._v("vol_conv(1, to_units = 'USG')\n7.4805194804946105")])])])]),e._v(" "),n("p",[e._v("Convert 1 Imperial gallon to cubic feet, with cubic feet already defined\nas the default units:")]),e._v(" "),n("blockquote",[n("blockquote",[n("blockquote",[n("p",[e._v("vol_conv(1, from_units = 'ImpGal')\n0.16054365323600001")])])])]),e._v(" "),n("p",[e._v("Convert 10 US gallon to litres:")]),e._v(" "),n("blockquote",[n("blockquote",[n("blockquote",[n("p",[e._v("vol_conv(10, from_units = 'USG', to_units = 'l')\n37.854117840125852")])])])]),e._v(" "),n("h2",{attrs:{id:"wt-conv"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#wt-conv"}},[e._v("#")]),e._v(" wt_conv")]),e._v(" "),n("skdecide-signature",{attrs:{name:"wt_conv",sig:{params:[{name:"W"},{name:"from_units",default:"lb"},{name:"to_units",default:"lb"}]}}}),e._v(" "),n("p",[e._v("Convert weight values between lb and kg.")]),e._v(" "),n("p",[e._v("Purists will yell that lb is a unit of weight, and kg is a unit of mass.\nGet over it.")]),e._v(" "),n("p",[e._v("The incoming value is first converted to kg, then it is converted to the\ndesired return value.")]),e._v(" "),n("p",[e._v("The units default to those specified in default_units.py")]),e._v(" "),n("h2",{attrs:{id:"avgas-conv"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#avgas-conv"}},[e._v("#")]),e._v(" avgas_conv")]),e._v(" "),n("skdecide-signature",{attrs:{name:"avgas_conv",sig:{params:[{name:"AG"},{name:"from_units",default:"lb"},{name:"to_units",default:"lb"},{name:"temp",default:"15"},{name:"temp_units",default:"C"},{name:"grade",default:"nominal"}]}}}),e._v(" "),n("p",[e._v("Convert aviation gasoline between units of lb, US Gallon (USG),\nImperial Gallon (Imp Gal), litres (l) and kg, assuming nominal\ndensity for aviation gasoline of 6.01 lb per USG.")]),e._v(" "),n("p",[e._v("The units default to those specified in default_units.py")]),e._v(" "),n("p",[e._v("Note: it was difficult to find authoritative values for aviation gasoline\ndensity. Conventional wisdom is that aviation gasoline has a density of\n6 lb/USG. The Canada Flight Supplement provides densities of:\ntemp density density density\n(deg C) (lb/USG) (lb/ImpGal) (lb/l)\n-40 6.41 7.68 1.69\n-20 6.26 7.50 1.65\n0 6.12 7.33 1.62\n15 6.01 7.20 1.59\n30 5.90 7.07 1.56")]),e._v(" "),n("p",[e._v("However, the Canada Flight Supplement does not provide a source for its\ndensity data. And, the values for the different volume units are not\ncompletly consistent, as they don't vary by exactly the correct factor.\nFor example, if the density at 15 deg C is 6.01 lb/USG, we would expect\nthe density in lb/ImpGal to be 7.22, (given that 1 ImpGal = 1.201 USG)\nyet the Canada Flight Supplement has 7.20.")]),e._v(" "),n("p",[e._v('The only authoritative source for aviation gasoline density that was\nfound on the web was the "Air BP Handbook of Products" on the British\nPetroleum (BP) web site:')]),e._v(" "),n("p",[e._v("")]),e._v(" "),n("p",[e._v("It provides the following density data valid at 15 deg C (the BP document\nonly provides density in kg/m"),n("strong",[e._v("3 - the density in lb/USG were calculated\nby Kevin Horton):\nAvgas density density\nType (kg/m")]),e._v("3) (lb/USG)\n80 690 5.76\n100 695 5.80\n100LL 715 5.97")]),e._v(" "),n("p",[e._v("The available aviation gasoline specifications do not appear to define an\nallowable density range. They do define allowable ranges for various\nparametres of the distillation process - the density of the final product\nwill vary depending on where in the allowable range the refinery is run.\nThus there will be some variation in density from refinery to refinery.")]),e._v(" "),n("p",[e._v("This function uses the 15 deg C density values provided by BP, with the\nvariation with temperature provided in the Canada Flight Supplement.")]),e._v(" "),n("p",[e._v('The grade may be specified as "80", "100" or "100LL". It defaults to\n"100LL" if it is not specified.')]),e._v(" "),n("p",[e._v("The temperature defaults to 15 deg C if it is not specified.")])],1)}),[],!1,null,null,null);t.default=a.exports}}]); \ No newline at end of file diff --git a/assets/js/63.53e6e389.js b/assets/js/63.9d861964.js similarity index 99% rename from assets/js/63.53e6e389.js rename to assets/js/63.9d861964.js index 6c3f9688c1..3d7e748bf4 100644 --- a/assets/js/63.53e6e389.js +++ b/assets/js/63.9d861964.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[63],{581:function(t,e,a){"use strict";a.r(e);var s=a(38),r=Object(s.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"hub-domain-gym-gym"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#hub-domain-gym-gym"}},[t._v("#")]),t._v(" hub.domain.gym.gym")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("Domain specification")]),t._v(" "),a("skdecide-summary")],1),t._v(" "),a("h2",{attrs:{id:"gymdomain"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#gymdomain"}},[t._v("#")]),t._v(" GymDomain")]),t._v(" "),a("p",[t._v("This class wraps an OpenAI Gym environment (gym.env) as a scikit-decide domain.")]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Using this class requires OpenAI Gym to be installed.")])]),t._v(" "),a("h3",{attrs:{id:"constructor"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#constructor"}},[t._v("#")]),t._v(" Constructor "),a("Badge",{attrs:{text:"GymDomain",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"GymDomain",sig:{params:[{name:"gym_env",annotation:"gym.Env"}],return:"None"}}}),t._v(" "),a("p",[t._v("Initialize GymDomain.")]),t._v(" "),a("h4",{attrs:{id:"parameters"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("gym_env")]),t._v(": The Gym environment (gym.env) to wrap.")])]),t._v(" "),a("h3",{attrs:{id:"check-value"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#check-value"}},[t._v("#")]),t._v(" check_value "),a("Badge",{attrs:{text:"Rewards",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"check_value",sig:{params:[{name:"self"},{name:"value",annotation:"Value[D.T_value]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that a value is compliant with its reward specification.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("This function returns always True by default because any kind of reward should be accepted at this level.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-2"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("value")]),t._v(": The value to check.")])]),t._v(" "),a("h4",{attrs:{id:"returns"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the value is compliant (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"get-action-space"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space"}},[t._v("#")]),t._v(" get_action_space "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_action_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) domain action space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.get_action_space()")]),t._v(" internally calls "),a("code",[t._v("Events._get_action_space_()")]),t._v(" the first time and\nautomatically caches its value to make future calls more efficient (since the action space is assumed to be\nconstant).")]),t._v(" "),a("h4",{attrs:{id:"returns-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-2"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The action space.")]),t._v(" "),a("h3",{attrs:{id:"get-applicable-actions"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions"}},[t._v("#")]),t._v(" get_applicable_actions "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_applicable_actions",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history), or in\nthe internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.get_applicable_actions()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_applicable_actions()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-3"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-3"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of applicable actions.")]),t._v(" "),a("h3",{attrs:{id:"get-enabled-events"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events"}},[t._v("#")]),t._v(" get_enabled_events "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_enabled_events",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"Space[D.T_event]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory), or in the internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.get_enabled_events()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_enabled_events()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead of\nthe memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-4"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-4"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of enabled events.")]),t._v(" "),a("h3",{attrs:{id:"get-observation"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation"}},[t._v("#")]),t._v(" get_observation "),a("Badge",{attrs:{text:"TransformedObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_observation",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Get the deterministic observation given a state and action.")]),t._v(" "),a("h4",{attrs:{id:"parameters-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-5"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-5"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-distribution"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-distribution"}},[t._v("#")]),t._v(" get_observation_distribution "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_observation_distribution",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"Distribution[D.T_agent[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the probability distribution of the observation given a state and action.")]),t._v(" "),a("p",[t._v("In mathematical terms (discrete case), given an action "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.197ex",height:"1.02ex",viewBox:"0 -441 529 451"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})])])])])]),t._v(", this function represents: "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.078ex",height:"2.262ex",viewBox:"0 -750 4012.7 1000"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"50",d:"M287 628Q287 635 230 637Q206 637 199 638T192 648Q192 649 194 659Q200 679 203 681T397 683Q587 682 600 680Q664 669 707 631T751 530Q751 453 685 389Q616 321 507 303Q500 302 402 301H307L277 182Q247 66 247 59Q247 55 248 54T255 50T272 48T305 46H336Q342 37 342 35Q342 19 335 5Q330 0 319 0Q316 0 282 1T182 2Q120 2 87 2T51 1Q33 1 33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM645 554Q645 567 643 575T634 597T609 619T560 635Q553 636 480 637Q463 637 445 637T416 636T404 636Q391 635 386 627Q384 621 367 550T332 412T314 344Q314 342 395 342H407H430Q542 342 590 392Q617 419 631 471T645 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(751, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(1140, 0)"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1903, 0)"}},[a("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(2181, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2650, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(3094.7, 0)"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3623.7, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(",\nwhere "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.05ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.726ex",height:"1.643ex",viewBox:"0 -704 763 726"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})])])])])]),t._v(" is the random variable of the observation.")],1),t._v(" "),a("h4",{attrs:{id:"parameters-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-6"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-6"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-space"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space"}},[t._v("#")]),t._v(" get_observation_space "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_observation_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) observation space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("PartiallyObservable.get_observation_space()")]),t._v(" internally\ncalls "),a("code",[t._v("PartiallyObservable._get_observation_space_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the observation space is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-7"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The observation space.")]),t._v(" "),a("h3",{attrs:{id:"is-action"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-action"}},[t._v("#")]),t._v(" is_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_action",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an event is an action (i.e. a controllable event for the agents).")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\naction space provided by "),a("code",[t._v("Events.get_action_space()")]),t._v(", but it can be overridden for faster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-7"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("event")]),t._v(": The event to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-8"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is an action (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-applicable-action"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action"}},[t._v("#")]),t._v(" is_applicable_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_applicable_action",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an action is applicable in the given memory (state or history), or in the internal one if\nomitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.is_applicable_action()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_applicable_action()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead\nof the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-8"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-9"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the action is applicable (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-enabled-event"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event"}},[t._v("#")]),t._v(" is_enabled_event "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_enabled_event",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an uncontrollable event is enabled in the given memory (state or history), or in the\ninternal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.is_enabled_event()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_enabled_event()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead of\nthe memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-9"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-10"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is enabled (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-observation"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-observation"}},[t._v("#")]),t._v(" is_observation "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_observation",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that an observation indeed belongs to the domain observation space.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\nobservation space provided by "),a("code",[t._v("PartiallyObservable.get_observation_space()")]),t._v(", but it can be overridden for\nfaster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-10"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-11"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the observation belongs to the domain observation space (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"render"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#render"}},[t._v("#")]),t._v(" render "),a("Badge",{attrs:{text:"Renderable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"render",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"},{name:"**kwargs",annotation:"Any"}],return:"Any"}}}),t._v(" "),a("p",[t._v("Compute a visual render of the given memory (state or history), or the internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Renderable.render()")]),t._v(" provides some boilerplate code and internally calls "),a("code",[t._v("Renderable._render()")]),t._v(". The\nboilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead of the memory parameter whenever the latter\nis None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-11"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-12"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("A render (e.g. image) or nothing (if the function handles the display directly).")]),t._v(" "),a("h3",{attrs:{id:"reset"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#reset"}},[t._v("#")]),t._v(" reset "),a("Badge",{attrs:{text:"Initializable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"reset",sig:{params:[{name:"self"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Reset the state of the environment and return an initial observation.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Initializable.reset()")]),t._v(" provides some boilerplate code and internally calls "),a("code",[t._v("Initializable._reset()")]),t._v("\n(which returns an initial state). The boilerplate code automatically stores the initial state into the "),a("code",[t._v("_memory")]),t._v("\nattribute and samples a corresponding observation.")]),t._v(" "),a("h4",{attrs:{id:"returns-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-13"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("An initial observation.")]),t._v(" "),a("h3",{attrs:{id:"solve-with"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#solve-with"}},[t._v("#")]),t._v(" solve_with "),a("Badge",{attrs:{text:"Domain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"solve_with",sig:{params:[{name:"solver",annotation:"Solver"},{name:"domain_factory",default:"None",annotation:"Optional[Callable[[], Domain]]"},{name:"load_path",default:"None",annotation:"Optional[str]"}],return:"Solver"}}}),t._v(" "),a("p",[t._v("Solve the domain with a new or loaded solver and return it auto-cast to the level of the domain.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Solver.check_domain()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Solver._check_domain_additional()")]),t._v(' (which returns True by default but can be overridden to define\nspecific checks in addition to the "domain requirements"). The boilerplate code automatically checks whether all\ndomain requirements are met.')]),t._v(" "),a("h4",{attrs:{id:"parameters-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-12"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("solver")]),t._v(": The solver.")]),t._v(" "),a("li",[a("strong",[t._v("domain_factory")]),t._v(": A callable with no argument returning the domain to solve (factory is the domain class if None).")]),t._v(" "),a("li",[a("strong",[t._v("load_path")]),t._v(": The path to restore the solver state from (if None, the solving process will be launched instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-14"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-14"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The new solver (auto-cast to the level of the domain).")]),t._v(" "),a("h3",{attrs:{id:"step"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#step"}},[t._v("#")]),t._v(" step "),a("Badge",{attrs:{text:"Environment",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"step",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Run one step of the environment's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Environment.step()")]),t._v(" provides some boilerplate code and internally calls "),a("code",[t._v("Environment._step()")]),t._v(" (which\nreturns a transition outcome). The boilerplate code automatically stores next state into the "),a("code",[t._v("_memory")]),t._v(" attribute\nand samples a corresponding observation.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing environment needs to be wrapped instead of implemented fully in scikit-decide (e.g. compiled\nATARI games), it is recommended to overwrite "),a("code",[t._v("Environment.step()")]),t._v(" to call the external environment and not\nuse the "),a("code",[t._v("Environment._step()")]),t._v(" helper function.")])]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Before calling "),a("code",[t._v("Environment.step()")]),t._v(" the first time or when the end of an episode is\nreached, "),a("code",[t._v("Initializable.reset()")]),t._v(" must be called to reset the environment's state.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-13"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the current memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-15"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-15"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of this step.")]),t._v(" "),a("h3",{attrs:{id:"unwrapped"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#unwrapped"}},[t._v("#")]),t._v(" unwrapped "),a("Badge",{attrs:{text:"GymDomain",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"unwrapped",sig:{params:[{name:"self"}]}}}),t._v(" "),a("p",[t._v("Unwrap the Gym environment (gym.env) and return it.")]),t._v(" "),a("h4",{attrs:{id:"returns-16"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-16"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The original Gym environment.")]),t._v(" "),a("h3",{attrs:{id:"check-value-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#check-value-2"}},[t._v("#")]),t._v(" _check_value "),a("Badge",{attrs:{text:"Rewards",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_check_value",sig:{params:[{name:"self"},{name:"value",annotation:"Value[D.T_value]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that a value is compliant with its reward specification.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("This function returns always True by default because any kind of reward should be accepted at this level.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-14"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-14"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("value")]),t._v(": The value to check.")])]),t._v(" "),a("h4",{attrs:{id:"returns-17"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-17"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the value is compliant (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"get-action-space-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-2"}},[t._v("#")]),t._v(" _get_action_space "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_action_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) domain action space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._get_action_space()")]),t._v(" internally calls "),a("code",[t._v("Events._get_action_space_()")]),t._v(" the first time and\nautomatically caches its value to make future calls more efficient (since the action space is assumed to be\nconstant).")]),t._v(" "),a("h4",{attrs:{id:"returns-18"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-18"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The action space.")]),t._v(" "),a("h3",{attrs:{id:"get-action-space-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-3"}},[t._v("#")]),t._v(" _get_action_space_ "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_action_space_",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the domain action space (finite or infinite set).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._get_action_space()")]),t._v(", the difference being that the\nresult is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-19"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-19"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The action space.")]),t._v(" "),a("h3",{attrs:{id:"get-applicable-actions-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-2"}},[t._v("#")]),t._v(" _get_applicable_actions "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_applicable_actions",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history), or in\nthe internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._get_applicable_actions()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_applicable_actions_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-15"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-15"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-20"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-20"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of applicable actions.")]),t._v(" "),a("h3",{attrs:{id:"get-applicable-actions-from"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-from"}},[t._v("#")]),t._v(" _get_applicable_actions_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_applicable_actions_from",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._get_applicable_actions()")]),t._v(", the difference being that\nthe memory parameter is mandatory here.")]),t._v(" "),a("h4",{attrs:{id:"parameters-16"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-16"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-21"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-21"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of applicable actions.")]),t._v(" "),a("h3",{attrs:{id:"get-enabled-events-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-2"}},[t._v("#")]),t._v(" _get_enabled_events "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_enabled_events",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"Space[D.T_event]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory), or in the internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._get_enabled_events()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_enabled_events_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-17"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-17"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-22"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-22"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of enabled events.")]),t._v(" "),a("h3",{attrs:{id:"get-enabled-events-from"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-from"}},[t._v("#")]),t._v(" _get_enabled_events_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_enabled_events_from",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"Space[D.T_event]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._get_enabled_events()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("h4",{attrs:{id:"parameters-18"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-18"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-23"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-23"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of enabled events.")]),t._v(" "),a("h3",{attrs:{id:"get-memory-maxlen"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-memory-maxlen"}},[t._v("#")]),t._v(" _get_memory_maxlen "),a("Badge",{attrs:{text:"History",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_memory_maxlen",sig:{params:[{name:"self"}],return:"int"}}}),t._v(" "),a("p",[t._v("Get the (cached) memory max length.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("FiniteHistory._get_memory_maxlen()")]),t._v(" internally calls "),a("code",[t._v("FiniteHistory._get_memory_maxlen_()")]),t._v(" the first\ntime and automatically caches its value to make future calls more efficient (since the memory max length is\nassumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-24"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-24"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The memory max length.")]),t._v(" "),a("h3",{attrs:{id:"get-memory-maxlen-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-memory-maxlen-2"}},[t._v("#")]),t._v(" _get_memory_maxlen_ "),a("Badge",{attrs:{text:"FiniteHistory",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_memory_maxlen_",sig:{params:[{name:"self"}],return:"int"}}}),t._v(" "),a("p",[t._v("Get the memory max length.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("FiniteHistory._get_memory_maxlen()")]),t._v(", the difference being that\nthe result is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-25"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-25"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The memory max length.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-2"}},[t._v("#")]),t._v(" _get_observation "),a("Badge",{attrs:{text:"TransformedObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Get the deterministic observation given a state and action.")]),t._v(" "),a("h4",{attrs:{id:"parameters-19"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-19"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-26"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-26"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-distribution-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-distribution-2"}},[t._v("#")]),t._v(" _get_observation_distribution "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation_distribution",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"Distribution[D.T_agent[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the probability distribution of the observation given a state and action.")]),t._v(" "),a("p",[t._v("In mathematical terms (discrete case), given an action "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.197ex",height:"1.02ex",viewBox:"0 -441 529 451"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})])])])])]),t._v(", this function represents: "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.078ex",height:"2.262ex",viewBox:"0 -750 4012.7 1000"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"50",d:"M287 628Q287 635 230 637Q206 637 199 638T192 648Q192 649 194 659Q200 679 203 681T397 683Q587 682 600 680Q664 669 707 631T751 530Q751 453 685 389Q616 321 507 303Q500 302 402 301H307L277 182Q247 66 247 59Q247 55 248 54T255 50T272 48T305 46H336Q342 37 342 35Q342 19 335 5Q330 0 319 0Q316 0 282 1T182 2Q120 2 87 2T51 1Q33 1 33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM645 554Q645 567 643 575T634 597T609 619T560 635Q553 636 480 637Q463 637 445 637T416 636T404 636Q391 635 386 627Q384 621 367 550T332 412T314 344Q314 342 395 342H407H430Q542 342 590 392Q617 419 631 471T645 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(751, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(1140, 0)"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1903, 0)"}},[a("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(2181, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2650, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(3094.7, 0)"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3623.7, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(",\nwhere "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.05ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.726ex",height:"1.643ex",viewBox:"0 -704 763 726"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})])])])])]),t._v(" is the random variable of the observation.")],1),t._v(" "),a("h4",{attrs:{id:"parameters-20"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-20"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-27"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-27"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-space-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-2"}},[t._v("#")]),t._v(" _get_observation_space "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) observation space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(" internally\ncalls "),a("code",[t._v("PartiallyObservable._get_observation_space_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the observation space is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-28"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-28"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The observation space.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-space-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-3"}},[t._v("#")]),t._v(" _get_observation_space_ "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation_space_",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the observation space (finite or infinite set).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(", the difference\nbeing that the result is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-29"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-29"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The observation space.")]),t._v(" "),a("h3",{attrs:{id:"init-memory"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#init-memory"}},[t._v("#")]),t._v(" _init_memory "),a("Badge",{attrs:{text:"History",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_init_memory",sig:{params:[{name:"self"},{name:"state",default:"None",annotation:"Optional[D.T_state]"}],return:"D.T_memory[D.T_state]"}}}),t._v(" "),a("p",[t._v("Initialize memory (possibly with a state) according to its specification and return it.")]),t._v(" "),a("p",[t._v("This function is automatically called by "),a("code",[t._v("Initializable._reset()")]),t._v(" to reinitialize the internal memory whenever\nthe domain is used as an environment.")]),t._v(" "),a("h4",{attrs:{id:"parameters-21"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-21"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": An optional state to initialize the memory with (typically the initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-30"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-30"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The new initialized memory.")]),t._v(" "),a("h3",{attrs:{id:"is-action-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-action-2"}},[t._v("#")]),t._v(" _is_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_action",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an event is an action (i.e. a controllable event for the agents).")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\naction space provided by "),a("code",[t._v("Events._get_action_space()")]),t._v(", but it can be overridden for faster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-22"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-22"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("event")]),t._v(": The event to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-31"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-31"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is an action (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-applicable-action-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-2"}},[t._v("#")]),t._v(" _is_applicable_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_applicable_action",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an action is applicable in the given memory (state or history), or in the internal one if\nomitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._is_applicable_action()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_applicable_action_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-23"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-23"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-32"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-32"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the action is applicable (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-applicable-action-from"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-from"}},[t._v("#")]),t._v(" _is_applicable_action_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_applicable_action_from",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an action is applicable in the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._is_applicable_action()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the space of\napplicable actions provided by "),a("code",[t._v("Events._get_applicable_actions_from()")]),t._v(", but it can be overridden for faster\nimplementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-24"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-24"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-33"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-33"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the action is applicable (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-enabled-event-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-2"}},[t._v("#")]),t._v(" _is_enabled_event "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_enabled_event",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an uncontrollable event is enabled in the given memory (state or history), or in the\ninternal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._is_enabled_event()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_enabled_event_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead\nof the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-25"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-25"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-34"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-34"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is enabled (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-enabled-event-from"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-from"}},[t._v("#")]),t._v(" _is_enabled_event_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_enabled_event_from",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an event is enabled in the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._is_enabled_event()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the space of\nenabled events provided by "),a("code",[t._v("Events._get_enabled_events_from()")]),t._v(", but it can be overridden for faster\nimplementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-26"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-26"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-35"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-35"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is enabled (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-observation-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-observation-2"}},[t._v("#")]),t._v(" _is_observation "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_observation",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that an observation indeed belongs to the domain observation space.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\nobservation space provided by "),a("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(", but it can be overridden for\nfaster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-27"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-27"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-36"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-36"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the observation belongs to the domain observation space (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"render-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#render-2"}},[t._v("#")]),t._v(" _render "),a("Badge",{attrs:{text:"Renderable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_render",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"},{name:"**kwargs",annotation:"Any"}],return:"Any"}}}),t._v(" "),a("p",[t._v("Compute a visual render of the given memory (state or history), or the internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Renderable._render()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Renderable._render_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead of\nthe memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-28"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-28"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-37"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-37"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("A render (e.g. image) or nothing (if the function handles the display directly).")]),t._v(" "),a("h3",{attrs:{id:"render-from"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#render-from"}},[t._v("#")]),t._v(" _render_from "),a("Badge",{attrs:{text:"Renderable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_render_from",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"**kwargs",annotation:"Any"}],return:"Any"}}}),t._v(" "),a("p",[t._v("Compute a visual render of the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Renderable._render()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("h4",{attrs:{id:"parameters-29"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-29"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-38"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-38"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("A render (e.g. image) or nothing (if the function handles the display directly).")]),t._v(" "),a("h3",{attrs:{id:"reset-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#reset-2"}},[t._v("#")]),t._v(" _reset "),a("Badge",{attrs:{text:"Initializable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_reset",sig:{params:[{name:"self"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Reset the state of the environment and return an initial observation.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Initializable._reset()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Initializable._state_reset()")]),t._v(" (which returns an initial state). The boilerplate code automatically stores\nthe initial state into the "),a("code",[t._v("_memory")]),t._v(" attribute and samples a corresponding observation.")]),t._v(" "),a("h4",{attrs:{id:"returns-39"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-39"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("An initial observation.")]),t._v(" "),a("h3",{attrs:{id:"state-reset"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#state-reset"}},[t._v("#")]),t._v(" _state_reset "),a("Badge",{attrs:{text:"Initializable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_state_reset",sig:{params:[{name:"self"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("Reset the state of the environment and return an initial state.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Initializable._reset()")]),t._v(". It focuses on the state level, as\nopposed to the observation one for the latter.")]),t._v(" "),a("h4",{attrs:{id:"returns-40"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-40"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("An initial state.")]),t._v(" "),a("h3",{attrs:{id:"state-step"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#state-step"}},[t._v("#")]),t._v(" _state_step "),a("Badge",{attrs:{text:"Environment",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_state_step",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"TransitionOutcome[D.T_state, D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Compute one step of the transition's dynamics.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Environment._step()")]),t._v(". It focuses on the state level, as opposed\nto the observation one for the latter.")]),t._v(" "),a("h4",{attrs:{id:"parameters-30"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-30"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the current memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-41"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-41"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The transition outcome of this step.")]),t._v(" "),a("h3",{attrs:{id:"step-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#step-2"}},[t._v("#")]),t._v(" _step "),a("Badge",{attrs:{text:"Environment",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_step",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Run one step of the environment's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Environment._step()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Environment._state_step()")]),t._v(" (which returns a transition outcome). The boilerplate code automatically stores\nnext state into the "),a("code",[t._v("_memory")]),t._v(" attribute and samples a corresponding observation.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing environment needs to be wrapped instead of implemented fully in scikit-decide (e.g. compiled\nATARI games), it is recommended to overwrite "),a("code",[t._v("Environment._step()")]),t._v(" to call the external environment and not\nuse the "),a("code",[t._v("Environment._state_step()")]),t._v(" helper function.")])]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Before calling "),a("code",[t._v("Environment._step()")]),t._v(" the first time or when the end of an episode is\nreached, "),a("code",[t._v("Initializable._reset()")]),t._v(" must be called to reset the environment's state.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-31"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-31"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the current memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-42"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-42"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of this step.")]),t._v(" "),a("h2",{attrs:{id:"gymdomainhashable"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#gymdomainhashable"}},[t._v("#")]),t._v(" GymDomainHashable")]),t._v(" "),a("p",[t._v("This class wraps an OpenAI Gym environment (gym.env) as a scikit-decide domain\nusing hashable states and actions.")]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Using this class requires OpenAI Gym to be installed.")])]),t._v(" "),a("h3",{attrs:{id:"constructor-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#constructor-2"}},[t._v("#")]),t._v(" Constructor "),a("Badge",{attrs:{text:"GymDomainHashable",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"GymDomainHashable",sig:{params:[{name:"gym_env",annotation:"gym.Env"}],return:"None"}}}),t._v(" "),a("p",[t._v("Initialize GymDomain.")]),t._v(" "),a("h4",{attrs:{id:"parameters-32"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-32"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("gym_env")]),t._v(": The Gym environment (gym.env) to wrap.")])]),t._v(" "),a("h3",{attrs:{id:"check-value-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#check-value-3"}},[t._v("#")]),t._v(" check_value "),a("Badge",{attrs:{text:"Rewards",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"check_value",sig:{params:[{name:"self"},{name:"value",annotation:"Value[D.T_value]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that a value is compliant with its reward specification.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("This function returns always True by default because any kind of reward should be accepted at this level.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-33"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-33"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("value")]),t._v(": The value to check.")])]),t._v(" "),a("h4",{attrs:{id:"returns-43"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-43"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the value is compliant (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"get-action-space-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-4"}},[t._v("#")]),t._v(" get_action_space "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_action_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) domain action space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.get_action_space()")]),t._v(" internally calls "),a("code",[t._v("Events._get_action_space_()")]),t._v(" the first time and\nautomatically caches its value to make future calls more efficient (since the action space is assumed to be\nconstant).")]),t._v(" "),a("h4",{attrs:{id:"returns-44"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-44"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The action space.")]),t._v(" "),a("h3",{attrs:{id:"get-applicable-actions-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-3"}},[t._v("#")]),t._v(" get_applicable_actions "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_applicable_actions",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history), or in\nthe internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.get_applicable_actions()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_applicable_actions()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-34"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-34"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-45"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-45"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of applicable actions.")]),t._v(" "),a("h3",{attrs:{id:"get-enabled-events-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-3"}},[t._v("#")]),t._v(" get_enabled_events "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_enabled_events",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"Space[D.T_event]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory), or in the internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.get_enabled_events()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_enabled_events()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead of\nthe memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-35"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-35"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-46"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-46"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of enabled events.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-3"}},[t._v("#")]),t._v(" get_observation "),a("Badge",{attrs:{text:"TransformedObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_observation",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Get the deterministic observation given a state and action.")]),t._v(" "),a("h4",{attrs:{id:"parameters-36"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-36"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-47"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-47"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-distribution-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-distribution-3"}},[t._v("#")]),t._v(" get_observation_distribution "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_observation_distribution",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"Distribution[D.T_agent[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the probability distribution of the observation given a state and action.")]),t._v(" "),a("p",[t._v("In mathematical terms (discrete case), given an action "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.197ex",height:"1.02ex",viewBox:"0 -441 529 451"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})])])])])]),t._v(", this function represents: "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.078ex",height:"2.262ex",viewBox:"0 -750 4012.7 1000"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"50",d:"M287 628Q287 635 230 637Q206 637 199 638T192 648Q192 649 194 659Q200 679 203 681T397 683Q587 682 600 680Q664 669 707 631T751 530Q751 453 685 389Q616 321 507 303Q500 302 402 301H307L277 182Q247 66 247 59Q247 55 248 54T255 50T272 48T305 46H336Q342 37 342 35Q342 19 335 5Q330 0 319 0Q316 0 282 1T182 2Q120 2 87 2T51 1Q33 1 33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM645 554Q645 567 643 575T634 597T609 619T560 635Q553 636 480 637Q463 637 445 637T416 636T404 636Q391 635 386 627Q384 621 367 550T332 412T314 344Q314 342 395 342H407H430Q542 342 590 392Q617 419 631 471T645 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(751, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(1140, 0)"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1903, 0)"}},[a("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(2181, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2650, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(3094.7, 0)"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3623.7, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(",\nwhere "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.05ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.726ex",height:"1.643ex",viewBox:"0 -704 763 726"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})])])])])]),t._v(" is the random variable of the observation.")],1),t._v(" "),a("h4",{attrs:{id:"parameters-37"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-37"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-48"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-48"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-space-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-4"}},[t._v("#")]),t._v(" get_observation_space "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_observation_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) observation space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("PartiallyObservable.get_observation_space()")]),t._v(" internally\ncalls "),a("code",[t._v("PartiallyObservable._get_observation_space_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the observation space is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-49"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-49"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The observation space.")]),t._v(" "),a("h3",{attrs:{id:"is-action-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-action-3"}},[t._v("#")]),t._v(" is_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_action",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an event is an action (i.e. a controllable event for the agents).")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\naction space provided by "),a("code",[t._v("Events.get_action_space()")]),t._v(", but it can be overridden for faster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-38"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-38"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("event")]),t._v(": The event to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-50"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-50"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is an action (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-applicable-action-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-3"}},[t._v("#")]),t._v(" is_applicable_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_applicable_action",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an action is applicable in the given memory (state or history), or in the internal one if\nomitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.is_applicable_action()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_applicable_action()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead\nof the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-39"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-39"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-51"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-51"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the action is applicable (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-enabled-event-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-3"}},[t._v("#")]),t._v(" is_enabled_event "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_enabled_event",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an uncontrollable event is enabled in the given memory (state or history), or in the\ninternal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.is_enabled_event()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_enabled_event()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead of\nthe memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-40"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-40"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-52"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-52"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is enabled (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-observation-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-observation-3"}},[t._v("#")]),t._v(" is_observation "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_observation",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that an observation indeed belongs to the domain observation space.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\nobservation space provided by "),a("code",[t._v("PartiallyObservable.get_observation_space()")]),t._v(", but it can be overridden for\nfaster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-41"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-41"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-53"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-53"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the observation belongs to the domain observation space (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"render-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#render-3"}},[t._v("#")]),t._v(" render "),a("Badge",{attrs:{text:"Renderable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"render",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"},{name:"**kwargs",annotation:"Any"}],return:"Any"}}}),t._v(" "),a("p",[t._v("Compute a visual render of the given memory (state or history), or the internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Renderable.render()")]),t._v(" provides some boilerplate code and internally calls "),a("code",[t._v("Renderable._render()")]),t._v(". The\nboilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead of the memory parameter whenever the latter\nis None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-42"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-42"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-54"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-54"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("A render (e.g. image) or nothing (if the function handles the display directly).")]),t._v(" "),a("h3",{attrs:{id:"reset-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#reset-3"}},[t._v("#")]),t._v(" reset "),a("Badge",{attrs:{text:"Initializable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"reset",sig:{params:[{name:"self"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Reset the state of the environment and return an initial observation.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Initializable.reset()")]),t._v(" provides some boilerplate code and internally calls "),a("code",[t._v("Initializable._reset()")]),t._v("\n(which returns an initial state). The boilerplate code automatically stores the initial state into the "),a("code",[t._v("_memory")]),t._v("\nattribute and samples a corresponding observation.")]),t._v(" "),a("h4",{attrs:{id:"returns-55"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-55"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("An initial observation.")]),t._v(" "),a("h3",{attrs:{id:"solve-with-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#solve-with-2"}},[t._v("#")]),t._v(" solve_with "),a("Badge",{attrs:{text:"Domain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"solve_with",sig:{params:[{name:"solver",annotation:"Solver"},{name:"domain_factory",default:"None",annotation:"Optional[Callable[[], Domain]]"},{name:"load_path",default:"None",annotation:"Optional[str]"}],return:"Solver"}}}),t._v(" "),a("p",[t._v("Solve the domain with a new or loaded solver and return it auto-cast to the level of the domain.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Solver.check_domain()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Solver._check_domain_additional()")]),t._v(' (which returns True by default but can be overridden to define\nspecific checks in addition to the "domain requirements"). The boilerplate code automatically checks whether all\ndomain requirements are met.')]),t._v(" "),a("h4",{attrs:{id:"parameters-43"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-43"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("solver")]),t._v(": The solver.")]),t._v(" "),a("li",[a("strong",[t._v("domain_factory")]),t._v(": A callable with no argument returning the domain to solve (factory is the domain class if None).")]),t._v(" "),a("li",[a("strong",[t._v("load_path")]),t._v(": The path to restore the solver state from (if None, the solving process will be launched instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-56"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-56"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The new solver (auto-cast to the level of the domain).")]),t._v(" "),a("h3",{attrs:{id:"step-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#step-3"}},[t._v("#")]),t._v(" step "),a("Badge",{attrs:{text:"Environment",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"step",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Run one step of the environment's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Environment.step()")]),t._v(" provides some boilerplate code and internally calls "),a("code",[t._v("Environment._step()")]),t._v(" (which\nreturns a transition outcome). The boilerplate code automatically stores next state into the "),a("code",[t._v("_memory")]),t._v(" attribute\nand samples a corresponding observation.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing environment needs to be wrapped instead of implemented fully in scikit-decide (e.g. compiled\nATARI games), it is recommended to overwrite "),a("code",[t._v("Environment.step()")]),t._v(" to call the external environment and not\nuse the "),a("code",[t._v("Environment._step()")]),t._v(" helper function.")])]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Before calling "),a("code",[t._v("Environment.step()")]),t._v(" the first time or when the end of an episode is\nreached, "),a("code",[t._v("Initializable.reset()")]),t._v(" must be called to reset the environment's state.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-44"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-44"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the current memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-57"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-57"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of this step.")]),t._v(" "),a("h3",{attrs:{id:"unwrapped-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#unwrapped-2"}},[t._v("#")]),t._v(" unwrapped "),a("Badge",{attrs:{text:"GymDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"unwrapped",sig:{params:[{name:"self"}]}}}),t._v(" "),a("p",[t._v("Unwrap the Gym environment (gym.env) and return it.")]),t._v(" "),a("h4",{attrs:{id:"returns-58"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-58"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The original Gym environment.")]),t._v(" "),a("h3",{attrs:{id:"check-value-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#check-value-4"}},[t._v("#")]),t._v(" _check_value "),a("Badge",{attrs:{text:"Rewards",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_check_value",sig:{params:[{name:"self"},{name:"value",annotation:"Value[D.T_value]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that a value is compliant with its reward specification.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("This function returns always True by default because any kind of reward should be accepted at this level.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-45"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-45"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("value")]),t._v(": The value to check.")])]),t._v(" "),a("h4",{attrs:{id:"returns-59"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-59"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the value is compliant (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"get-action-space-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-5"}},[t._v("#")]),t._v(" _get_action_space "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_action_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) domain action space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._get_action_space()")]),t._v(" internally calls "),a("code",[t._v("Events._get_action_space_()")]),t._v(" the first time and\nautomatically caches its value to make future calls more efficient (since the action space is assumed to be\nconstant).")]),t._v(" "),a("h4",{attrs:{id:"returns-60"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-60"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The action space.")]),t._v(" "),a("h3",{attrs:{id:"get-action-space-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-6"}},[t._v("#")]),t._v(" _get_action_space_ "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_action_space_",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the domain action space (finite or infinite set).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._get_action_space()")]),t._v(", the difference being that the\nresult is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-61"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-61"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The action space.")]),t._v(" "),a("h3",{attrs:{id:"get-applicable-actions-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-4"}},[t._v("#")]),t._v(" _get_applicable_actions "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_applicable_actions",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history), or in\nthe internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._get_applicable_actions()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_applicable_actions_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-46"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-46"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-62"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-62"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of applicable actions.")]),t._v(" "),a("h3",{attrs:{id:"get-applicable-actions-from-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-from-2"}},[t._v("#")]),t._v(" _get_applicable_actions_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_applicable_actions_from",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._get_applicable_actions()")]),t._v(", the difference being that\nthe memory parameter is mandatory here.")]),t._v(" "),a("h4",{attrs:{id:"parameters-47"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-47"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-63"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-63"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of applicable actions.")]),t._v(" "),a("h3",{attrs:{id:"get-enabled-events-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-4"}},[t._v("#")]),t._v(" _get_enabled_events "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_enabled_events",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"Space[D.T_event]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory), or in the internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._get_enabled_events()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_enabled_events_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-48"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-48"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-64"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-64"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of enabled events.")]),t._v(" "),a("h3",{attrs:{id:"get-enabled-events-from-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-from-2"}},[t._v("#")]),t._v(" _get_enabled_events_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_enabled_events_from",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"Space[D.T_event]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._get_enabled_events()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("h4",{attrs:{id:"parameters-49"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-49"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-65"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-65"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of enabled events.")]),t._v(" "),a("h3",{attrs:{id:"get-memory-maxlen-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-memory-maxlen-3"}},[t._v("#")]),t._v(" _get_memory_maxlen "),a("Badge",{attrs:{text:"History",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_memory_maxlen",sig:{params:[{name:"self"}],return:"int"}}}),t._v(" "),a("p",[t._v("Get the (cached) memory max length.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("FiniteHistory._get_memory_maxlen()")]),t._v(" internally calls "),a("code",[t._v("FiniteHistory._get_memory_maxlen_()")]),t._v(" the first\ntime and automatically caches its value to make future calls more efficient (since the memory max length is\nassumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-66"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-66"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The memory max length.")]),t._v(" "),a("h3",{attrs:{id:"get-memory-maxlen-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-memory-maxlen-4"}},[t._v("#")]),t._v(" _get_memory_maxlen_ "),a("Badge",{attrs:{text:"FiniteHistory",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_memory_maxlen_",sig:{params:[{name:"self"}],return:"int"}}}),t._v(" "),a("p",[t._v("Get the memory max length.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("FiniteHistory._get_memory_maxlen()")]),t._v(", the difference being that\nthe result is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-67"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-67"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The memory max length.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-4"}},[t._v("#")]),t._v(" _get_observation "),a("Badge",{attrs:{text:"TransformedObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Get the deterministic observation given a state and action.")]),t._v(" "),a("h4",{attrs:{id:"parameters-50"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-50"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-68"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-68"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-distribution-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-distribution-4"}},[t._v("#")]),t._v(" _get_observation_distribution "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation_distribution",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"Distribution[D.T_agent[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the probability distribution of the observation given a state and action.")]),t._v(" "),a("p",[t._v("In mathematical terms (discrete case), given an action "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.197ex",height:"1.02ex",viewBox:"0 -441 529 451"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})])])])])]),t._v(", this function represents: "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.078ex",height:"2.262ex",viewBox:"0 -750 4012.7 1000"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"50",d:"M287 628Q287 635 230 637Q206 637 199 638T192 648Q192 649 194 659Q200 679 203 681T397 683Q587 682 600 680Q664 669 707 631T751 530Q751 453 685 389Q616 321 507 303Q500 302 402 301H307L277 182Q247 66 247 59Q247 55 248 54T255 50T272 48T305 46H336Q342 37 342 35Q342 19 335 5Q330 0 319 0Q316 0 282 1T182 2Q120 2 87 2T51 1Q33 1 33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM645 554Q645 567 643 575T634 597T609 619T560 635Q553 636 480 637Q463 637 445 637T416 636T404 636Q391 635 386 627Q384 621 367 550T332 412T314 344Q314 342 395 342H407H430Q542 342 590 392Q617 419 631 471T645 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(751, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(1140, 0)"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1903, 0)"}},[a("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(2181, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2650, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(3094.7, 0)"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3623.7, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(",\nwhere "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.05ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.726ex",height:"1.643ex",viewBox:"0 -704 763 726"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})])])])])]),t._v(" is the random variable of the observation.")],1),t._v(" "),a("h4",{attrs:{id:"parameters-51"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-51"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-69"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-69"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-space-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-5"}},[t._v("#")]),t._v(" _get_observation_space "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) observation space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(" internally\ncalls "),a("code",[t._v("PartiallyObservable._get_observation_space_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the observation space is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-70"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-70"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The observation space.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-space-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-6"}},[t._v("#")]),t._v(" _get_observation_space_ "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation_space_",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the observation space (finite or infinite set).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(", the difference\nbeing that the result is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-71"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-71"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The observation space.")]),t._v(" "),a("h3",{attrs:{id:"init-memory-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#init-memory-2"}},[t._v("#")]),t._v(" _init_memory "),a("Badge",{attrs:{text:"History",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_init_memory",sig:{params:[{name:"self"},{name:"state",default:"None",annotation:"Optional[D.T_state]"}],return:"D.T_memory[D.T_state]"}}}),t._v(" "),a("p",[t._v("Initialize memory (possibly with a state) according to its specification and return it.")]),t._v(" "),a("p",[t._v("This function is automatically called by "),a("code",[t._v("Initializable._reset()")]),t._v(" to reinitialize the internal memory whenever\nthe domain is used as an environment.")]),t._v(" "),a("h4",{attrs:{id:"parameters-52"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-52"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": An optional state to initialize the memory with (typically the initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-72"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-72"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The new initialized memory.")]),t._v(" "),a("h3",{attrs:{id:"is-action-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-action-4"}},[t._v("#")]),t._v(" _is_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_action",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an event is an action (i.e. a controllable event for the agents).")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\naction space provided by "),a("code",[t._v("Events._get_action_space()")]),t._v(", but it can be overridden for faster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-53"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-53"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("event")]),t._v(": The event to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-73"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-73"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is an action (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-applicable-action-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-4"}},[t._v("#")]),t._v(" _is_applicable_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_applicable_action",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an action is applicable in the given memory (state or history), or in the internal one if\nomitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._is_applicable_action()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_applicable_action_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-54"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-54"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-74"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-74"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the action is applicable (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-applicable-action-from-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-from-2"}},[t._v("#")]),t._v(" _is_applicable_action_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_applicable_action_from",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an action is applicable in the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._is_applicable_action()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the space of\napplicable actions provided by "),a("code",[t._v("Events._get_applicable_actions_from()")]),t._v(", but it can be overridden for faster\nimplementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-55"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-55"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-75"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-75"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the action is applicable (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-enabled-event-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-4"}},[t._v("#")]),t._v(" _is_enabled_event "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_enabled_event",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an uncontrollable event is enabled in the given memory (state or history), or in the\ninternal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._is_enabled_event()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_enabled_event_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead\nof the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-56"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-56"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-76"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-76"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is enabled (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-enabled-event-from-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-from-2"}},[t._v("#")]),t._v(" _is_enabled_event_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_enabled_event_from",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an event is enabled in the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._is_enabled_event()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the space of\nenabled events provided by "),a("code",[t._v("Events._get_enabled_events_from()")]),t._v(", but it can be overridden for faster\nimplementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-57"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-57"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-77"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-77"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is enabled (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-observation-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-observation-4"}},[t._v("#")]),t._v(" _is_observation "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_observation",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that an observation indeed belongs to the domain observation space.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\nobservation space provided by "),a("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(", but it can be overridden for\nfaster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-58"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-58"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-78"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-78"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the observation belongs to the domain observation space (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"render-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#render-4"}},[t._v("#")]),t._v(" _render "),a("Badge",{attrs:{text:"Renderable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_render",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"},{name:"**kwargs",annotation:"Any"}],return:"Any"}}}),t._v(" "),a("p",[t._v("Compute a visual render of the given memory (state or history), or the internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Renderable._render()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Renderable._render_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead of\nthe memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-59"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-59"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-79"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-79"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("A render (e.g. image) or nothing (if the function handles the display directly).")]),t._v(" "),a("h3",{attrs:{id:"render-from-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#render-from-2"}},[t._v("#")]),t._v(" _render_from "),a("Badge",{attrs:{text:"Renderable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_render_from",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"**kwargs",annotation:"Any"}],return:"Any"}}}),t._v(" "),a("p",[t._v("Compute a visual render of the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Renderable._render()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("h4",{attrs:{id:"parameters-60"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-60"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-80"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-80"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("A render (e.g. image) or nothing (if the function handles the display directly).")]),t._v(" "),a("h3",{attrs:{id:"reset-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#reset-4"}},[t._v("#")]),t._v(" _reset "),a("Badge",{attrs:{text:"Initializable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_reset",sig:{params:[{name:"self"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Reset the state of the environment and return an initial observation.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Initializable._reset()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Initializable._state_reset()")]),t._v(" (which returns an initial state). The boilerplate code automatically stores\nthe initial state into the "),a("code",[t._v("_memory")]),t._v(" attribute and samples a corresponding observation.")]),t._v(" "),a("h4",{attrs:{id:"returns-81"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-81"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("An initial observation.")]),t._v(" "),a("h3",{attrs:{id:"state-reset-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#state-reset-2"}},[t._v("#")]),t._v(" _state_reset "),a("Badge",{attrs:{text:"Initializable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_state_reset",sig:{params:[{name:"self"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("Reset the state of the environment and return an initial state.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Initializable._reset()")]),t._v(". It focuses on the state level, as\nopposed to the observation one for the latter.")]),t._v(" "),a("h4",{attrs:{id:"returns-82"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-82"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("An initial state.")]),t._v(" "),a("h3",{attrs:{id:"state-step-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#state-step-2"}},[t._v("#")]),t._v(" _state_step "),a("Badge",{attrs:{text:"Environment",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_state_step",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"TransitionOutcome[D.T_state, D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Compute one step of the transition's dynamics.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Environment._step()")]),t._v(". It focuses on the state level, as opposed\nto the observation one for the latter.")]),t._v(" "),a("h4",{attrs:{id:"parameters-61"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-61"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the current memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-83"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-83"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The transition outcome of this step.")]),t._v(" "),a("h3",{attrs:{id:"step-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#step-4"}},[t._v("#")]),t._v(" _step "),a("Badge",{attrs:{text:"Environment",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_step",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Run one step of the environment's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Environment._step()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Environment._state_step()")]),t._v(" (which returns a transition outcome). The boilerplate code automatically stores\nnext state into the "),a("code",[t._v("_memory")]),t._v(" attribute and samples a corresponding observation.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing environment needs to be wrapped instead of implemented fully in scikit-decide (e.g. compiled\nATARI games), it is recommended to overwrite "),a("code",[t._v("Environment._step()")]),t._v(" to call the external environment and not\nuse the "),a("code",[t._v("Environment._state_step()")]),t._v(" helper function.")])]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Before calling "),a("code",[t._v("Environment._step()")]),t._v(" the first time or when the end of an episode is\nreached, "),a("code",[t._v("Initializable._reset()")]),t._v(" must be called to reset the environment's state.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-62"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-62"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the current memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-84"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-84"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of this step.")]),t._v(" "),a("h2",{attrs:{id:"deterministicinitializedgymdomain"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#deterministicinitializedgymdomain"}},[t._v("#")]),t._v(" DeterministicInitializedGymDomain")]),t._v(" "),a("p",[t._v("This class wraps an OpenAI Gym environment (gym.env) as a scikit-decide domain\nwith a deterministic initial state (i.e. reset the domain to the initial\nstate returned by the first reset)")]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Using this class requires OpenAI Gym to be installed.")])]),t._v(" "),a("h3",{attrs:{id:"constructor-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#constructor-3"}},[t._v("#")]),t._v(" Constructor "),a("Badge",{attrs:{text:"DeterministicInitializedGymDomain",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"DeterministicInitializedGymDomain",sig:{params:[{name:"gym_env",annotation:"gym.Env"},{name:"set_state",default:"None",annotation:"Callable[[gym.Env, D.T_memory[D.T_state]], None]"},{name:"get_state",default:"None",annotation:"Callable[[gym.Env], D.T_memory[D.T_state]]"}],return:"None"}}}),t._v(" "),a("p",[t._v("Initialize GymDomain.")]),t._v(" "),a("h4",{attrs:{id:"parameters-63"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-63"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("gym_env")]),t._v(": The Gym environment (gym.env) to wrap.")]),t._v(" "),a("li",[a("strong",[t._v("set_state")]),t._v(": Function to call to set the state of the gym environment.\nIf None, default behavior is to deepcopy the environment when changing state")]),t._v(" "),a("li",[a("strong",[t._v("get_state")]),t._v(": Function to call to get the state of the gym environment.\nIf None, default behavior is to deepcopy the environment when changing state")])]),t._v(" "),a("h3",{attrs:{id:"check-value-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#check-value-5"}},[t._v("#")]),t._v(" check_value "),a("Badge",{attrs:{text:"Rewards",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"check_value",sig:{params:[{name:"self"},{name:"value",annotation:"Value[D.T_value]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that a value is compliant with its reward specification.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("This function returns always True by default because any kind of reward should be accepted at this level.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-64"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-64"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("value")]),t._v(": The value to check.")])]),t._v(" "),a("h4",{attrs:{id:"returns-85"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-85"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the value is compliant (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"get-action-space-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-7"}},[t._v("#")]),t._v(" get_action_space "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_action_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) domain action space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.get_action_space()")]),t._v(" internally calls "),a("code",[t._v("Events._get_action_space_()")]),t._v(" the first time and\nautomatically caches its value to make future calls more efficient (since the action space is assumed to be\nconstant).")]),t._v(" "),a("h4",{attrs:{id:"returns-86"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-86"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The action space.")]),t._v(" "),a("h3",{attrs:{id:"get-applicable-actions-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-5"}},[t._v("#")]),t._v(" get_applicable_actions "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_applicable_actions",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history), or in\nthe internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.get_applicable_actions()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_applicable_actions()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-65"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-65"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-87"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-87"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of applicable actions.")]),t._v(" "),a("h3",{attrs:{id:"get-enabled-events-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-5"}},[t._v("#")]),t._v(" get_enabled_events "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_enabled_events",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"Space[D.T_event]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory), or in the internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.get_enabled_events()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_enabled_events()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead of\nthe memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-66"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-66"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-88"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-88"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of enabled events.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state"}},[t._v("#")]),t._v(" get_initial_state "),a("Badge",{attrs:{text:"DeterministicInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_initial_state",sig:{params:[{name:"self"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("Get the (cached) initial state.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("DeterministicInitialized.get_initial_state()")]),t._v(" internally\ncalls "),a("code",[t._v("DeterministicInitialized._get_initial_state_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the initial state is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-89"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-89"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The initial state.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-distribution"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-distribution"}},[t._v("#")]),t._v(" get_initial_state_distribution "),a("Badge",{attrs:{text:"UncertainInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_initial_state_distribution",sig:{params:[{name:"self"}],return:"Distribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("Get the (cached) probability distribution of initial states.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("UncertainInitialized.get_initial_state_distribution()")]),t._v(" internally\ncalls "),a("code",[t._v("UncertainInitialized._get_initial_state_distribution_()")]),t._v(" the first time and automatically caches its value\nto make future calls more efficient (since the initial state distribution is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-90"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-90"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of initial states.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-5"}},[t._v("#")]),t._v(" get_observation "),a("Badge",{attrs:{text:"TransformedObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_observation",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Get the deterministic observation given a state and action.")]),t._v(" "),a("h4",{attrs:{id:"parameters-67"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-67"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-91"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-91"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-distribution-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-distribution-5"}},[t._v("#")]),t._v(" get_observation_distribution "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_observation_distribution",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"Distribution[D.T_agent[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the probability distribution of the observation given a state and action.")]),t._v(" "),a("p",[t._v("In mathematical terms (discrete case), given an action "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.197ex",height:"1.02ex",viewBox:"0 -441 529 451"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})])])])])]),t._v(", this function represents: "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.078ex",height:"2.262ex",viewBox:"0 -750 4012.7 1000"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"50",d:"M287 628Q287 635 230 637Q206 637 199 638T192 648Q192 649 194 659Q200 679 203 681T397 683Q587 682 600 680Q664 669 707 631T751 530Q751 453 685 389Q616 321 507 303Q500 302 402 301H307L277 182Q247 66 247 59Q247 55 248 54T255 50T272 48T305 46H336Q342 37 342 35Q342 19 335 5Q330 0 319 0Q316 0 282 1T182 2Q120 2 87 2T51 1Q33 1 33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM645 554Q645 567 643 575T634 597T609 619T560 635Q553 636 480 637Q463 637 445 637T416 636T404 636Q391 635 386 627Q384 621 367 550T332 412T314 344Q314 342 395 342H407H430Q542 342 590 392Q617 419 631 471T645 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(751, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(1140, 0)"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1903, 0)"}},[a("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(2181, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2650, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(3094.7, 0)"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3623.7, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(",\nwhere "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.05ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.726ex",height:"1.643ex",viewBox:"0 -704 763 726"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})])])])])]),t._v(" is the random variable of the observation.")],1),t._v(" "),a("h4",{attrs:{id:"parameters-68"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-68"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-92"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-92"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-space-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-7"}},[t._v("#")]),t._v(" get_observation_space "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_observation_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) observation space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("PartiallyObservable.get_observation_space()")]),t._v(" internally\ncalls "),a("code",[t._v("PartiallyObservable._get_observation_space_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the observation space is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-93"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-93"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The observation space.")]),t._v(" "),a("h3",{attrs:{id:"is-action-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-action-5"}},[t._v("#")]),t._v(" is_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_action",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an event is an action (i.e. a controllable event for the agents).")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\naction space provided by "),a("code",[t._v("Events.get_action_space()")]),t._v(", but it can be overridden for faster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-69"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-69"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("event")]),t._v(": The event to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-94"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-94"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is an action (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-applicable-action-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-5"}},[t._v("#")]),t._v(" is_applicable_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_applicable_action",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an action is applicable in the given memory (state or history), or in the internal one if\nomitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.is_applicable_action()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_applicable_action()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead\nof the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-70"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-70"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-95"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-95"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the action is applicable (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-enabled-event-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-5"}},[t._v("#")]),t._v(" is_enabled_event "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_enabled_event",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an uncontrollable event is enabled in the given memory (state or history), or in the\ninternal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.is_enabled_event()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_enabled_event()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead of\nthe memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-71"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-71"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-96"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-96"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is enabled (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-observation-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-observation-5"}},[t._v("#")]),t._v(" is_observation "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_observation",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that an observation indeed belongs to the domain observation space.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\nobservation space provided by "),a("code",[t._v("PartiallyObservable.get_observation_space()")]),t._v(", but it can be overridden for\nfaster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-72"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-72"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-97"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-97"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the observation belongs to the domain observation space (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"render-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#render-5"}},[t._v("#")]),t._v(" render "),a("Badge",{attrs:{text:"Renderable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"render",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"},{name:"**kwargs",annotation:"Any"}],return:"Any"}}}),t._v(" "),a("p",[t._v("Compute a visual render of the given memory (state or history), or the internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Renderable.render()")]),t._v(" provides some boilerplate code and internally calls "),a("code",[t._v("Renderable._render()")]),t._v(". The\nboilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead of the memory parameter whenever the latter\nis None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-73"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-73"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-98"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-98"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("A render (e.g. image) or nothing (if the function handles the display directly).")]),t._v(" "),a("h3",{attrs:{id:"reset-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#reset-5"}},[t._v("#")]),t._v(" reset "),a("Badge",{attrs:{text:"Initializable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"reset",sig:{params:[{name:"self"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Reset the state of the environment and return an initial observation.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Initializable.reset()")]),t._v(" provides some boilerplate code and internally calls "),a("code",[t._v("Initializable._reset()")]),t._v("\n(which returns an initial state). The boilerplate code automatically stores the initial state into the "),a("code",[t._v("_memory")]),t._v("\nattribute and samples a corresponding observation.")]),t._v(" "),a("h4",{attrs:{id:"returns-99"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-99"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("An initial observation.")]),t._v(" "),a("h3",{attrs:{id:"solve-with-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#solve-with-3"}},[t._v("#")]),t._v(" solve_with "),a("Badge",{attrs:{text:"Domain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"solve_with",sig:{params:[{name:"solver",annotation:"Solver"},{name:"domain_factory",default:"None",annotation:"Optional[Callable[[], Domain]]"},{name:"load_path",default:"None",annotation:"Optional[str]"}],return:"Solver"}}}),t._v(" "),a("p",[t._v("Solve the domain with a new or loaded solver and return it auto-cast to the level of the domain.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Solver.check_domain()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Solver._check_domain_additional()")]),t._v(' (which returns True by default but can be overridden to define\nspecific checks in addition to the "domain requirements"). The boilerplate code automatically checks whether all\ndomain requirements are met.')]),t._v(" "),a("h4",{attrs:{id:"parameters-74"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-74"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("solver")]),t._v(": The solver.")]),t._v(" "),a("li",[a("strong",[t._v("domain_factory")]),t._v(": A callable with no argument returning the domain to solve (factory is the domain class if None).")]),t._v(" "),a("li",[a("strong",[t._v("load_path")]),t._v(": The path to restore the solver state from (if None, the solving process will be launched instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-100"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-100"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The new solver (auto-cast to the level of the domain).")]),t._v(" "),a("h3",{attrs:{id:"step-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#step-5"}},[t._v("#")]),t._v(" step "),a("Badge",{attrs:{text:"Environment",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"step",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Run one step of the environment's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Environment.step()")]),t._v(" provides some boilerplate code and internally calls "),a("code",[t._v("Environment._step()")]),t._v(" (which\nreturns a transition outcome). The boilerplate code automatically stores next state into the "),a("code",[t._v("_memory")]),t._v(" attribute\nand samples a corresponding observation.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing environment needs to be wrapped instead of implemented fully in scikit-decide (e.g. compiled\nATARI games), it is recommended to overwrite "),a("code",[t._v("Environment.step()")]),t._v(" to call the external environment and not\nuse the "),a("code",[t._v("Environment._step()")]),t._v(" helper function.")])]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Before calling "),a("code",[t._v("Environment.step()")]),t._v(" the first time or when the end of an episode is\nreached, "),a("code",[t._v("Initializable.reset()")]),t._v(" must be called to reset the environment's state.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-75"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-75"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the current memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-101"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-101"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of this step.")]),t._v(" "),a("h3",{attrs:{id:"unwrapped-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#unwrapped-3"}},[t._v("#")]),t._v(" unwrapped "),a("Badge",{attrs:{text:"DeterministicInitializedGymDomain",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"unwrapped",sig:{params:[{name:"self"}]}}}),t._v(" "),a("p",[t._v("Unwrap the Gym environment (gym.env) and return it.")]),t._v(" "),a("h4",{attrs:{id:"returns-102"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-102"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The original Gym environment.")]),t._v(" "),a("h3",{attrs:{id:"check-value-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#check-value-6"}},[t._v("#")]),t._v(" _check_value "),a("Badge",{attrs:{text:"Rewards",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_check_value",sig:{params:[{name:"self"},{name:"value",annotation:"Value[D.T_value]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that a value is compliant with its reward specification.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("This function returns always True by default because any kind of reward should be accepted at this level.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-76"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-76"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("value")]),t._v(": The value to check.")])]),t._v(" "),a("h4",{attrs:{id:"returns-103"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-103"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the value is compliant (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"get-action-space-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-8"}},[t._v("#")]),t._v(" _get_action_space "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_action_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) domain action space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._get_action_space()")]),t._v(" internally calls "),a("code",[t._v("Events._get_action_space_()")]),t._v(" the first time and\nautomatically caches its value to make future calls more efficient (since the action space is assumed to be\nconstant).")]),t._v(" "),a("h4",{attrs:{id:"returns-104"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-104"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The action space.")]),t._v(" "),a("h3",{attrs:{id:"get-action-space-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-9"}},[t._v("#")]),t._v(" _get_action_space_ "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_action_space_",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the domain action space (finite or infinite set).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._get_action_space()")]),t._v(", the difference being that the\nresult is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-105"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-105"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The action space.")]),t._v(" "),a("h3",{attrs:{id:"get-applicable-actions-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-6"}},[t._v("#")]),t._v(" _get_applicable_actions "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_applicable_actions",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history), or in\nthe internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._get_applicable_actions()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_applicable_actions_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-77"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-77"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-106"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-106"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of applicable actions.")]),t._v(" "),a("h3",{attrs:{id:"get-applicable-actions-from-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-from-3"}},[t._v("#")]),t._v(" _get_applicable_actions_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_applicable_actions_from",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._get_applicable_actions()")]),t._v(", the difference being that\nthe memory parameter is mandatory here.")]),t._v(" "),a("h4",{attrs:{id:"parameters-78"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-78"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-107"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-107"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of applicable actions.")]),t._v(" "),a("h3",{attrs:{id:"get-enabled-events-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-6"}},[t._v("#")]),t._v(" _get_enabled_events "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_enabled_events",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"Space[D.T_event]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory), or in the internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._get_enabled_events()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_enabled_events_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-79"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-79"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-108"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-108"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of enabled events.")]),t._v(" "),a("h3",{attrs:{id:"get-enabled-events-from-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-from-3"}},[t._v("#")]),t._v(" _get_enabled_events_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_enabled_events_from",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"Space[D.T_event]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._get_enabled_events()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("h4",{attrs:{id:"parameters-80"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-80"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-109"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-109"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of enabled events.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-2"}},[t._v("#")]),t._v(" _get_initial_state "),a("Badge",{attrs:{text:"DeterministicInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_initial_state",sig:{params:[{name:"self"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("Get the (cached) initial state.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("DeterministicInitialized._get_initial_state()")]),t._v(" internally\ncalls "),a("code",[t._v("DeterministicInitialized._get_initial_state_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the initial state is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-110"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-110"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The initial state.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-3"}},[t._v("#")]),t._v(" _get_initial_state_ "),a("Badge",{attrs:{text:"DeterministicInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_initial_state_",sig:{params:[{name:"self"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("Get the initial state.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("DeterministicInitialized._get_initial_state()")]),t._v(", the difference\nbeing that the result is not cached here.")]),t._v(" "),a("h4",{attrs:{id:"returns-111"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-111"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The initial state.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-distribution-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-distribution-2"}},[t._v("#")]),t._v(" _get_initial_state_distribution "),a("Badge",{attrs:{text:"UncertainInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_initial_state_distribution",sig:{params:[{name:"self"}],return:"Distribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("Get the (cached) probability distribution of initial states.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("UncertainInitialized._get_initial_state_distribution()")]),t._v(" internally\ncalls "),a("code",[t._v("UncertainInitialized._get_initial_state_distribution_()")]),t._v(" the first time and automatically caches its value\nto make future calls more efficient (since the initial state distribution is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-112"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-112"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of initial states.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-distribution-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-distribution-3"}},[t._v("#")]),t._v(" _get_initial_state_distribution_ "),a("Badge",{attrs:{text:"UncertainInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_initial_state_distribution_",sig:{params:[{name:"self"}],return:"Distribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("Get the probability distribution of initial states.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("UncertainInitialized._get_initial_state_distribution()")]),t._v(", the\ndifference being that the result is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-113"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-113"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of initial states.")]),t._v(" "),a("h3",{attrs:{id:"get-memory-maxlen-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-memory-maxlen-5"}},[t._v("#")]),t._v(" _get_memory_maxlen "),a("Badge",{attrs:{text:"History",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_memory_maxlen",sig:{params:[{name:"self"}],return:"int"}}}),t._v(" "),a("p",[t._v("Get the (cached) memory max length.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("FiniteHistory._get_memory_maxlen()")]),t._v(" internally calls "),a("code",[t._v("FiniteHistory._get_memory_maxlen_()")]),t._v(" the first\ntime and automatically caches its value to make future calls more efficient (since the memory max length is\nassumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-114"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-114"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The memory max length.")]),t._v(" "),a("h3",{attrs:{id:"get-memory-maxlen-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-memory-maxlen-6"}},[t._v("#")]),t._v(" _get_memory_maxlen_ "),a("Badge",{attrs:{text:"FiniteHistory",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_memory_maxlen_",sig:{params:[{name:"self"}],return:"int"}}}),t._v(" "),a("p",[t._v("Get the memory max length.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("FiniteHistory._get_memory_maxlen()")]),t._v(", the difference being that\nthe result is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-115"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-115"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The memory max length.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-6"}},[t._v("#")]),t._v(" _get_observation "),a("Badge",{attrs:{text:"TransformedObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Get the deterministic observation given a state and action.")]),t._v(" "),a("h4",{attrs:{id:"parameters-81"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-81"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-116"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-116"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-distribution-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-distribution-6"}},[t._v("#")]),t._v(" _get_observation_distribution "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation_distribution",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"Distribution[D.T_agent[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the probability distribution of the observation given a state and action.")]),t._v(" "),a("p",[t._v("In mathematical terms (discrete case), given an action "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.197ex",height:"1.02ex",viewBox:"0 -441 529 451"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})])])])])]),t._v(", this function represents: "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.078ex",height:"2.262ex",viewBox:"0 -750 4012.7 1000"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"50",d:"M287 628Q287 635 230 637Q206 637 199 638T192 648Q192 649 194 659Q200 679 203 681T397 683Q587 682 600 680Q664 669 707 631T751 530Q751 453 685 389Q616 321 507 303Q500 302 402 301H307L277 182Q247 66 247 59Q247 55 248 54T255 50T272 48T305 46H336Q342 37 342 35Q342 19 335 5Q330 0 319 0Q316 0 282 1T182 2Q120 2 87 2T51 1Q33 1 33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM645 554Q645 567 643 575T634 597T609 619T560 635Q553 636 480 637Q463 637 445 637T416 636T404 636Q391 635 386 627Q384 621 367 550T332 412T314 344Q314 342 395 342H407H430Q542 342 590 392Q617 419 631 471T645 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(751, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(1140, 0)"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1903, 0)"}},[a("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(2181, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2650, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(3094.7, 0)"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3623.7, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(",\nwhere "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.05ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.726ex",height:"1.643ex",viewBox:"0 -704 763 726"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})])])])])]),t._v(" is the random variable of the observation.")],1),t._v(" "),a("h4",{attrs:{id:"parameters-82"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-82"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-117"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-117"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-space-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-8"}},[t._v("#")]),t._v(" _get_observation_space "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) observation space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(" internally\ncalls "),a("code",[t._v("PartiallyObservable._get_observation_space_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the observation space is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-118"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-118"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The observation space.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-space-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-9"}},[t._v("#")]),t._v(" _get_observation_space_ "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation_space_",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the observation space (finite or infinite set).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(", the difference\nbeing that the result is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-119"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-119"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The observation space.")]),t._v(" "),a("h3",{attrs:{id:"init-memory-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#init-memory-3"}},[t._v("#")]),t._v(" _init_memory "),a("Badge",{attrs:{text:"History",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_init_memory",sig:{params:[{name:"self"},{name:"state",default:"None",annotation:"Optional[D.T_state]"}],return:"D.T_memory[D.T_state]"}}}),t._v(" "),a("p",[t._v("Initialize memory (possibly with a state) according to its specification and return it.")]),t._v(" "),a("p",[t._v("This function is automatically called by "),a("code",[t._v("Initializable._reset()")]),t._v(" to reinitialize the internal memory whenever\nthe domain is used as an environment.")]),t._v(" "),a("h4",{attrs:{id:"parameters-83"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-83"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": An optional state to initialize the memory with (typically the initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-120"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-120"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The new initialized memory.")]),t._v(" "),a("h3",{attrs:{id:"is-action-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-action-6"}},[t._v("#")]),t._v(" _is_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_action",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an event is an action (i.e. a controllable event for the agents).")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\naction space provided by "),a("code",[t._v("Events._get_action_space()")]),t._v(", but it can be overridden for faster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-84"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-84"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("event")]),t._v(": The event to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-121"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-121"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is an action (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-applicable-action-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-6"}},[t._v("#")]),t._v(" _is_applicable_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_applicable_action",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an action is applicable in the given memory (state or history), or in the internal one if\nomitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._is_applicable_action()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_applicable_action_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-85"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-85"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-122"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-122"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the action is applicable (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-applicable-action-from-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-from-3"}},[t._v("#")]),t._v(" _is_applicable_action_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_applicable_action_from",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an action is applicable in the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._is_applicable_action()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the space of\napplicable actions provided by "),a("code",[t._v("Events._get_applicable_actions_from()")]),t._v(", but it can be overridden for faster\nimplementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-86"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-86"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-123"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-123"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the action is applicable (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-enabled-event-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-6"}},[t._v("#")]),t._v(" _is_enabled_event "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_enabled_event",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an uncontrollable event is enabled in the given memory (state or history), or in the\ninternal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._is_enabled_event()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_enabled_event_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead\nof the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-87"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-87"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-124"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-124"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is enabled (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-enabled-event-from-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-from-3"}},[t._v("#")]),t._v(" _is_enabled_event_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_enabled_event_from",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an event is enabled in the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._is_enabled_event()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the space of\nenabled events provided by "),a("code",[t._v("Events._get_enabled_events_from()")]),t._v(", but it can be overridden for faster\nimplementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-88"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-88"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-125"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-125"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is enabled (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-observation-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-observation-6"}},[t._v("#")]),t._v(" _is_observation "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_observation",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that an observation indeed belongs to the domain observation space.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\nobservation space provided by "),a("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(", but it can be overridden for\nfaster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-89"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-89"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-126"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-126"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the observation belongs to the domain observation space (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"render-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#render-6"}},[t._v("#")]),t._v(" _render "),a("Badge",{attrs:{text:"Renderable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_render",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"},{name:"**kwargs",annotation:"Any"}],return:"Any"}}}),t._v(" "),a("p",[t._v("Compute a visual render of the given memory (state or history), or the internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Renderable._render()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Renderable._render_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead of\nthe memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-90"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-90"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-127"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-127"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("A render (e.g. image) or nothing (if the function handles the display directly).")]),t._v(" "),a("h3",{attrs:{id:"render-from-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#render-from-3"}},[t._v("#")]),t._v(" _render_from "),a("Badge",{attrs:{text:"Renderable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_render_from",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"**kwargs",annotation:"Any"}],return:"Any"}}}),t._v(" "),a("p",[t._v("Compute a visual render of the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Renderable._render()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("h4",{attrs:{id:"parameters-91"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-91"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-128"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-128"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("A render (e.g. image) or nothing (if the function handles the display directly).")]),t._v(" "),a("h3",{attrs:{id:"reset-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#reset-6"}},[t._v("#")]),t._v(" _reset "),a("Badge",{attrs:{text:"Initializable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_reset",sig:{params:[{name:"self"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Reset the state of the environment and return an initial observation.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Initializable._reset()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Initializable._state_reset()")]),t._v(" (which returns an initial state). The boilerplate code automatically stores\nthe initial state into the "),a("code",[t._v("_memory")]),t._v(" attribute and samples a corresponding observation.")]),t._v(" "),a("h4",{attrs:{id:"returns-129"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-129"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("An initial observation.")]),t._v(" "),a("h3",{attrs:{id:"state-reset-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#state-reset-3"}},[t._v("#")]),t._v(" _state_reset "),a("Badge",{attrs:{text:"Initializable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_state_reset",sig:{params:[{name:"self"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("Reset the state of the environment and return an initial state.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Initializable._reset()")]),t._v(". It focuses on the state level, as\nopposed to the observation one for the latter.")]),t._v(" "),a("h4",{attrs:{id:"returns-130"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-130"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("An initial state.")]),t._v(" "),a("h3",{attrs:{id:"state-step-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#state-step-3"}},[t._v("#")]),t._v(" _state_step "),a("Badge",{attrs:{text:"Environment",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_state_step",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"TransitionOutcome[D.T_state, D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Compute one step of the transition's dynamics.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Environment._step()")]),t._v(". It focuses on the state level, as opposed\nto the observation one for the latter.")]),t._v(" "),a("h4",{attrs:{id:"parameters-92"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-92"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the current memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-131"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-131"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The transition outcome of this step.")]),t._v(" "),a("h3",{attrs:{id:"step-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#step-6"}},[t._v("#")]),t._v(" _step "),a("Badge",{attrs:{text:"Environment",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_step",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Run one step of the environment's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Environment._step()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Environment._state_step()")]),t._v(" (which returns a transition outcome). The boilerplate code automatically stores\nnext state into the "),a("code",[t._v("_memory")]),t._v(" attribute and samples a corresponding observation.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing environment needs to be wrapped instead of implemented fully in scikit-decide (e.g. compiled\nATARI games), it is recommended to overwrite "),a("code",[t._v("Environment._step()")]),t._v(" to call the external environment and not\nuse the "),a("code",[t._v("Environment._state_step()")]),t._v(" helper function.")])]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Before calling "),a("code",[t._v("Environment._step()")]),t._v(" the first time or when the end of an episode is\nreached, "),a("code",[t._v("Initializable._reset()")]),t._v(" must be called to reset the environment's state.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-93"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-93"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the current memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-132"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-132"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of this step.")]),t._v(" "),a("h2",{attrs:{id:"gymwidthdomain"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#gymwidthdomain"}},[t._v("#")]),t._v(" GymWidthDomain")]),t._v(" "),a("p",[t._v("This class wraps an OpenAI Gym environment as a domain\nusable by width-based solving algorithm (e.g. IW)")]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Using this class requires OpenAI Gym to be installed.")])]),t._v(" "),a("h3",{attrs:{id:"constructor-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#constructor-4"}},[t._v("#")]),t._v(" Constructor "),a("Badge",{attrs:{text:"GymWidthDomain",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"GymWidthDomain",sig:{params:[{name:"continuous_feature_fidelity",default:"1",annotation:"int"}],return:"None"}}}),t._v(" "),a("p",[t._v("Initialize GymWidthDomain.")]),t._v(" "),a("h4",{attrs:{id:"parameters-94"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-94"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("continuous_feature_fidelity")]),t._v(": Number of integers to represent a continuous feature\nin the interval-based feature abstraction (higher is more precise)")])]),t._v(" "),a("h3",{attrs:{id:"bee1-features"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#bee1-features"}},[t._v("#")]),t._v(" bee1_features "),a("Badge",{attrs:{text:"GymWidthDomain",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"bee1_features",sig:{params:[{name:"self"},{name:"state"}]}}}),t._v(" "),a("p",[t._v("Return a numpy vector of ints representing the current 'cumulated layer' of each state variable")]),t._v(" "),a("h3",{attrs:{id:"bee2-features"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#bee2-features"}},[t._v("#")]),t._v(" bee2_features "),a("Badge",{attrs:{text:"GymWidthDomain",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"bee2_features",sig:{params:[{name:"self"},{name:"state"}]}}}),t._v(" "),a("p",[t._v("Return a numpy vector of ints representing the current 'cumulated layer' of each state variable")]),t._v(" "),a("h3",{attrs:{id:"binary-features"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#binary-features"}},[t._v("#")]),t._v(" binary_features "),a("Badge",{attrs:{text:"GymWidthDomain",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"binary_features",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}]}}}),t._v(" "),a("p",[t._v("Transform state in a bit vector and call f on each true value of this vector")]),t._v(" "),a("h4",{attrs:{id:"parameters-95"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-95"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("p",[a("strong",[t._v("memory")]),t._v(": The Gym state (in observation_space) to binarize")])]),t._v(" "),a("li",[a("p",[a("strong",[t._v("Return")]),t._v(" a list of booleans representing the binary representation of each state variable")])])]),t._v(" "),a("h3",{attrs:{id:"nb-of-binary-features"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#nb-of-binary-features"}},[t._v("#")]),t._v(" nb_of_binary_features "),a("Badge",{attrs:{text:"GymWidthDomain",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"nb_of_binary_features",sig:{params:[{name:"self"}],return:"int"}}}),t._v(" "),a("p",[t._v("Return the size of the bit vector encoding an observation")]),t._v(" "),a("h2",{attrs:{id:"gymdiscreteactiondomain"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#gymdiscreteactiondomain"}},[t._v("#")]),t._v(" GymDiscreteActionDomain")]),t._v(" "),a("p",[t._v("This class wraps an OpenAI Gym environment as a domain\nusable by a solver that requires enumerable applicable action sets")]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Using this class requires OpenAI Gym to be installed.")])]),t._v(" "),a("h3",{attrs:{id:"constructor-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#constructor-5"}},[t._v("#")]),t._v(" Constructor "),a("Badge",{attrs:{text:"GymDiscreteActionDomain",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"GymDiscreteActionDomain",sig:{params:[{name:"discretization_factor",default:"10",annotation:"int"},{name:"branching_factor",default:"None",annotation:"int"}],return:"None"}}}),t._v(" "),a("p",[t._v("Initialize GymDiscreteActionDomain.")]),t._v(" "),a("h4",{attrs:{id:"parameters-96"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-96"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("discretization_factor")]),t._v(": Number of discretized action variable values per continuous action variable")]),t._v(" "),a("li",[a("strong",[t._v("branching_factor")]),t._v(": if not None, sample branching_factor actions from the resulting list of discretized actions")])]),t._v(" "),a("h3",{attrs:{id:"get-action-space-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-10"}},[t._v("#")]),t._v(" get_action_space "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_action_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) domain action space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.get_action_space()")]),t._v(" internally calls "),a("code",[t._v("Events._get_action_space_()")]),t._v(" the first time and\nautomatically caches its value to make future calls more efficient (since the action space is assumed to be\nconstant).")]),t._v(" "),a("h4",{attrs:{id:"returns-133"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-133"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The action space.")]),t._v(" "),a("h3",{attrs:{id:"get-applicable-actions-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-7"}},[t._v("#")]),t._v(" get_applicable_actions "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_applicable_actions",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history), or in\nthe internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.get_applicable_actions()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_applicable_actions()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-97"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-97"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-134"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-134"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of applicable actions.")]),t._v(" "),a("h3",{attrs:{id:"get-enabled-events-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-7"}},[t._v("#")]),t._v(" get_enabled_events "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_enabled_events",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"Space[D.T_event]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory), or in the internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.get_enabled_events()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_enabled_events()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead of\nthe memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-98"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-98"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-135"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-135"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of enabled events.")]),t._v(" "),a("h3",{attrs:{id:"is-action-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-action-7"}},[t._v("#")]),t._v(" is_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_action",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an event is an action (i.e. a controllable event for the agents).")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\naction space provided by "),a("code",[t._v("Events.get_action_space()")]),t._v(", but it can be overridden for faster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-99"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-99"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("event")]),t._v(": The event to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-136"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-136"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is an action (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-applicable-action-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-7"}},[t._v("#")]),t._v(" is_applicable_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_applicable_action",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an action is applicable in the given memory (state or history), or in the internal one if\nomitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.is_applicable_action()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_applicable_action()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead\nof the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-100"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-100"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-137"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-137"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the action is applicable (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-enabled-event-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-7"}},[t._v("#")]),t._v(" is_enabled_event "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_enabled_event",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an uncontrollable event is enabled in the given memory (state or history), or in the\ninternal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.is_enabled_event()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_enabled_event()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead of\nthe memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-101"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-101"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-138"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-138"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is enabled (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"get-action-space-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-11"}},[t._v("#")]),t._v(" _get_action_space "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_action_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) domain action space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._get_action_space()")]),t._v(" internally calls "),a("code",[t._v("Events._get_action_space_()")]),t._v(" the first time and\nautomatically caches its value to make future calls more efficient (since the action space is assumed to be\nconstant).")]),t._v(" "),a("h4",{attrs:{id:"returns-139"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-139"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The action space.")]),t._v(" "),a("h3",{attrs:{id:"get-action-space-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-12"}},[t._v("#")]),t._v(" _get_action_space_ "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_action_space_",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the domain action space (finite or infinite set).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._get_action_space()")]),t._v(", the difference being that the\nresult is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-140"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-140"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The action space.")]),t._v(" "),a("h3",{attrs:{id:"get-applicable-actions-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-8"}},[t._v("#")]),t._v(" _get_applicable_actions "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_applicable_actions",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history), or in\nthe internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._get_applicable_actions()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_applicable_actions_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-102"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-102"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-141"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-141"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of applicable actions.")]),t._v(" "),a("h3",{attrs:{id:"get-applicable-actions-from-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-from-4"}},[t._v("#")]),t._v(" _get_applicable_actions_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_applicable_actions_from",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._get_applicable_actions()")]),t._v(", the difference being that\nthe memory parameter is mandatory here.")]),t._v(" "),a("h4",{attrs:{id:"parameters-103"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-103"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-142"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-142"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of applicable actions.")]),t._v(" "),a("h3",{attrs:{id:"get-enabled-events-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-8"}},[t._v("#")]),t._v(" _get_enabled_events "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_enabled_events",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"Space[D.T_event]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory), or in the internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._get_enabled_events()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_enabled_events_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-104"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-104"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-143"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-143"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of enabled events.")]),t._v(" "),a("h3",{attrs:{id:"get-enabled-events-from-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-from-4"}},[t._v("#")]),t._v(" _get_enabled_events_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_enabled_events_from",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"Space[D.T_event]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._get_enabled_events()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("h4",{attrs:{id:"parameters-105"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-105"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-144"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-144"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of enabled events.")]),t._v(" "),a("h3",{attrs:{id:"is-action-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-action-8"}},[t._v("#")]),t._v(" _is_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_action",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an event is an action (i.e. a controllable event for the agents).")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\naction space provided by "),a("code",[t._v("Events._get_action_space()")]),t._v(", but it can be overridden for faster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-106"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-106"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("event")]),t._v(": The event to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-145"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-145"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is an action (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-applicable-action-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-8"}},[t._v("#")]),t._v(" _is_applicable_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_applicable_action",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an action is applicable in the given memory (state or history), or in the internal one if\nomitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._is_applicable_action()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_applicable_action_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-107"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-107"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-146"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-146"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the action is applicable (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-applicable-action-from-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-from-4"}},[t._v("#")]),t._v(" _is_applicable_action_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_applicable_action_from",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an action is applicable in the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._is_applicable_action()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the space of\napplicable actions provided by "),a("code",[t._v("Events._get_applicable_actions_from()")]),t._v(", but it can be overridden for faster\nimplementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-108"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-108"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-147"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-147"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the action is applicable (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-enabled-event-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-8"}},[t._v("#")]),t._v(" _is_enabled_event "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_enabled_event",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an uncontrollable event is enabled in the given memory (state or history), or in the\ninternal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._is_enabled_event()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_enabled_event_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead\nof the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-109"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-109"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-148"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-148"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is enabled (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-enabled-event-from-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-from-4"}},[t._v("#")]),t._v(" _is_enabled_event_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_enabled_event_from",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an event is enabled in the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._is_enabled_event()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the space of\nenabled events provided by "),a("code",[t._v("Events._get_enabled_events_from()")]),t._v(", but it can be overridden for faster\nimplementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-110"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-110"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-149"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-149"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is enabled (False otherwise).")]),t._v(" "),a("h2",{attrs:{id:"deterministicgymdomain"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#deterministicgymdomain"}},[t._v("#")]),t._v(" DeterministicGymDomain")]),t._v(" "),a("p",[t._v("This class wraps a deterministic OpenAI Gym environment (gym.env) as a scikit-decide domain.")]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Using this class requires OpenAI Gym to be installed.")])]),t._v(" "),a("h3",{attrs:{id:"constructor-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#constructor-6"}},[t._v("#")]),t._v(" Constructor "),a("Badge",{attrs:{text:"DeterministicGymDomain",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"DeterministicGymDomain",sig:{params:[{name:"gym_env",annotation:"gym.Env"},{name:"set_state",default:"None",annotation:"Callable[[gym.Env, D.T_memory[D.T_state]], None]"},{name:"get_state",default:"None",annotation:"Callable[[gym.Env], D.T_memory[D.T_state]]"}],return:"None"}}}),t._v(" "),a("p",[t._v("Initialize DeterministicGymDomain.")]),t._v(" "),a("h4",{attrs:{id:"parameters-111"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-111"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("gym_env")]),t._v(": The deterministic Gym environment (gym.env) to wrap.")]),t._v(" "),a("li",[a("strong",[t._v("set_state")]),t._v(": Function to call to set the state of the gym environment.\nIf None, default behavior is to deepcopy the environment when changing state")]),t._v(" "),a("li",[a("strong",[t._v("get_state")]),t._v(": Function to call to get the state of the gym environment.\nIf None, default behavior is to deepcopy the environment when changing state")])]),t._v(" "),a("h3",{attrs:{id:"check-value-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#check-value-7"}},[t._v("#")]),t._v(" check_value "),a("Badge",{attrs:{text:"Rewards",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"check_value",sig:{params:[{name:"self"},{name:"value",annotation:"Value[D.T_value]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that a value is compliant with its reward specification.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("This function returns always True by default because any kind of reward should be accepted at this level.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-112"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-112"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("value")]),t._v(": The value to check.")])]),t._v(" "),a("h4",{attrs:{id:"returns-150"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-150"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the value is compliant (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"get-action-space-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-13"}},[t._v("#")]),t._v(" get_action_space "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_action_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) domain action space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.get_action_space()")]),t._v(" internally calls "),a("code",[t._v("Events._get_action_space_()")]),t._v(" the first time and\nautomatically caches its value to make future calls more efficient (since the action space is assumed to be\nconstant).")]),t._v(" "),a("h4",{attrs:{id:"returns-151"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-151"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The action space.")]),t._v(" "),a("h3",{attrs:{id:"get-applicable-actions-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-9"}},[t._v("#")]),t._v(" get_applicable_actions "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_applicable_actions",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history), or in\nthe internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.get_applicable_actions()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_applicable_actions()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-113"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-113"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-152"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-152"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of applicable actions.")]),t._v(" "),a("h3",{attrs:{id:"get-enabled-events-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-9"}},[t._v("#")]),t._v(" get_enabled_events "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_enabled_events",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"Space[D.T_event]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory), or in the internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.get_enabled_events()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_enabled_events()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead of\nthe memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-114"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-114"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-153"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-153"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of enabled events.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-4"}},[t._v("#")]),t._v(" get_initial_state "),a("Badge",{attrs:{text:"DeterministicInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_initial_state",sig:{params:[{name:"self"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("Get the (cached) initial state.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("DeterministicInitialized.get_initial_state()")]),t._v(" internally\ncalls "),a("code",[t._v("DeterministicInitialized._get_initial_state_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the initial state is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-154"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-154"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The initial state.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-distribution-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-distribution-4"}},[t._v("#")]),t._v(" get_initial_state_distribution "),a("Badge",{attrs:{text:"UncertainInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_initial_state_distribution",sig:{params:[{name:"self"}],return:"Distribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("Get the (cached) probability distribution of initial states.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("UncertainInitialized.get_initial_state_distribution()")]),t._v(" internally\ncalls "),a("code",[t._v("UncertainInitialized._get_initial_state_distribution_()")]),t._v(" the first time and automatically caches its value\nto make future calls more efficient (since the initial state distribution is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-155"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-155"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of initial states.")]),t._v(" "),a("h3",{attrs:{id:"get-next-state"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-next-state"}},[t._v("#")]),t._v(" get_next_state "),a("Badge",{attrs:{text:"DeterministicTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_next_state",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("Get the next state given a memory and action.")]),t._v(" "),a("h4",{attrs:{id:"parameters-115"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-115"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-156"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-156"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The deterministic next state.")]),t._v(" "),a("h3",{attrs:{id:"get-next-state-distribution"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-next-state-distribution"}},[t._v("#")]),t._v(" get_next_state_distribution "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_next_state_distribution",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"DiscreteDistribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("Get the discrete probability distribution of next state given a memory and action.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("In the Markovian case (memory only holds last state "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.061ex",height:"1.023ex",viewBox:"0 -442 469 452"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})])])])])]),t._v("), given an action "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.197ex",height:"1.02ex",viewBox:"0 -441 529 451"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})])])])])]),t._v(", this function can\nbe mathematically represented by "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.292ex",height:"2.283ex",viewBox:"0 -759 4107.1 1009"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"50",d:"M287 628Q287 635 230 637Q206 637 199 638T192 648Q192 649 194 659Q200 679 203 681T397 683Q587 682 600 680Q664 669 707 631T751 530Q751 453 685 389Q616 321 507 303Q500 302 402 301H307L277 182Q247 66 247 59Q247 55 248 54T255 50T272 48T305 46H336Q342 37 342 35Q342 19 335 5Q330 0 319 0Q316 0 282 1T182 2Q120 2 87 2T51 1Q33 1 33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM645 554Q645 567 643 575T634 597T609 619T560 635Q553 636 480 637Q463 637 445 637T416 636T404 636Q391 635 386 627Q384 621 367 550T332 412T314 344Q314 342 395 342H407H430Q542 342 590 392Q617 419 631 471T645 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(751, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"msup",transform:"translate(1140, 0)"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"53",d:"M308 24Q367 24 416 76T466 197Q466 260 414 284Q308 311 278 321T236 341Q176 383 176 462Q176 523 208 573T273 648Q302 673 343 688T407 704H418H425Q521 704 564 640Q565 640 577 653T603 682T623 704Q624 704 627 704T632 705Q645 705 645 698T617 577T585 459T569 456Q549 456 549 465Q549 471 550 475Q550 478 551 494T553 520Q553 554 544 579T526 616T501 641Q465 662 419 662Q362 662 313 616T263 510Q263 480 278 458T319 427Q323 425 389 408T456 390Q490 379 522 342T554 242Q554 216 546 186Q541 164 528 137T492 78T426 18T332 -20Q320 -22 298 -22Q199 -22 144 33L134 44L106 13Q83 -14 78 -18T65 -22Q52 -22 52 -14Q52 -11 110 221Q112 227 130 227H143Q149 221 149 216Q149 214 148 207T144 186T142 153Q144 114 160 87T203 47T255 29T308 24Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(613, 363) scale(0.707)"}},[a("path",{attrs:{"data-c":"2032",d:"M79 43Q73 43 52 49T30 61Q30 68 85 293T146 528Q161 560 198 560Q218 560 240 545T262 501Q262 496 260 486Q259 479 173 263T84 45T79 43Z"}})])]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1997.5, 0)"}},[a("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(2275.5, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2744.5, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(3189.1, 0)"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3718.1, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(", where "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.05ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.94ex",height:"1.767ex",viewBox:"0 -759 857.5 781"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"msup"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"53",d:"M308 24Q367 24 416 76T466 197Q466 260 414 284Q308 311 278 321T236 341Q176 383 176 462Q176 523 208 573T273 648Q302 673 343 688T407 704H418H425Q521 704 564 640Q565 640 577 653T603 682T623 704Q624 704 627 704T632 705Q645 705 645 698T617 577T585 459T569 456Q549 456 549 465Q549 471 550 475Q550 478 551 494T553 520Q553 554 544 579T526 616T501 641Q465 662 419 662Q362 662 313 616T263 510Q263 480 278 458T319 427Q323 425 389 408T456 390Q490 379 522 342T554 242Q554 216 546 186Q541 164 528 137T492 78T426 18T332 -20Q320 -22 298 -22Q199 -22 144 33L134 44L106 13Q83 -14 78 -18T65 -22Q52 -22 52 -14Q52 -11 110 221Q112 227 130 227H143Q149 221 149 216Q149 214 148 207T144 186T142 153Q144 114 160 87T203 47T255 29T308 24Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(613, 363) scale(0.707)"}},[a("path",{attrs:{"data-c":"2032",d:"M79 43Q73 43 52 49T30 61Q30 68 85 293T146 528Q161 560 198 560Q218 560 240 545T262 501Q262 496 260 486Q259 479 173 263T84 45T79 43Z"}})])])])])])]),t._v(" is the next state random variable.")],1)]),t._v(" "),a("h4",{attrs:{id:"parameters-116"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-116"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-157"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-157"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The discrete probability distribution of next state.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-7"}},[t._v("#")]),t._v(" get_observation "),a("Badge",{attrs:{text:"TransformedObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_observation",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Get the deterministic observation given a state and action.")]),t._v(" "),a("h4",{attrs:{id:"parameters-117"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-117"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-158"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-158"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-distribution-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-distribution-7"}},[t._v("#")]),t._v(" get_observation_distribution "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_observation_distribution",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"Distribution[D.T_agent[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the probability distribution of the observation given a state and action.")]),t._v(" "),a("p",[t._v("In mathematical terms (discrete case), given an action "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.197ex",height:"1.02ex",viewBox:"0 -441 529 451"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})])])])])]),t._v(", this function represents: "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.078ex",height:"2.262ex",viewBox:"0 -750 4012.7 1000"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"50",d:"M287 628Q287 635 230 637Q206 637 199 638T192 648Q192 649 194 659Q200 679 203 681T397 683Q587 682 600 680Q664 669 707 631T751 530Q751 453 685 389Q616 321 507 303Q500 302 402 301H307L277 182Q247 66 247 59Q247 55 248 54T255 50T272 48T305 46H336Q342 37 342 35Q342 19 335 5Q330 0 319 0Q316 0 282 1T182 2Q120 2 87 2T51 1Q33 1 33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM645 554Q645 567 643 575T634 597T609 619T560 635Q553 636 480 637Q463 637 445 637T416 636T404 636Q391 635 386 627Q384 621 367 550T332 412T314 344Q314 342 395 342H407H430Q542 342 590 392Q617 419 631 471T645 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(751, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(1140, 0)"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1903, 0)"}},[a("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(2181, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2650, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(3094.7, 0)"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3623.7, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(",\nwhere "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.05ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.726ex",height:"1.643ex",viewBox:"0 -704 763 726"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})])])])])]),t._v(" is the random variable of the observation.")],1),t._v(" "),a("h4",{attrs:{id:"parameters-118"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-118"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-159"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-159"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-space-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-10"}},[t._v("#")]),t._v(" get_observation_space "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_observation_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) observation space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("PartiallyObservable.get_observation_space()")]),t._v(" internally\ncalls "),a("code",[t._v("PartiallyObservable._get_observation_space_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the observation space is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-160"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-160"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The observation space.")]),t._v(" "),a("h3",{attrs:{id:"get-transition-value"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-transition-value"}},[t._v("#")]),t._v(" get_transition_value "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_transition_value",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"},{name:"next_state",default:"None",annotation:"Optional[D.T_state]"}],return:"D.T_agent[Value[D.T_value]]"}}}),t._v(" "),a("p",[t._v("Get the value (reward or cost) of a transition.")]),t._v(" "),a("p",[t._v("The transition to consider is defined by the function parameters.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("If this function never depends on the next_state parameter for its computation, it is recommended to\nindicate it by overriding "),a("code",[t._v("UncertainTransitions._is_transition_value_dependent_on_next_state_()")]),t._v(" to return\nFalse. This information can then be exploited by solvers to avoid computing next state to evaluate a\ntransition value (more efficient).")])]),t._v(" "),a("h4",{attrs:{id:"parameters-119"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-119"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")]),t._v(" "),a("li",[a("strong",[t._v("next_state")]),t._v(": The next state in which the transition ends (if needed for the computation).")])]),t._v(" "),a("h4",{attrs:{id:"returns-161"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-161"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The transition value (reward or cost).")]),t._v(" "),a("h3",{attrs:{id:"is-action-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-action-9"}},[t._v("#")]),t._v(" is_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_action",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an event is an action (i.e. a controllable event for the agents).")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\naction space provided by "),a("code",[t._v("Events.get_action_space()")]),t._v(", but it can be overridden for faster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-120"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-120"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("event")]),t._v(": The event to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-162"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-162"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is an action (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-applicable-action-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-9"}},[t._v("#")]),t._v(" is_applicable_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_applicable_action",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an action is applicable in the given memory (state or history), or in the internal one if\nomitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.is_applicable_action()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_applicable_action()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead\nof the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-121"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-121"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-163"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-163"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the action is applicable (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-enabled-event-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-9"}},[t._v("#")]),t._v(" is_enabled_event "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_enabled_event",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an uncontrollable event is enabled in the given memory (state or history), or in the\ninternal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.is_enabled_event()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_enabled_event()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead of\nthe memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-122"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-122"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-164"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-164"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is enabled (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-observation-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-observation-7"}},[t._v("#")]),t._v(" is_observation "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_observation",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that an observation indeed belongs to the domain observation space.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\nobservation space provided by "),a("code",[t._v("PartiallyObservable.get_observation_space()")]),t._v(", but it can be overridden for\nfaster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-123"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-123"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-165"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-165"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the observation belongs to the domain observation space (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-terminal"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-terminal"}},[t._v("#")]),t._v(" is_terminal "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_terminal",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"}],return:"D.T_agent[D.T_predicate]"}}}),t._v(" "),a("p",[t._v("Indicate whether a state is terminal.")]),t._v(" "),a("p",[t._v("A terminal state is a state with no outgoing transition (except to itself with value 0).")]),t._v(" "),a("h4",{attrs:{id:"parameters-124"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-124"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-166"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-166"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the state is terminal (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-transition-value-dependent-on-next-state"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-transition-value-dependent-on-next-state"}},[t._v("#")]),t._v(" is_transition_value_dependent_on_next_state "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_transition_value_dependent_on_next_state",sig:{params:[{name:"self"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether get_transition_value() requires the next_state parameter for its computation (cached).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("UncertainTransitions.is_transition_value_dependent_on_next_state()")]),t._v(" internally\ncalls "),a("code",[t._v("UncertainTransitions._is_transition_value_dependent_on_next_state_()")]),t._v(" the first time and automatically\ncaches its value to make future calls more efficient (since the returned value is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-167"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-167"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the transition value computation depends on next_state (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"render-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#render-7"}},[t._v("#")]),t._v(" render "),a("Badge",{attrs:{text:"Renderable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"render",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"},{name:"**kwargs",annotation:"Any"}],return:"Any"}}}),t._v(" "),a("p",[t._v("Compute a visual render of the given memory (state or history), or the internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Renderable.render()")]),t._v(" provides some boilerplate code and internally calls "),a("code",[t._v("Renderable._render()")]),t._v(". The\nboilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead of the memory parameter whenever the latter\nis None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-125"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-125"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-168"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-168"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("A render (e.g. image) or nothing (if the function handles the display directly).")]),t._v(" "),a("h3",{attrs:{id:"reset-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#reset-7"}},[t._v("#")]),t._v(" reset "),a("Badge",{attrs:{text:"Initializable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"reset",sig:{params:[{name:"self"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Reset the state of the environment and return an initial observation.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Initializable.reset()")]),t._v(" provides some boilerplate code and internally calls "),a("code",[t._v("Initializable._reset()")]),t._v("\n(which returns an initial state). The boilerplate code automatically stores the initial state into the "),a("code",[t._v("_memory")]),t._v("\nattribute and samples a corresponding observation.")]),t._v(" "),a("h4",{attrs:{id:"returns-169"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-169"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("An initial observation.")]),t._v(" "),a("h3",{attrs:{id:"sample"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample"}},[t._v("#")]),t._v(" sample "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"sample",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Sample one transition of the simulator's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Simulation.sample()")]),t._v(" provides some boilerplate code and internally calls "),a("code",[t._v("Simulation._sample()")]),t._v("\n(which returns a transition outcome). The boilerplate code automatically samples an observation corresponding to\nthe sampled next state.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing simulator needs to be wrapped instead of implemented fully in scikit-decide (e.g. a\nsimulator), it is recommended to overwrite "),a("code",[t._v("Simulation.sample()")]),t._v(" to call the external simulator and not use\nthe "),a("code",[t._v("Simulation._sample()")]),t._v(" helper function.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-126"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-126"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-170"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-170"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of the sampled transition.")]),t._v(" "),a("h3",{attrs:{id:"set-memory"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#set-memory"}},[t._v("#")]),t._v(" set_memory "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"set_memory",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"None"}}}),t._v(" "),a("p",[t._v("Set internal memory attribute "),a("code",[t._v("_memory")]),t._v(" to given one.")]),t._v(" "),a("p",[t._v('This can be useful to set a specific "starting point" before doing a rollout with successive '),a("code",[t._v("Environment.step()")]),t._v("\ncalls.")]),t._v(" "),a("h4",{attrs:{id:"parameters-127"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-127"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to set internally.")])]),t._v(" "),a("h4",{attrs:{id:"example"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#example"}},[t._v("#")]),t._v(" Example")]),t._v(" "),a("div",{staticClass:"language-python extra-class"},[a("pre",{pre:!0,attrs:{class:"language-python"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Set simulation_domain memory to my_state (assuming Markovian domain)")]),t._v("\nsimulation_domain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("set_memory"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("my_state"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Start a 100-steps rollout from here (applying my_action at every step)")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("for")]),t._v(" _ "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("in")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("range")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n simulation_domain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("step"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("my_action"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("h3",{attrs:{id:"solve-with-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#solve-with-4"}},[t._v("#")]),t._v(" solve_with "),a("Badge",{attrs:{text:"Domain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"solve_with",sig:{params:[{name:"solver",annotation:"Solver"},{name:"domain_factory",default:"None",annotation:"Optional[Callable[[], Domain]]"},{name:"load_path",default:"None",annotation:"Optional[str]"}],return:"Solver"}}}),t._v(" "),a("p",[t._v("Solve the domain with a new or loaded solver and return it auto-cast to the level of the domain.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Solver.check_domain()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Solver._check_domain_additional()")]),t._v(' (which returns True by default but can be overridden to define\nspecific checks in addition to the "domain requirements"). The boilerplate code automatically checks whether all\ndomain requirements are met.')]),t._v(" "),a("h4",{attrs:{id:"parameters-128"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-128"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("solver")]),t._v(": The solver.")]),t._v(" "),a("li",[a("strong",[t._v("domain_factory")]),t._v(": A callable with no argument returning the domain to solve (factory is the domain class if None).")]),t._v(" "),a("li",[a("strong",[t._v("load_path")]),t._v(": The path to restore the solver state from (if None, the solving process will be launched instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-171"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-171"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The new solver (auto-cast to the level of the domain).")]),t._v(" "),a("h3",{attrs:{id:"step-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#step-7"}},[t._v("#")]),t._v(" step "),a("Badge",{attrs:{text:"Environment",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"step",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Run one step of the environment's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Environment.step()")]),t._v(" provides some boilerplate code and internally calls "),a("code",[t._v("Environment._step()")]),t._v(" (which\nreturns a transition outcome). The boilerplate code automatically stores next state into the "),a("code",[t._v("_memory")]),t._v(" attribute\nand samples a corresponding observation.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing environment needs to be wrapped instead of implemented fully in scikit-decide (e.g. compiled\nATARI games), it is recommended to overwrite "),a("code",[t._v("Environment.step()")]),t._v(" to call the external environment and not\nuse the "),a("code",[t._v("Environment._step()")]),t._v(" helper function.")])]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Before calling "),a("code",[t._v("Environment.step()")]),t._v(" the first time or when the end of an episode is\nreached, "),a("code",[t._v("Initializable.reset()")]),t._v(" must be called to reset the environment's state.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-129"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-129"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the current memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-172"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-172"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of this step.")]),t._v(" "),a("h3",{attrs:{id:"unwrapped-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#unwrapped-4"}},[t._v("#")]),t._v(" unwrapped "),a("Badge",{attrs:{text:"DeterministicGymDomain",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"unwrapped",sig:{params:[{name:"self"}]}}}),t._v(" "),a("p",[t._v("Unwrap the deterministic Gym environment (gym.env) and return it.")]),t._v(" "),a("h4",{attrs:{id:"returns-173"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-173"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The original Gym environment.")]),t._v(" "),a("h3",{attrs:{id:"check-value-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#check-value-8"}},[t._v("#")]),t._v(" _check_value "),a("Badge",{attrs:{text:"Rewards",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_check_value",sig:{params:[{name:"self"},{name:"value",annotation:"Value[D.T_value]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that a value is compliant with its reward specification.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("This function returns always True by default because any kind of reward should be accepted at this level.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-130"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-130"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("value")]),t._v(": The value to check.")])]),t._v(" "),a("h4",{attrs:{id:"returns-174"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-174"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the value is compliant (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"get-action-space-14"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-14"}},[t._v("#")]),t._v(" _get_action_space "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_action_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) domain action space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._get_action_space()")]),t._v(" internally calls "),a("code",[t._v("Events._get_action_space_()")]),t._v(" the first time and\nautomatically caches its value to make future calls more efficient (since the action space is assumed to be\nconstant).")]),t._v(" "),a("h4",{attrs:{id:"returns-175"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-175"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The action space.")]),t._v(" "),a("h3",{attrs:{id:"get-action-space-15"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-15"}},[t._v("#")]),t._v(" _get_action_space_ "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_action_space_",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the domain action space (finite or infinite set).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._get_action_space()")]),t._v(", the difference being that the\nresult is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-176"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-176"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The action space.")]),t._v(" "),a("h3",{attrs:{id:"get-applicable-actions-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-10"}},[t._v("#")]),t._v(" _get_applicable_actions "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_applicable_actions",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history), or in\nthe internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._get_applicable_actions()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_applicable_actions_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-131"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-131"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-177"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-177"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of applicable actions.")]),t._v(" "),a("h3",{attrs:{id:"get-applicable-actions-from-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-from-5"}},[t._v("#")]),t._v(" _get_applicable_actions_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_applicable_actions_from",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._get_applicable_actions()")]),t._v(", the difference being that\nthe memory parameter is mandatory here.")]),t._v(" "),a("h4",{attrs:{id:"parameters-132"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-132"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-178"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-178"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of applicable actions.")]),t._v(" "),a("h3",{attrs:{id:"get-enabled-events-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-10"}},[t._v("#")]),t._v(" _get_enabled_events "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_enabled_events",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"Space[D.T_event]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory), or in the internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._get_enabled_events()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_enabled_events_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-133"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-133"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-179"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-179"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of enabled events.")]),t._v(" "),a("h3",{attrs:{id:"get-enabled-events-from-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-from-5"}},[t._v("#")]),t._v(" _get_enabled_events_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_enabled_events_from",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"Space[D.T_event]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._get_enabled_events()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("h4",{attrs:{id:"parameters-134"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-134"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-180"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-180"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of enabled events.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-5"}},[t._v("#")]),t._v(" _get_initial_state "),a("Badge",{attrs:{text:"DeterministicInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_initial_state",sig:{params:[{name:"self"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("Get the (cached) initial state.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("DeterministicInitialized._get_initial_state()")]),t._v(" internally\ncalls "),a("code",[t._v("DeterministicInitialized._get_initial_state_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the initial state is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-181"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-181"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The initial state.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-6"}},[t._v("#")]),t._v(" _get_initial_state_ "),a("Badge",{attrs:{text:"DeterministicInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_initial_state_",sig:{params:[{name:"self"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("Get the initial state.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("DeterministicInitialized._get_initial_state()")]),t._v(", the difference\nbeing that the result is not cached here.")]),t._v(" "),a("h4",{attrs:{id:"returns-182"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-182"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The initial state.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-distribution-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-distribution-5"}},[t._v("#")]),t._v(" _get_initial_state_distribution "),a("Badge",{attrs:{text:"UncertainInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_initial_state_distribution",sig:{params:[{name:"self"}],return:"Distribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("Get the (cached) probability distribution of initial states.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("UncertainInitialized._get_initial_state_distribution()")]),t._v(" internally\ncalls "),a("code",[t._v("UncertainInitialized._get_initial_state_distribution_()")]),t._v(" the first time and automatically caches its value\nto make future calls more efficient (since the initial state distribution is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-183"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-183"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of initial states.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-distribution-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-distribution-6"}},[t._v("#")]),t._v(" _get_initial_state_distribution_ "),a("Badge",{attrs:{text:"UncertainInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_initial_state_distribution_",sig:{params:[{name:"self"}],return:"Distribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("Get the probability distribution of initial states.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("UncertainInitialized._get_initial_state_distribution()")]),t._v(", the\ndifference being that the result is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-184"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-184"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of initial states.")]),t._v(" "),a("h3",{attrs:{id:"get-memory-maxlen-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-memory-maxlen-7"}},[t._v("#")]),t._v(" _get_memory_maxlen "),a("Badge",{attrs:{text:"History",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_memory_maxlen",sig:{params:[{name:"self"}],return:"int"}}}),t._v(" "),a("p",[t._v("Get the (cached) memory max length.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("FiniteHistory._get_memory_maxlen()")]),t._v(" internally calls "),a("code",[t._v("FiniteHistory._get_memory_maxlen_()")]),t._v(" the first\ntime and automatically caches its value to make future calls more efficient (since the memory max length is\nassumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-185"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-185"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The memory max length.")]),t._v(" "),a("h3",{attrs:{id:"get-memory-maxlen-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-memory-maxlen-8"}},[t._v("#")]),t._v(" _get_memory_maxlen_ "),a("Badge",{attrs:{text:"FiniteHistory",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_memory_maxlen_",sig:{params:[{name:"self"}],return:"int"}}}),t._v(" "),a("p",[t._v("Get the memory max length.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("FiniteHistory._get_memory_maxlen()")]),t._v(", the difference being that\nthe result is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-186"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-186"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The memory max length.")]),t._v(" "),a("h3",{attrs:{id:"get-next-state-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-next-state-2"}},[t._v("#")]),t._v(" _get_next_state "),a("Badge",{attrs:{text:"DeterministicTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_next_state",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("Get the next state given a memory and action.")]),t._v(" "),a("h4",{attrs:{id:"parameters-135"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-135"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-187"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-187"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The deterministic next state.")]),t._v(" "),a("h3",{attrs:{id:"get-next-state-distribution-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-next-state-distribution-2"}},[t._v("#")]),t._v(" _get_next_state_distribution "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_next_state_distribution",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"SingleValueDistribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("Get the discrete probability distribution of next state given a memory and action.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("In the Markovian case (memory only holds last state "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.061ex",height:"1.023ex",viewBox:"0 -442 469 452"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})])])])])]),t._v("), given an action "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.197ex",height:"1.02ex",viewBox:"0 -441 529 451"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})])])])])]),t._v(", this function can\nbe mathematically represented by "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.292ex",height:"2.283ex",viewBox:"0 -759 4107.1 1009"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"50",d:"M287 628Q287 635 230 637Q206 637 199 638T192 648Q192 649 194 659Q200 679 203 681T397 683Q587 682 600 680Q664 669 707 631T751 530Q751 453 685 389Q616 321 507 303Q500 302 402 301H307L277 182Q247 66 247 59Q247 55 248 54T255 50T272 48T305 46H336Q342 37 342 35Q342 19 335 5Q330 0 319 0Q316 0 282 1T182 2Q120 2 87 2T51 1Q33 1 33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM645 554Q645 567 643 575T634 597T609 619T560 635Q553 636 480 637Q463 637 445 637T416 636T404 636Q391 635 386 627Q384 621 367 550T332 412T314 344Q314 342 395 342H407H430Q542 342 590 392Q617 419 631 471T645 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(751, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"msup",transform:"translate(1140, 0)"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"53",d:"M308 24Q367 24 416 76T466 197Q466 260 414 284Q308 311 278 321T236 341Q176 383 176 462Q176 523 208 573T273 648Q302 673 343 688T407 704H418H425Q521 704 564 640Q565 640 577 653T603 682T623 704Q624 704 627 704T632 705Q645 705 645 698T617 577T585 459T569 456Q549 456 549 465Q549 471 550 475Q550 478 551 494T553 520Q553 554 544 579T526 616T501 641Q465 662 419 662Q362 662 313 616T263 510Q263 480 278 458T319 427Q323 425 389 408T456 390Q490 379 522 342T554 242Q554 216 546 186Q541 164 528 137T492 78T426 18T332 -20Q320 -22 298 -22Q199 -22 144 33L134 44L106 13Q83 -14 78 -18T65 -22Q52 -22 52 -14Q52 -11 110 221Q112 227 130 227H143Q149 221 149 216Q149 214 148 207T144 186T142 153Q144 114 160 87T203 47T255 29T308 24Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(613, 363) scale(0.707)"}},[a("path",{attrs:{"data-c":"2032",d:"M79 43Q73 43 52 49T30 61Q30 68 85 293T146 528Q161 560 198 560Q218 560 240 545T262 501Q262 496 260 486Q259 479 173 263T84 45T79 43Z"}})])]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1997.5, 0)"}},[a("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(2275.5, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2744.5, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(3189.1, 0)"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3718.1, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(", where "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.05ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.94ex",height:"1.767ex",viewBox:"0 -759 857.5 781"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"msup"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"53",d:"M308 24Q367 24 416 76T466 197Q466 260 414 284Q308 311 278 321T236 341Q176 383 176 462Q176 523 208 573T273 648Q302 673 343 688T407 704H418H425Q521 704 564 640Q565 640 577 653T603 682T623 704Q624 704 627 704T632 705Q645 705 645 698T617 577T585 459T569 456Q549 456 549 465Q549 471 550 475Q550 478 551 494T553 520Q553 554 544 579T526 616T501 641Q465 662 419 662Q362 662 313 616T263 510Q263 480 278 458T319 427Q323 425 389 408T456 390Q490 379 522 342T554 242Q554 216 546 186Q541 164 528 137T492 78T426 18T332 -20Q320 -22 298 -22Q199 -22 144 33L134 44L106 13Q83 -14 78 -18T65 -22Q52 -22 52 -14Q52 -11 110 221Q112 227 130 227H143Q149 221 149 216Q149 214 148 207T144 186T142 153Q144 114 160 87T203 47T255 29T308 24Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(613, 363) scale(0.707)"}},[a("path",{attrs:{"data-c":"2032",d:"M79 43Q73 43 52 49T30 61Q30 68 85 293T146 528Q161 560 198 560Q218 560 240 545T262 501Q262 496 260 486Q259 479 173 263T84 45T79 43Z"}})])])])])])]),t._v(" is the next state random variable.")],1)]),t._v(" "),a("h4",{attrs:{id:"parameters-136"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-136"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-188"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-188"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The discrete probability distribution of next state.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-8"}},[t._v("#")]),t._v(" _get_observation "),a("Badge",{attrs:{text:"TransformedObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Get the deterministic observation given a state and action.")]),t._v(" "),a("h4",{attrs:{id:"parameters-137"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-137"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-189"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-189"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-distribution-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-distribution-8"}},[t._v("#")]),t._v(" _get_observation_distribution "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation_distribution",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"Distribution[D.T_agent[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the probability distribution of the observation given a state and action.")]),t._v(" "),a("p",[t._v("In mathematical terms (discrete case), given an action "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.197ex",height:"1.02ex",viewBox:"0 -441 529 451"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})])])])])]),t._v(", this function represents: "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.078ex",height:"2.262ex",viewBox:"0 -750 4012.7 1000"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"50",d:"M287 628Q287 635 230 637Q206 637 199 638T192 648Q192 649 194 659Q200 679 203 681T397 683Q587 682 600 680Q664 669 707 631T751 530Q751 453 685 389Q616 321 507 303Q500 302 402 301H307L277 182Q247 66 247 59Q247 55 248 54T255 50T272 48T305 46H336Q342 37 342 35Q342 19 335 5Q330 0 319 0Q316 0 282 1T182 2Q120 2 87 2T51 1Q33 1 33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM645 554Q645 567 643 575T634 597T609 619T560 635Q553 636 480 637Q463 637 445 637T416 636T404 636Q391 635 386 627Q384 621 367 550T332 412T314 344Q314 342 395 342H407H430Q542 342 590 392Q617 419 631 471T645 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(751, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(1140, 0)"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1903, 0)"}},[a("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(2181, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2650, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(3094.7, 0)"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3623.7, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(",\nwhere "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.05ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.726ex",height:"1.643ex",viewBox:"0 -704 763 726"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})])])])])]),t._v(" is the random variable of the observation.")],1),t._v(" "),a("h4",{attrs:{id:"parameters-138"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-138"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-190"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-190"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-space-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-11"}},[t._v("#")]),t._v(" _get_observation_space "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) observation space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(" internally\ncalls "),a("code",[t._v("PartiallyObservable._get_observation_space_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the observation space is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-191"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-191"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The observation space.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-space-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-12"}},[t._v("#")]),t._v(" _get_observation_space_ "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation_space_",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the observation space (finite or infinite set).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(", the difference\nbeing that the result is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-192"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-192"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The observation space.")]),t._v(" "),a("h3",{attrs:{id:"get-transition-value-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-transition-value-2"}},[t._v("#")]),t._v(" _get_transition_value "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_transition_value",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"},{name:"next_state",default:"None",annotation:"Optional[D.T_state]"}],return:"D.T_agent[Value[D.T_value]]"}}}),t._v(" "),a("p",[t._v("Get the value (reward or cost) of a transition.")]),t._v(" "),a("p",[t._v("The transition to consider is defined by the function parameters.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("If this function never depends on the next_state parameter for its computation, it is recommended to\nindicate it by overriding "),a("code",[t._v("UncertainTransitions._is_transition_value_dependent_on_next_state_()")]),t._v(" to return\nFalse. This information can then be exploited by solvers to avoid computing next state to evaluate a\ntransition value (more efficient).")])]),t._v(" "),a("h4",{attrs:{id:"parameters-139"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-139"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")]),t._v(" "),a("li",[a("strong",[t._v("next_state")]),t._v(": The next state in which the transition ends (if needed for the computation).")])]),t._v(" "),a("h4",{attrs:{id:"returns-193"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-193"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The transition value (reward or cost).")]),t._v(" "),a("h3",{attrs:{id:"init-memory-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#init-memory-4"}},[t._v("#")]),t._v(" _init_memory "),a("Badge",{attrs:{text:"History",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_init_memory",sig:{params:[{name:"self"},{name:"state",default:"None",annotation:"Optional[D.T_state]"}],return:"D.T_memory[D.T_state]"}}}),t._v(" "),a("p",[t._v("Initialize memory (possibly with a state) according to its specification and return it.")]),t._v(" "),a("p",[t._v("This function is automatically called by "),a("code",[t._v("Initializable._reset()")]),t._v(" to reinitialize the internal memory whenever\nthe domain is used as an environment.")]),t._v(" "),a("h4",{attrs:{id:"parameters-140"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-140"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": An optional state to initialize the memory with (typically the initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-194"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-194"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The new initialized memory.")]),t._v(" "),a("h3",{attrs:{id:"is-action-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-action-10"}},[t._v("#")]),t._v(" _is_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_action",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an event is an action (i.e. a controllable event for the agents).")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\naction space provided by "),a("code",[t._v("Events._get_action_space()")]),t._v(", but it can be overridden for faster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-141"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-141"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("event")]),t._v(": The event to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-195"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-195"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is an action (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-applicable-action-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-10"}},[t._v("#")]),t._v(" _is_applicable_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_applicable_action",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an action is applicable in the given memory (state or history), or in the internal one if\nomitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._is_applicable_action()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_applicable_action_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-142"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-142"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-196"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-196"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the action is applicable (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-applicable-action-from-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-from-5"}},[t._v("#")]),t._v(" _is_applicable_action_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_applicable_action_from",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an action is applicable in the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._is_applicable_action()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the space of\napplicable actions provided by "),a("code",[t._v("Events._get_applicable_actions_from()")]),t._v(", but it can be overridden for faster\nimplementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-143"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-143"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-197"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-197"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the action is applicable (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-enabled-event-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-10"}},[t._v("#")]),t._v(" _is_enabled_event "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_enabled_event",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an uncontrollable event is enabled in the given memory (state or history), or in the\ninternal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._is_enabled_event()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_enabled_event_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead\nof the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-144"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-144"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-198"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-198"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is enabled (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-enabled-event-from-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-from-5"}},[t._v("#")]),t._v(" _is_enabled_event_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_enabled_event_from",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an event is enabled in the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._is_enabled_event()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the space of\nenabled events provided by "),a("code",[t._v("Events._get_enabled_events_from()")]),t._v(", but it can be overridden for faster\nimplementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-145"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-145"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-199"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-199"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is enabled (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-observation-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-observation-8"}},[t._v("#")]),t._v(" _is_observation "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_observation",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that an observation indeed belongs to the domain observation space.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\nobservation space provided by "),a("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(", but it can be overridden for\nfaster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-146"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-146"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-200"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-200"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the observation belongs to the domain observation space (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-terminal-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-terminal-2"}},[t._v("#")]),t._v(" _is_terminal "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_terminal",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"}],return:"D.T_agent[D.T_predicate]"}}}),t._v(" "),a("p",[t._v("Indicate whether a state is terminal.")]),t._v(" "),a("p",[t._v("A terminal state is a state with no outgoing transition (except to itself with value 0).")]),t._v(" "),a("h4",{attrs:{id:"parameters-147"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-147"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-201"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-201"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the state is terminal (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-transition-value-dependent-on-next-state-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-transition-value-dependent-on-next-state-2"}},[t._v("#")]),t._v(" _is_transition_value_dependent_on_next_state "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_transition_value_dependent_on_next_state",sig:{params:[{name:"self"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether _get_transition_value() requires the next_state parameter for its computation (cached).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("UncertainTransitions._is_transition_value_dependent_on_next_state()")]),t._v(" internally\ncalls "),a("code",[t._v("UncertainTransitions._is_transition_value_dependent_on_next_state_()")]),t._v(" the first time and automatically\ncaches its value to make future calls more efficient (since the returned value is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-202"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-202"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the transition value computation depends on next_state (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-transition-value-dependent-on-next-state-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-transition-value-dependent-on-next-state-3"}},[t._v("#")]),t._v(" _is_transition_value_dependent_on_next_state_ "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_transition_value_dependent_on_next_state_",sig:{params:[{name:"self"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether _get_transition_value() requires the next_state parameter for its computation.")]),t._v(" "),a("p",[t._v("This is a helper function called by default\nfrom "),a("code",[t._v("UncertainTransitions._is_transition_value_dependent_on_next_state()")]),t._v(", the difference being that the result\nis not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-203"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-203"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the transition value computation depends on next_state (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"render-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#render-8"}},[t._v("#")]),t._v(" _render "),a("Badge",{attrs:{text:"Renderable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_render",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"},{name:"**kwargs",annotation:"Any"}],return:"Any"}}}),t._v(" "),a("p",[t._v("Compute a visual render of the given memory (state or history), or the internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Renderable._render()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Renderable._render_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead of\nthe memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-148"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-148"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-204"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-204"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("A render (e.g. image) or nothing (if the function handles the display directly).")]),t._v(" "),a("h3",{attrs:{id:"render-from-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#render-from-4"}},[t._v("#")]),t._v(" _render_from "),a("Badge",{attrs:{text:"Renderable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_render_from",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"**kwargs",annotation:"Any"}],return:"Any"}}}),t._v(" "),a("p",[t._v("Compute a visual render of the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Renderable._render()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("h4",{attrs:{id:"parameters-149"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-149"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-205"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-205"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("A render (e.g. image) or nothing (if the function handles the display directly).")]),t._v(" "),a("h3",{attrs:{id:"reset-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#reset-8"}},[t._v("#")]),t._v(" _reset "),a("Badge",{attrs:{text:"Initializable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_reset",sig:{params:[{name:"self"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Reset the state of the environment and return an initial observation.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Initializable._reset()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Initializable._state_reset()")]),t._v(" (which returns an initial state). The boilerplate code automatically stores\nthe initial state into the "),a("code",[t._v("_memory")]),t._v(" attribute and samples a corresponding observation.")]),t._v(" "),a("h4",{attrs:{id:"returns-206"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-206"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("An initial observation.")]),t._v(" "),a("h3",{attrs:{id:"sample-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample-2"}},[t._v("#")]),t._v(" _sample "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_sample",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Sample one transition of the simulator's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Simulation._sample()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Simulation._state_sample()")]),t._v(" (which returns a transition outcome). The boilerplate code automatically\nsamples an observation corresponding to the sampled next state.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing simulator needs to be wrapped instead of implemented fully in scikit-decide (e.g. a\nsimulator), it is recommended to overwrite "),a("code",[t._v("Simulation._sample()")]),t._v(" to call the external simulator and not use\nthe "),a("code",[t._v("Simulation._state_sample()")]),t._v(" helper function.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-150"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-150"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-207"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-207"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of the sampled transition.")]),t._v(" "),a("h3",{attrs:{id:"set-memory-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#set-memory-2"}},[t._v("#")]),t._v(" _set_memory "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_set_memory",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"None"}}}),t._v(" "),a("p",[t._v("Set internal memory attribute "),a("code",[t._v("_memory")]),t._v(" to given one.")]),t._v(" "),a("p",[t._v('This can be useful to set a specific "starting point" before doing a rollout with\nsuccessive '),a("code",[t._v("Environment._step()")]),t._v(" calls.")]),t._v(" "),a("h4",{attrs:{id:"parameters-151"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-151"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to set internally.")])]),t._v(" "),a("h4",{attrs:{id:"example-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#example-2"}},[t._v("#")]),t._v(" Example")]),t._v(" "),a("div",{staticClass:"language-python extra-class"},[a("pre",{pre:!0,attrs:{class:"language-python"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Set simulation_domain memory to my_state (assuming Markovian domain)")]),t._v("\nsimulation_domain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("_set_memory"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("my_state"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Start a 100-steps rollout from here (applying my_action at every step)")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("for")]),t._v(" _ "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("in")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("range")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n simulation_domain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("_step"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("my_action"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("h3",{attrs:{id:"state-reset-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#state-reset-4"}},[t._v("#")]),t._v(" _state_reset "),a("Badge",{attrs:{text:"Initializable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_state_reset",sig:{params:[{name:"self"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("Reset the state of the environment and return an initial state.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Initializable._reset()")]),t._v(". It focuses on the state level, as\nopposed to the observation one for the latter.")]),t._v(" "),a("h4",{attrs:{id:"returns-208"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-208"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("An initial state.")]),t._v(" "),a("h3",{attrs:{id:"state-sample"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#state-sample"}},[t._v("#")]),t._v(" _state_sample "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_state_sample",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"TransitionOutcome[D.T_state, D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Compute one sample of the transition's dynamics.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Simulation._sample()")]),t._v(". It focuses on the state level, as\nopposed to the observation one for the latter.")]),t._v(" "),a("h4",{attrs:{id:"parameters-152"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-152"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-209"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-209"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The transition outcome of the sampled transition.")]),t._v(" "),a("h3",{attrs:{id:"state-step-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#state-step-4"}},[t._v("#")]),t._v(" _state_step "),a("Badge",{attrs:{text:"Environment",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_state_step",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"TransitionOutcome[D.T_state, D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Compute one step of the transition's dynamics.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Environment._step()")]),t._v(". It focuses on the state level, as opposed\nto the observation one for the latter.")]),t._v(" "),a("h4",{attrs:{id:"parameters-153"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-153"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the current memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-210"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-210"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The transition outcome of this step.")]),t._v(" "),a("h3",{attrs:{id:"step-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#step-8"}},[t._v("#")]),t._v(" _step "),a("Badge",{attrs:{text:"Environment",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_step",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Run one step of the environment's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Environment._step()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Environment._state_step()")]),t._v(" (which returns a transition outcome). The boilerplate code automatically stores\nnext state into the "),a("code",[t._v("_memory")]),t._v(" attribute and samples a corresponding observation.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing environment needs to be wrapped instead of implemented fully in scikit-decide (e.g. compiled\nATARI games), it is recommended to overwrite "),a("code",[t._v("Environment._step()")]),t._v(" to call the external environment and not\nuse the "),a("code",[t._v("Environment._state_step()")]),t._v(" helper function.")])]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Before calling "),a("code",[t._v("Environment._step()")]),t._v(" the first time or when the end of an episode is\nreached, "),a("code",[t._v("Initializable._reset()")]),t._v(" must be called to reset the environment's state.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-154"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-154"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the current memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-211"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-211"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of this step.")]),t._v(" "),a("h2",{attrs:{id:"gymplanningdomain"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#gymplanningdomain"}},[t._v("#")]),t._v(" GymPlanningDomain")]),t._v(" "),a("p",[t._v("This class wraps a cost-based deterministic OpenAI Gym environment as a domain\nusable by a classical planner")]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Using this class requires OpenAI Gym to be installed.")])]),t._v(" "),a("h3",{attrs:{id:"constructor-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#constructor-7"}},[t._v("#")]),t._v(" Constructor "),a("Badge",{attrs:{text:"GymPlanningDomain",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"GymPlanningDomain",sig:{params:[{name:"gym_env",annotation:"gym.Env"},{name:"set_state",default:"None",annotation:"Callable[[gym.Env, D.T_memory[D.T_state]], None]"},{name:"get_state",default:"None",annotation:"Callable[[gym.Env], D.T_memory[D.T_state]]"},{name:"termination_is_goal",default:"False",annotation:"bool"},{name:"max_depth",default:"50",annotation:"int"}],return:"None"}}}),t._v(" "),a("p",[t._v("Initialize GymPlanningDomain.")]),t._v(" "),a("h4",{attrs:{id:"parameters-155"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-155"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("gym_env")]),t._v(": The deterministic Gym environment (gym.env) to wrap.")]),t._v(" "),a("li",[a("strong",[t._v("set_state")]),t._v(": Function to call to set the state of the gym environment.\nIf None, default behavior is to deepcopy the environment when changing state")]),t._v(" "),a("li",[a("strong",[t._v("get_state")]),t._v(": Function to call to get the state of the gym environment.\nIf None, default behavior is to deepcopy the environment when changing state")]),t._v(" "),a("li",[a("strong",[t._v("termination_is_goal")]),t._v(": True if the termination condition is a goal (and not a dead-end)")]),t._v(" "),a("li",[a("strong",[t._v("max_depth")]),t._v(": maximum depth of states to explore from the initial state")])]),t._v(" "),a("h3",{attrs:{id:"check-value-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#check-value-9"}},[t._v("#")]),t._v(" check_value "),a("Badge",{attrs:{text:"Rewards",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"check_value",sig:{params:[{name:"self"},{name:"value",annotation:"Value[D.T_value]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that a value is compliant with its reward specification.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("This function returns always True by default because any kind of reward should be accepted at this level.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-156"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-156"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("value")]),t._v(": The value to check.")])]),t._v(" "),a("h4",{attrs:{id:"returns-212"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-212"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the value is compliant (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"get-action-space-16"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-16"}},[t._v("#")]),t._v(" get_action_space "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_action_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) domain action space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.get_action_space()")]),t._v(" internally calls "),a("code",[t._v("Events._get_action_space_()")]),t._v(" the first time and\nautomatically caches its value to make future calls more efficient (since the action space is assumed to be\nconstant).")]),t._v(" "),a("h4",{attrs:{id:"returns-213"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-213"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The action space.")]),t._v(" "),a("h3",{attrs:{id:"get-applicable-actions-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-11"}},[t._v("#")]),t._v(" get_applicable_actions "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_applicable_actions",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history), or in\nthe internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.get_applicable_actions()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_applicable_actions()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-157"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-157"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-214"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-214"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of applicable actions.")]),t._v(" "),a("h3",{attrs:{id:"get-enabled-events-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-11"}},[t._v("#")]),t._v(" get_enabled_events "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_enabled_events",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"Space[D.T_event]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory), or in the internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.get_enabled_events()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_enabled_events()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead of\nthe memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-158"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-158"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-215"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-215"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of enabled events.")]),t._v(" "),a("h3",{attrs:{id:"get-goals"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-goals"}},[t._v("#")]),t._v(" get_goals "),a("Badge",{attrs:{text:"Goals",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_goals",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) domain goals space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Goals.get_goals()")]),t._v(" internally calls "),a("code",[t._v("Goals._get_goals_()")]),t._v(" the first time and automatically caches its\nvalue to make future calls more efficient (since the goals space is assumed to be constant).")]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Goal states are assumed to be fully observable (i.e. observation = state) so that there is never uncertainty\nabout whether the goal has been reached or not. This assumption guarantees that any policy that does not\nreach the goal with certainty incurs in infinite expected cost. - "),a("em",[t._v("Geffner, 2013: A Concise Introduction to\nModels and Methods for Automated Planning")])])]),t._v(" "),a("h4",{attrs:{id:"returns-216"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-216"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The goals space.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-7"}},[t._v("#")]),t._v(" get_initial_state "),a("Badge",{attrs:{text:"DeterministicInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_initial_state",sig:{params:[{name:"self"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("Get the (cached) initial state.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("DeterministicInitialized.get_initial_state()")]),t._v(" internally\ncalls "),a("code",[t._v("DeterministicInitialized._get_initial_state_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the initial state is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-217"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-217"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The initial state.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-distribution-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-distribution-7"}},[t._v("#")]),t._v(" get_initial_state_distribution "),a("Badge",{attrs:{text:"UncertainInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_initial_state_distribution",sig:{params:[{name:"self"}],return:"Distribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("Get the (cached) probability distribution of initial states.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("UncertainInitialized.get_initial_state_distribution()")]),t._v(" internally\ncalls "),a("code",[t._v("UncertainInitialized._get_initial_state_distribution_()")]),t._v(" the first time and automatically caches its value\nto make future calls more efficient (since the initial state distribution is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-218"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-218"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of initial states.")]),t._v(" "),a("h3",{attrs:{id:"get-next-state-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-next-state-3"}},[t._v("#")]),t._v(" get_next_state "),a("Badge",{attrs:{text:"DeterministicTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_next_state",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("Get the next state given a memory and action.")]),t._v(" "),a("h4",{attrs:{id:"parameters-159"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-159"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-219"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-219"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The deterministic next state.")]),t._v(" "),a("h3",{attrs:{id:"get-next-state-distribution-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-next-state-distribution-3"}},[t._v("#")]),t._v(" get_next_state_distribution "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_next_state_distribution",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"DiscreteDistribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("Get the discrete probability distribution of next state given a memory and action.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("In the Markovian case (memory only holds last state "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.061ex",height:"1.023ex",viewBox:"0 -442 469 452"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})])])])])]),t._v("), given an action "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.197ex",height:"1.02ex",viewBox:"0 -441 529 451"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})])])])])]),t._v(", this function can\nbe mathematically represented by "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.292ex",height:"2.283ex",viewBox:"0 -759 4107.1 1009"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"50",d:"M287 628Q287 635 230 637Q206 637 199 638T192 648Q192 649 194 659Q200 679 203 681T397 683Q587 682 600 680Q664 669 707 631T751 530Q751 453 685 389Q616 321 507 303Q500 302 402 301H307L277 182Q247 66 247 59Q247 55 248 54T255 50T272 48T305 46H336Q342 37 342 35Q342 19 335 5Q330 0 319 0Q316 0 282 1T182 2Q120 2 87 2T51 1Q33 1 33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM645 554Q645 567 643 575T634 597T609 619T560 635Q553 636 480 637Q463 637 445 637T416 636T404 636Q391 635 386 627Q384 621 367 550T332 412T314 344Q314 342 395 342H407H430Q542 342 590 392Q617 419 631 471T645 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(751, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"msup",transform:"translate(1140, 0)"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"53",d:"M308 24Q367 24 416 76T466 197Q466 260 414 284Q308 311 278 321T236 341Q176 383 176 462Q176 523 208 573T273 648Q302 673 343 688T407 704H418H425Q521 704 564 640Q565 640 577 653T603 682T623 704Q624 704 627 704T632 705Q645 705 645 698T617 577T585 459T569 456Q549 456 549 465Q549 471 550 475Q550 478 551 494T553 520Q553 554 544 579T526 616T501 641Q465 662 419 662Q362 662 313 616T263 510Q263 480 278 458T319 427Q323 425 389 408T456 390Q490 379 522 342T554 242Q554 216 546 186Q541 164 528 137T492 78T426 18T332 -20Q320 -22 298 -22Q199 -22 144 33L134 44L106 13Q83 -14 78 -18T65 -22Q52 -22 52 -14Q52 -11 110 221Q112 227 130 227H143Q149 221 149 216Q149 214 148 207T144 186T142 153Q144 114 160 87T203 47T255 29T308 24Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(613, 363) scale(0.707)"}},[a("path",{attrs:{"data-c":"2032",d:"M79 43Q73 43 52 49T30 61Q30 68 85 293T146 528Q161 560 198 560Q218 560 240 545T262 501Q262 496 260 486Q259 479 173 263T84 45T79 43Z"}})])]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1997.5, 0)"}},[a("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(2275.5, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2744.5, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(3189.1, 0)"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3718.1, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(", where "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.05ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.94ex",height:"1.767ex",viewBox:"0 -759 857.5 781"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"msup"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"53",d:"M308 24Q367 24 416 76T466 197Q466 260 414 284Q308 311 278 321T236 341Q176 383 176 462Q176 523 208 573T273 648Q302 673 343 688T407 704H418H425Q521 704 564 640Q565 640 577 653T603 682T623 704Q624 704 627 704T632 705Q645 705 645 698T617 577T585 459T569 456Q549 456 549 465Q549 471 550 475Q550 478 551 494T553 520Q553 554 544 579T526 616T501 641Q465 662 419 662Q362 662 313 616T263 510Q263 480 278 458T319 427Q323 425 389 408T456 390Q490 379 522 342T554 242Q554 216 546 186Q541 164 528 137T492 78T426 18T332 -20Q320 -22 298 -22Q199 -22 144 33L134 44L106 13Q83 -14 78 -18T65 -22Q52 -22 52 -14Q52 -11 110 221Q112 227 130 227H143Q149 221 149 216Q149 214 148 207T144 186T142 153Q144 114 160 87T203 47T255 29T308 24Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(613, 363) scale(0.707)"}},[a("path",{attrs:{"data-c":"2032",d:"M79 43Q73 43 52 49T30 61Q30 68 85 293T146 528Q161 560 198 560Q218 560 240 545T262 501Q262 496 260 486Q259 479 173 263T84 45T79 43Z"}})])])])])])]),t._v(" is the next state random variable.")],1)]),t._v(" "),a("h4",{attrs:{id:"parameters-160"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-160"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-220"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-220"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The discrete probability distribution of next state.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-9"}},[t._v("#")]),t._v(" get_observation "),a("Badge",{attrs:{text:"TransformedObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_observation",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Get the deterministic observation given a state and action.")]),t._v(" "),a("h4",{attrs:{id:"parameters-161"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-161"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-221"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-221"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-distribution-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-distribution-9"}},[t._v("#")]),t._v(" get_observation_distribution "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_observation_distribution",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"Distribution[D.T_agent[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the probability distribution of the observation given a state and action.")]),t._v(" "),a("p",[t._v("In mathematical terms (discrete case), given an action "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.197ex",height:"1.02ex",viewBox:"0 -441 529 451"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})])])])])]),t._v(", this function represents: "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.078ex",height:"2.262ex",viewBox:"0 -750 4012.7 1000"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"50",d:"M287 628Q287 635 230 637Q206 637 199 638T192 648Q192 649 194 659Q200 679 203 681T397 683Q587 682 600 680Q664 669 707 631T751 530Q751 453 685 389Q616 321 507 303Q500 302 402 301H307L277 182Q247 66 247 59Q247 55 248 54T255 50T272 48T305 46H336Q342 37 342 35Q342 19 335 5Q330 0 319 0Q316 0 282 1T182 2Q120 2 87 2T51 1Q33 1 33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM645 554Q645 567 643 575T634 597T609 619T560 635Q553 636 480 637Q463 637 445 637T416 636T404 636Q391 635 386 627Q384 621 367 550T332 412T314 344Q314 342 395 342H407H430Q542 342 590 392Q617 419 631 471T645 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(751, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(1140, 0)"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1903, 0)"}},[a("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(2181, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2650, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(3094.7, 0)"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3623.7, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(",\nwhere "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.05ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.726ex",height:"1.643ex",viewBox:"0 -704 763 726"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})])])])])]),t._v(" is the random variable of the observation.")],1),t._v(" "),a("h4",{attrs:{id:"parameters-162"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-162"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-222"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-222"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-space-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-13"}},[t._v("#")]),t._v(" get_observation_space "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_observation_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) observation space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("PartiallyObservable.get_observation_space()")]),t._v(" internally\ncalls "),a("code",[t._v("PartiallyObservable._get_observation_space_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the observation space is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-223"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-223"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The observation space.")]),t._v(" "),a("h3",{attrs:{id:"get-transition-value-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-transition-value-3"}},[t._v("#")]),t._v(" get_transition_value "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_transition_value",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"},{name:"next_state",default:"None",annotation:"Optional[D.T_state]"}],return:"D.T_agent[Value[D.T_value]]"}}}),t._v(" "),a("p",[t._v("Get the value (reward or cost) of a transition.")]),t._v(" "),a("p",[t._v("The transition to consider is defined by the function parameters.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("If this function never depends on the next_state parameter for its computation, it is recommended to\nindicate it by overriding "),a("code",[t._v("UncertainTransitions._is_transition_value_dependent_on_next_state_()")]),t._v(" to return\nFalse. This information can then be exploited by solvers to avoid computing next state to evaluate a\ntransition value (more efficient).")])]),t._v(" "),a("h4",{attrs:{id:"parameters-163"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-163"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")]),t._v(" "),a("li",[a("strong",[t._v("next_state")]),t._v(": The next state in which the transition ends (if needed for the computation).")])]),t._v(" "),a("h4",{attrs:{id:"returns-224"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-224"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The transition value (reward or cost).")]),t._v(" "),a("h3",{attrs:{id:"is-action-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-action-11"}},[t._v("#")]),t._v(" is_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_action",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an event is an action (i.e. a controllable event for the agents).")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\naction space provided by "),a("code",[t._v("Events.get_action_space()")]),t._v(", but it can be overridden for faster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-164"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-164"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("event")]),t._v(": The event to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-225"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-225"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is an action (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-applicable-action-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-11"}},[t._v("#")]),t._v(" is_applicable_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_applicable_action",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an action is applicable in the given memory (state or history), or in the internal one if\nomitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.is_applicable_action()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_applicable_action()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead\nof the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-165"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-165"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-226"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-226"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the action is applicable (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-enabled-event-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-11"}},[t._v("#")]),t._v(" is_enabled_event "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_enabled_event",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an uncontrollable event is enabled in the given memory (state or history), or in the\ninternal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.is_enabled_event()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_enabled_event()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead of\nthe memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-166"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-166"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-227"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-227"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is enabled (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-goal"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-goal"}},[t._v("#")]),t._v(" is_goal "),a("Badge",{attrs:{text:"Goals",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_goal",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"D.T_agent[D.T_predicate]"}}}),t._v(" "),a("p",[t._v("Indicate whether an observation belongs to the goals.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\ngoals space provided by "),a("code",[t._v("Goals.get_goals()")]),t._v(", but it can be overridden for faster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-167"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-167"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-228"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-228"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the observation is a goal (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-observation-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-observation-9"}},[t._v("#")]),t._v(" is_observation "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_observation",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that an observation indeed belongs to the domain observation space.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\nobservation space provided by "),a("code",[t._v("PartiallyObservable.get_observation_space()")]),t._v(", but it can be overridden for\nfaster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-168"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-168"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-229"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-229"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the observation belongs to the domain observation space (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-terminal-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-terminal-3"}},[t._v("#")]),t._v(" is_terminal "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_terminal",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"}],return:"D.T_agent[D.T_predicate]"}}}),t._v(" "),a("p",[t._v("Indicate whether a state is terminal.")]),t._v(" "),a("p",[t._v("A terminal state is a state with no outgoing transition (except to itself with value 0).")]),t._v(" "),a("h4",{attrs:{id:"parameters-169"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-169"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-230"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-230"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the state is terminal (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-transition-value-dependent-on-next-state-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-transition-value-dependent-on-next-state-4"}},[t._v("#")]),t._v(" is_transition_value_dependent_on_next_state "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_transition_value_dependent_on_next_state",sig:{params:[{name:"self"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether get_transition_value() requires the next_state parameter for its computation (cached).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("UncertainTransitions.is_transition_value_dependent_on_next_state()")]),t._v(" internally\ncalls "),a("code",[t._v("UncertainTransitions._is_transition_value_dependent_on_next_state_()")]),t._v(" the first time and automatically\ncaches its value to make future calls more efficient (since the returned value is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-231"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-231"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the transition value computation depends on next_state (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"render-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#render-9"}},[t._v("#")]),t._v(" render "),a("Badge",{attrs:{text:"Renderable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"render",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"},{name:"**kwargs",annotation:"Any"}],return:"Any"}}}),t._v(" "),a("p",[t._v("Compute a visual render of the given memory (state or history), or the internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Renderable.render()")]),t._v(" provides some boilerplate code and internally calls "),a("code",[t._v("Renderable._render()")]),t._v(". The\nboilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead of the memory parameter whenever the latter\nis None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-170"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-170"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-232"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-232"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("A render (e.g. image) or nothing (if the function handles the display directly).")]),t._v(" "),a("h3",{attrs:{id:"reset-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#reset-9"}},[t._v("#")]),t._v(" reset "),a("Badge",{attrs:{text:"Initializable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"reset",sig:{params:[{name:"self"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Reset the state of the environment and return an initial observation.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Initializable.reset()")]),t._v(" provides some boilerplate code and internally calls "),a("code",[t._v("Initializable._reset()")]),t._v("\n(which returns an initial state). The boilerplate code automatically stores the initial state into the "),a("code",[t._v("_memory")]),t._v("\nattribute and samples a corresponding observation.")]),t._v(" "),a("h4",{attrs:{id:"returns-233"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-233"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("An initial observation.")]),t._v(" "),a("h3",{attrs:{id:"sample-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample-3"}},[t._v("#")]),t._v(" sample "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"sample",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Sample one transition of the simulator's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Simulation.sample()")]),t._v(" provides some boilerplate code and internally calls "),a("code",[t._v("Simulation._sample()")]),t._v("\n(which returns a transition outcome). The boilerplate code automatically samples an observation corresponding to\nthe sampled next state.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing simulator needs to be wrapped instead of implemented fully in scikit-decide (e.g. a\nsimulator), it is recommended to overwrite "),a("code",[t._v("Simulation.sample()")]),t._v(" to call the external simulator and not use\nthe "),a("code",[t._v("Simulation._sample()")]),t._v(" helper function.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-171"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-171"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-234"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-234"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of the sampled transition.")]),t._v(" "),a("h3",{attrs:{id:"set-memory-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#set-memory-3"}},[t._v("#")]),t._v(" set_memory "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"set_memory",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"None"}}}),t._v(" "),a("p",[t._v("Set internal memory attribute "),a("code",[t._v("_memory")]),t._v(" to given one.")]),t._v(" "),a("p",[t._v('This can be useful to set a specific "starting point" before doing a rollout with successive '),a("code",[t._v("Environment.step()")]),t._v("\ncalls.")]),t._v(" "),a("h4",{attrs:{id:"parameters-172"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-172"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to set internally.")])]),t._v(" "),a("h4",{attrs:{id:"example-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#example-3"}},[t._v("#")]),t._v(" Example")]),t._v(" "),a("div",{staticClass:"language-python extra-class"},[a("pre",{pre:!0,attrs:{class:"language-python"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Set simulation_domain memory to my_state (assuming Markovian domain)")]),t._v("\nsimulation_domain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("set_memory"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("my_state"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Start a 100-steps rollout from here (applying my_action at every step)")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("for")]),t._v(" _ "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("in")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("range")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n simulation_domain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("step"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("my_action"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("h3",{attrs:{id:"solve-with-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#solve-with-5"}},[t._v("#")]),t._v(" solve_with "),a("Badge",{attrs:{text:"Domain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"solve_with",sig:{params:[{name:"solver",annotation:"Solver"},{name:"domain_factory",default:"None",annotation:"Optional[Callable[[], Domain]]"},{name:"load_path",default:"None",annotation:"Optional[str]"}],return:"Solver"}}}),t._v(" "),a("p",[t._v("Solve the domain with a new or loaded solver and return it auto-cast to the level of the domain.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Solver.check_domain()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Solver._check_domain_additional()")]),t._v(' (which returns True by default but can be overridden to define\nspecific checks in addition to the "domain requirements"). The boilerplate code automatically checks whether all\ndomain requirements are met.')]),t._v(" "),a("h4",{attrs:{id:"parameters-173"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-173"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("solver")]),t._v(": The solver.")]),t._v(" "),a("li",[a("strong",[t._v("domain_factory")]),t._v(": A callable with no argument returning the domain to solve (factory is the domain class if None).")]),t._v(" "),a("li",[a("strong",[t._v("load_path")]),t._v(": The path to restore the solver state from (if None, the solving process will be launched instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-235"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-235"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The new solver (auto-cast to the level of the domain).")]),t._v(" "),a("h3",{attrs:{id:"step-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#step-9"}},[t._v("#")]),t._v(" step "),a("Badge",{attrs:{text:"Environment",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"step",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Run one step of the environment's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Environment.step()")]),t._v(" provides some boilerplate code and internally calls "),a("code",[t._v("Environment._step()")]),t._v(" (which\nreturns a transition outcome). The boilerplate code automatically stores next state into the "),a("code",[t._v("_memory")]),t._v(" attribute\nand samples a corresponding observation.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing environment needs to be wrapped instead of implemented fully in scikit-decide (e.g. compiled\nATARI games), it is recommended to overwrite "),a("code",[t._v("Environment.step()")]),t._v(" to call the external environment and not\nuse the "),a("code",[t._v("Environment._step()")]),t._v(" helper function.")])]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Before calling "),a("code",[t._v("Environment.step()")]),t._v(" the first time or when the end of an episode is\nreached, "),a("code",[t._v("Initializable.reset()")]),t._v(" must be called to reset the environment's state.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-174"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-174"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the current memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-236"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-236"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of this step.")]),t._v(" "),a("h3",{attrs:{id:"unwrapped-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#unwrapped-5"}},[t._v("#")]),t._v(" unwrapped "),a("Badge",{attrs:{text:"DeterministicGymDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"unwrapped",sig:{params:[{name:"self"}]}}}),t._v(" "),a("p",[t._v("Unwrap the deterministic Gym environment (gym.env) and return it.")]),t._v(" "),a("h4",{attrs:{id:"returns-237"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-237"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The original Gym environment.")]),t._v(" "),a("h3",{attrs:{id:"check-value-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#check-value-10"}},[t._v("#")]),t._v(" _check_value "),a("Badge",{attrs:{text:"Rewards",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_check_value",sig:{params:[{name:"self"},{name:"value",annotation:"Value[D.T_value]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that a value is compliant with its cost specification (must be positive).")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("This function calls "),a("code",[t._v("PositiveCost._is_positive()")]),t._v(" to determine if a value is positive (can be overridden for\nadvanced value types).")])]),t._v(" "),a("h4",{attrs:{id:"parameters-175"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-175"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("value")]),t._v(": The value to check.")])]),t._v(" "),a("h4",{attrs:{id:"returns-238"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-238"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the value is compliant (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"get-action-space-17"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-17"}},[t._v("#")]),t._v(" _get_action_space "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_action_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) domain action space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._get_action_space()")]),t._v(" internally calls "),a("code",[t._v("Events._get_action_space_()")]),t._v(" the first time and\nautomatically caches its value to make future calls more efficient (since the action space is assumed to be\nconstant).")]),t._v(" "),a("h4",{attrs:{id:"returns-239"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-239"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The action space.")]),t._v(" "),a("h3",{attrs:{id:"get-action-space-18"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-18"}},[t._v("#")]),t._v(" _get_action_space_ "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_action_space_",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the domain action space (finite or infinite set).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._get_action_space()")]),t._v(", the difference being that the\nresult is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-240"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-240"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The action space.")]),t._v(" "),a("h3",{attrs:{id:"get-applicable-actions-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-12"}},[t._v("#")]),t._v(" _get_applicable_actions "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_applicable_actions",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history), or in\nthe internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._get_applicable_actions()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_applicable_actions_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-176"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-176"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-241"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-241"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of applicable actions.")]),t._v(" "),a("h3",{attrs:{id:"get-applicable-actions-from-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-from-6"}},[t._v("#")]),t._v(" _get_applicable_actions_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_applicable_actions_from",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._get_applicable_actions()")]),t._v(", the difference being that\nthe memory parameter is mandatory here.")]),t._v(" "),a("h4",{attrs:{id:"parameters-177"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-177"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-242"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-242"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of applicable actions.")]),t._v(" "),a("h3",{attrs:{id:"get-enabled-events-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-12"}},[t._v("#")]),t._v(" _get_enabled_events "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_enabled_events",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"Space[D.T_event]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory), or in the internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._get_enabled_events()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_enabled_events_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-178"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-178"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-243"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-243"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of enabled events.")]),t._v(" "),a("h3",{attrs:{id:"get-enabled-events-from-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-from-6"}},[t._v("#")]),t._v(" _get_enabled_events_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_enabled_events_from",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"Space[D.T_event]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._get_enabled_events()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("h4",{attrs:{id:"parameters-179"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-179"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-244"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-244"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of enabled events.")]),t._v(" "),a("h3",{attrs:{id:"get-goals-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-goals-2"}},[t._v("#")]),t._v(" _get_goals "),a("Badge",{attrs:{text:"Goals",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_goals",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) domain goals space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Goals._get_goals()")]),t._v(" internally calls "),a("code",[t._v("Goals._get_goals_()")]),t._v(" the first time and automatically caches\nits value to make future calls more efficient (since the goals space is assumed to be constant).")]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Goal states are assumed to be fully observable (i.e. observation = state) so that there is never uncertainty\nabout whether the goal has been reached or not. This assumption guarantees that any policy that does not\nreach the goal with certainty incurs in infinite expected cost. - "),a("em",[t._v("Geffner, 2013: A Concise Introduction to\nModels and Methods for Automated Planning")])])]),t._v(" "),a("h4",{attrs:{id:"returns-245"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-245"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The goals space.")]),t._v(" "),a("h3",{attrs:{id:"get-goals-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-goals-3"}},[t._v("#")]),t._v(" _get_goals_ "),a("Badge",{attrs:{text:"Goals",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_goals_",sig:{params:[{name:"self"}]}}}),t._v(" "),a("p",[t._v("Get the domain goals space (finite or infinite set).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Goals._get_goals()")]),t._v(", the difference being that the result is\nnot cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-246"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-246"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The goals space.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-8"}},[t._v("#")]),t._v(" _get_initial_state "),a("Badge",{attrs:{text:"DeterministicInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_initial_state",sig:{params:[{name:"self"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("Get the (cached) initial state.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("DeterministicInitialized._get_initial_state()")]),t._v(" internally\ncalls "),a("code",[t._v("DeterministicInitialized._get_initial_state_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the initial state is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-247"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-247"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The initial state.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-9"}},[t._v("#")]),t._v(" _get_initial_state_ "),a("Badge",{attrs:{text:"DeterministicInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_initial_state_",sig:{params:[{name:"self"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("Get the initial state.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("DeterministicInitialized._get_initial_state()")]),t._v(", the difference\nbeing that the result is not cached here.")]),t._v(" "),a("h4",{attrs:{id:"returns-248"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-248"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The initial state.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-distribution-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-distribution-8"}},[t._v("#")]),t._v(" _get_initial_state_distribution "),a("Badge",{attrs:{text:"UncertainInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_initial_state_distribution",sig:{params:[{name:"self"}],return:"Distribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("Get the (cached) probability distribution of initial states.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("UncertainInitialized._get_initial_state_distribution()")]),t._v(" internally\ncalls "),a("code",[t._v("UncertainInitialized._get_initial_state_distribution_()")]),t._v(" the first time and automatically caches its value\nto make future calls more efficient (since the initial state distribution is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-249"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-249"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of initial states.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-distribution-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-distribution-9"}},[t._v("#")]),t._v(" _get_initial_state_distribution_ "),a("Badge",{attrs:{text:"UncertainInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_initial_state_distribution_",sig:{params:[{name:"self"}],return:"Distribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("Get the probability distribution of initial states.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("UncertainInitialized._get_initial_state_distribution()")]),t._v(", the\ndifference being that the result is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-250"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-250"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of initial states.")]),t._v(" "),a("h3",{attrs:{id:"get-memory-maxlen-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-memory-maxlen-9"}},[t._v("#")]),t._v(" _get_memory_maxlen "),a("Badge",{attrs:{text:"History",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_memory_maxlen",sig:{params:[{name:"self"}],return:"int"}}}),t._v(" "),a("p",[t._v("Get the (cached) memory max length.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("FiniteHistory._get_memory_maxlen()")]),t._v(" internally calls "),a("code",[t._v("FiniteHistory._get_memory_maxlen_()")]),t._v(" the first\ntime and automatically caches its value to make future calls more efficient (since the memory max length is\nassumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-251"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-251"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The memory max length.")]),t._v(" "),a("h3",{attrs:{id:"get-memory-maxlen-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-memory-maxlen-10"}},[t._v("#")]),t._v(" _get_memory_maxlen_ "),a("Badge",{attrs:{text:"FiniteHistory",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_memory_maxlen_",sig:{params:[{name:"self"}],return:"int"}}}),t._v(" "),a("p",[t._v("Get the memory max length.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("FiniteHistory._get_memory_maxlen()")]),t._v(", the difference being that\nthe result is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-252"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-252"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The memory max length.")]),t._v(" "),a("h3",{attrs:{id:"get-next-state-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-next-state-4"}},[t._v("#")]),t._v(" _get_next_state "),a("Badge",{attrs:{text:"DeterministicTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_next_state",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("Get the next state given a memory and action.")]),t._v(" "),a("h4",{attrs:{id:"parameters-180"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-180"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-253"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-253"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The deterministic next state.")]),t._v(" "),a("h3",{attrs:{id:"get-next-state-distribution-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-next-state-distribution-4"}},[t._v("#")]),t._v(" _get_next_state_distribution "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_next_state_distribution",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"SingleValueDistribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("Get the discrete probability distribution of next state given a memory and action.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("In the Markovian case (memory only holds last state "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.061ex",height:"1.023ex",viewBox:"0 -442 469 452"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})])])])])]),t._v("), given an action "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.197ex",height:"1.02ex",viewBox:"0 -441 529 451"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})])])])])]),t._v(", this function can\nbe mathematically represented by "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.292ex",height:"2.283ex",viewBox:"0 -759 4107.1 1009"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"50",d:"M287 628Q287 635 230 637Q206 637 199 638T192 648Q192 649 194 659Q200 679 203 681T397 683Q587 682 600 680Q664 669 707 631T751 530Q751 453 685 389Q616 321 507 303Q500 302 402 301H307L277 182Q247 66 247 59Q247 55 248 54T255 50T272 48T305 46H336Q342 37 342 35Q342 19 335 5Q330 0 319 0Q316 0 282 1T182 2Q120 2 87 2T51 1Q33 1 33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM645 554Q645 567 643 575T634 597T609 619T560 635Q553 636 480 637Q463 637 445 637T416 636T404 636Q391 635 386 627Q384 621 367 550T332 412T314 344Q314 342 395 342H407H430Q542 342 590 392Q617 419 631 471T645 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(751, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"msup",transform:"translate(1140, 0)"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"53",d:"M308 24Q367 24 416 76T466 197Q466 260 414 284Q308 311 278 321T236 341Q176 383 176 462Q176 523 208 573T273 648Q302 673 343 688T407 704H418H425Q521 704 564 640Q565 640 577 653T603 682T623 704Q624 704 627 704T632 705Q645 705 645 698T617 577T585 459T569 456Q549 456 549 465Q549 471 550 475Q550 478 551 494T553 520Q553 554 544 579T526 616T501 641Q465 662 419 662Q362 662 313 616T263 510Q263 480 278 458T319 427Q323 425 389 408T456 390Q490 379 522 342T554 242Q554 216 546 186Q541 164 528 137T492 78T426 18T332 -20Q320 -22 298 -22Q199 -22 144 33L134 44L106 13Q83 -14 78 -18T65 -22Q52 -22 52 -14Q52 -11 110 221Q112 227 130 227H143Q149 221 149 216Q149 214 148 207T144 186T142 153Q144 114 160 87T203 47T255 29T308 24Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(613, 363) scale(0.707)"}},[a("path",{attrs:{"data-c":"2032",d:"M79 43Q73 43 52 49T30 61Q30 68 85 293T146 528Q161 560 198 560Q218 560 240 545T262 501Q262 496 260 486Q259 479 173 263T84 45T79 43Z"}})])]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1997.5, 0)"}},[a("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(2275.5, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2744.5, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(3189.1, 0)"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3718.1, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(", where "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.05ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.94ex",height:"1.767ex",viewBox:"0 -759 857.5 781"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"msup"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"53",d:"M308 24Q367 24 416 76T466 197Q466 260 414 284Q308 311 278 321T236 341Q176 383 176 462Q176 523 208 573T273 648Q302 673 343 688T407 704H418H425Q521 704 564 640Q565 640 577 653T603 682T623 704Q624 704 627 704T632 705Q645 705 645 698T617 577T585 459T569 456Q549 456 549 465Q549 471 550 475Q550 478 551 494T553 520Q553 554 544 579T526 616T501 641Q465 662 419 662Q362 662 313 616T263 510Q263 480 278 458T319 427Q323 425 389 408T456 390Q490 379 522 342T554 242Q554 216 546 186Q541 164 528 137T492 78T426 18T332 -20Q320 -22 298 -22Q199 -22 144 33L134 44L106 13Q83 -14 78 -18T65 -22Q52 -22 52 -14Q52 -11 110 221Q112 227 130 227H143Q149 221 149 216Q149 214 148 207T144 186T142 153Q144 114 160 87T203 47T255 29T308 24Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(613, 363) scale(0.707)"}},[a("path",{attrs:{"data-c":"2032",d:"M79 43Q73 43 52 49T30 61Q30 68 85 293T146 528Q161 560 198 560Q218 560 240 545T262 501Q262 496 260 486Q259 479 173 263T84 45T79 43Z"}})])])])])])]),t._v(" is the next state random variable.")],1)]),t._v(" "),a("h4",{attrs:{id:"parameters-181"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-181"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-254"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-254"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The discrete probability distribution of next state.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-10"}},[t._v("#")]),t._v(" _get_observation "),a("Badge",{attrs:{text:"TransformedObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Get the deterministic observation given a state and action.")]),t._v(" "),a("h4",{attrs:{id:"parameters-182"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-182"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-255"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-255"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-distribution-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-distribution-10"}},[t._v("#")]),t._v(" _get_observation_distribution "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation_distribution",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"Distribution[D.T_agent[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the probability distribution of the observation given a state and action.")]),t._v(" "),a("p",[t._v("In mathematical terms (discrete case), given an action "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.197ex",height:"1.02ex",viewBox:"0 -441 529 451"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})])])])])]),t._v(", this function represents: "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.078ex",height:"2.262ex",viewBox:"0 -750 4012.7 1000"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"50",d:"M287 628Q287 635 230 637Q206 637 199 638T192 648Q192 649 194 659Q200 679 203 681T397 683Q587 682 600 680Q664 669 707 631T751 530Q751 453 685 389Q616 321 507 303Q500 302 402 301H307L277 182Q247 66 247 59Q247 55 248 54T255 50T272 48T305 46H336Q342 37 342 35Q342 19 335 5Q330 0 319 0Q316 0 282 1T182 2Q120 2 87 2T51 1Q33 1 33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM645 554Q645 567 643 575T634 597T609 619T560 635Q553 636 480 637Q463 637 445 637T416 636T404 636Q391 635 386 627Q384 621 367 550T332 412T314 344Q314 342 395 342H407H430Q542 342 590 392Q617 419 631 471T645 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(751, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(1140, 0)"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1903, 0)"}},[a("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(2181, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2650, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(3094.7, 0)"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3623.7, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(",\nwhere "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.05ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.726ex",height:"1.643ex",viewBox:"0 -704 763 726"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})])])])])]),t._v(" is the random variable of the observation.")],1),t._v(" "),a("h4",{attrs:{id:"parameters-183"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-183"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-256"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-256"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-space-14"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-14"}},[t._v("#")]),t._v(" _get_observation_space "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) observation space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(" internally\ncalls "),a("code",[t._v("PartiallyObservable._get_observation_space_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the observation space is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-257"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-257"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The observation space.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-space-15"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-15"}},[t._v("#")]),t._v(" _get_observation_space_ "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation_space_",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the observation space (finite or infinite set).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(", the difference\nbeing that the result is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-258"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-258"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The observation space.")]),t._v(" "),a("h3",{attrs:{id:"get-transition-value-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-transition-value-4"}},[t._v("#")]),t._v(" _get_transition_value "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_transition_value",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"},{name:"next_state",default:"None",annotation:"Optional[D.T_state]"}],return:"D.T_agent[Value[D.T_value]]"}}}),t._v(" "),a("p",[t._v("Get the value (reward or cost) of a transition.")]),t._v(" "),a("p",[t._v("The transition to consider is defined by the function parameters.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("If this function never depends on the next_state parameter for its computation, it is recommended to\nindicate it by overriding "),a("code",[t._v("UncertainTransitions._is_transition_value_dependent_on_next_state_()")]),t._v(" to return\nFalse. This information can then be exploited by solvers to avoid computing next state to evaluate a\ntransition value (more efficient).")])]),t._v(" "),a("h4",{attrs:{id:"parameters-184"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-184"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")]),t._v(" "),a("li",[a("strong",[t._v("next_state")]),t._v(": The next state in which the transition ends (if needed for the computation).")])]),t._v(" "),a("h4",{attrs:{id:"returns-259"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-259"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The transition value (reward or cost).")]),t._v(" "),a("h3",{attrs:{id:"init-memory-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#init-memory-5"}},[t._v("#")]),t._v(" _init_memory "),a("Badge",{attrs:{text:"History",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_init_memory",sig:{params:[{name:"self"},{name:"state",default:"None",annotation:"Optional[D.T_state]"}],return:"D.T_memory[D.T_state]"}}}),t._v(" "),a("p",[t._v("Initialize memory (possibly with a state) according to its specification and return it.")]),t._v(" "),a("p",[t._v("This function is automatically called by "),a("code",[t._v("Initializable._reset()")]),t._v(" to reinitialize the internal memory whenever\nthe domain is used as an environment.")]),t._v(" "),a("h4",{attrs:{id:"parameters-185"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-185"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": An optional state to initialize the memory with (typically the initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-260"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-260"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The new initialized memory.")]),t._v(" "),a("h3",{attrs:{id:"is-action-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-action-12"}},[t._v("#")]),t._v(" _is_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_action",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an event is an action (i.e. a controllable event for the agents).")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\naction space provided by "),a("code",[t._v("Events._get_action_space()")]),t._v(", but it can be overridden for faster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-186"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-186"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("event")]),t._v(": The event to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-261"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-261"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is an action (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-applicable-action-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-12"}},[t._v("#")]),t._v(" _is_applicable_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_applicable_action",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an action is applicable in the given memory (state or history), or in the internal one if\nomitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._is_applicable_action()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_applicable_action_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-187"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-187"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-262"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-262"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the action is applicable (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-applicable-action-from-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-from-6"}},[t._v("#")]),t._v(" _is_applicable_action_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_applicable_action_from",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an action is applicable in the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._is_applicable_action()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the space of\napplicable actions provided by "),a("code",[t._v("Events._get_applicable_actions_from()")]),t._v(", but it can be overridden for faster\nimplementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-188"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-188"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-263"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-263"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the action is applicable (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-enabled-event-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-12"}},[t._v("#")]),t._v(" _is_enabled_event "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_enabled_event",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an uncontrollable event is enabled in the given memory (state or history), or in the\ninternal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._is_enabled_event()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_enabled_event_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead\nof the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-189"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-189"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-264"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-264"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is enabled (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-enabled-event-from-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-from-6"}},[t._v("#")]),t._v(" _is_enabled_event_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_enabled_event_from",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an event is enabled in the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._is_enabled_event()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the space of\nenabled events provided by "),a("code",[t._v("Events._get_enabled_events_from()")]),t._v(", but it can be overridden for faster\nimplementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-190"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-190"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-265"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-265"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is enabled (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-goal-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-goal-2"}},[t._v("#")]),t._v(" _is_goal "),a("Badge",{attrs:{text:"Goals",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_goal",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"D.T_agent[D.T_predicate]"}}}),t._v(" "),a("p",[t._v("Indicate whether an observation belongs to the goals.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\ngoals space provided by "),a("code",[t._v("Goals._get_goals()")]),t._v(", but it can be overridden for faster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-191"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-191"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-266"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-266"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the observation is a goal (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-observation-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-observation-10"}},[t._v("#")]),t._v(" _is_observation "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_observation",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that an observation indeed belongs to the domain observation space.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\nobservation space provided by "),a("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(", but it can be overridden for\nfaster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-192"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-192"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-267"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-267"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the observation belongs to the domain observation space (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-positive"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-positive"}},[t._v("#")]),t._v(" _is_positive "),a("Badge",{attrs:{text:"PositiveCosts",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_positive",sig:{params:[{name:"self"},{name:"cost",annotation:"D.T_value"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Determine if a value is positive (can be overridden for advanced value types).")]),t._v(" "),a("h4",{attrs:{id:"parameters-193"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-193"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("cost")]),t._v(": The cost to evaluate.")])]),t._v(" "),a("h4",{attrs:{id:"returns-268"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-268"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the cost is positive (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-terminal-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-terminal-4"}},[t._v("#")]),t._v(" _is_terminal "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_terminal",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"}],return:"D.T_agent[D.T_predicate]"}}}),t._v(" "),a("p",[t._v("Indicate whether a state is terminal.")]),t._v(" "),a("p",[t._v("A terminal state is a state with no outgoing transition (except to itself with value 0).")]),t._v(" "),a("h4",{attrs:{id:"parameters-194"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-194"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-269"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-269"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the state is terminal (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-transition-value-dependent-on-next-state-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-transition-value-dependent-on-next-state-5"}},[t._v("#")]),t._v(" _is_transition_value_dependent_on_next_state "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_transition_value_dependent_on_next_state",sig:{params:[{name:"self"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether _get_transition_value() requires the next_state parameter for its computation (cached).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("UncertainTransitions._is_transition_value_dependent_on_next_state()")]),t._v(" internally\ncalls "),a("code",[t._v("UncertainTransitions._is_transition_value_dependent_on_next_state_()")]),t._v(" the first time and automatically\ncaches its value to make future calls more efficient (since the returned value is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-270"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-270"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the transition value computation depends on next_state (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-transition-value-dependent-on-next-state-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-transition-value-dependent-on-next-state-6"}},[t._v("#")]),t._v(" _is_transition_value_dependent_on_next_state_ "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_transition_value_dependent_on_next_state_",sig:{params:[{name:"self"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether _get_transition_value() requires the next_state parameter for its computation.")]),t._v(" "),a("p",[t._v("This is a helper function called by default\nfrom "),a("code",[t._v("UncertainTransitions._is_transition_value_dependent_on_next_state()")]),t._v(", the difference being that the result\nis not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-271"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-271"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the transition value computation depends on next_state (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"render-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#render-10"}},[t._v("#")]),t._v(" _render "),a("Badge",{attrs:{text:"Renderable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_render",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"},{name:"**kwargs",annotation:"Any"}],return:"Any"}}}),t._v(" "),a("p",[t._v("Compute a visual render of the given memory (state or history), or the internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Renderable._render()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Renderable._render_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead of\nthe memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-195"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-195"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-272"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-272"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("A render (e.g. image) or nothing (if the function handles the display directly).")]),t._v(" "),a("h3",{attrs:{id:"render-from-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#render-from-5"}},[t._v("#")]),t._v(" _render_from "),a("Badge",{attrs:{text:"Renderable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_render_from",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"**kwargs",annotation:"Any"}],return:"Any"}}}),t._v(" "),a("p",[t._v("Compute a visual render of the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Renderable._render()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("h4",{attrs:{id:"parameters-196"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-196"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-273"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-273"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("A render (e.g. image) or nothing (if the function handles the display directly).")]),t._v(" "),a("h3",{attrs:{id:"reset-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#reset-10"}},[t._v("#")]),t._v(" _reset "),a("Badge",{attrs:{text:"Initializable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_reset",sig:{params:[{name:"self"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Reset the state of the environment and return an initial observation.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Initializable._reset()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Initializable._state_reset()")]),t._v(" (which returns an initial state). The boilerplate code automatically stores\nthe initial state into the "),a("code",[t._v("_memory")]),t._v(" attribute and samples a corresponding observation.")]),t._v(" "),a("h4",{attrs:{id:"returns-274"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-274"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("An initial observation.")]),t._v(" "),a("h3",{attrs:{id:"sample-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample-4"}},[t._v("#")]),t._v(" _sample "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_sample",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Sample one transition of the simulator's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Simulation._sample()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Simulation._state_sample()")]),t._v(" (which returns a transition outcome). The boilerplate code automatically\nsamples an observation corresponding to the sampled next state.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing simulator needs to be wrapped instead of implemented fully in scikit-decide (e.g. a\nsimulator), it is recommended to overwrite "),a("code",[t._v("Simulation._sample()")]),t._v(" to call the external simulator and not use\nthe "),a("code",[t._v("Simulation._state_sample()")]),t._v(" helper function.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-197"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-197"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-275"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-275"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of the sampled transition.")]),t._v(" "),a("h3",{attrs:{id:"set-memory-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#set-memory-4"}},[t._v("#")]),t._v(" _set_memory "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_set_memory",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"None"}}}),t._v(" "),a("p",[t._v("Set internal memory attribute "),a("code",[t._v("_memory")]),t._v(" to given one.")]),t._v(" "),a("p",[t._v('This can be useful to set a specific "starting point" before doing a rollout with\nsuccessive '),a("code",[t._v("Environment._step()")]),t._v(" calls.")]),t._v(" "),a("h4",{attrs:{id:"parameters-198"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-198"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to set internally.")])]),t._v(" "),a("h4",{attrs:{id:"example-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#example-4"}},[t._v("#")]),t._v(" Example")]),t._v(" "),a("div",{staticClass:"language-python extra-class"},[a("pre",{pre:!0,attrs:{class:"language-python"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Set simulation_domain memory to my_state (assuming Markovian domain)")]),t._v("\nsimulation_domain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("_set_memory"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("my_state"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Start a 100-steps rollout from here (applying my_action at every step)")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("for")]),t._v(" _ "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("in")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("range")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n simulation_domain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("_step"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("my_action"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("h3",{attrs:{id:"state-reset-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#state-reset-5"}},[t._v("#")]),t._v(" _state_reset "),a("Badge",{attrs:{text:"Initializable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_state_reset",sig:{params:[{name:"self"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("Reset the state of the environment and return an initial state.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Initializable._reset()")]),t._v(". It focuses on the state level, as\nopposed to the observation one for the latter.")]),t._v(" "),a("h4",{attrs:{id:"returns-276"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-276"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("An initial state.")]),t._v(" "),a("h3",{attrs:{id:"state-sample-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#state-sample-2"}},[t._v("#")]),t._v(" _state_sample "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_state_sample",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"TransitionOutcome[D.T_state, D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Compute one sample of the transition's dynamics.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Simulation._sample()")]),t._v(". It focuses on the state level, as\nopposed to the observation one for the latter.")]),t._v(" "),a("h4",{attrs:{id:"parameters-199"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-199"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-277"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-277"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The transition outcome of the sampled transition.")]),t._v(" "),a("h3",{attrs:{id:"state-step-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#state-step-5"}},[t._v("#")]),t._v(" _state_step "),a("Badge",{attrs:{text:"Environment",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_state_step",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"TransitionOutcome[D.T_state, D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Compute one step of the transition's dynamics.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Environment._step()")]),t._v(". It focuses on the state level, as opposed\nto the observation one for the latter.")]),t._v(" "),a("h4",{attrs:{id:"parameters-200"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-200"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the current memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-278"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-278"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The transition outcome of this step.")]),t._v(" "),a("h3",{attrs:{id:"step-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#step-10"}},[t._v("#")]),t._v(" _step "),a("Badge",{attrs:{text:"Environment",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_step",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Run one step of the environment's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Environment._step()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Environment._state_step()")]),t._v(" (which returns a transition outcome). The boilerplate code automatically stores\nnext state into the "),a("code",[t._v("_memory")]),t._v(" attribute and samples a corresponding observation.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing environment needs to be wrapped instead of implemented fully in scikit-decide (e.g. compiled\nATARI games), it is recommended to overwrite "),a("code",[t._v("Environment._step()")]),t._v(" to call the external environment and not\nuse the "),a("code",[t._v("Environment._state_step()")]),t._v(" helper function.")])]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Before calling "),a("code",[t._v("Environment._step()")]),t._v(" the first time or when the end of an episode is\nreached, "),a("code",[t._v("Initializable._reset()")]),t._v(" must be called to reset the environment's state.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-201"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-201"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the current memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-279"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-279"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of this step.")]),t._v(" "),a("h2",{attrs:{id:"asgymenv"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#asgymenv"}},[t._v("#")]),t._v(" AsGymEnv")]),t._v(" "),a("p",[t._v("This class wraps a scikit-decide domain as an OpenAI Gym environment.")]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("The scikit-decide domain to wrap should inherit "),a("code",[t._v("UnrestrictedActionDomain")]),t._v(" since OpenAI Gym environments usually assume\nthat all their actions are always applicable.")])]),t._v(" "),a("p",[t._v("An OpenAI Gym environment encapsulates an environment with arbitrary behind-the-scenes dynamics. An environment can\nbe partially or fully observed.")]),t._v(" "),a("p",[t._v("The main API methods that users of this class need to know are:")]),t._v(" "),a("ul",[a("li",[t._v("step")]),t._v(" "),a("li",[t._v("reset")]),t._v(" "),a("li",[t._v("render")]),t._v(" "),a("li",[t._v("close")]),t._v(" "),a("li",[t._v("seed")])]),t._v(" "),a("p",[t._v("And set the following attributes:")]),t._v(" "),a("ul",[a("li",[t._v("action_space: The Space object corresponding to valid actions.")]),t._v(" "),a("li",[t._v("observation_space: The Space object corresponding to valid observations.")]),t._v(" "),a("li",[t._v("reward_range: A tuple corresponding to the min and max possible rewards.")])]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v('A default reward range set to [-inf,+inf] already exists. Set it if you want a narrower range. The methods are\naccessed publicly as "step", "reset", etc.. The non-underscored versions are wrapper methods to which\nfunctionality may be added over time.')])]),t._v(" "),a("h3",{attrs:{id:"constructor-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#constructor-8"}},[t._v("#")]),t._v(" Constructor "),a("Badge",{attrs:{text:"AsGymEnv",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"AsGymEnv",sig:{params:[{name:"domain",annotation:"Domain"},{name:"unwrap_spaces",default:"True",annotation:"bool"}],return:"None"}}}),t._v(" "),a("p",[t._v("Initialize AsGymEnv.")]),t._v(" "),a("h4",{attrs:{id:"parameters-202"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-202"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("domain")]),t._v(": The scikit-decide domain to wrap as an OpenAI Gym environment.")]),t._v(" "),a("li",[a("strong",[t._v("unwrap_spaces")]),t._v(": Boolean specifying whether the action & observation spaces should be unwrapped.")])]),t._v(" "),a("h3",{attrs:{id:"close"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#close"}},[t._v("#")]),t._v(" close "),a("Badge",{attrs:{text:"Env",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"close",sig:{params:[{name:"self"}]}}}),t._v(" "),a("p",[t._v("Override close in your subclass to perform any necessary cleanup.")]),t._v(" "),a("p",[t._v("Environments will automatically close() themselves when garbage collected or when the program exits.")]),t._v(" "),a("h3",{attrs:{id:"render-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#render-11"}},[t._v("#")]),t._v(" render "),a("Badge",{attrs:{text:"Env",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"render",sig:{params:[{name:"self"},{name:"mode",default:"human"}]}}}),t._v(" "),a("p",[t._v("Render the environment.")]),t._v(" "),a("p",[t._v("The set of supported modes varies per environment. (And some environments do not support rendering at all.) By\nconvention, if mode is:")]),t._v(" "),a("ul",[a("li",[t._v("human: Render to the current display or terminal and return nothing. Usually for human consumption.")]),t._v(" "),a("li",[t._v("rgb_array: Return an numpy.ndarray with shape (x, y, 3), representing RGB values for an x-by-y pixel image,\nsuitable for turning into a video.")]),t._v(" "),a("li",[t._v("ansi: Return a string (str) or StringIO.StringIO containing a terminal-style text representation. The text can\ninclude newlines and ANSI escape sequences (e.g. for colors).")])]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Make sure that your class's metadata 'render.modes' key includes he list of supported modes. It's\nrecommended to call super() in implementations to use the functionality of this method.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-203"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-203"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("mode")]),t._v(" (str): The mode to render with.")]),t._v(" "),a("li",[a("strong",[t._v("close")]),t._v(" (bool): Close all open renderings.")])]),t._v(" "),a("h4",{attrs:{id:"example-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#example-5"}},[t._v("#")]),t._v(" Example")]),t._v(" "),a("div",{staticClass:"language-python extra-class"},[a("pre",{pre:!0,attrs:{class:"language-python"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("class")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("MyEnv")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("Env"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n metadata "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'render.modes'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'human'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'rgb_array'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("def")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("render")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("self"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" mode"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'human'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),t._v(" mode "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("==")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'rgb_array'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" np"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("array"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# return RGB frame suitable for video")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("elif")]),t._v(" mode "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("is")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'human'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# pop up a window and render")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("else")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("super")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("MyEnv"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" self"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("render"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("mode"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v("mode"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# just raise an exception")]),t._v("\n")])])]),a("h3",{attrs:{id:"reset-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#reset-11"}},[t._v("#")]),t._v(" reset "),a("Badge",{attrs:{text:"Env",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"reset",sig:{params:[{name:"self"}]}}}),t._v(" "),a("p",[t._v("Reset the state of the environment and returns an initial observation.")]),t._v(" "),a("h4",{attrs:{id:"returns-280"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-280"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("observation (object): The initial observation of the space.")]),t._v(" "),a("h3",{attrs:{id:"seed"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#seed"}},[t._v("#")]),t._v(" seed "),a("Badge",{attrs:{text:"Env",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"seed",sig:{params:[{name:"self"},{name:"seed",default:"None"}]}}}),t._v(" "),a("p",[t._v("Sets the seed for this env's random number generator(s).")]),t._v(" "),a("p",[t._v("Note:\nSome environments use multiple pseudorandom number generators.\nWe want to capture all such seeds used in order to ensure that\nthere aren't accidental correlations between multiple generators.")]),t._v(" "),a("p",[t._v("Returns:\nlist: Returns the list of seeds used in this env's random\nnumber generators. The first value in the list should be the\n\"main\" seed, or the value which a reproducer should pass to\n'seed'. Often, the main seed equals the provided 'seed', but\nthis won't be true if seed=None, for example.")]),t._v(" "),a("h3",{attrs:{id:"step-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#step-11"}},[t._v("#")]),t._v(" step "),a("Badge",{attrs:{text:"Env",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"step",sig:{params:[{name:"self"},{name:"action"}]}}}),t._v(" "),a("p",[t._v("Run one timestep of the environment's dynamics. When end of episode is reached, you are responsible for\ncalling "),a("code",[t._v("reset()")]),t._v(" to reset this environment's state.")]),t._v(" "),a("p",[t._v("Accepts an action and returns a tuple (observation, reward, done, info).")]),t._v(" "),a("h4",{attrs:{id:"parameters-204"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-204"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("action")]),t._v(" (object): An action provided by the environment.")])]),t._v(" "),a("h4",{attrs:{id:"returns-281"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-281"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("A tuple with following elements:")]),t._v(" "),a("ul",[a("li",[t._v("observation (object): The agent's observation of the current environment.")]),t._v(" "),a("li",[t._v("reward (float) : The amount of reward returned after previous action.")]),t._v(" "),a("li",[t._v("done (boolean): Whether the episode ended, in which case further step() calls will return undefined results.")]),t._v(" "),a("li",[t._v("info (dict): Contains auxiliary diagnostic information (helpful for debugging, and sometimes learning).")])]),t._v(" "),a("h3",{attrs:{id:"unwrapped-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#unwrapped-6"}},[t._v("#")]),t._v(" unwrapped "),a("Badge",{attrs:{text:"Env",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"unwrapped",sig:{params:[{name:"self"}]}}}),t._v(" "),a("p",[t._v("Unwrap the scikit-decide domain and return it.")]),t._v(" "),a("h4",{attrs:{id:"returns-282"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-282"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The original scikit-decide domain.")])],1)}),[],!1,null,null,null);e.default=r.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[63],{591:function(t,e,a){"use strict";a.r(e);var s=a(38),r=Object(s.a)({},(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"hub-domain-gym-gym"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#hub-domain-gym-gym"}},[t._v("#")]),t._v(" hub.domain.gym.gym")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("Domain specification")]),t._v(" "),a("skdecide-summary")],1),t._v(" "),a("h2",{attrs:{id:"gymdomain"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#gymdomain"}},[t._v("#")]),t._v(" GymDomain")]),t._v(" "),a("p",[t._v("This class wraps an OpenAI Gym environment (gym.env) as a scikit-decide domain.")]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Using this class requires OpenAI Gym to be installed.")])]),t._v(" "),a("h3",{attrs:{id:"constructor"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#constructor"}},[t._v("#")]),t._v(" Constructor "),a("Badge",{attrs:{text:"GymDomain",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"GymDomain",sig:{params:[{name:"gym_env",annotation:"gym.Env"}],return:"None"}}}),t._v(" "),a("p",[t._v("Initialize GymDomain.")]),t._v(" "),a("h4",{attrs:{id:"parameters"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("gym_env")]),t._v(": The Gym environment (gym.env) to wrap.")])]),t._v(" "),a("h3",{attrs:{id:"check-value"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#check-value"}},[t._v("#")]),t._v(" check_value "),a("Badge",{attrs:{text:"Rewards",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"check_value",sig:{params:[{name:"self"},{name:"value",annotation:"Value[D.T_value]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that a value is compliant with its reward specification.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("This function returns always True by default because any kind of reward should be accepted at this level.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-2"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("value")]),t._v(": The value to check.")])]),t._v(" "),a("h4",{attrs:{id:"returns"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the value is compliant (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"get-action-space"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space"}},[t._v("#")]),t._v(" get_action_space "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_action_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) domain action space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.get_action_space()")]),t._v(" internally calls "),a("code",[t._v("Events._get_action_space_()")]),t._v(" the first time and\nautomatically caches its value to make future calls more efficient (since the action space is assumed to be\nconstant).")]),t._v(" "),a("h4",{attrs:{id:"returns-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-2"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The action space.")]),t._v(" "),a("h3",{attrs:{id:"get-applicable-actions"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions"}},[t._v("#")]),t._v(" get_applicable_actions "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_applicable_actions",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history), or in\nthe internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.get_applicable_actions()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_applicable_actions()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-3"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-3"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of applicable actions.")]),t._v(" "),a("h3",{attrs:{id:"get-enabled-events"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events"}},[t._v("#")]),t._v(" get_enabled_events "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_enabled_events",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"Space[D.T_event]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory), or in the internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.get_enabled_events()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_enabled_events()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead of\nthe memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-4"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-4"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of enabled events.")]),t._v(" "),a("h3",{attrs:{id:"get-observation"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation"}},[t._v("#")]),t._v(" get_observation "),a("Badge",{attrs:{text:"TransformedObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_observation",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Get the deterministic observation given a state and action.")]),t._v(" "),a("h4",{attrs:{id:"parameters-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-5"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-5"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-distribution"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-distribution"}},[t._v("#")]),t._v(" get_observation_distribution "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_observation_distribution",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"Distribution[D.T_agent[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the probability distribution of the observation given a state and action.")]),t._v(" "),a("p",[t._v("In mathematical terms (discrete case), given an action "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.197ex",height:"1.02ex",viewBox:"0 -441 529 451"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})])])])])]),t._v(", this function represents: "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.078ex",height:"2.262ex",viewBox:"0 -750 4012.7 1000"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"50",d:"M287 628Q287 635 230 637Q206 637 199 638T192 648Q192 649 194 659Q200 679 203 681T397 683Q587 682 600 680Q664 669 707 631T751 530Q751 453 685 389Q616 321 507 303Q500 302 402 301H307L277 182Q247 66 247 59Q247 55 248 54T255 50T272 48T305 46H336Q342 37 342 35Q342 19 335 5Q330 0 319 0Q316 0 282 1T182 2Q120 2 87 2T51 1Q33 1 33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM645 554Q645 567 643 575T634 597T609 619T560 635Q553 636 480 637Q463 637 445 637T416 636T404 636Q391 635 386 627Q384 621 367 550T332 412T314 344Q314 342 395 342H407H430Q542 342 590 392Q617 419 631 471T645 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(751, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(1140, 0)"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1903, 0)"}},[a("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(2181, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2650, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(3094.7, 0)"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3623.7, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(",\nwhere "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.05ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.726ex",height:"1.643ex",viewBox:"0 -704 763 726"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})])])])])]),t._v(" is the random variable of the observation.")],1),t._v(" "),a("h4",{attrs:{id:"parameters-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-6"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-6"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-space"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space"}},[t._v("#")]),t._v(" get_observation_space "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_observation_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) observation space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("PartiallyObservable.get_observation_space()")]),t._v(" internally\ncalls "),a("code",[t._v("PartiallyObservable._get_observation_space_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the observation space is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-7"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The observation space.")]),t._v(" "),a("h3",{attrs:{id:"is-action"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-action"}},[t._v("#")]),t._v(" is_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_action",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an event is an action (i.e. a controllable event for the agents).")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\naction space provided by "),a("code",[t._v("Events.get_action_space()")]),t._v(", but it can be overridden for faster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-7"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("event")]),t._v(": The event to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-8"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is an action (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-applicable-action"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action"}},[t._v("#")]),t._v(" is_applicable_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_applicable_action",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an action is applicable in the given memory (state or history), or in the internal one if\nomitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.is_applicable_action()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_applicable_action()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead\nof the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-8"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-9"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the action is applicable (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-enabled-event"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event"}},[t._v("#")]),t._v(" is_enabled_event "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_enabled_event",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an uncontrollable event is enabled in the given memory (state or history), or in the\ninternal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.is_enabled_event()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_enabled_event()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead of\nthe memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-9"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-10"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is enabled (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-observation"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-observation"}},[t._v("#")]),t._v(" is_observation "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_observation",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that an observation indeed belongs to the domain observation space.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\nobservation space provided by "),a("code",[t._v("PartiallyObservable.get_observation_space()")]),t._v(", but it can be overridden for\nfaster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-10"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-11"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the observation belongs to the domain observation space (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"render"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#render"}},[t._v("#")]),t._v(" render "),a("Badge",{attrs:{text:"Renderable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"render",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"},{name:"**kwargs",annotation:"Any"}],return:"Any"}}}),t._v(" "),a("p",[t._v("Compute a visual render of the given memory (state or history), or the internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Renderable.render()")]),t._v(" provides some boilerplate code and internally calls "),a("code",[t._v("Renderable._render()")]),t._v(". The\nboilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead of the memory parameter whenever the latter\nis None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-11"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-12"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("A render (e.g. image) or nothing (if the function handles the display directly).")]),t._v(" "),a("h3",{attrs:{id:"reset"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#reset"}},[t._v("#")]),t._v(" reset "),a("Badge",{attrs:{text:"Initializable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"reset",sig:{params:[{name:"self"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Reset the state of the environment and return an initial observation.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Initializable.reset()")]),t._v(" provides some boilerplate code and internally calls "),a("code",[t._v("Initializable._reset()")]),t._v("\n(which returns an initial state). The boilerplate code automatically stores the initial state into the "),a("code",[t._v("_memory")]),t._v("\nattribute and samples a corresponding observation.")]),t._v(" "),a("h4",{attrs:{id:"returns-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-13"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("An initial observation.")]),t._v(" "),a("h3",{attrs:{id:"solve-with"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#solve-with"}},[t._v("#")]),t._v(" solve_with "),a("Badge",{attrs:{text:"Domain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"solve_with",sig:{params:[{name:"solver",annotation:"Solver"},{name:"domain_factory",default:"None",annotation:"Optional[Callable[[], Domain]]"},{name:"load_path",default:"None",annotation:"Optional[str]"}],return:"Solver"}}}),t._v(" "),a("p",[t._v("Solve the domain with a new or loaded solver and return it auto-cast to the level of the domain.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Solver.check_domain()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Solver._check_domain_additional()")]),t._v(' (which returns True by default but can be overridden to define\nspecific checks in addition to the "domain requirements"). The boilerplate code automatically checks whether all\ndomain requirements are met.')]),t._v(" "),a("h4",{attrs:{id:"parameters-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-12"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("solver")]),t._v(": The solver.")]),t._v(" "),a("li",[a("strong",[t._v("domain_factory")]),t._v(": A callable with no argument returning the domain to solve (factory is the domain class if None).")]),t._v(" "),a("li",[a("strong",[t._v("load_path")]),t._v(": The path to restore the solver state from (if None, the solving process will be launched instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-14"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-14"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The new solver (auto-cast to the level of the domain).")]),t._v(" "),a("h3",{attrs:{id:"step"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#step"}},[t._v("#")]),t._v(" step "),a("Badge",{attrs:{text:"Environment",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"step",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Run one step of the environment's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Environment.step()")]),t._v(" provides some boilerplate code and internally calls "),a("code",[t._v("Environment._step()")]),t._v(" (which\nreturns a transition outcome). The boilerplate code automatically stores next state into the "),a("code",[t._v("_memory")]),t._v(" attribute\nand samples a corresponding observation.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing environment needs to be wrapped instead of implemented fully in scikit-decide (e.g. compiled\nATARI games), it is recommended to overwrite "),a("code",[t._v("Environment.step()")]),t._v(" to call the external environment and not\nuse the "),a("code",[t._v("Environment._step()")]),t._v(" helper function.")])]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Before calling "),a("code",[t._v("Environment.step()")]),t._v(" the first time or when the end of an episode is\nreached, "),a("code",[t._v("Initializable.reset()")]),t._v(" must be called to reset the environment's state.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-13"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the current memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-15"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-15"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of this step.")]),t._v(" "),a("h3",{attrs:{id:"unwrapped"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#unwrapped"}},[t._v("#")]),t._v(" unwrapped "),a("Badge",{attrs:{text:"GymDomain",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"unwrapped",sig:{params:[{name:"self"}]}}}),t._v(" "),a("p",[t._v("Unwrap the Gym environment (gym.env) and return it.")]),t._v(" "),a("h4",{attrs:{id:"returns-16"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-16"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The original Gym environment.")]),t._v(" "),a("h3",{attrs:{id:"check-value-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#check-value-2"}},[t._v("#")]),t._v(" _check_value "),a("Badge",{attrs:{text:"Rewards",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_check_value",sig:{params:[{name:"self"},{name:"value",annotation:"Value[D.T_value]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that a value is compliant with its reward specification.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("This function returns always True by default because any kind of reward should be accepted at this level.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-14"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-14"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("value")]),t._v(": The value to check.")])]),t._v(" "),a("h4",{attrs:{id:"returns-17"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-17"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the value is compliant (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"get-action-space-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-2"}},[t._v("#")]),t._v(" _get_action_space "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_action_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) domain action space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._get_action_space()")]),t._v(" internally calls "),a("code",[t._v("Events._get_action_space_()")]),t._v(" the first time and\nautomatically caches its value to make future calls more efficient (since the action space is assumed to be\nconstant).")]),t._v(" "),a("h4",{attrs:{id:"returns-18"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-18"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The action space.")]),t._v(" "),a("h3",{attrs:{id:"get-action-space-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-3"}},[t._v("#")]),t._v(" _get_action_space_ "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_action_space_",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the domain action space (finite or infinite set).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._get_action_space()")]),t._v(", the difference being that the\nresult is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-19"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-19"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The action space.")]),t._v(" "),a("h3",{attrs:{id:"get-applicable-actions-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-2"}},[t._v("#")]),t._v(" _get_applicable_actions "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_applicable_actions",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history), or in\nthe internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._get_applicable_actions()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_applicable_actions_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-15"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-15"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-20"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-20"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of applicable actions.")]),t._v(" "),a("h3",{attrs:{id:"get-applicable-actions-from"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-from"}},[t._v("#")]),t._v(" _get_applicable_actions_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_applicable_actions_from",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._get_applicable_actions()")]),t._v(", the difference being that\nthe memory parameter is mandatory here.")]),t._v(" "),a("h4",{attrs:{id:"parameters-16"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-16"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-21"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-21"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of applicable actions.")]),t._v(" "),a("h3",{attrs:{id:"get-enabled-events-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-2"}},[t._v("#")]),t._v(" _get_enabled_events "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_enabled_events",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"Space[D.T_event]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory), or in the internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._get_enabled_events()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_enabled_events_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-17"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-17"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-22"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-22"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of enabled events.")]),t._v(" "),a("h3",{attrs:{id:"get-enabled-events-from"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-from"}},[t._v("#")]),t._v(" _get_enabled_events_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_enabled_events_from",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"Space[D.T_event]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._get_enabled_events()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("h4",{attrs:{id:"parameters-18"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-18"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-23"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-23"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of enabled events.")]),t._v(" "),a("h3",{attrs:{id:"get-memory-maxlen"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-memory-maxlen"}},[t._v("#")]),t._v(" _get_memory_maxlen "),a("Badge",{attrs:{text:"History",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_memory_maxlen",sig:{params:[{name:"self"}],return:"int"}}}),t._v(" "),a("p",[t._v("Get the (cached) memory max length.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("FiniteHistory._get_memory_maxlen()")]),t._v(" internally calls "),a("code",[t._v("FiniteHistory._get_memory_maxlen_()")]),t._v(" the first\ntime and automatically caches its value to make future calls more efficient (since the memory max length is\nassumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-24"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-24"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The memory max length.")]),t._v(" "),a("h3",{attrs:{id:"get-memory-maxlen-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-memory-maxlen-2"}},[t._v("#")]),t._v(" _get_memory_maxlen_ "),a("Badge",{attrs:{text:"FiniteHistory",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_memory_maxlen_",sig:{params:[{name:"self"}],return:"int"}}}),t._v(" "),a("p",[t._v("Get the memory max length.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("FiniteHistory._get_memory_maxlen()")]),t._v(", the difference being that\nthe result is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-25"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-25"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The memory max length.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-2"}},[t._v("#")]),t._v(" _get_observation "),a("Badge",{attrs:{text:"TransformedObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Get the deterministic observation given a state and action.")]),t._v(" "),a("h4",{attrs:{id:"parameters-19"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-19"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-26"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-26"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-distribution-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-distribution-2"}},[t._v("#")]),t._v(" _get_observation_distribution "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation_distribution",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"Distribution[D.T_agent[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the probability distribution of the observation given a state and action.")]),t._v(" "),a("p",[t._v("In mathematical terms (discrete case), given an action "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.197ex",height:"1.02ex",viewBox:"0 -441 529 451"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})])])])])]),t._v(", this function represents: "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.078ex",height:"2.262ex",viewBox:"0 -750 4012.7 1000"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"50",d:"M287 628Q287 635 230 637Q206 637 199 638T192 648Q192 649 194 659Q200 679 203 681T397 683Q587 682 600 680Q664 669 707 631T751 530Q751 453 685 389Q616 321 507 303Q500 302 402 301H307L277 182Q247 66 247 59Q247 55 248 54T255 50T272 48T305 46H336Q342 37 342 35Q342 19 335 5Q330 0 319 0Q316 0 282 1T182 2Q120 2 87 2T51 1Q33 1 33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM645 554Q645 567 643 575T634 597T609 619T560 635Q553 636 480 637Q463 637 445 637T416 636T404 636Q391 635 386 627Q384 621 367 550T332 412T314 344Q314 342 395 342H407H430Q542 342 590 392Q617 419 631 471T645 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(751, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(1140, 0)"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1903, 0)"}},[a("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(2181, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2650, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(3094.7, 0)"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3623.7, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(",\nwhere "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.05ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.726ex",height:"1.643ex",viewBox:"0 -704 763 726"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})])])])])]),t._v(" is the random variable of the observation.")],1),t._v(" "),a("h4",{attrs:{id:"parameters-20"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-20"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-27"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-27"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-space-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-2"}},[t._v("#")]),t._v(" _get_observation_space "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) observation space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(" internally\ncalls "),a("code",[t._v("PartiallyObservable._get_observation_space_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the observation space is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-28"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-28"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The observation space.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-space-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-3"}},[t._v("#")]),t._v(" _get_observation_space_ "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation_space_",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the observation space (finite or infinite set).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(", the difference\nbeing that the result is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-29"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-29"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The observation space.")]),t._v(" "),a("h3",{attrs:{id:"init-memory"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#init-memory"}},[t._v("#")]),t._v(" _init_memory "),a("Badge",{attrs:{text:"History",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_init_memory",sig:{params:[{name:"self"},{name:"state",default:"None",annotation:"Optional[D.T_state]"}],return:"D.T_memory[D.T_state]"}}}),t._v(" "),a("p",[t._v("Initialize memory (possibly with a state) according to its specification and return it.")]),t._v(" "),a("p",[t._v("This function is automatically called by "),a("code",[t._v("Initializable._reset()")]),t._v(" to reinitialize the internal memory whenever\nthe domain is used as an environment.")]),t._v(" "),a("h4",{attrs:{id:"parameters-21"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-21"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": An optional state to initialize the memory with (typically the initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-30"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-30"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The new initialized memory.")]),t._v(" "),a("h3",{attrs:{id:"is-action-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-action-2"}},[t._v("#")]),t._v(" _is_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_action",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an event is an action (i.e. a controllable event for the agents).")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\naction space provided by "),a("code",[t._v("Events._get_action_space()")]),t._v(", but it can be overridden for faster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-22"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-22"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("event")]),t._v(": The event to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-31"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-31"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is an action (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-applicable-action-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-2"}},[t._v("#")]),t._v(" _is_applicable_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_applicable_action",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an action is applicable in the given memory (state or history), or in the internal one if\nomitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._is_applicable_action()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_applicable_action_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-23"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-23"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-32"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-32"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the action is applicable (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-applicable-action-from"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-from"}},[t._v("#")]),t._v(" _is_applicable_action_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_applicable_action_from",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an action is applicable in the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._is_applicable_action()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the space of\napplicable actions provided by "),a("code",[t._v("Events._get_applicable_actions_from()")]),t._v(", but it can be overridden for faster\nimplementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-24"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-24"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-33"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-33"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the action is applicable (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-enabled-event-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-2"}},[t._v("#")]),t._v(" _is_enabled_event "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_enabled_event",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an uncontrollable event is enabled in the given memory (state or history), or in the\ninternal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._is_enabled_event()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_enabled_event_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead\nof the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-25"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-25"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-34"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-34"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is enabled (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-enabled-event-from"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-from"}},[t._v("#")]),t._v(" _is_enabled_event_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_enabled_event_from",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an event is enabled in the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._is_enabled_event()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the space of\nenabled events provided by "),a("code",[t._v("Events._get_enabled_events_from()")]),t._v(", but it can be overridden for faster\nimplementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-26"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-26"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-35"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-35"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is enabled (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-observation-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-observation-2"}},[t._v("#")]),t._v(" _is_observation "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_observation",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that an observation indeed belongs to the domain observation space.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\nobservation space provided by "),a("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(", but it can be overridden for\nfaster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-27"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-27"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-36"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-36"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the observation belongs to the domain observation space (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"render-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#render-2"}},[t._v("#")]),t._v(" _render "),a("Badge",{attrs:{text:"Renderable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_render",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"},{name:"**kwargs",annotation:"Any"}],return:"Any"}}}),t._v(" "),a("p",[t._v("Compute a visual render of the given memory (state or history), or the internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Renderable._render()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Renderable._render_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead of\nthe memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-28"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-28"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-37"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-37"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("A render (e.g. image) or nothing (if the function handles the display directly).")]),t._v(" "),a("h3",{attrs:{id:"render-from"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#render-from"}},[t._v("#")]),t._v(" _render_from "),a("Badge",{attrs:{text:"Renderable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_render_from",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"**kwargs",annotation:"Any"}],return:"Any"}}}),t._v(" "),a("p",[t._v("Compute a visual render of the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Renderable._render()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("h4",{attrs:{id:"parameters-29"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-29"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-38"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-38"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("A render (e.g. image) or nothing (if the function handles the display directly).")]),t._v(" "),a("h3",{attrs:{id:"reset-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#reset-2"}},[t._v("#")]),t._v(" _reset "),a("Badge",{attrs:{text:"Initializable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_reset",sig:{params:[{name:"self"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Reset the state of the environment and return an initial observation.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Initializable._reset()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Initializable._state_reset()")]),t._v(" (which returns an initial state). The boilerplate code automatically stores\nthe initial state into the "),a("code",[t._v("_memory")]),t._v(" attribute and samples a corresponding observation.")]),t._v(" "),a("h4",{attrs:{id:"returns-39"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-39"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("An initial observation.")]),t._v(" "),a("h3",{attrs:{id:"state-reset"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#state-reset"}},[t._v("#")]),t._v(" _state_reset "),a("Badge",{attrs:{text:"Initializable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_state_reset",sig:{params:[{name:"self"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("Reset the state of the environment and return an initial state.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Initializable._reset()")]),t._v(". It focuses on the state level, as\nopposed to the observation one for the latter.")]),t._v(" "),a("h4",{attrs:{id:"returns-40"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-40"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("An initial state.")]),t._v(" "),a("h3",{attrs:{id:"state-step"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#state-step"}},[t._v("#")]),t._v(" _state_step "),a("Badge",{attrs:{text:"Environment",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_state_step",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"TransitionOutcome[D.T_state, D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Compute one step of the transition's dynamics.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Environment._step()")]),t._v(". It focuses on the state level, as opposed\nto the observation one for the latter.")]),t._v(" "),a("h4",{attrs:{id:"parameters-30"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-30"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the current memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-41"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-41"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The transition outcome of this step.")]),t._v(" "),a("h3",{attrs:{id:"step-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#step-2"}},[t._v("#")]),t._v(" _step "),a("Badge",{attrs:{text:"Environment",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_step",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Run one step of the environment's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Environment._step()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Environment._state_step()")]),t._v(" (which returns a transition outcome). The boilerplate code automatically stores\nnext state into the "),a("code",[t._v("_memory")]),t._v(" attribute and samples a corresponding observation.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing environment needs to be wrapped instead of implemented fully in scikit-decide (e.g. compiled\nATARI games), it is recommended to overwrite "),a("code",[t._v("Environment._step()")]),t._v(" to call the external environment and not\nuse the "),a("code",[t._v("Environment._state_step()")]),t._v(" helper function.")])]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Before calling "),a("code",[t._v("Environment._step()")]),t._v(" the first time or when the end of an episode is\nreached, "),a("code",[t._v("Initializable._reset()")]),t._v(" must be called to reset the environment's state.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-31"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-31"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the current memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-42"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-42"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of this step.")]),t._v(" "),a("h2",{attrs:{id:"gymdomainhashable"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#gymdomainhashable"}},[t._v("#")]),t._v(" GymDomainHashable")]),t._v(" "),a("p",[t._v("This class wraps an OpenAI Gym environment (gym.env) as a scikit-decide domain\nusing hashable states and actions.")]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Using this class requires OpenAI Gym to be installed.")])]),t._v(" "),a("h3",{attrs:{id:"constructor-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#constructor-2"}},[t._v("#")]),t._v(" Constructor "),a("Badge",{attrs:{text:"GymDomainHashable",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"GymDomainHashable",sig:{params:[{name:"gym_env",annotation:"gym.Env"}],return:"None"}}}),t._v(" "),a("p",[t._v("Initialize GymDomain.")]),t._v(" "),a("h4",{attrs:{id:"parameters-32"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-32"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("gym_env")]),t._v(": The Gym environment (gym.env) to wrap.")])]),t._v(" "),a("h3",{attrs:{id:"check-value-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#check-value-3"}},[t._v("#")]),t._v(" check_value "),a("Badge",{attrs:{text:"Rewards",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"check_value",sig:{params:[{name:"self"},{name:"value",annotation:"Value[D.T_value]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that a value is compliant with its reward specification.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("This function returns always True by default because any kind of reward should be accepted at this level.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-33"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-33"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("value")]),t._v(": The value to check.")])]),t._v(" "),a("h4",{attrs:{id:"returns-43"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-43"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the value is compliant (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"get-action-space-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-4"}},[t._v("#")]),t._v(" get_action_space "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_action_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) domain action space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.get_action_space()")]),t._v(" internally calls "),a("code",[t._v("Events._get_action_space_()")]),t._v(" the first time and\nautomatically caches its value to make future calls more efficient (since the action space is assumed to be\nconstant).")]),t._v(" "),a("h4",{attrs:{id:"returns-44"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-44"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The action space.")]),t._v(" "),a("h3",{attrs:{id:"get-applicable-actions-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-3"}},[t._v("#")]),t._v(" get_applicable_actions "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_applicable_actions",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history), or in\nthe internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.get_applicable_actions()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_applicable_actions()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-34"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-34"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-45"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-45"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of applicable actions.")]),t._v(" "),a("h3",{attrs:{id:"get-enabled-events-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-3"}},[t._v("#")]),t._v(" get_enabled_events "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_enabled_events",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"Space[D.T_event]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory), or in the internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.get_enabled_events()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_enabled_events()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead of\nthe memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-35"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-35"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-46"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-46"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of enabled events.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-3"}},[t._v("#")]),t._v(" get_observation "),a("Badge",{attrs:{text:"TransformedObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_observation",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Get the deterministic observation given a state and action.")]),t._v(" "),a("h4",{attrs:{id:"parameters-36"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-36"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-47"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-47"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-distribution-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-distribution-3"}},[t._v("#")]),t._v(" get_observation_distribution "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_observation_distribution",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"Distribution[D.T_agent[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the probability distribution of the observation given a state and action.")]),t._v(" "),a("p",[t._v("In mathematical terms (discrete case), given an action "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.197ex",height:"1.02ex",viewBox:"0 -441 529 451"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})])])])])]),t._v(", this function represents: "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.078ex",height:"2.262ex",viewBox:"0 -750 4012.7 1000"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"50",d:"M287 628Q287 635 230 637Q206 637 199 638T192 648Q192 649 194 659Q200 679 203 681T397 683Q587 682 600 680Q664 669 707 631T751 530Q751 453 685 389Q616 321 507 303Q500 302 402 301H307L277 182Q247 66 247 59Q247 55 248 54T255 50T272 48T305 46H336Q342 37 342 35Q342 19 335 5Q330 0 319 0Q316 0 282 1T182 2Q120 2 87 2T51 1Q33 1 33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM645 554Q645 567 643 575T634 597T609 619T560 635Q553 636 480 637Q463 637 445 637T416 636T404 636Q391 635 386 627Q384 621 367 550T332 412T314 344Q314 342 395 342H407H430Q542 342 590 392Q617 419 631 471T645 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(751, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(1140, 0)"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1903, 0)"}},[a("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(2181, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2650, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(3094.7, 0)"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3623.7, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(",\nwhere "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.05ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.726ex",height:"1.643ex",viewBox:"0 -704 763 726"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})])])])])]),t._v(" is the random variable of the observation.")],1),t._v(" "),a("h4",{attrs:{id:"parameters-37"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-37"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-48"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-48"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-space-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-4"}},[t._v("#")]),t._v(" get_observation_space "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_observation_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) observation space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("PartiallyObservable.get_observation_space()")]),t._v(" internally\ncalls "),a("code",[t._v("PartiallyObservable._get_observation_space_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the observation space is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-49"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-49"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The observation space.")]),t._v(" "),a("h3",{attrs:{id:"is-action-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-action-3"}},[t._v("#")]),t._v(" is_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_action",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an event is an action (i.e. a controllable event for the agents).")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\naction space provided by "),a("code",[t._v("Events.get_action_space()")]),t._v(", but it can be overridden for faster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-38"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-38"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("event")]),t._v(": The event to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-50"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-50"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is an action (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-applicable-action-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-3"}},[t._v("#")]),t._v(" is_applicable_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_applicable_action",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an action is applicable in the given memory (state or history), or in the internal one if\nomitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.is_applicable_action()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_applicable_action()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead\nof the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-39"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-39"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-51"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-51"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the action is applicable (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-enabled-event-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-3"}},[t._v("#")]),t._v(" is_enabled_event "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_enabled_event",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an uncontrollable event is enabled in the given memory (state or history), or in the\ninternal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.is_enabled_event()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_enabled_event()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead of\nthe memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-40"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-40"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-52"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-52"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is enabled (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-observation-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-observation-3"}},[t._v("#")]),t._v(" is_observation "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_observation",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that an observation indeed belongs to the domain observation space.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\nobservation space provided by "),a("code",[t._v("PartiallyObservable.get_observation_space()")]),t._v(", but it can be overridden for\nfaster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-41"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-41"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-53"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-53"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the observation belongs to the domain observation space (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"render-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#render-3"}},[t._v("#")]),t._v(" render "),a("Badge",{attrs:{text:"Renderable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"render",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"},{name:"**kwargs",annotation:"Any"}],return:"Any"}}}),t._v(" "),a("p",[t._v("Compute a visual render of the given memory (state or history), or the internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Renderable.render()")]),t._v(" provides some boilerplate code and internally calls "),a("code",[t._v("Renderable._render()")]),t._v(". The\nboilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead of the memory parameter whenever the latter\nis None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-42"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-42"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-54"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-54"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("A render (e.g. image) or nothing (if the function handles the display directly).")]),t._v(" "),a("h3",{attrs:{id:"reset-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#reset-3"}},[t._v("#")]),t._v(" reset "),a("Badge",{attrs:{text:"Initializable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"reset",sig:{params:[{name:"self"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Reset the state of the environment and return an initial observation.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Initializable.reset()")]),t._v(" provides some boilerplate code and internally calls "),a("code",[t._v("Initializable._reset()")]),t._v("\n(which returns an initial state). The boilerplate code automatically stores the initial state into the "),a("code",[t._v("_memory")]),t._v("\nattribute and samples a corresponding observation.")]),t._v(" "),a("h4",{attrs:{id:"returns-55"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-55"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("An initial observation.")]),t._v(" "),a("h3",{attrs:{id:"solve-with-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#solve-with-2"}},[t._v("#")]),t._v(" solve_with "),a("Badge",{attrs:{text:"Domain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"solve_with",sig:{params:[{name:"solver",annotation:"Solver"},{name:"domain_factory",default:"None",annotation:"Optional[Callable[[], Domain]]"},{name:"load_path",default:"None",annotation:"Optional[str]"}],return:"Solver"}}}),t._v(" "),a("p",[t._v("Solve the domain with a new or loaded solver and return it auto-cast to the level of the domain.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Solver.check_domain()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Solver._check_domain_additional()")]),t._v(' (which returns True by default but can be overridden to define\nspecific checks in addition to the "domain requirements"). The boilerplate code automatically checks whether all\ndomain requirements are met.')]),t._v(" "),a("h4",{attrs:{id:"parameters-43"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-43"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("solver")]),t._v(": The solver.")]),t._v(" "),a("li",[a("strong",[t._v("domain_factory")]),t._v(": A callable with no argument returning the domain to solve (factory is the domain class if None).")]),t._v(" "),a("li",[a("strong",[t._v("load_path")]),t._v(": The path to restore the solver state from (if None, the solving process will be launched instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-56"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-56"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The new solver (auto-cast to the level of the domain).")]),t._v(" "),a("h3",{attrs:{id:"step-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#step-3"}},[t._v("#")]),t._v(" step "),a("Badge",{attrs:{text:"Environment",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"step",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Run one step of the environment's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Environment.step()")]),t._v(" provides some boilerplate code and internally calls "),a("code",[t._v("Environment._step()")]),t._v(" (which\nreturns a transition outcome). The boilerplate code automatically stores next state into the "),a("code",[t._v("_memory")]),t._v(" attribute\nand samples a corresponding observation.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing environment needs to be wrapped instead of implemented fully in scikit-decide (e.g. compiled\nATARI games), it is recommended to overwrite "),a("code",[t._v("Environment.step()")]),t._v(" to call the external environment and not\nuse the "),a("code",[t._v("Environment._step()")]),t._v(" helper function.")])]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Before calling "),a("code",[t._v("Environment.step()")]),t._v(" the first time or when the end of an episode is\nreached, "),a("code",[t._v("Initializable.reset()")]),t._v(" must be called to reset the environment's state.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-44"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-44"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the current memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-57"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-57"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of this step.")]),t._v(" "),a("h3",{attrs:{id:"unwrapped-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#unwrapped-2"}},[t._v("#")]),t._v(" unwrapped "),a("Badge",{attrs:{text:"GymDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"unwrapped",sig:{params:[{name:"self"}]}}}),t._v(" "),a("p",[t._v("Unwrap the Gym environment (gym.env) and return it.")]),t._v(" "),a("h4",{attrs:{id:"returns-58"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-58"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The original Gym environment.")]),t._v(" "),a("h3",{attrs:{id:"check-value-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#check-value-4"}},[t._v("#")]),t._v(" _check_value "),a("Badge",{attrs:{text:"Rewards",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_check_value",sig:{params:[{name:"self"},{name:"value",annotation:"Value[D.T_value]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that a value is compliant with its reward specification.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("This function returns always True by default because any kind of reward should be accepted at this level.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-45"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-45"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("value")]),t._v(": The value to check.")])]),t._v(" "),a("h4",{attrs:{id:"returns-59"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-59"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the value is compliant (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"get-action-space-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-5"}},[t._v("#")]),t._v(" _get_action_space "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_action_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) domain action space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._get_action_space()")]),t._v(" internally calls "),a("code",[t._v("Events._get_action_space_()")]),t._v(" the first time and\nautomatically caches its value to make future calls more efficient (since the action space is assumed to be\nconstant).")]),t._v(" "),a("h4",{attrs:{id:"returns-60"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-60"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The action space.")]),t._v(" "),a("h3",{attrs:{id:"get-action-space-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-6"}},[t._v("#")]),t._v(" _get_action_space_ "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_action_space_",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the domain action space (finite or infinite set).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._get_action_space()")]),t._v(", the difference being that the\nresult is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-61"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-61"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The action space.")]),t._v(" "),a("h3",{attrs:{id:"get-applicable-actions-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-4"}},[t._v("#")]),t._v(" _get_applicable_actions "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_applicable_actions",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history), or in\nthe internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._get_applicable_actions()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_applicable_actions_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-46"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-46"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-62"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-62"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of applicable actions.")]),t._v(" "),a("h3",{attrs:{id:"get-applicable-actions-from-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-from-2"}},[t._v("#")]),t._v(" _get_applicable_actions_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_applicable_actions_from",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._get_applicable_actions()")]),t._v(", the difference being that\nthe memory parameter is mandatory here.")]),t._v(" "),a("h4",{attrs:{id:"parameters-47"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-47"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-63"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-63"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of applicable actions.")]),t._v(" "),a("h3",{attrs:{id:"get-enabled-events-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-4"}},[t._v("#")]),t._v(" _get_enabled_events "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_enabled_events",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"Space[D.T_event]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory), or in the internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._get_enabled_events()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_enabled_events_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-48"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-48"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-64"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-64"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of enabled events.")]),t._v(" "),a("h3",{attrs:{id:"get-enabled-events-from-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-from-2"}},[t._v("#")]),t._v(" _get_enabled_events_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_enabled_events_from",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"Space[D.T_event]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._get_enabled_events()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("h4",{attrs:{id:"parameters-49"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-49"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-65"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-65"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of enabled events.")]),t._v(" "),a("h3",{attrs:{id:"get-memory-maxlen-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-memory-maxlen-3"}},[t._v("#")]),t._v(" _get_memory_maxlen "),a("Badge",{attrs:{text:"History",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_memory_maxlen",sig:{params:[{name:"self"}],return:"int"}}}),t._v(" "),a("p",[t._v("Get the (cached) memory max length.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("FiniteHistory._get_memory_maxlen()")]),t._v(" internally calls "),a("code",[t._v("FiniteHistory._get_memory_maxlen_()")]),t._v(" the first\ntime and automatically caches its value to make future calls more efficient (since the memory max length is\nassumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-66"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-66"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The memory max length.")]),t._v(" "),a("h3",{attrs:{id:"get-memory-maxlen-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-memory-maxlen-4"}},[t._v("#")]),t._v(" _get_memory_maxlen_ "),a("Badge",{attrs:{text:"FiniteHistory",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_memory_maxlen_",sig:{params:[{name:"self"}],return:"int"}}}),t._v(" "),a("p",[t._v("Get the memory max length.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("FiniteHistory._get_memory_maxlen()")]),t._v(", the difference being that\nthe result is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-67"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-67"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The memory max length.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-4"}},[t._v("#")]),t._v(" _get_observation "),a("Badge",{attrs:{text:"TransformedObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Get the deterministic observation given a state and action.")]),t._v(" "),a("h4",{attrs:{id:"parameters-50"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-50"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-68"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-68"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-distribution-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-distribution-4"}},[t._v("#")]),t._v(" _get_observation_distribution "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation_distribution",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"Distribution[D.T_agent[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the probability distribution of the observation given a state and action.")]),t._v(" "),a("p",[t._v("In mathematical terms (discrete case), given an action "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.197ex",height:"1.02ex",viewBox:"0 -441 529 451"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})])])])])]),t._v(", this function represents: "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.078ex",height:"2.262ex",viewBox:"0 -750 4012.7 1000"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"50",d:"M287 628Q287 635 230 637Q206 637 199 638T192 648Q192 649 194 659Q200 679 203 681T397 683Q587 682 600 680Q664 669 707 631T751 530Q751 453 685 389Q616 321 507 303Q500 302 402 301H307L277 182Q247 66 247 59Q247 55 248 54T255 50T272 48T305 46H336Q342 37 342 35Q342 19 335 5Q330 0 319 0Q316 0 282 1T182 2Q120 2 87 2T51 1Q33 1 33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM645 554Q645 567 643 575T634 597T609 619T560 635Q553 636 480 637Q463 637 445 637T416 636T404 636Q391 635 386 627Q384 621 367 550T332 412T314 344Q314 342 395 342H407H430Q542 342 590 392Q617 419 631 471T645 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(751, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(1140, 0)"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1903, 0)"}},[a("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(2181, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2650, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(3094.7, 0)"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3623.7, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(",\nwhere "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.05ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.726ex",height:"1.643ex",viewBox:"0 -704 763 726"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})])])])])]),t._v(" is the random variable of the observation.")],1),t._v(" "),a("h4",{attrs:{id:"parameters-51"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-51"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-69"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-69"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-space-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-5"}},[t._v("#")]),t._v(" _get_observation_space "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) observation space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(" internally\ncalls "),a("code",[t._v("PartiallyObservable._get_observation_space_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the observation space is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-70"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-70"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The observation space.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-space-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-6"}},[t._v("#")]),t._v(" _get_observation_space_ "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation_space_",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the observation space (finite or infinite set).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(", the difference\nbeing that the result is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-71"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-71"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The observation space.")]),t._v(" "),a("h3",{attrs:{id:"init-memory-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#init-memory-2"}},[t._v("#")]),t._v(" _init_memory "),a("Badge",{attrs:{text:"History",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_init_memory",sig:{params:[{name:"self"},{name:"state",default:"None",annotation:"Optional[D.T_state]"}],return:"D.T_memory[D.T_state]"}}}),t._v(" "),a("p",[t._v("Initialize memory (possibly with a state) according to its specification and return it.")]),t._v(" "),a("p",[t._v("This function is automatically called by "),a("code",[t._v("Initializable._reset()")]),t._v(" to reinitialize the internal memory whenever\nthe domain is used as an environment.")]),t._v(" "),a("h4",{attrs:{id:"parameters-52"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-52"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": An optional state to initialize the memory with (typically the initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-72"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-72"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The new initialized memory.")]),t._v(" "),a("h3",{attrs:{id:"is-action-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-action-4"}},[t._v("#")]),t._v(" _is_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_action",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an event is an action (i.e. a controllable event for the agents).")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\naction space provided by "),a("code",[t._v("Events._get_action_space()")]),t._v(", but it can be overridden for faster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-53"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-53"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("event")]),t._v(": The event to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-73"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-73"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is an action (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-applicable-action-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-4"}},[t._v("#")]),t._v(" _is_applicable_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_applicable_action",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an action is applicable in the given memory (state or history), or in the internal one if\nomitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._is_applicable_action()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_applicable_action_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-54"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-54"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-74"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-74"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the action is applicable (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-applicable-action-from-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-from-2"}},[t._v("#")]),t._v(" _is_applicable_action_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_applicable_action_from",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an action is applicable in the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._is_applicable_action()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the space of\napplicable actions provided by "),a("code",[t._v("Events._get_applicable_actions_from()")]),t._v(", but it can be overridden for faster\nimplementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-55"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-55"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-75"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-75"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the action is applicable (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-enabled-event-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-4"}},[t._v("#")]),t._v(" _is_enabled_event "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_enabled_event",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an uncontrollable event is enabled in the given memory (state or history), or in the\ninternal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._is_enabled_event()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_enabled_event_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead\nof the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-56"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-56"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-76"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-76"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is enabled (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-enabled-event-from-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-from-2"}},[t._v("#")]),t._v(" _is_enabled_event_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_enabled_event_from",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an event is enabled in the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._is_enabled_event()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the space of\nenabled events provided by "),a("code",[t._v("Events._get_enabled_events_from()")]),t._v(", but it can be overridden for faster\nimplementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-57"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-57"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-77"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-77"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is enabled (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-observation-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-observation-4"}},[t._v("#")]),t._v(" _is_observation "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_observation",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that an observation indeed belongs to the domain observation space.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\nobservation space provided by "),a("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(", but it can be overridden for\nfaster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-58"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-58"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-78"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-78"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the observation belongs to the domain observation space (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"render-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#render-4"}},[t._v("#")]),t._v(" _render "),a("Badge",{attrs:{text:"Renderable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_render",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"},{name:"**kwargs",annotation:"Any"}],return:"Any"}}}),t._v(" "),a("p",[t._v("Compute a visual render of the given memory (state or history), or the internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Renderable._render()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Renderable._render_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead of\nthe memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-59"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-59"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-79"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-79"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("A render (e.g. image) or nothing (if the function handles the display directly).")]),t._v(" "),a("h3",{attrs:{id:"render-from-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#render-from-2"}},[t._v("#")]),t._v(" _render_from "),a("Badge",{attrs:{text:"Renderable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_render_from",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"**kwargs",annotation:"Any"}],return:"Any"}}}),t._v(" "),a("p",[t._v("Compute a visual render of the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Renderable._render()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("h4",{attrs:{id:"parameters-60"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-60"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-80"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-80"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("A render (e.g. image) or nothing (if the function handles the display directly).")]),t._v(" "),a("h3",{attrs:{id:"reset-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#reset-4"}},[t._v("#")]),t._v(" _reset "),a("Badge",{attrs:{text:"Initializable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_reset",sig:{params:[{name:"self"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Reset the state of the environment and return an initial observation.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Initializable._reset()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Initializable._state_reset()")]),t._v(" (which returns an initial state). The boilerplate code automatically stores\nthe initial state into the "),a("code",[t._v("_memory")]),t._v(" attribute and samples a corresponding observation.")]),t._v(" "),a("h4",{attrs:{id:"returns-81"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-81"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("An initial observation.")]),t._v(" "),a("h3",{attrs:{id:"state-reset-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#state-reset-2"}},[t._v("#")]),t._v(" _state_reset "),a("Badge",{attrs:{text:"Initializable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_state_reset",sig:{params:[{name:"self"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("Reset the state of the environment and return an initial state.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Initializable._reset()")]),t._v(". It focuses on the state level, as\nopposed to the observation one for the latter.")]),t._v(" "),a("h4",{attrs:{id:"returns-82"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-82"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("An initial state.")]),t._v(" "),a("h3",{attrs:{id:"state-step-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#state-step-2"}},[t._v("#")]),t._v(" _state_step "),a("Badge",{attrs:{text:"Environment",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_state_step",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"TransitionOutcome[D.T_state, D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Compute one step of the transition's dynamics.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Environment._step()")]),t._v(". It focuses on the state level, as opposed\nto the observation one for the latter.")]),t._v(" "),a("h4",{attrs:{id:"parameters-61"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-61"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the current memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-83"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-83"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The transition outcome of this step.")]),t._v(" "),a("h3",{attrs:{id:"step-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#step-4"}},[t._v("#")]),t._v(" _step "),a("Badge",{attrs:{text:"Environment",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_step",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Run one step of the environment's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Environment._step()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Environment._state_step()")]),t._v(" (which returns a transition outcome). The boilerplate code automatically stores\nnext state into the "),a("code",[t._v("_memory")]),t._v(" attribute and samples a corresponding observation.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing environment needs to be wrapped instead of implemented fully in scikit-decide (e.g. compiled\nATARI games), it is recommended to overwrite "),a("code",[t._v("Environment._step()")]),t._v(" to call the external environment and not\nuse the "),a("code",[t._v("Environment._state_step()")]),t._v(" helper function.")])]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Before calling "),a("code",[t._v("Environment._step()")]),t._v(" the first time or when the end of an episode is\nreached, "),a("code",[t._v("Initializable._reset()")]),t._v(" must be called to reset the environment's state.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-62"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-62"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the current memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-84"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-84"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of this step.")]),t._v(" "),a("h2",{attrs:{id:"deterministicinitializedgymdomain"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#deterministicinitializedgymdomain"}},[t._v("#")]),t._v(" DeterministicInitializedGymDomain")]),t._v(" "),a("p",[t._v("This class wraps an OpenAI Gym environment (gym.env) as a scikit-decide domain\nwith a deterministic initial state (i.e. reset the domain to the initial\nstate returned by the first reset)")]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Using this class requires OpenAI Gym to be installed.")])]),t._v(" "),a("h3",{attrs:{id:"constructor-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#constructor-3"}},[t._v("#")]),t._v(" Constructor "),a("Badge",{attrs:{text:"DeterministicInitializedGymDomain",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"DeterministicInitializedGymDomain",sig:{params:[{name:"gym_env",annotation:"gym.Env"},{name:"set_state",default:"None",annotation:"Callable[[gym.Env, D.T_memory[D.T_state]], None]"},{name:"get_state",default:"None",annotation:"Callable[[gym.Env], D.T_memory[D.T_state]]"}],return:"None"}}}),t._v(" "),a("p",[t._v("Initialize GymDomain.")]),t._v(" "),a("h4",{attrs:{id:"parameters-63"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-63"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("gym_env")]),t._v(": The Gym environment (gym.env) to wrap.")]),t._v(" "),a("li",[a("strong",[t._v("set_state")]),t._v(": Function to call to set the state of the gym environment.\nIf None, default behavior is to deepcopy the environment when changing state")]),t._v(" "),a("li",[a("strong",[t._v("get_state")]),t._v(": Function to call to get the state of the gym environment.\nIf None, default behavior is to deepcopy the environment when changing state")])]),t._v(" "),a("h3",{attrs:{id:"check-value-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#check-value-5"}},[t._v("#")]),t._v(" check_value "),a("Badge",{attrs:{text:"Rewards",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"check_value",sig:{params:[{name:"self"},{name:"value",annotation:"Value[D.T_value]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that a value is compliant with its reward specification.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("This function returns always True by default because any kind of reward should be accepted at this level.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-64"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-64"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("value")]),t._v(": The value to check.")])]),t._v(" "),a("h4",{attrs:{id:"returns-85"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-85"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the value is compliant (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"get-action-space-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-7"}},[t._v("#")]),t._v(" get_action_space "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_action_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) domain action space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.get_action_space()")]),t._v(" internally calls "),a("code",[t._v("Events._get_action_space_()")]),t._v(" the first time and\nautomatically caches its value to make future calls more efficient (since the action space is assumed to be\nconstant).")]),t._v(" "),a("h4",{attrs:{id:"returns-86"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-86"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The action space.")]),t._v(" "),a("h3",{attrs:{id:"get-applicable-actions-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-5"}},[t._v("#")]),t._v(" get_applicable_actions "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_applicable_actions",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history), or in\nthe internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.get_applicable_actions()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_applicable_actions()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-65"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-65"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-87"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-87"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of applicable actions.")]),t._v(" "),a("h3",{attrs:{id:"get-enabled-events-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-5"}},[t._v("#")]),t._v(" get_enabled_events "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_enabled_events",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"Space[D.T_event]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory), or in the internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.get_enabled_events()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_enabled_events()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead of\nthe memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-66"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-66"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-88"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-88"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of enabled events.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state"}},[t._v("#")]),t._v(" get_initial_state "),a("Badge",{attrs:{text:"DeterministicInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_initial_state",sig:{params:[{name:"self"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("Get the (cached) initial state.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("DeterministicInitialized.get_initial_state()")]),t._v(" internally\ncalls "),a("code",[t._v("DeterministicInitialized._get_initial_state_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the initial state is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-89"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-89"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The initial state.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-distribution"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-distribution"}},[t._v("#")]),t._v(" get_initial_state_distribution "),a("Badge",{attrs:{text:"UncertainInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_initial_state_distribution",sig:{params:[{name:"self"}],return:"Distribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("Get the (cached) probability distribution of initial states.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("UncertainInitialized.get_initial_state_distribution()")]),t._v(" internally\ncalls "),a("code",[t._v("UncertainInitialized._get_initial_state_distribution_()")]),t._v(" the first time and automatically caches its value\nto make future calls more efficient (since the initial state distribution is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-90"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-90"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of initial states.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-5"}},[t._v("#")]),t._v(" get_observation "),a("Badge",{attrs:{text:"TransformedObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_observation",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Get the deterministic observation given a state and action.")]),t._v(" "),a("h4",{attrs:{id:"parameters-67"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-67"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-91"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-91"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-distribution-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-distribution-5"}},[t._v("#")]),t._v(" get_observation_distribution "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_observation_distribution",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"Distribution[D.T_agent[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the probability distribution of the observation given a state and action.")]),t._v(" "),a("p",[t._v("In mathematical terms (discrete case), given an action "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.197ex",height:"1.02ex",viewBox:"0 -441 529 451"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})])])])])]),t._v(", this function represents: "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.078ex",height:"2.262ex",viewBox:"0 -750 4012.7 1000"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"50",d:"M287 628Q287 635 230 637Q206 637 199 638T192 648Q192 649 194 659Q200 679 203 681T397 683Q587 682 600 680Q664 669 707 631T751 530Q751 453 685 389Q616 321 507 303Q500 302 402 301H307L277 182Q247 66 247 59Q247 55 248 54T255 50T272 48T305 46H336Q342 37 342 35Q342 19 335 5Q330 0 319 0Q316 0 282 1T182 2Q120 2 87 2T51 1Q33 1 33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM645 554Q645 567 643 575T634 597T609 619T560 635Q553 636 480 637Q463 637 445 637T416 636T404 636Q391 635 386 627Q384 621 367 550T332 412T314 344Q314 342 395 342H407H430Q542 342 590 392Q617 419 631 471T645 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(751, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(1140, 0)"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1903, 0)"}},[a("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(2181, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2650, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(3094.7, 0)"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3623.7, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(",\nwhere "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.05ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.726ex",height:"1.643ex",viewBox:"0 -704 763 726"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})])])])])]),t._v(" is the random variable of the observation.")],1),t._v(" "),a("h4",{attrs:{id:"parameters-68"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-68"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-92"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-92"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-space-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-7"}},[t._v("#")]),t._v(" get_observation_space "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_observation_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) observation space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("PartiallyObservable.get_observation_space()")]),t._v(" internally\ncalls "),a("code",[t._v("PartiallyObservable._get_observation_space_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the observation space is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-93"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-93"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The observation space.")]),t._v(" "),a("h3",{attrs:{id:"is-action-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-action-5"}},[t._v("#")]),t._v(" is_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_action",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an event is an action (i.e. a controllable event for the agents).")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\naction space provided by "),a("code",[t._v("Events.get_action_space()")]),t._v(", but it can be overridden for faster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-69"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-69"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("event")]),t._v(": The event to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-94"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-94"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is an action (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-applicable-action-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-5"}},[t._v("#")]),t._v(" is_applicable_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_applicable_action",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an action is applicable in the given memory (state or history), or in the internal one if\nomitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.is_applicable_action()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_applicable_action()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead\nof the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-70"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-70"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-95"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-95"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the action is applicable (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-enabled-event-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-5"}},[t._v("#")]),t._v(" is_enabled_event "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_enabled_event",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an uncontrollable event is enabled in the given memory (state or history), or in the\ninternal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.is_enabled_event()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_enabled_event()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead of\nthe memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-71"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-71"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-96"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-96"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is enabled (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-observation-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-observation-5"}},[t._v("#")]),t._v(" is_observation "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_observation",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that an observation indeed belongs to the domain observation space.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\nobservation space provided by "),a("code",[t._v("PartiallyObservable.get_observation_space()")]),t._v(", but it can be overridden for\nfaster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-72"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-72"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-97"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-97"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the observation belongs to the domain observation space (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"render-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#render-5"}},[t._v("#")]),t._v(" render "),a("Badge",{attrs:{text:"Renderable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"render",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"},{name:"**kwargs",annotation:"Any"}],return:"Any"}}}),t._v(" "),a("p",[t._v("Compute a visual render of the given memory (state or history), or the internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Renderable.render()")]),t._v(" provides some boilerplate code and internally calls "),a("code",[t._v("Renderable._render()")]),t._v(". The\nboilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead of the memory parameter whenever the latter\nis None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-73"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-73"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-98"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-98"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("A render (e.g. image) or nothing (if the function handles the display directly).")]),t._v(" "),a("h3",{attrs:{id:"reset-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#reset-5"}},[t._v("#")]),t._v(" reset "),a("Badge",{attrs:{text:"Initializable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"reset",sig:{params:[{name:"self"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Reset the state of the environment and return an initial observation.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Initializable.reset()")]),t._v(" provides some boilerplate code and internally calls "),a("code",[t._v("Initializable._reset()")]),t._v("\n(which returns an initial state). The boilerplate code automatically stores the initial state into the "),a("code",[t._v("_memory")]),t._v("\nattribute and samples a corresponding observation.")]),t._v(" "),a("h4",{attrs:{id:"returns-99"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-99"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("An initial observation.")]),t._v(" "),a("h3",{attrs:{id:"solve-with-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#solve-with-3"}},[t._v("#")]),t._v(" solve_with "),a("Badge",{attrs:{text:"Domain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"solve_with",sig:{params:[{name:"solver",annotation:"Solver"},{name:"domain_factory",default:"None",annotation:"Optional[Callable[[], Domain]]"},{name:"load_path",default:"None",annotation:"Optional[str]"}],return:"Solver"}}}),t._v(" "),a("p",[t._v("Solve the domain with a new or loaded solver and return it auto-cast to the level of the domain.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Solver.check_domain()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Solver._check_domain_additional()")]),t._v(' (which returns True by default but can be overridden to define\nspecific checks in addition to the "domain requirements"). The boilerplate code automatically checks whether all\ndomain requirements are met.')]),t._v(" "),a("h4",{attrs:{id:"parameters-74"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-74"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("solver")]),t._v(": The solver.")]),t._v(" "),a("li",[a("strong",[t._v("domain_factory")]),t._v(": A callable with no argument returning the domain to solve (factory is the domain class if None).")]),t._v(" "),a("li",[a("strong",[t._v("load_path")]),t._v(": The path to restore the solver state from (if None, the solving process will be launched instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-100"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-100"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The new solver (auto-cast to the level of the domain).")]),t._v(" "),a("h3",{attrs:{id:"step-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#step-5"}},[t._v("#")]),t._v(" step "),a("Badge",{attrs:{text:"Environment",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"step",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Run one step of the environment's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Environment.step()")]),t._v(" provides some boilerplate code and internally calls "),a("code",[t._v("Environment._step()")]),t._v(" (which\nreturns a transition outcome). The boilerplate code automatically stores next state into the "),a("code",[t._v("_memory")]),t._v(" attribute\nand samples a corresponding observation.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing environment needs to be wrapped instead of implemented fully in scikit-decide (e.g. compiled\nATARI games), it is recommended to overwrite "),a("code",[t._v("Environment.step()")]),t._v(" to call the external environment and not\nuse the "),a("code",[t._v("Environment._step()")]),t._v(" helper function.")])]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Before calling "),a("code",[t._v("Environment.step()")]),t._v(" the first time or when the end of an episode is\nreached, "),a("code",[t._v("Initializable.reset()")]),t._v(" must be called to reset the environment's state.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-75"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-75"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the current memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-101"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-101"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of this step.")]),t._v(" "),a("h3",{attrs:{id:"unwrapped-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#unwrapped-3"}},[t._v("#")]),t._v(" unwrapped "),a("Badge",{attrs:{text:"DeterministicInitializedGymDomain",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"unwrapped",sig:{params:[{name:"self"}]}}}),t._v(" "),a("p",[t._v("Unwrap the Gym environment (gym.env) and return it.")]),t._v(" "),a("h4",{attrs:{id:"returns-102"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-102"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The original Gym environment.")]),t._v(" "),a("h3",{attrs:{id:"check-value-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#check-value-6"}},[t._v("#")]),t._v(" _check_value "),a("Badge",{attrs:{text:"Rewards",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_check_value",sig:{params:[{name:"self"},{name:"value",annotation:"Value[D.T_value]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that a value is compliant with its reward specification.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("This function returns always True by default because any kind of reward should be accepted at this level.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-76"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-76"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("value")]),t._v(": The value to check.")])]),t._v(" "),a("h4",{attrs:{id:"returns-103"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-103"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the value is compliant (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"get-action-space-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-8"}},[t._v("#")]),t._v(" _get_action_space "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_action_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) domain action space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._get_action_space()")]),t._v(" internally calls "),a("code",[t._v("Events._get_action_space_()")]),t._v(" the first time and\nautomatically caches its value to make future calls more efficient (since the action space is assumed to be\nconstant).")]),t._v(" "),a("h4",{attrs:{id:"returns-104"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-104"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The action space.")]),t._v(" "),a("h3",{attrs:{id:"get-action-space-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-9"}},[t._v("#")]),t._v(" _get_action_space_ "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_action_space_",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the domain action space (finite or infinite set).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._get_action_space()")]),t._v(", the difference being that the\nresult is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-105"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-105"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The action space.")]),t._v(" "),a("h3",{attrs:{id:"get-applicable-actions-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-6"}},[t._v("#")]),t._v(" _get_applicable_actions "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_applicable_actions",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history), or in\nthe internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._get_applicable_actions()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_applicable_actions_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-77"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-77"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-106"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-106"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of applicable actions.")]),t._v(" "),a("h3",{attrs:{id:"get-applicable-actions-from-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-from-3"}},[t._v("#")]),t._v(" _get_applicable_actions_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_applicable_actions_from",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._get_applicable_actions()")]),t._v(", the difference being that\nthe memory parameter is mandatory here.")]),t._v(" "),a("h4",{attrs:{id:"parameters-78"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-78"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-107"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-107"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of applicable actions.")]),t._v(" "),a("h3",{attrs:{id:"get-enabled-events-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-6"}},[t._v("#")]),t._v(" _get_enabled_events "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_enabled_events",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"Space[D.T_event]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory), or in the internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._get_enabled_events()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_enabled_events_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-79"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-79"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-108"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-108"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of enabled events.")]),t._v(" "),a("h3",{attrs:{id:"get-enabled-events-from-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-from-3"}},[t._v("#")]),t._v(" _get_enabled_events_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_enabled_events_from",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"Space[D.T_event]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._get_enabled_events()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("h4",{attrs:{id:"parameters-80"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-80"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-109"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-109"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of enabled events.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-2"}},[t._v("#")]),t._v(" _get_initial_state "),a("Badge",{attrs:{text:"DeterministicInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_initial_state",sig:{params:[{name:"self"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("Get the (cached) initial state.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("DeterministicInitialized._get_initial_state()")]),t._v(" internally\ncalls "),a("code",[t._v("DeterministicInitialized._get_initial_state_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the initial state is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-110"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-110"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The initial state.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-3"}},[t._v("#")]),t._v(" _get_initial_state_ "),a("Badge",{attrs:{text:"DeterministicInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_initial_state_",sig:{params:[{name:"self"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("Get the initial state.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("DeterministicInitialized._get_initial_state()")]),t._v(", the difference\nbeing that the result is not cached here.")]),t._v(" "),a("h4",{attrs:{id:"returns-111"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-111"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The initial state.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-distribution-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-distribution-2"}},[t._v("#")]),t._v(" _get_initial_state_distribution "),a("Badge",{attrs:{text:"UncertainInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_initial_state_distribution",sig:{params:[{name:"self"}],return:"Distribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("Get the (cached) probability distribution of initial states.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("UncertainInitialized._get_initial_state_distribution()")]),t._v(" internally\ncalls "),a("code",[t._v("UncertainInitialized._get_initial_state_distribution_()")]),t._v(" the first time and automatically caches its value\nto make future calls more efficient (since the initial state distribution is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-112"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-112"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of initial states.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-distribution-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-distribution-3"}},[t._v("#")]),t._v(" _get_initial_state_distribution_ "),a("Badge",{attrs:{text:"UncertainInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_initial_state_distribution_",sig:{params:[{name:"self"}],return:"Distribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("Get the probability distribution of initial states.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("UncertainInitialized._get_initial_state_distribution()")]),t._v(", the\ndifference being that the result is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-113"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-113"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of initial states.")]),t._v(" "),a("h3",{attrs:{id:"get-memory-maxlen-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-memory-maxlen-5"}},[t._v("#")]),t._v(" _get_memory_maxlen "),a("Badge",{attrs:{text:"History",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_memory_maxlen",sig:{params:[{name:"self"}],return:"int"}}}),t._v(" "),a("p",[t._v("Get the (cached) memory max length.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("FiniteHistory._get_memory_maxlen()")]),t._v(" internally calls "),a("code",[t._v("FiniteHistory._get_memory_maxlen_()")]),t._v(" the first\ntime and automatically caches its value to make future calls more efficient (since the memory max length is\nassumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-114"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-114"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The memory max length.")]),t._v(" "),a("h3",{attrs:{id:"get-memory-maxlen-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-memory-maxlen-6"}},[t._v("#")]),t._v(" _get_memory_maxlen_ "),a("Badge",{attrs:{text:"FiniteHistory",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_memory_maxlen_",sig:{params:[{name:"self"}],return:"int"}}}),t._v(" "),a("p",[t._v("Get the memory max length.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("FiniteHistory._get_memory_maxlen()")]),t._v(", the difference being that\nthe result is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-115"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-115"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The memory max length.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-6"}},[t._v("#")]),t._v(" _get_observation "),a("Badge",{attrs:{text:"TransformedObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Get the deterministic observation given a state and action.")]),t._v(" "),a("h4",{attrs:{id:"parameters-81"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-81"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-116"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-116"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-distribution-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-distribution-6"}},[t._v("#")]),t._v(" _get_observation_distribution "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation_distribution",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"Distribution[D.T_agent[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the probability distribution of the observation given a state and action.")]),t._v(" "),a("p",[t._v("In mathematical terms (discrete case), given an action "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.197ex",height:"1.02ex",viewBox:"0 -441 529 451"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})])])])])]),t._v(", this function represents: "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.078ex",height:"2.262ex",viewBox:"0 -750 4012.7 1000"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"50",d:"M287 628Q287 635 230 637Q206 637 199 638T192 648Q192 649 194 659Q200 679 203 681T397 683Q587 682 600 680Q664 669 707 631T751 530Q751 453 685 389Q616 321 507 303Q500 302 402 301H307L277 182Q247 66 247 59Q247 55 248 54T255 50T272 48T305 46H336Q342 37 342 35Q342 19 335 5Q330 0 319 0Q316 0 282 1T182 2Q120 2 87 2T51 1Q33 1 33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM645 554Q645 567 643 575T634 597T609 619T560 635Q553 636 480 637Q463 637 445 637T416 636T404 636Q391 635 386 627Q384 621 367 550T332 412T314 344Q314 342 395 342H407H430Q542 342 590 392Q617 419 631 471T645 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(751, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(1140, 0)"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1903, 0)"}},[a("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(2181, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2650, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(3094.7, 0)"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3623.7, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(",\nwhere "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.05ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.726ex",height:"1.643ex",viewBox:"0 -704 763 726"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})])])])])]),t._v(" is the random variable of the observation.")],1),t._v(" "),a("h4",{attrs:{id:"parameters-82"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-82"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-117"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-117"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-space-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-8"}},[t._v("#")]),t._v(" _get_observation_space "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) observation space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(" internally\ncalls "),a("code",[t._v("PartiallyObservable._get_observation_space_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the observation space is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-118"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-118"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The observation space.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-space-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-9"}},[t._v("#")]),t._v(" _get_observation_space_ "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation_space_",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the observation space (finite or infinite set).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(", the difference\nbeing that the result is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-119"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-119"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The observation space.")]),t._v(" "),a("h3",{attrs:{id:"init-memory-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#init-memory-3"}},[t._v("#")]),t._v(" _init_memory "),a("Badge",{attrs:{text:"History",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_init_memory",sig:{params:[{name:"self"},{name:"state",default:"None",annotation:"Optional[D.T_state]"}],return:"D.T_memory[D.T_state]"}}}),t._v(" "),a("p",[t._v("Initialize memory (possibly with a state) according to its specification and return it.")]),t._v(" "),a("p",[t._v("This function is automatically called by "),a("code",[t._v("Initializable._reset()")]),t._v(" to reinitialize the internal memory whenever\nthe domain is used as an environment.")]),t._v(" "),a("h4",{attrs:{id:"parameters-83"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-83"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": An optional state to initialize the memory with (typically the initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-120"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-120"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The new initialized memory.")]),t._v(" "),a("h3",{attrs:{id:"is-action-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-action-6"}},[t._v("#")]),t._v(" _is_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_action",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an event is an action (i.e. a controllable event for the agents).")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\naction space provided by "),a("code",[t._v("Events._get_action_space()")]),t._v(", but it can be overridden for faster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-84"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-84"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("event")]),t._v(": The event to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-121"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-121"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is an action (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-applicable-action-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-6"}},[t._v("#")]),t._v(" _is_applicable_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_applicable_action",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an action is applicable in the given memory (state or history), or in the internal one if\nomitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._is_applicable_action()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_applicable_action_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-85"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-85"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-122"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-122"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the action is applicable (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-applicable-action-from-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-from-3"}},[t._v("#")]),t._v(" _is_applicable_action_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_applicable_action_from",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an action is applicable in the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._is_applicable_action()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the space of\napplicable actions provided by "),a("code",[t._v("Events._get_applicable_actions_from()")]),t._v(", but it can be overridden for faster\nimplementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-86"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-86"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-123"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-123"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the action is applicable (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-enabled-event-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-6"}},[t._v("#")]),t._v(" _is_enabled_event "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_enabled_event",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an uncontrollable event is enabled in the given memory (state or history), or in the\ninternal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._is_enabled_event()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_enabled_event_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead\nof the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-87"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-87"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-124"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-124"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is enabled (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-enabled-event-from-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-from-3"}},[t._v("#")]),t._v(" _is_enabled_event_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_enabled_event_from",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an event is enabled in the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._is_enabled_event()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the space of\nenabled events provided by "),a("code",[t._v("Events._get_enabled_events_from()")]),t._v(", but it can be overridden for faster\nimplementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-88"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-88"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-125"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-125"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is enabled (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-observation-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-observation-6"}},[t._v("#")]),t._v(" _is_observation "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_observation",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that an observation indeed belongs to the domain observation space.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\nobservation space provided by "),a("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(", but it can be overridden for\nfaster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-89"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-89"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-126"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-126"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the observation belongs to the domain observation space (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"render-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#render-6"}},[t._v("#")]),t._v(" _render "),a("Badge",{attrs:{text:"Renderable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_render",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"},{name:"**kwargs",annotation:"Any"}],return:"Any"}}}),t._v(" "),a("p",[t._v("Compute a visual render of the given memory (state or history), or the internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Renderable._render()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Renderable._render_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead of\nthe memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-90"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-90"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-127"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-127"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("A render (e.g. image) or nothing (if the function handles the display directly).")]),t._v(" "),a("h3",{attrs:{id:"render-from-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#render-from-3"}},[t._v("#")]),t._v(" _render_from "),a("Badge",{attrs:{text:"Renderable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_render_from",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"**kwargs",annotation:"Any"}],return:"Any"}}}),t._v(" "),a("p",[t._v("Compute a visual render of the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Renderable._render()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("h4",{attrs:{id:"parameters-91"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-91"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-128"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-128"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("A render (e.g. image) or nothing (if the function handles the display directly).")]),t._v(" "),a("h3",{attrs:{id:"reset-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#reset-6"}},[t._v("#")]),t._v(" _reset "),a("Badge",{attrs:{text:"Initializable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_reset",sig:{params:[{name:"self"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Reset the state of the environment and return an initial observation.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Initializable._reset()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Initializable._state_reset()")]),t._v(" (which returns an initial state). The boilerplate code automatically stores\nthe initial state into the "),a("code",[t._v("_memory")]),t._v(" attribute and samples a corresponding observation.")]),t._v(" "),a("h4",{attrs:{id:"returns-129"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-129"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("An initial observation.")]),t._v(" "),a("h3",{attrs:{id:"state-reset-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#state-reset-3"}},[t._v("#")]),t._v(" _state_reset "),a("Badge",{attrs:{text:"Initializable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_state_reset",sig:{params:[{name:"self"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("Reset the state of the environment and return an initial state.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Initializable._reset()")]),t._v(". It focuses on the state level, as\nopposed to the observation one for the latter.")]),t._v(" "),a("h4",{attrs:{id:"returns-130"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-130"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("An initial state.")]),t._v(" "),a("h3",{attrs:{id:"state-step-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#state-step-3"}},[t._v("#")]),t._v(" _state_step "),a("Badge",{attrs:{text:"Environment",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_state_step",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"TransitionOutcome[D.T_state, D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Compute one step of the transition's dynamics.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Environment._step()")]),t._v(". It focuses on the state level, as opposed\nto the observation one for the latter.")]),t._v(" "),a("h4",{attrs:{id:"parameters-92"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-92"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the current memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-131"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-131"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The transition outcome of this step.")]),t._v(" "),a("h3",{attrs:{id:"step-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#step-6"}},[t._v("#")]),t._v(" _step "),a("Badge",{attrs:{text:"Environment",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_step",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Run one step of the environment's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Environment._step()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Environment._state_step()")]),t._v(" (which returns a transition outcome). The boilerplate code automatically stores\nnext state into the "),a("code",[t._v("_memory")]),t._v(" attribute and samples a corresponding observation.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing environment needs to be wrapped instead of implemented fully in scikit-decide (e.g. compiled\nATARI games), it is recommended to overwrite "),a("code",[t._v("Environment._step()")]),t._v(" to call the external environment and not\nuse the "),a("code",[t._v("Environment._state_step()")]),t._v(" helper function.")])]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Before calling "),a("code",[t._v("Environment._step()")]),t._v(" the first time or when the end of an episode is\nreached, "),a("code",[t._v("Initializable._reset()")]),t._v(" must be called to reset the environment's state.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-93"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-93"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the current memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-132"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-132"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of this step.")]),t._v(" "),a("h2",{attrs:{id:"gymwidthdomain"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#gymwidthdomain"}},[t._v("#")]),t._v(" GymWidthDomain")]),t._v(" "),a("p",[t._v("This class wraps an OpenAI Gym environment as a domain\nusable by width-based solving algorithm (e.g. IW)")]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Using this class requires OpenAI Gym to be installed.")])]),t._v(" "),a("h3",{attrs:{id:"constructor-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#constructor-4"}},[t._v("#")]),t._v(" Constructor "),a("Badge",{attrs:{text:"GymWidthDomain",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"GymWidthDomain",sig:{params:[{name:"continuous_feature_fidelity",default:"1",annotation:"int"}],return:"None"}}}),t._v(" "),a("p",[t._v("Initialize GymWidthDomain.")]),t._v(" "),a("h4",{attrs:{id:"parameters-94"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-94"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("continuous_feature_fidelity")]),t._v(": Number of integers to represent a continuous feature\nin the interval-based feature abstraction (higher is more precise)")])]),t._v(" "),a("h3",{attrs:{id:"bee1-features"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#bee1-features"}},[t._v("#")]),t._v(" bee1_features "),a("Badge",{attrs:{text:"GymWidthDomain",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"bee1_features",sig:{params:[{name:"self"},{name:"state"}]}}}),t._v(" "),a("p",[t._v("Return a numpy vector of ints representing the current 'cumulated layer' of each state variable")]),t._v(" "),a("h3",{attrs:{id:"bee2-features"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#bee2-features"}},[t._v("#")]),t._v(" bee2_features "),a("Badge",{attrs:{text:"GymWidthDomain",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"bee2_features",sig:{params:[{name:"self"},{name:"state"}]}}}),t._v(" "),a("p",[t._v("Return a numpy vector of ints representing the current 'cumulated layer' of each state variable")]),t._v(" "),a("h3",{attrs:{id:"binary-features"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#binary-features"}},[t._v("#")]),t._v(" binary_features "),a("Badge",{attrs:{text:"GymWidthDomain",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"binary_features",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}]}}}),t._v(" "),a("p",[t._v("Transform state in a bit vector and call f on each true value of this vector")]),t._v(" "),a("h4",{attrs:{id:"parameters-95"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-95"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("p",[a("strong",[t._v("memory")]),t._v(": The Gym state (in observation_space) to binarize")])]),t._v(" "),a("li",[a("p",[a("strong",[t._v("Return")]),t._v(" a list of booleans representing the binary representation of each state variable")])])]),t._v(" "),a("h3",{attrs:{id:"nb-of-binary-features"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#nb-of-binary-features"}},[t._v("#")]),t._v(" nb_of_binary_features "),a("Badge",{attrs:{text:"GymWidthDomain",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"nb_of_binary_features",sig:{params:[{name:"self"}],return:"int"}}}),t._v(" "),a("p",[t._v("Return the size of the bit vector encoding an observation")]),t._v(" "),a("h2",{attrs:{id:"gymdiscreteactiondomain"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#gymdiscreteactiondomain"}},[t._v("#")]),t._v(" GymDiscreteActionDomain")]),t._v(" "),a("p",[t._v("This class wraps an OpenAI Gym environment as a domain\nusable by a solver that requires enumerable applicable action sets")]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Using this class requires OpenAI Gym to be installed.")])]),t._v(" "),a("h3",{attrs:{id:"constructor-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#constructor-5"}},[t._v("#")]),t._v(" Constructor "),a("Badge",{attrs:{text:"GymDiscreteActionDomain",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"GymDiscreteActionDomain",sig:{params:[{name:"discretization_factor",default:"10",annotation:"int"},{name:"branching_factor",default:"None",annotation:"int"}],return:"None"}}}),t._v(" "),a("p",[t._v("Initialize GymDiscreteActionDomain.")]),t._v(" "),a("h4",{attrs:{id:"parameters-96"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-96"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("discretization_factor")]),t._v(": Number of discretized action variable values per continuous action variable")]),t._v(" "),a("li",[a("strong",[t._v("branching_factor")]),t._v(": if not None, sample branching_factor actions from the resulting list of discretized actions")])]),t._v(" "),a("h3",{attrs:{id:"get-action-space-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-10"}},[t._v("#")]),t._v(" get_action_space "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_action_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) domain action space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.get_action_space()")]),t._v(" internally calls "),a("code",[t._v("Events._get_action_space_()")]),t._v(" the first time and\nautomatically caches its value to make future calls more efficient (since the action space is assumed to be\nconstant).")]),t._v(" "),a("h4",{attrs:{id:"returns-133"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-133"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The action space.")]),t._v(" "),a("h3",{attrs:{id:"get-applicable-actions-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-7"}},[t._v("#")]),t._v(" get_applicable_actions "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_applicable_actions",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history), or in\nthe internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.get_applicable_actions()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_applicable_actions()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-97"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-97"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-134"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-134"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of applicable actions.")]),t._v(" "),a("h3",{attrs:{id:"get-enabled-events-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-7"}},[t._v("#")]),t._v(" get_enabled_events "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_enabled_events",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"Space[D.T_event]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory), or in the internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.get_enabled_events()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_enabled_events()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead of\nthe memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-98"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-98"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-135"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-135"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of enabled events.")]),t._v(" "),a("h3",{attrs:{id:"is-action-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-action-7"}},[t._v("#")]),t._v(" is_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_action",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an event is an action (i.e. a controllable event for the agents).")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\naction space provided by "),a("code",[t._v("Events.get_action_space()")]),t._v(", but it can be overridden for faster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-99"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-99"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("event")]),t._v(": The event to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-136"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-136"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is an action (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-applicable-action-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-7"}},[t._v("#")]),t._v(" is_applicable_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_applicable_action",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an action is applicable in the given memory (state or history), or in the internal one if\nomitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.is_applicable_action()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_applicable_action()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead\nof the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-100"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-100"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-137"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-137"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the action is applicable (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-enabled-event-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-7"}},[t._v("#")]),t._v(" is_enabled_event "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_enabled_event",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an uncontrollable event is enabled in the given memory (state or history), or in the\ninternal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.is_enabled_event()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_enabled_event()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead of\nthe memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-101"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-101"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-138"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-138"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is enabled (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"get-action-space-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-11"}},[t._v("#")]),t._v(" _get_action_space "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_action_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) domain action space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._get_action_space()")]),t._v(" internally calls "),a("code",[t._v("Events._get_action_space_()")]),t._v(" the first time and\nautomatically caches its value to make future calls more efficient (since the action space is assumed to be\nconstant).")]),t._v(" "),a("h4",{attrs:{id:"returns-139"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-139"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The action space.")]),t._v(" "),a("h3",{attrs:{id:"get-action-space-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-12"}},[t._v("#")]),t._v(" _get_action_space_ "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_action_space_",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the domain action space (finite or infinite set).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._get_action_space()")]),t._v(", the difference being that the\nresult is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-140"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-140"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The action space.")]),t._v(" "),a("h3",{attrs:{id:"get-applicable-actions-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-8"}},[t._v("#")]),t._v(" _get_applicable_actions "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_applicable_actions",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history), or in\nthe internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._get_applicable_actions()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_applicable_actions_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-102"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-102"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-141"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-141"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of applicable actions.")]),t._v(" "),a("h3",{attrs:{id:"get-applicable-actions-from-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-from-4"}},[t._v("#")]),t._v(" _get_applicable_actions_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_applicable_actions_from",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._get_applicable_actions()")]),t._v(", the difference being that\nthe memory parameter is mandatory here.")]),t._v(" "),a("h4",{attrs:{id:"parameters-103"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-103"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-142"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-142"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of applicable actions.")]),t._v(" "),a("h3",{attrs:{id:"get-enabled-events-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-8"}},[t._v("#")]),t._v(" _get_enabled_events "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_enabled_events",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"Space[D.T_event]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory), or in the internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._get_enabled_events()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_enabled_events_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-104"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-104"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-143"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-143"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of enabled events.")]),t._v(" "),a("h3",{attrs:{id:"get-enabled-events-from-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-from-4"}},[t._v("#")]),t._v(" _get_enabled_events_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_enabled_events_from",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"Space[D.T_event]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._get_enabled_events()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("h4",{attrs:{id:"parameters-105"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-105"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-144"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-144"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of enabled events.")]),t._v(" "),a("h3",{attrs:{id:"is-action-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-action-8"}},[t._v("#")]),t._v(" _is_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_action",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an event is an action (i.e. a controllable event for the agents).")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\naction space provided by "),a("code",[t._v("Events._get_action_space()")]),t._v(", but it can be overridden for faster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-106"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-106"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("event")]),t._v(": The event to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-145"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-145"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is an action (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-applicable-action-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-8"}},[t._v("#")]),t._v(" _is_applicable_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_applicable_action",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an action is applicable in the given memory (state or history), or in the internal one if\nomitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._is_applicable_action()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_applicable_action_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-107"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-107"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-146"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-146"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the action is applicable (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-applicable-action-from-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-from-4"}},[t._v("#")]),t._v(" _is_applicable_action_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_applicable_action_from",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an action is applicable in the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._is_applicable_action()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the space of\napplicable actions provided by "),a("code",[t._v("Events._get_applicable_actions_from()")]),t._v(", but it can be overridden for faster\nimplementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-108"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-108"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-147"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-147"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the action is applicable (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-enabled-event-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-8"}},[t._v("#")]),t._v(" _is_enabled_event "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_enabled_event",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an uncontrollable event is enabled in the given memory (state or history), or in the\ninternal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._is_enabled_event()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_enabled_event_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead\nof the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-109"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-109"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-148"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-148"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is enabled (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-enabled-event-from-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-from-4"}},[t._v("#")]),t._v(" _is_enabled_event_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_enabled_event_from",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an event is enabled in the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._is_enabled_event()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the space of\nenabled events provided by "),a("code",[t._v("Events._get_enabled_events_from()")]),t._v(", but it can be overridden for faster\nimplementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-110"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-110"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-149"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-149"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is enabled (False otherwise).")]),t._v(" "),a("h2",{attrs:{id:"deterministicgymdomain"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#deterministicgymdomain"}},[t._v("#")]),t._v(" DeterministicGymDomain")]),t._v(" "),a("p",[t._v("This class wraps a deterministic OpenAI Gym environment (gym.env) as a scikit-decide domain.")]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Using this class requires OpenAI Gym to be installed.")])]),t._v(" "),a("h3",{attrs:{id:"constructor-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#constructor-6"}},[t._v("#")]),t._v(" Constructor "),a("Badge",{attrs:{text:"DeterministicGymDomain",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"DeterministicGymDomain",sig:{params:[{name:"gym_env",annotation:"gym.Env"},{name:"set_state",default:"None",annotation:"Callable[[gym.Env, D.T_memory[D.T_state]], None]"},{name:"get_state",default:"None",annotation:"Callable[[gym.Env], D.T_memory[D.T_state]]"}],return:"None"}}}),t._v(" "),a("p",[t._v("Initialize DeterministicGymDomain.")]),t._v(" "),a("h4",{attrs:{id:"parameters-111"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-111"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("gym_env")]),t._v(": The deterministic Gym environment (gym.env) to wrap.")]),t._v(" "),a("li",[a("strong",[t._v("set_state")]),t._v(": Function to call to set the state of the gym environment.\nIf None, default behavior is to deepcopy the environment when changing state")]),t._v(" "),a("li",[a("strong",[t._v("get_state")]),t._v(": Function to call to get the state of the gym environment.\nIf None, default behavior is to deepcopy the environment when changing state")])]),t._v(" "),a("h3",{attrs:{id:"check-value-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#check-value-7"}},[t._v("#")]),t._v(" check_value "),a("Badge",{attrs:{text:"Rewards",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"check_value",sig:{params:[{name:"self"},{name:"value",annotation:"Value[D.T_value]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that a value is compliant with its reward specification.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("This function returns always True by default because any kind of reward should be accepted at this level.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-112"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-112"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("value")]),t._v(": The value to check.")])]),t._v(" "),a("h4",{attrs:{id:"returns-150"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-150"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the value is compliant (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"get-action-space-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-13"}},[t._v("#")]),t._v(" get_action_space "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_action_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) domain action space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.get_action_space()")]),t._v(" internally calls "),a("code",[t._v("Events._get_action_space_()")]),t._v(" the first time and\nautomatically caches its value to make future calls more efficient (since the action space is assumed to be\nconstant).")]),t._v(" "),a("h4",{attrs:{id:"returns-151"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-151"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The action space.")]),t._v(" "),a("h3",{attrs:{id:"get-applicable-actions-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-9"}},[t._v("#")]),t._v(" get_applicable_actions "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_applicable_actions",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history), or in\nthe internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.get_applicable_actions()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_applicable_actions()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-113"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-113"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-152"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-152"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of applicable actions.")]),t._v(" "),a("h3",{attrs:{id:"get-enabled-events-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-9"}},[t._v("#")]),t._v(" get_enabled_events "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_enabled_events",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"Space[D.T_event]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory), or in the internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.get_enabled_events()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_enabled_events()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead of\nthe memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-114"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-114"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-153"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-153"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of enabled events.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-4"}},[t._v("#")]),t._v(" get_initial_state "),a("Badge",{attrs:{text:"DeterministicInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_initial_state",sig:{params:[{name:"self"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("Get the (cached) initial state.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("DeterministicInitialized.get_initial_state()")]),t._v(" internally\ncalls "),a("code",[t._v("DeterministicInitialized._get_initial_state_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the initial state is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-154"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-154"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The initial state.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-distribution-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-distribution-4"}},[t._v("#")]),t._v(" get_initial_state_distribution "),a("Badge",{attrs:{text:"UncertainInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_initial_state_distribution",sig:{params:[{name:"self"}],return:"Distribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("Get the (cached) probability distribution of initial states.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("UncertainInitialized.get_initial_state_distribution()")]),t._v(" internally\ncalls "),a("code",[t._v("UncertainInitialized._get_initial_state_distribution_()")]),t._v(" the first time and automatically caches its value\nto make future calls more efficient (since the initial state distribution is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-155"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-155"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of initial states.")]),t._v(" "),a("h3",{attrs:{id:"get-next-state"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-next-state"}},[t._v("#")]),t._v(" get_next_state "),a("Badge",{attrs:{text:"DeterministicTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_next_state",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("Get the next state given a memory and action.")]),t._v(" "),a("h4",{attrs:{id:"parameters-115"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-115"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-156"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-156"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The deterministic next state.")]),t._v(" "),a("h3",{attrs:{id:"get-next-state-distribution"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-next-state-distribution"}},[t._v("#")]),t._v(" get_next_state_distribution "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_next_state_distribution",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"DiscreteDistribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("Get the discrete probability distribution of next state given a memory and action.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("In the Markovian case (memory only holds last state "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.061ex",height:"1.023ex",viewBox:"0 -442 469 452"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})])])])])]),t._v("), given an action "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.197ex",height:"1.02ex",viewBox:"0 -441 529 451"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})])])])])]),t._v(", this function can\nbe mathematically represented by "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.292ex",height:"2.283ex",viewBox:"0 -759 4107.1 1009"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"50",d:"M287 628Q287 635 230 637Q206 637 199 638T192 648Q192 649 194 659Q200 679 203 681T397 683Q587 682 600 680Q664 669 707 631T751 530Q751 453 685 389Q616 321 507 303Q500 302 402 301H307L277 182Q247 66 247 59Q247 55 248 54T255 50T272 48T305 46H336Q342 37 342 35Q342 19 335 5Q330 0 319 0Q316 0 282 1T182 2Q120 2 87 2T51 1Q33 1 33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM645 554Q645 567 643 575T634 597T609 619T560 635Q553 636 480 637Q463 637 445 637T416 636T404 636Q391 635 386 627Q384 621 367 550T332 412T314 344Q314 342 395 342H407H430Q542 342 590 392Q617 419 631 471T645 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(751, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"msup",transform:"translate(1140, 0)"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"53",d:"M308 24Q367 24 416 76T466 197Q466 260 414 284Q308 311 278 321T236 341Q176 383 176 462Q176 523 208 573T273 648Q302 673 343 688T407 704H418H425Q521 704 564 640Q565 640 577 653T603 682T623 704Q624 704 627 704T632 705Q645 705 645 698T617 577T585 459T569 456Q549 456 549 465Q549 471 550 475Q550 478 551 494T553 520Q553 554 544 579T526 616T501 641Q465 662 419 662Q362 662 313 616T263 510Q263 480 278 458T319 427Q323 425 389 408T456 390Q490 379 522 342T554 242Q554 216 546 186Q541 164 528 137T492 78T426 18T332 -20Q320 -22 298 -22Q199 -22 144 33L134 44L106 13Q83 -14 78 -18T65 -22Q52 -22 52 -14Q52 -11 110 221Q112 227 130 227H143Q149 221 149 216Q149 214 148 207T144 186T142 153Q144 114 160 87T203 47T255 29T308 24Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(613, 363) scale(0.707)"}},[a("path",{attrs:{"data-c":"2032",d:"M79 43Q73 43 52 49T30 61Q30 68 85 293T146 528Q161 560 198 560Q218 560 240 545T262 501Q262 496 260 486Q259 479 173 263T84 45T79 43Z"}})])]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1997.5, 0)"}},[a("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(2275.5, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2744.5, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(3189.1, 0)"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3718.1, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(", where "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.05ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.94ex",height:"1.767ex",viewBox:"0 -759 857.5 781"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"msup"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"53",d:"M308 24Q367 24 416 76T466 197Q466 260 414 284Q308 311 278 321T236 341Q176 383 176 462Q176 523 208 573T273 648Q302 673 343 688T407 704H418H425Q521 704 564 640Q565 640 577 653T603 682T623 704Q624 704 627 704T632 705Q645 705 645 698T617 577T585 459T569 456Q549 456 549 465Q549 471 550 475Q550 478 551 494T553 520Q553 554 544 579T526 616T501 641Q465 662 419 662Q362 662 313 616T263 510Q263 480 278 458T319 427Q323 425 389 408T456 390Q490 379 522 342T554 242Q554 216 546 186Q541 164 528 137T492 78T426 18T332 -20Q320 -22 298 -22Q199 -22 144 33L134 44L106 13Q83 -14 78 -18T65 -22Q52 -22 52 -14Q52 -11 110 221Q112 227 130 227H143Q149 221 149 216Q149 214 148 207T144 186T142 153Q144 114 160 87T203 47T255 29T308 24Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(613, 363) scale(0.707)"}},[a("path",{attrs:{"data-c":"2032",d:"M79 43Q73 43 52 49T30 61Q30 68 85 293T146 528Q161 560 198 560Q218 560 240 545T262 501Q262 496 260 486Q259 479 173 263T84 45T79 43Z"}})])])])])])]),t._v(" is the next state random variable.")],1)]),t._v(" "),a("h4",{attrs:{id:"parameters-116"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-116"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-157"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-157"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The discrete probability distribution of next state.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-7"}},[t._v("#")]),t._v(" get_observation "),a("Badge",{attrs:{text:"TransformedObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_observation",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Get the deterministic observation given a state and action.")]),t._v(" "),a("h4",{attrs:{id:"parameters-117"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-117"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-158"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-158"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-distribution-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-distribution-7"}},[t._v("#")]),t._v(" get_observation_distribution "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_observation_distribution",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"Distribution[D.T_agent[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the probability distribution of the observation given a state and action.")]),t._v(" "),a("p",[t._v("In mathematical terms (discrete case), given an action "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.197ex",height:"1.02ex",viewBox:"0 -441 529 451"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})])])])])]),t._v(", this function represents: "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.078ex",height:"2.262ex",viewBox:"0 -750 4012.7 1000"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"50",d:"M287 628Q287 635 230 637Q206 637 199 638T192 648Q192 649 194 659Q200 679 203 681T397 683Q587 682 600 680Q664 669 707 631T751 530Q751 453 685 389Q616 321 507 303Q500 302 402 301H307L277 182Q247 66 247 59Q247 55 248 54T255 50T272 48T305 46H336Q342 37 342 35Q342 19 335 5Q330 0 319 0Q316 0 282 1T182 2Q120 2 87 2T51 1Q33 1 33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM645 554Q645 567 643 575T634 597T609 619T560 635Q553 636 480 637Q463 637 445 637T416 636T404 636Q391 635 386 627Q384 621 367 550T332 412T314 344Q314 342 395 342H407H430Q542 342 590 392Q617 419 631 471T645 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(751, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(1140, 0)"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1903, 0)"}},[a("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(2181, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2650, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(3094.7, 0)"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3623.7, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(",\nwhere "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.05ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.726ex",height:"1.643ex",viewBox:"0 -704 763 726"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})])])])])]),t._v(" is the random variable of the observation.")],1),t._v(" "),a("h4",{attrs:{id:"parameters-118"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-118"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-159"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-159"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-space-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-10"}},[t._v("#")]),t._v(" get_observation_space "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_observation_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) observation space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("PartiallyObservable.get_observation_space()")]),t._v(" internally\ncalls "),a("code",[t._v("PartiallyObservable._get_observation_space_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the observation space is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-160"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-160"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The observation space.")]),t._v(" "),a("h3",{attrs:{id:"get-transition-value"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-transition-value"}},[t._v("#")]),t._v(" get_transition_value "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_transition_value",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"},{name:"next_state",default:"None",annotation:"Optional[D.T_state]"}],return:"D.T_agent[Value[D.T_value]]"}}}),t._v(" "),a("p",[t._v("Get the value (reward or cost) of a transition.")]),t._v(" "),a("p",[t._v("The transition to consider is defined by the function parameters.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("If this function never depends on the next_state parameter for its computation, it is recommended to\nindicate it by overriding "),a("code",[t._v("UncertainTransitions._is_transition_value_dependent_on_next_state_()")]),t._v(" to return\nFalse. This information can then be exploited by solvers to avoid computing next state to evaluate a\ntransition value (more efficient).")])]),t._v(" "),a("h4",{attrs:{id:"parameters-119"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-119"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")]),t._v(" "),a("li",[a("strong",[t._v("next_state")]),t._v(": The next state in which the transition ends (if needed for the computation).")])]),t._v(" "),a("h4",{attrs:{id:"returns-161"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-161"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The transition value (reward or cost).")]),t._v(" "),a("h3",{attrs:{id:"is-action-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-action-9"}},[t._v("#")]),t._v(" is_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_action",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an event is an action (i.e. a controllable event for the agents).")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\naction space provided by "),a("code",[t._v("Events.get_action_space()")]),t._v(", but it can be overridden for faster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-120"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-120"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("event")]),t._v(": The event to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-162"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-162"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is an action (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-applicable-action-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-9"}},[t._v("#")]),t._v(" is_applicable_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_applicable_action",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an action is applicable in the given memory (state or history), or in the internal one if\nomitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.is_applicable_action()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_applicable_action()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead\nof the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-121"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-121"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-163"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-163"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the action is applicable (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-enabled-event-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-9"}},[t._v("#")]),t._v(" is_enabled_event "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_enabled_event",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an uncontrollable event is enabled in the given memory (state or history), or in the\ninternal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.is_enabled_event()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_enabled_event()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead of\nthe memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-122"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-122"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-164"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-164"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is enabled (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-observation-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-observation-7"}},[t._v("#")]),t._v(" is_observation "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_observation",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that an observation indeed belongs to the domain observation space.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\nobservation space provided by "),a("code",[t._v("PartiallyObservable.get_observation_space()")]),t._v(", but it can be overridden for\nfaster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-123"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-123"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-165"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-165"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the observation belongs to the domain observation space (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-terminal"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-terminal"}},[t._v("#")]),t._v(" is_terminal "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_terminal",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"}],return:"D.T_agent[D.T_predicate]"}}}),t._v(" "),a("p",[t._v("Indicate whether a state is terminal.")]),t._v(" "),a("p",[t._v("A terminal state is a state with no outgoing transition (except to itself with value 0).")]),t._v(" "),a("h4",{attrs:{id:"parameters-124"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-124"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-166"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-166"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the state is terminal (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-transition-value-dependent-on-next-state"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-transition-value-dependent-on-next-state"}},[t._v("#")]),t._v(" is_transition_value_dependent_on_next_state "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_transition_value_dependent_on_next_state",sig:{params:[{name:"self"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether get_transition_value() requires the next_state parameter for its computation (cached).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("UncertainTransitions.is_transition_value_dependent_on_next_state()")]),t._v(" internally\ncalls "),a("code",[t._v("UncertainTransitions._is_transition_value_dependent_on_next_state_()")]),t._v(" the first time and automatically\ncaches its value to make future calls more efficient (since the returned value is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-167"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-167"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the transition value computation depends on next_state (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"render-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#render-7"}},[t._v("#")]),t._v(" render "),a("Badge",{attrs:{text:"Renderable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"render",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"},{name:"**kwargs",annotation:"Any"}],return:"Any"}}}),t._v(" "),a("p",[t._v("Compute a visual render of the given memory (state or history), or the internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Renderable.render()")]),t._v(" provides some boilerplate code and internally calls "),a("code",[t._v("Renderable._render()")]),t._v(". The\nboilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead of the memory parameter whenever the latter\nis None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-125"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-125"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-168"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-168"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("A render (e.g. image) or nothing (if the function handles the display directly).")]),t._v(" "),a("h3",{attrs:{id:"reset-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#reset-7"}},[t._v("#")]),t._v(" reset "),a("Badge",{attrs:{text:"Initializable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"reset",sig:{params:[{name:"self"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Reset the state of the environment and return an initial observation.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Initializable.reset()")]),t._v(" provides some boilerplate code and internally calls "),a("code",[t._v("Initializable._reset()")]),t._v("\n(which returns an initial state). The boilerplate code automatically stores the initial state into the "),a("code",[t._v("_memory")]),t._v("\nattribute and samples a corresponding observation.")]),t._v(" "),a("h4",{attrs:{id:"returns-169"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-169"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("An initial observation.")]),t._v(" "),a("h3",{attrs:{id:"sample"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample"}},[t._v("#")]),t._v(" sample "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"sample",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Sample one transition of the simulator's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Simulation.sample()")]),t._v(" provides some boilerplate code and internally calls "),a("code",[t._v("Simulation._sample()")]),t._v("\n(which returns a transition outcome). The boilerplate code automatically samples an observation corresponding to\nthe sampled next state.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing simulator needs to be wrapped instead of implemented fully in scikit-decide (e.g. a\nsimulator), it is recommended to overwrite "),a("code",[t._v("Simulation.sample()")]),t._v(" to call the external simulator and not use\nthe "),a("code",[t._v("Simulation._sample()")]),t._v(" helper function.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-126"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-126"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-170"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-170"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of the sampled transition.")]),t._v(" "),a("h3",{attrs:{id:"set-memory"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#set-memory"}},[t._v("#")]),t._v(" set_memory "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"set_memory",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"None"}}}),t._v(" "),a("p",[t._v("Set internal memory attribute "),a("code",[t._v("_memory")]),t._v(" to given one.")]),t._v(" "),a("p",[t._v('This can be useful to set a specific "starting point" before doing a rollout with successive '),a("code",[t._v("Environment.step()")]),t._v("\ncalls.")]),t._v(" "),a("h4",{attrs:{id:"parameters-127"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-127"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to set internally.")])]),t._v(" "),a("h4",{attrs:{id:"example"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#example"}},[t._v("#")]),t._v(" Example")]),t._v(" "),a("div",{staticClass:"language-python extra-class"},[a("pre",{pre:!0,attrs:{class:"language-python"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Set simulation_domain memory to my_state (assuming Markovian domain)")]),t._v("\nsimulation_domain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("set_memory"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("my_state"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Start a 100-steps rollout from here (applying my_action at every step)")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("for")]),t._v(" _ "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("in")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("range")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n simulation_domain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("step"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("my_action"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("h3",{attrs:{id:"solve-with-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#solve-with-4"}},[t._v("#")]),t._v(" solve_with "),a("Badge",{attrs:{text:"Domain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"solve_with",sig:{params:[{name:"solver",annotation:"Solver"},{name:"domain_factory",default:"None",annotation:"Optional[Callable[[], Domain]]"},{name:"load_path",default:"None",annotation:"Optional[str]"}],return:"Solver"}}}),t._v(" "),a("p",[t._v("Solve the domain with a new or loaded solver and return it auto-cast to the level of the domain.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Solver.check_domain()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Solver._check_domain_additional()")]),t._v(' (which returns True by default but can be overridden to define\nspecific checks in addition to the "domain requirements"). The boilerplate code automatically checks whether all\ndomain requirements are met.')]),t._v(" "),a("h4",{attrs:{id:"parameters-128"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-128"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("solver")]),t._v(": The solver.")]),t._v(" "),a("li",[a("strong",[t._v("domain_factory")]),t._v(": A callable with no argument returning the domain to solve (factory is the domain class if None).")]),t._v(" "),a("li",[a("strong",[t._v("load_path")]),t._v(": The path to restore the solver state from (if None, the solving process will be launched instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-171"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-171"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The new solver (auto-cast to the level of the domain).")]),t._v(" "),a("h3",{attrs:{id:"step-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#step-7"}},[t._v("#")]),t._v(" step "),a("Badge",{attrs:{text:"Environment",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"step",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Run one step of the environment's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Environment.step()")]),t._v(" provides some boilerplate code and internally calls "),a("code",[t._v("Environment._step()")]),t._v(" (which\nreturns a transition outcome). The boilerplate code automatically stores next state into the "),a("code",[t._v("_memory")]),t._v(" attribute\nand samples a corresponding observation.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing environment needs to be wrapped instead of implemented fully in scikit-decide (e.g. compiled\nATARI games), it is recommended to overwrite "),a("code",[t._v("Environment.step()")]),t._v(" to call the external environment and not\nuse the "),a("code",[t._v("Environment._step()")]),t._v(" helper function.")])]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Before calling "),a("code",[t._v("Environment.step()")]),t._v(" the first time or when the end of an episode is\nreached, "),a("code",[t._v("Initializable.reset()")]),t._v(" must be called to reset the environment's state.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-129"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-129"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the current memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-172"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-172"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of this step.")]),t._v(" "),a("h3",{attrs:{id:"unwrapped-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#unwrapped-4"}},[t._v("#")]),t._v(" unwrapped "),a("Badge",{attrs:{text:"DeterministicGymDomain",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"unwrapped",sig:{params:[{name:"self"}]}}}),t._v(" "),a("p",[t._v("Unwrap the deterministic Gym environment (gym.env) and return it.")]),t._v(" "),a("h4",{attrs:{id:"returns-173"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-173"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The original Gym environment.")]),t._v(" "),a("h3",{attrs:{id:"check-value-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#check-value-8"}},[t._v("#")]),t._v(" _check_value "),a("Badge",{attrs:{text:"Rewards",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_check_value",sig:{params:[{name:"self"},{name:"value",annotation:"Value[D.T_value]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that a value is compliant with its reward specification.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("This function returns always True by default because any kind of reward should be accepted at this level.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-130"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-130"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("value")]),t._v(": The value to check.")])]),t._v(" "),a("h4",{attrs:{id:"returns-174"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-174"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the value is compliant (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"get-action-space-14"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-14"}},[t._v("#")]),t._v(" _get_action_space "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_action_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) domain action space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._get_action_space()")]),t._v(" internally calls "),a("code",[t._v("Events._get_action_space_()")]),t._v(" the first time and\nautomatically caches its value to make future calls more efficient (since the action space is assumed to be\nconstant).")]),t._v(" "),a("h4",{attrs:{id:"returns-175"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-175"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The action space.")]),t._v(" "),a("h3",{attrs:{id:"get-action-space-15"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-15"}},[t._v("#")]),t._v(" _get_action_space_ "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_action_space_",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the domain action space (finite or infinite set).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._get_action_space()")]),t._v(", the difference being that the\nresult is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-176"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-176"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The action space.")]),t._v(" "),a("h3",{attrs:{id:"get-applicable-actions-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-10"}},[t._v("#")]),t._v(" _get_applicable_actions "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_applicable_actions",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history), or in\nthe internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._get_applicable_actions()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_applicable_actions_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-131"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-131"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-177"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-177"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of applicable actions.")]),t._v(" "),a("h3",{attrs:{id:"get-applicable-actions-from-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-from-5"}},[t._v("#")]),t._v(" _get_applicable_actions_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_applicable_actions_from",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._get_applicable_actions()")]),t._v(", the difference being that\nthe memory parameter is mandatory here.")]),t._v(" "),a("h4",{attrs:{id:"parameters-132"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-132"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-178"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-178"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of applicable actions.")]),t._v(" "),a("h3",{attrs:{id:"get-enabled-events-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-10"}},[t._v("#")]),t._v(" _get_enabled_events "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_enabled_events",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"Space[D.T_event]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory), or in the internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._get_enabled_events()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_enabled_events_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-133"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-133"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-179"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-179"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of enabled events.")]),t._v(" "),a("h3",{attrs:{id:"get-enabled-events-from-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-from-5"}},[t._v("#")]),t._v(" _get_enabled_events_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_enabled_events_from",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"Space[D.T_event]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._get_enabled_events()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("h4",{attrs:{id:"parameters-134"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-134"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-180"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-180"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of enabled events.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-5"}},[t._v("#")]),t._v(" _get_initial_state "),a("Badge",{attrs:{text:"DeterministicInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_initial_state",sig:{params:[{name:"self"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("Get the (cached) initial state.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("DeterministicInitialized._get_initial_state()")]),t._v(" internally\ncalls "),a("code",[t._v("DeterministicInitialized._get_initial_state_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the initial state is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-181"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-181"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The initial state.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-6"}},[t._v("#")]),t._v(" _get_initial_state_ "),a("Badge",{attrs:{text:"DeterministicInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_initial_state_",sig:{params:[{name:"self"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("Get the initial state.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("DeterministicInitialized._get_initial_state()")]),t._v(", the difference\nbeing that the result is not cached here.")]),t._v(" "),a("h4",{attrs:{id:"returns-182"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-182"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The initial state.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-distribution-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-distribution-5"}},[t._v("#")]),t._v(" _get_initial_state_distribution "),a("Badge",{attrs:{text:"UncertainInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_initial_state_distribution",sig:{params:[{name:"self"}],return:"Distribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("Get the (cached) probability distribution of initial states.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("UncertainInitialized._get_initial_state_distribution()")]),t._v(" internally\ncalls "),a("code",[t._v("UncertainInitialized._get_initial_state_distribution_()")]),t._v(" the first time and automatically caches its value\nto make future calls more efficient (since the initial state distribution is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-183"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-183"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of initial states.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-distribution-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-distribution-6"}},[t._v("#")]),t._v(" _get_initial_state_distribution_ "),a("Badge",{attrs:{text:"UncertainInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_initial_state_distribution_",sig:{params:[{name:"self"}],return:"Distribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("Get the probability distribution of initial states.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("UncertainInitialized._get_initial_state_distribution()")]),t._v(", the\ndifference being that the result is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-184"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-184"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of initial states.")]),t._v(" "),a("h3",{attrs:{id:"get-memory-maxlen-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-memory-maxlen-7"}},[t._v("#")]),t._v(" _get_memory_maxlen "),a("Badge",{attrs:{text:"History",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_memory_maxlen",sig:{params:[{name:"self"}],return:"int"}}}),t._v(" "),a("p",[t._v("Get the (cached) memory max length.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("FiniteHistory._get_memory_maxlen()")]),t._v(" internally calls "),a("code",[t._v("FiniteHistory._get_memory_maxlen_()")]),t._v(" the first\ntime and automatically caches its value to make future calls more efficient (since the memory max length is\nassumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-185"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-185"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The memory max length.")]),t._v(" "),a("h3",{attrs:{id:"get-memory-maxlen-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-memory-maxlen-8"}},[t._v("#")]),t._v(" _get_memory_maxlen_ "),a("Badge",{attrs:{text:"FiniteHistory",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_memory_maxlen_",sig:{params:[{name:"self"}],return:"int"}}}),t._v(" "),a("p",[t._v("Get the memory max length.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("FiniteHistory._get_memory_maxlen()")]),t._v(", the difference being that\nthe result is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-186"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-186"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The memory max length.")]),t._v(" "),a("h3",{attrs:{id:"get-next-state-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-next-state-2"}},[t._v("#")]),t._v(" _get_next_state "),a("Badge",{attrs:{text:"DeterministicTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_next_state",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("Get the next state given a memory and action.")]),t._v(" "),a("h4",{attrs:{id:"parameters-135"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-135"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-187"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-187"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The deterministic next state.")]),t._v(" "),a("h3",{attrs:{id:"get-next-state-distribution-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-next-state-distribution-2"}},[t._v("#")]),t._v(" _get_next_state_distribution "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_next_state_distribution",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"SingleValueDistribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("Get the discrete probability distribution of next state given a memory and action.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("In the Markovian case (memory only holds last state "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.061ex",height:"1.023ex",viewBox:"0 -442 469 452"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})])])])])]),t._v("), given an action "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.197ex",height:"1.02ex",viewBox:"0 -441 529 451"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})])])])])]),t._v(", this function can\nbe mathematically represented by "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.292ex",height:"2.283ex",viewBox:"0 -759 4107.1 1009"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"50",d:"M287 628Q287 635 230 637Q206 637 199 638T192 648Q192 649 194 659Q200 679 203 681T397 683Q587 682 600 680Q664 669 707 631T751 530Q751 453 685 389Q616 321 507 303Q500 302 402 301H307L277 182Q247 66 247 59Q247 55 248 54T255 50T272 48T305 46H336Q342 37 342 35Q342 19 335 5Q330 0 319 0Q316 0 282 1T182 2Q120 2 87 2T51 1Q33 1 33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM645 554Q645 567 643 575T634 597T609 619T560 635Q553 636 480 637Q463 637 445 637T416 636T404 636Q391 635 386 627Q384 621 367 550T332 412T314 344Q314 342 395 342H407H430Q542 342 590 392Q617 419 631 471T645 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(751, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"msup",transform:"translate(1140, 0)"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"53",d:"M308 24Q367 24 416 76T466 197Q466 260 414 284Q308 311 278 321T236 341Q176 383 176 462Q176 523 208 573T273 648Q302 673 343 688T407 704H418H425Q521 704 564 640Q565 640 577 653T603 682T623 704Q624 704 627 704T632 705Q645 705 645 698T617 577T585 459T569 456Q549 456 549 465Q549 471 550 475Q550 478 551 494T553 520Q553 554 544 579T526 616T501 641Q465 662 419 662Q362 662 313 616T263 510Q263 480 278 458T319 427Q323 425 389 408T456 390Q490 379 522 342T554 242Q554 216 546 186Q541 164 528 137T492 78T426 18T332 -20Q320 -22 298 -22Q199 -22 144 33L134 44L106 13Q83 -14 78 -18T65 -22Q52 -22 52 -14Q52 -11 110 221Q112 227 130 227H143Q149 221 149 216Q149 214 148 207T144 186T142 153Q144 114 160 87T203 47T255 29T308 24Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(613, 363) scale(0.707)"}},[a("path",{attrs:{"data-c":"2032",d:"M79 43Q73 43 52 49T30 61Q30 68 85 293T146 528Q161 560 198 560Q218 560 240 545T262 501Q262 496 260 486Q259 479 173 263T84 45T79 43Z"}})])]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1997.5, 0)"}},[a("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(2275.5, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2744.5, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(3189.1, 0)"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3718.1, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(", where "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.05ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.94ex",height:"1.767ex",viewBox:"0 -759 857.5 781"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"msup"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"53",d:"M308 24Q367 24 416 76T466 197Q466 260 414 284Q308 311 278 321T236 341Q176 383 176 462Q176 523 208 573T273 648Q302 673 343 688T407 704H418H425Q521 704 564 640Q565 640 577 653T603 682T623 704Q624 704 627 704T632 705Q645 705 645 698T617 577T585 459T569 456Q549 456 549 465Q549 471 550 475Q550 478 551 494T553 520Q553 554 544 579T526 616T501 641Q465 662 419 662Q362 662 313 616T263 510Q263 480 278 458T319 427Q323 425 389 408T456 390Q490 379 522 342T554 242Q554 216 546 186Q541 164 528 137T492 78T426 18T332 -20Q320 -22 298 -22Q199 -22 144 33L134 44L106 13Q83 -14 78 -18T65 -22Q52 -22 52 -14Q52 -11 110 221Q112 227 130 227H143Q149 221 149 216Q149 214 148 207T144 186T142 153Q144 114 160 87T203 47T255 29T308 24Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(613, 363) scale(0.707)"}},[a("path",{attrs:{"data-c":"2032",d:"M79 43Q73 43 52 49T30 61Q30 68 85 293T146 528Q161 560 198 560Q218 560 240 545T262 501Q262 496 260 486Q259 479 173 263T84 45T79 43Z"}})])])])])])]),t._v(" is the next state random variable.")],1)]),t._v(" "),a("h4",{attrs:{id:"parameters-136"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-136"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-188"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-188"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The discrete probability distribution of next state.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-8"}},[t._v("#")]),t._v(" _get_observation "),a("Badge",{attrs:{text:"TransformedObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Get the deterministic observation given a state and action.")]),t._v(" "),a("h4",{attrs:{id:"parameters-137"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-137"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-189"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-189"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-distribution-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-distribution-8"}},[t._v("#")]),t._v(" _get_observation_distribution "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation_distribution",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"Distribution[D.T_agent[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the probability distribution of the observation given a state and action.")]),t._v(" "),a("p",[t._v("In mathematical terms (discrete case), given an action "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.197ex",height:"1.02ex",viewBox:"0 -441 529 451"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})])])])])]),t._v(", this function represents: "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.078ex",height:"2.262ex",viewBox:"0 -750 4012.7 1000"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"50",d:"M287 628Q287 635 230 637Q206 637 199 638T192 648Q192 649 194 659Q200 679 203 681T397 683Q587 682 600 680Q664 669 707 631T751 530Q751 453 685 389Q616 321 507 303Q500 302 402 301H307L277 182Q247 66 247 59Q247 55 248 54T255 50T272 48T305 46H336Q342 37 342 35Q342 19 335 5Q330 0 319 0Q316 0 282 1T182 2Q120 2 87 2T51 1Q33 1 33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM645 554Q645 567 643 575T634 597T609 619T560 635Q553 636 480 637Q463 637 445 637T416 636T404 636Q391 635 386 627Q384 621 367 550T332 412T314 344Q314 342 395 342H407H430Q542 342 590 392Q617 419 631 471T645 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(751, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(1140, 0)"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1903, 0)"}},[a("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(2181, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2650, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(3094.7, 0)"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3623.7, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(",\nwhere "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.05ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.726ex",height:"1.643ex",viewBox:"0 -704 763 726"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})])])])])]),t._v(" is the random variable of the observation.")],1),t._v(" "),a("h4",{attrs:{id:"parameters-138"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-138"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-190"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-190"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-space-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-11"}},[t._v("#")]),t._v(" _get_observation_space "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) observation space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(" internally\ncalls "),a("code",[t._v("PartiallyObservable._get_observation_space_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the observation space is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-191"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-191"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The observation space.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-space-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-12"}},[t._v("#")]),t._v(" _get_observation_space_ "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation_space_",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the observation space (finite or infinite set).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(", the difference\nbeing that the result is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-192"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-192"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The observation space.")]),t._v(" "),a("h3",{attrs:{id:"get-transition-value-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-transition-value-2"}},[t._v("#")]),t._v(" _get_transition_value "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_transition_value",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"},{name:"next_state",default:"None",annotation:"Optional[D.T_state]"}],return:"D.T_agent[Value[D.T_value]]"}}}),t._v(" "),a("p",[t._v("Get the value (reward or cost) of a transition.")]),t._v(" "),a("p",[t._v("The transition to consider is defined by the function parameters.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("If this function never depends on the next_state parameter for its computation, it is recommended to\nindicate it by overriding "),a("code",[t._v("UncertainTransitions._is_transition_value_dependent_on_next_state_()")]),t._v(" to return\nFalse. This information can then be exploited by solvers to avoid computing next state to evaluate a\ntransition value (more efficient).")])]),t._v(" "),a("h4",{attrs:{id:"parameters-139"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-139"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")]),t._v(" "),a("li",[a("strong",[t._v("next_state")]),t._v(": The next state in which the transition ends (if needed for the computation).")])]),t._v(" "),a("h4",{attrs:{id:"returns-193"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-193"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The transition value (reward or cost).")]),t._v(" "),a("h3",{attrs:{id:"init-memory-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#init-memory-4"}},[t._v("#")]),t._v(" _init_memory "),a("Badge",{attrs:{text:"History",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_init_memory",sig:{params:[{name:"self"},{name:"state",default:"None",annotation:"Optional[D.T_state]"}],return:"D.T_memory[D.T_state]"}}}),t._v(" "),a("p",[t._v("Initialize memory (possibly with a state) according to its specification and return it.")]),t._v(" "),a("p",[t._v("This function is automatically called by "),a("code",[t._v("Initializable._reset()")]),t._v(" to reinitialize the internal memory whenever\nthe domain is used as an environment.")]),t._v(" "),a("h4",{attrs:{id:"parameters-140"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-140"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": An optional state to initialize the memory with (typically the initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-194"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-194"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The new initialized memory.")]),t._v(" "),a("h3",{attrs:{id:"is-action-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-action-10"}},[t._v("#")]),t._v(" _is_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_action",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an event is an action (i.e. a controllable event for the agents).")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\naction space provided by "),a("code",[t._v("Events._get_action_space()")]),t._v(", but it can be overridden for faster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-141"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-141"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("event")]),t._v(": The event to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-195"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-195"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is an action (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-applicable-action-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-10"}},[t._v("#")]),t._v(" _is_applicable_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_applicable_action",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an action is applicable in the given memory (state or history), or in the internal one if\nomitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._is_applicable_action()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_applicable_action_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-142"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-142"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-196"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-196"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the action is applicable (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-applicable-action-from-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-from-5"}},[t._v("#")]),t._v(" _is_applicable_action_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_applicable_action_from",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an action is applicable in the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._is_applicable_action()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the space of\napplicable actions provided by "),a("code",[t._v("Events._get_applicable_actions_from()")]),t._v(", but it can be overridden for faster\nimplementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-143"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-143"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-197"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-197"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the action is applicable (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-enabled-event-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-10"}},[t._v("#")]),t._v(" _is_enabled_event "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_enabled_event",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an uncontrollable event is enabled in the given memory (state or history), or in the\ninternal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._is_enabled_event()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_enabled_event_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead\nof the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-144"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-144"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-198"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-198"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is enabled (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-enabled-event-from-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-from-5"}},[t._v("#")]),t._v(" _is_enabled_event_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_enabled_event_from",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an event is enabled in the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._is_enabled_event()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the space of\nenabled events provided by "),a("code",[t._v("Events._get_enabled_events_from()")]),t._v(", but it can be overridden for faster\nimplementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-145"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-145"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-199"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-199"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is enabled (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-observation-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-observation-8"}},[t._v("#")]),t._v(" _is_observation "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_observation",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that an observation indeed belongs to the domain observation space.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\nobservation space provided by "),a("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(", but it can be overridden for\nfaster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-146"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-146"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-200"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-200"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the observation belongs to the domain observation space (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-terminal-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-terminal-2"}},[t._v("#")]),t._v(" _is_terminal "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_terminal",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"}],return:"D.T_agent[D.T_predicate]"}}}),t._v(" "),a("p",[t._v("Indicate whether a state is terminal.")]),t._v(" "),a("p",[t._v("A terminal state is a state with no outgoing transition (except to itself with value 0).")]),t._v(" "),a("h4",{attrs:{id:"parameters-147"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-147"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-201"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-201"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the state is terminal (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-transition-value-dependent-on-next-state-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-transition-value-dependent-on-next-state-2"}},[t._v("#")]),t._v(" _is_transition_value_dependent_on_next_state "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_transition_value_dependent_on_next_state",sig:{params:[{name:"self"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether _get_transition_value() requires the next_state parameter for its computation (cached).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("UncertainTransitions._is_transition_value_dependent_on_next_state()")]),t._v(" internally\ncalls "),a("code",[t._v("UncertainTransitions._is_transition_value_dependent_on_next_state_()")]),t._v(" the first time and automatically\ncaches its value to make future calls more efficient (since the returned value is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-202"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-202"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the transition value computation depends on next_state (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-transition-value-dependent-on-next-state-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-transition-value-dependent-on-next-state-3"}},[t._v("#")]),t._v(" _is_transition_value_dependent_on_next_state_ "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_transition_value_dependent_on_next_state_",sig:{params:[{name:"self"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether _get_transition_value() requires the next_state parameter for its computation.")]),t._v(" "),a("p",[t._v("This is a helper function called by default\nfrom "),a("code",[t._v("UncertainTransitions._is_transition_value_dependent_on_next_state()")]),t._v(", the difference being that the result\nis not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-203"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-203"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the transition value computation depends on next_state (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"render-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#render-8"}},[t._v("#")]),t._v(" _render "),a("Badge",{attrs:{text:"Renderable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_render",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"},{name:"**kwargs",annotation:"Any"}],return:"Any"}}}),t._v(" "),a("p",[t._v("Compute a visual render of the given memory (state or history), or the internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Renderable._render()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Renderable._render_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead of\nthe memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-148"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-148"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-204"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-204"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("A render (e.g. image) or nothing (if the function handles the display directly).")]),t._v(" "),a("h3",{attrs:{id:"render-from-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#render-from-4"}},[t._v("#")]),t._v(" _render_from "),a("Badge",{attrs:{text:"Renderable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_render_from",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"**kwargs",annotation:"Any"}],return:"Any"}}}),t._v(" "),a("p",[t._v("Compute a visual render of the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Renderable._render()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("h4",{attrs:{id:"parameters-149"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-149"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-205"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-205"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("A render (e.g. image) or nothing (if the function handles the display directly).")]),t._v(" "),a("h3",{attrs:{id:"reset-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#reset-8"}},[t._v("#")]),t._v(" _reset "),a("Badge",{attrs:{text:"Initializable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_reset",sig:{params:[{name:"self"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Reset the state of the environment and return an initial observation.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Initializable._reset()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Initializable._state_reset()")]),t._v(" (which returns an initial state). The boilerplate code automatically stores\nthe initial state into the "),a("code",[t._v("_memory")]),t._v(" attribute and samples a corresponding observation.")]),t._v(" "),a("h4",{attrs:{id:"returns-206"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-206"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("An initial observation.")]),t._v(" "),a("h3",{attrs:{id:"sample-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample-2"}},[t._v("#")]),t._v(" _sample "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_sample",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Sample one transition of the simulator's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Simulation._sample()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Simulation._state_sample()")]),t._v(" (which returns a transition outcome). The boilerplate code automatically\nsamples an observation corresponding to the sampled next state.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing simulator needs to be wrapped instead of implemented fully in scikit-decide (e.g. a\nsimulator), it is recommended to overwrite "),a("code",[t._v("Simulation._sample()")]),t._v(" to call the external simulator and not use\nthe "),a("code",[t._v("Simulation._state_sample()")]),t._v(" helper function.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-150"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-150"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-207"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-207"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of the sampled transition.")]),t._v(" "),a("h3",{attrs:{id:"set-memory-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#set-memory-2"}},[t._v("#")]),t._v(" _set_memory "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_set_memory",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"None"}}}),t._v(" "),a("p",[t._v("Set internal memory attribute "),a("code",[t._v("_memory")]),t._v(" to given one.")]),t._v(" "),a("p",[t._v('This can be useful to set a specific "starting point" before doing a rollout with\nsuccessive '),a("code",[t._v("Environment._step()")]),t._v(" calls.")]),t._v(" "),a("h4",{attrs:{id:"parameters-151"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-151"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to set internally.")])]),t._v(" "),a("h4",{attrs:{id:"example-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#example-2"}},[t._v("#")]),t._v(" Example")]),t._v(" "),a("div",{staticClass:"language-python extra-class"},[a("pre",{pre:!0,attrs:{class:"language-python"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Set simulation_domain memory to my_state (assuming Markovian domain)")]),t._v("\nsimulation_domain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("_set_memory"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("my_state"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Start a 100-steps rollout from here (applying my_action at every step)")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("for")]),t._v(" _ "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("in")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("range")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n simulation_domain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("_step"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("my_action"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("h3",{attrs:{id:"state-reset-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#state-reset-4"}},[t._v("#")]),t._v(" _state_reset "),a("Badge",{attrs:{text:"Initializable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_state_reset",sig:{params:[{name:"self"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("Reset the state of the environment and return an initial state.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Initializable._reset()")]),t._v(". It focuses on the state level, as\nopposed to the observation one for the latter.")]),t._v(" "),a("h4",{attrs:{id:"returns-208"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-208"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("An initial state.")]),t._v(" "),a("h3",{attrs:{id:"state-sample"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#state-sample"}},[t._v("#")]),t._v(" _state_sample "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_state_sample",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"TransitionOutcome[D.T_state, D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Compute one sample of the transition's dynamics.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Simulation._sample()")]),t._v(". It focuses on the state level, as\nopposed to the observation one for the latter.")]),t._v(" "),a("h4",{attrs:{id:"parameters-152"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-152"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-209"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-209"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The transition outcome of the sampled transition.")]),t._v(" "),a("h3",{attrs:{id:"state-step-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#state-step-4"}},[t._v("#")]),t._v(" _state_step "),a("Badge",{attrs:{text:"Environment",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_state_step",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"TransitionOutcome[D.T_state, D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Compute one step of the transition's dynamics.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Environment._step()")]),t._v(". It focuses on the state level, as opposed\nto the observation one for the latter.")]),t._v(" "),a("h4",{attrs:{id:"parameters-153"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-153"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the current memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-210"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-210"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The transition outcome of this step.")]),t._v(" "),a("h3",{attrs:{id:"step-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#step-8"}},[t._v("#")]),t._v(" _step "),a("Badge",{attrs:{text:"Environment",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_step",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Run one step of the environment's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Environment._step()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Environment._state_step()")]),t._v(" (which returns a transition outcome). The boilerplate code automatically stores\nnext state into the "),a("code",[t._v("_memory")]),t._v(" attribute and samples a corresponding observation.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing environment needs to be wrapped instead of implemented fully in scikit-decide (e.g. compiled\nATARI games), it is recommended to overwrite "),a("code",[t._v("Environment._step()")]),t._v(" to call the external environment and not\nuse the "),a("code",[t._v("Environment._state_step()")]),t._v(" helper function.")])]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Before calling "),a("code",[t._v("Environment._step()")]),t._v(" the first time or when the end of an episode is\nreached, "),a("code",[t._v("Initializable._reset()")]),t._v(" must be called to reset the environment's state.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-154"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-154"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the current memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-211"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-211"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of this step.")]),t._v(" "),a("h2",{attrs:{id:"gymplanningdomain"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#gymplanningdomain"}},[t._v("#")]),t._v(" GymPlanningDomain")]),t._v(" "),a("p",[t._v("This class wraps a cost-based deterministic OpenAI Gym environment as a domain\nusable by a classical planner")]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Using this class requires OpenAI Gym to be installed.")])]),t._v(" "),a("h3",{attrs:{id:"constructor-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#constructor-7"}},[t._v("#")]),t._v(" Constructor "),a("Badge",{attrs:{text:"GymPlanningDomain",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"GymPlanningDomain",sig:{params:[{name:"gym_env",annotation:"gym.Env"},{name:"set_state",default:"None",annotation:"Callable[[gym.Env, D.T_memory[D.T_state]], None]"},{name:"get_state",default:"None",annotation:"Callable[[gym.Env], D.T_memory[D.T_state]]"},{name:"termination_is_goal",default:"False",annotation:"bool"},{name:"max_depth",default:"50",annotation:"int"}],return:"None"}}}),t._v(" "),a("p",[t._v("Initialize GymPlanningDomain.")]),t._v(" "),a("h4",{attrs:{id:"parameters-155"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-155"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("gym_env")]),t._v(": The deterministic Gym environment (gym.env) to wrap.")]),t._v(" "),a("li",[a("strong",[t._v("set_state")]),t._v(": Function to call to set the state of the gym environment.\nIf None, default behavior is to deepcopy the environment when changing state")]),t._v(" "),a("li",[a("strong",[t._v("get_state")]),t._v(": Function to call to get the state of the gym environment.\nIf None, default behavior is to deepcopy the environment when changing state")]),t._v(" "),a("li",[a("strong",[t._v("termination_is_goal")]),t._v(": True if the termination condition is a goal (and not a dead-end)")]),t._v(" "),a("li",[a("strong",[t._v("max_depth")]),t._v(": maximum depth of states to explore from the initial state")])]),t._v(" "),a("h3",{attrs:{id:"check-value-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#check-value-9"}},[t._v("#")]),t._v(" check_value "),a("Badge",{attrs:{text:"Rewards",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"check_value",sig:{params:[{name:"self"},{name:"value",annotation:"Value[D.T_value]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that a value is compliant with its reward specification.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("This function returns always True by default because any kind of reward should be accepted at this level.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-156"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-156"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("value")]),t._v(": The value to check.")])]),t._v(" "),a("h4",{attrs:{id:"returns-212"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-212"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the value is compliant (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"get-action-space-16"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-16"}},[t._v("#")]),t._v(" get_action_space "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_action_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) domain action space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.get_action_space()")]),t._v(" internally calls "),a("code",[t._v("Events._get_action_space_()")]),t._v(" the first time and\nautomatically caches its value to make future calls more efficient (since the action space is assumed to be\nconstant).")]),t._v(" "),a("h4",{attrs:{id:"returns-213"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-213"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The action space.")]),t._v(" "),a("h3",{attrs:{id:"get-applicable-actions-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-11"}},[t._v("#")]),t._v(" get_applicable_actions "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_applicable_actions",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history), or in\nthe internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.get_applicable_actions()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_applicable_actions()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-157"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-157"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-214"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-214"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of applicable actions.")]),t._v(" "),a("h3",{attrs:{id:"get-enabled-events-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-11"}},[t._v("#")]),t._v(" get_enabled_events "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_enabled_events",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"Space[D.T_event]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory), or in the internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.get_enabled_events()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_enabled_events()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead of\nthe memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-158"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-158"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-215"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-215"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of enabled events.")]),t._v(" "),a("h3",{attrs:{id:"get-goals"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-goals"}},[t._v("#")]),t._v(" get_goals "),a("Badge",{attrs:{text:"Goals",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_goals",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) domain goals space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Goals.get_goals()")]),t._v(" internally calls "),a("code",[t._v("Goals._get_goals_()")]),t._v(" the first time and automatically caches its\nvalue to make future calls more efficient (since the goals space is assumed to be constant).")]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Goal states are assumed to be fully observable (i.e. observation = state) so that there is never uncertainty\nabout whether the goal has been reached or not. This assumption guarantees that any policy that does not\nreach the goal with certainty incurs in infinite expected cost. - "),a("em",[t._v("Geffner, 2013: A Concise Introduction to\nModels and Methods for Automated Planning")])])]),t._v(" "),a("h4",{attrs:{id:"returns-216"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-216"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The goals space.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-7"}},[t._v("#")]),t._v(" get_initial_state "),a("Badge",{attrs:{text:"DeterministicInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_initial_state",sig:{params:[{name:"self"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("Get the (cached) initial state.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("DeterministicInitialized.get_initial_state()")]),t._v(" internally\ncalls "),a("code",[t._v("DeterministicInitialized._get_initial_state_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the initial state is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-217"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-217"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The initial state.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-distribution-7"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-distribution-7"}},[t._v("#")]),t._v(" get_initial_state_distribution "),a("Badge",{attrs:{text:"UncertainInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_initial_state_distribution",sig:{params:[{name:"self"}],return:"Distribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("Get the (cached) probability distribution of initial states.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("UncertainInitialized.get_initial_state_distribution()")]),t._v(" internally\ncalls "),a("code",[t._v("UncertainInitialized._get_initial_state_distribution_()")]),t._v(" the first time and automatically caches its value\nto make future calls more efficient (since the initial state distribution is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-218"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-218"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of initial states.")]),t._v(" "),a("h3",{attrs:{id:"get-next-state-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-next-state-3"}},[t._v("#")]),t._v(" get_next_state "),a("Badge",{attrs:{text:"DeterministicTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_next_state",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("Get the next state given a memory and action.")]),t._v(" "),a("h4",{attrs:{id:"parameters-159"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-159"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-219"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-219"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The deterministic next state.")]),t._v(" "),a("h3",{attrs:{id:"get-next-state-distribution-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-next-state-distribution-3"}},[t._v("#")]),t._v(" get_next_state_distribution "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_next_state_distribution",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"DiscreteDistribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("Get the discrete probability distribution of next state given a memory and action.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("In the Markovian case (memory only holds last state "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.061ex",height:"1.023ex",viewBox:"0 -442 469 452"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})])])])])]),t._v("), given an action "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.197ex",height:"1.02ex",viewBox:"0 -441 529 451"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})])])])])]),t._v(", this function can\nbe mathematically represented by "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.292ex",height:"2.283ex",viewBox:"0 -759 4107.1 1009"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"50",d:"M287 628Q287 635 230 637Q206 637 199 638T192 648Q192 649 194 659Q200 679 203 681T397 683Q587 682 600 680Q664 669 707 631T751 530Q751 453 685 389Q616 321 507 303Q500 302 402 301H307L277 182Q247 66 247 59Q247 55 248 54T255 50T272 48T305 46H336Q342 37 342 35Q342 19 335 5Q330 0 319 0Q316 0 282 1T182 2Q120 2 87 2T51 1Q33 1 33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM645 554Q645 567 643 575T634 597T609 619T560 635Q553 636 480 637Q463 637 445 637T416 636T404 636Q391 635 386 627Q384 621 367 550T332 412T314 344Q314 342 395 342H407H430Q542 342 590 392Q617 419 631 471T645 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(751, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"msup",transform:"translate(1140, 0)"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"53",d:"M308 24Q367 24 416 76T466 197Q466 260 414 284Q308 311 278 321T236 341Q176 383 176 462Q176 523 208 573T273 648Q302 673 343 688T407 704H418H425Q521 704 564 640Q565 640 577 653T603 682T623 704Q624 704 627 704T632 705Q645 705 645 698T617 577T585 459T569 456Q549 456 549 465Q549 471 550 475Q550 478 551 494T553 520Q553 554 544 579T526 616T501 641Q465 662 419 662Q362 662 313 616T263 510Q263 480 278 458T319 427Q323 425 389 408T456 390Q490 379 522 342T554 242Q554 216 546 186Q541 164 528 137T492 78T426 18T332 -20Q320 -22 298 -22Q199 -22 144 33L134 44L106 13Q83 -14 78 -18T65 -22Q52 -22 52 -14Q52 -11 110 221Q112 227 130 227H143Q149 221 149 216Q149 214 148 207T144 186T142 153Q144 114 160 87T203 47T255 29T308 24Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(613, 363) scale(0.707)"}},[a("path",{attrs:{"data-c":"2032",d:"M79 43Q73 43 52 49T30 61Q30 68 85 293T146 528Q161 560 198 560Q218 560 240 545T262 501Q262 496 260 486Q259 479 173 263T84 45T79 43Z"}})])]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1997.5, 0)"}},[a("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(2275.5, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2744.5, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(3189.1, 0)"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3718.1, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(", where "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.05ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.94ex",height:"1.767ex",viewBox:"0 -759 857.5 781"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"msup"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"53",d:"M308 24Q367 24 416 76T466 197Q466 260 414 284Q308 311 278 321T236 341Q176 383 176 462Q176 523 208 573T273 648Q302 673 343 688T407 704H418H425Q521 704 564 640Q565 640 577 653T603 682T623 704Q624 704 627 704T632 705Q645 705 645 698T617 577T585 459T569 456Q549 456 549 465Q549 471 550 475Q550 478 551 494T553 520Q553 554 544 579T526 616T501 641Q465 662 419 662Q362 662 313 616T263 510Q263 480 278 458T319 427Q323 425 389 408T456 390Q490 379 522 342T554 242Q554 216 546 186Q541 164 528 137T492 78T426 18T332 -20Q320 -22 298 -22Q199 -22 144 33L134 44L106 13Q83 -14 78 -18T65 -22Q52 -22 52 -14Q52 -11 110 221Q112 227 130 227H143Q149 221 149 216Q149 214 148 207T144 186T142 153Q144 114 160 87T203 47T255 29T308 24Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(613, 363) scale(0.707)"}},[a("path",{attrs:{"data-c":"2032",d:"M79 43Q73 43 52 49T30 61Q30 68 85 293T146 528Q161 560 198 560Q218 560 240 545T262 501Q262 496 260 486Q259 479 173 263T84 45T79 43Z"}})])])])])])]),t._v(" is the next state random variable.")],1)]),t._v(" "),a("h4",{attrs:{id:"parameters-160"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-160"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-220"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-220"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The discrete probability distribution of next state.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-9"}},[t._v("#")]),t._v(" get_observation "),a("Badge",{attrs:{text:"TransformedObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_observation",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Get the deterministic observation given a state and action.")]),t._v(" "),a("h4",{attrs:{id:"parameters-161"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-161"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-221"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-221"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-distribution-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-distribution-9"}},[t._v("#")]),t._v(" get_observation_distribution "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_observation_distribution",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"Distribution[D.T_agent[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the probability distribution of the observation given a state and action.")]),t._v(" "),a("p",[t._v("In mathematical terms (discrete case), given an action "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.197ex",height:"1.02ex",viewBox:"0 -441 529 451"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})])])])])]),t._v(", this function represents: "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.078ex",height:"2.262ex",viewBox:"0 -750 4012.7 1000"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"50",d:"M287 628Q287 635 230 637Q206 637 199 638T192 648Q192 649 194 659Q200 679 203 681T397 683Q587 682 600 680Q664 669 707 631T751 530Q751 453 685 389Q616 321 507 303Q500 302 402 301H307L277 182Q247 66 247 59Q247 55 248 54T255 50T272 48T305 46H336Q342 37 342 35Q342 19 335 5Q330 0 319 0Q316 0 282 1T182 2Q120 2 87 2T51 1Q33 1 33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM645 554Q645 567 643 575T634 597T609 619T560 635Q553 636 480 637Q463 637 445 637T416 636T404 636Q391 635 386 627Q384 621 367 550T332 412T314 344Q314 342 395 342H407H430Q542 342 590 392Q617 419 631 471T645 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(751, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(1140, 0)"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1903, 0)"}},[a("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(2181, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2650, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(3094.7, 0)"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3623.7, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(",\nwhere "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.05ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.726ex",height:"1.643ex",viewBox:"0 -704 763 726"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})])])])])]),t._v(" is the random variable of the observation.")],1),t._v(" "),a("h4",{attrs:{id:"parameters-162"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-162"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-222"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-222"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-space-13"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-13"}},[t._v("#")]),t._v(" get_observation_space "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_observation_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) observation space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("PartiallyObservable.get_observation_space()")]),t._v(" internally\ncalls "),a("code",[t._v("PartiallyObservable._get_observation_space_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the observation space is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-223"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-223"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The observation space.")]),t._v(" "),a("h3",{attrs:{id:"get-transition-value-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-transition-value-3"}},[t._v("#")]),t._v(" get_transition_value "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"get_transition_value",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"},{name:"next_state",default:"None",annotation:"Optional[D.T_state]"}],return:"D.T_agent[Value[D.T_value]]"}}}),t._v(" "),a("p",[t._v("Get the value (reward or cost) of a transition.")]),t._v(" "),a("p",[t._v("The transition to consider is defined by the function parameters.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("If this function never depends on the next_state parameter for its computation, it is recommended to\nindicate it by overriding "),a("code",[t._v("UncertainTransitions._is_transition_value_dependent_on_next_state_()")]),t._v(" to return\nFalse. This information can then be exploited by solvers to avoid computing next state to evaluate a\ntransition value (more efficient).")])]),t._v(" "),a("h4",{attrs:{id:"parameters-163"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-163"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")]),t._v(" "),a("li",[a("strong",[t._v("next_state")]),t._v(": The next state in which the transition ends (if needed for the computation).")])]),t._v(" "),a("h4",{attrs:{id:"returns-224"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-224"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The transition value (reward or cost).")]),t._v(" "),a("h3",{attrs:{id:"is-action-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-action-11"}},[t._v("#")]),t._v(" is_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_action",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an event is an action (i.e. a controllable event for the agents).")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\naction space provided by "),a("code",[t._v("Events.get_action_space()")]),t._v(", but it can be overridden for faster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-164"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-164"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("event")]),t._v(": The event to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-225"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-225"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is an action (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-applicable-action-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-11"}},[t._v("#")]),t._v(" is_applicable_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_applicable_action",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an action is applicable in the given memory (state or history), or in the internal one if\nomitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.is_applicable_action()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_applicable_action()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead\nof the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-165"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-165"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-226"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-226"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the action is applicable (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-enabled-event-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-11"}},[t._v("#")]),t._v(" is_enabled_event "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_enabled_event",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an uncontrollable event is enabled in the given memory (state or history), or in the\ninternal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events.is_enabled_event()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_enabled_event()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead of\nthe memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-166"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-166"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-227"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-227"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is enabled (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-goal"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-goal"}},[t._v("#")]),t._v(" is_goal "),a("Badge",{attrs:{text:"Goals",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_goal",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"D.T_agent[D.T_predicate]"}}}),t._v(" "),a("p",[t._v("Indicate whether an observation belongs to the goals.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\ngoals space provided by "),a("code",[t._v("Goals.get_goals()")]),t._v(", but it can be overridden for faster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-167"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-167"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-228"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-228"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the observation is a goal (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-observation-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-observation-9"}},[t._v("#")]),t._v(" is_observation "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_observation",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that an observation indeed belongs to the domain observation space.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\nobservation space provided by "),a("code",[t._v("PartiallyObservable.get_observation_space()")]),t._v(", but it can be overridden for\nfaster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-168"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-168"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-229"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-229"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the observation belongs to the domain observation space (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-terminal-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-terminal-3"}},[t._v("#")]),t._v(" is_terminal "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_terminal",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"}],return:"D.T_agent[D.T_predicate]"}}}),t._v(" "),a("p",[t._v("Indicate whether a state is terminal.")]),t._v(" "),a("p",[t._v("A terminal state is a state with no outgoing transition (except to itself with value 0).")]),t._v(" "),a("h4",{attrs:{id:"parameters-169"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-169"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-230"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-230"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the state is terminal (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-transition-value-dependent-on-next-state-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-transition-value-dependent-on-next-state-4"}},[t._v("#")]),t._v(" is_transition_value_dependent_on_next_state "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"is_transition_value_dependent_on_next_state",sig:{params:[{name:"self"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether get_transition_value() requires the next_state parameter for its computation (cached).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("UncertainTransitions.is_transition_value_dependent_on_next_state()")]),t._v(" internally\ncalls "),a("code",[t._v("UncertainTransitions._is_transition_value_dependent_on_next_state_()")]),t._v(" the first time and automatically\ncaches its value to make future calls more efficient (since the returned value is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-231"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-231"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the transition value computation depends on next_state (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"render-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#render-9"}},[t._v("#")]),t._v(" render "),a("Badge",{attrs:{text:"Renderable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"render",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"},{name:"**kwargs",annotation:"Any"}],return:"Any"}}}),t._v(" "),a("p",[t._v("Compute a visual render of the given memory (state or history), or the internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Renderable.render()")]),t._v(" provides some boilerplate code and internally calls "),a("code",[t._v("Renderable._render()")]),t._v(". The\nboilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead of the memory parameter whenever the latter\nis None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-170"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-170"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-232"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-232"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("A render (e.g. image) or nothing (if the function handles the display directly).")]),t._v(" "),a("h3",{attrs:{id:"reset-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#reset-9"}},[t._v("#")]),t._v(" reset "),a("Badge",{attrs:{text:"Initializable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"reset",sig:{params:[{name:"self"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Reset the state of the environment and return an initial observation.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Initializable.reset()")]),t._v(" provides some boilerplate code and internally calls "),a("code",[t._v("Initializable._reset()")]),t._v("\n(which returns an initial state). The boilerplate code automatically stores the initial state into the "),a("code",[t._v("_memory")]),t._v("\nattribute and samples a corresponding observation.")]),t._v(" "),a("h4",{attrs:{id:"returns-233"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-233"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("An initial observation.")]),t._v(" "),a("h3",{attrs:{id:"sample-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample-3"}},[t._v("#")]),t._v(" sample "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"sample",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Sample one transition of the simulator's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Simulation.sample()")]),t._v(" provides some boilerplate code and internally calls "),a("code",[t._v("Simulation._sample()")]),t._v("\n(which returns a transition outcome). The boilerplate code automatically samples an observation corresponding to\nthe sampled next state.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing simulator needs to be wrapped instead of implemented fully in scikit-decide (e.g. a\nsimulator), it is recommended to overwrite "),a("code",[t._v("Simulation.sample()")]),t._v(" to call the external simulator and not use\nthe "),a("code",[t._v("Simulation._sample()")]),t._v(" helper function.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-171"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-171"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-234"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-234"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of the sampled transition.")]),t._v(" "),a("h3",{attrs:{id:"set-memory-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#set-memory-3"}},[t._v("#")]),t._v(" set_memory "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"set_memory",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"None"}}}),t._v(" "),a("p",[t._v("Set internal memory attribute "),a("code",[t._v("_memory")]),t._v(" to given one.")]),t._v(" "),a("p",[t._v('This can be useful to set a specific "starting point" before doing a rollout with successive '),a("code",[t._v("Environment.step()")]),t._v("\ncalls.")]),t._v(" "),a("h4",{attrs:{id:"parameters-172"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-172"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to set internally.")])]),t._v(" "),a("h4",{attrs:{id:"example-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#example-3"}},[t._v("#")]),t._v(" Example")]),t._v(" "),a("div",{staticClass:"language-python extra-class"},[a("pre",{pre:!0,attrs:{class:"language-python"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Set simulation_domain memory to my_state (assuming Markovian domain)")]),t._v("\nsimulation_domain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("set_memory"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("my_state"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Start a 100-steps rollout from here (applying my_action at every step)")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("for")]),t._v(" _ "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("in")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("range")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n simulation_domain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("step"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("my_action"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("h3",{attrs:{id:"solve-with-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#solve-with-5"}},[t._v("#")]),t._v(" solve_with "),a("Badge",{attrs:{text:"Domain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"solve_with",sig:{params:[{name:"solver",annotation:"Solver"},{name:"domain_factory",default:"None",annotation:"Optional[Callable[[], Domain]]"},{name:"load_path",default:"None",annotation:"Optional[str]"}],return:"Solver"}}}),t._v(" "),a("p",[t._v("Solve the domain with a new or loaded solver and return it auto-cast to the level of the domain.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Solver.check_domain()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Solver._check_domain_additional()")]),t._v(' (which returns True by default but can be overridden to define\nspecific checks in addition to the "domain requirements"). The boilerplate code automatically checks whether all\ndomain requirements are met.')]),t._v(" "),a("h4",{attrs:{id:"parameters-173"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-173"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("solver")]),t._v(": The solver.")]),t._v(" "),a("li",[a("strong",[t._v("domain_factory")]),t._v(": A callable with no argument returning the domain to solve (factory is the domain class if None).")]),t._v(" "),a("li",[a("strong",[t._v("load_path")]),t._v(": The path to restore the solver state from (if None, the solving process will be launched instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-235"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-235"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The new solver (auto-cast to the level of the domain).")]),t._v(" "),a("h3",{attrs:{id:"step-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#step-9"}},[t._v("#")]),t._v(" step "),a("Badge",{attrs:{text:"Environment",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"step",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Run one step of the environment's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Environment.step()")]),t._v(" provides some boilerplate code and internally calls "),a("code",[t._v("Environment._step()")]),t._v(" (which\nreturns a transition outcome). The boilerplate code automatically stores next state into the "),a("code",[t._v("_memory")]),t._v(" attribute\nand samples a corresponding observation.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing environment needs to be wrapped instead of implemented fully in scikit-decide (e.g. compiled\nATARI games), it is recommended to overwrite "),a("code",[t._v("Environment.step()")]),t._v(" to call the external environment and not\nuse the "),a("code",[t._v("Environment._step()")]),t._v(" helper function.")])]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Before calling "),a("code",[t._v("Environment.step()")]),t._v(" the first time or when the end of an episode is\nreached, "),a("code",[t._v("Initializable.reset()")]),t._v(" must be called to reset the environment's state.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-174"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-174"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the current memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-236"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-236"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of this step.")]),t._v(" "),a("h3",{attrs:{id:"unwrapped-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#unwrapped-5"}},[t._v("#")]),t._v(" unwrapped "),a("Badge",{attrs:{text:"DeterministicGymDomain",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"unwrapped",sig:{params:[{name:"self"}]}}}),t._v(" "),a("p",[t._v("Unwrap the deterministic Gym environment (gym.env) and return it.")]),t._v(" "),a("h4",{attrs:{id:"returns-237"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-237"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The original Gym environment.")]),t._v(" "),a("h3",{attrs:{id:"check-value-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#check-value-10"}},[t._v("#")]),t._v(" _check_value "),a("Badge",{attrs:{text:"Rewards",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_check_value",sig:{params:[{name:"self"},{name:"value",annotation:"Value[D.T_value]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that a value is compliant with its cost specification (must be positive).")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("This function calls "),a("code",[t._v("PositiveCost._is_positive()")]),t._v(" to determine if a value is positive (can be overridden for\nadvanced value types).")])]),t._v(" "),a("h4",{attrs:{id:"parameters-175"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-175"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("value")]),t._v(": The value to check.")])]),t._v(" "),a("h4",{attrs:{id:"returns-238"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-238"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the value is compliant (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"get-action-space-17"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-17"}},[t._v("#")]),t._v(" _get_action_space "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_action_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) domain action space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._get_action_space()")]),t._v(" internally calls "),a("code",[t._v("Events._get_action_space_()")]),t._v(" the first time and\nautomatically caches its value to make future calls more efficient (since the action space is assumed to be\nconstant).")]),t._v(" "),a("h4",{attrs:{id:"returns-239"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-239"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The action space.")]),t._v(" "),a("h3",{attrs:{id:"get-action-space-18"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-action-space-18"}},[t._v("#")]),t._v(" _get_action_space_ "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_action_space_",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the domain action space (finite or infinite set).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._get_action_space()")]),t._v(", the difference being that the\nresult is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-240"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-240"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The action space.")]),t._v(" "),a("h3",{attrs:{id:"get-applicable-actions-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-12"}},[t._v("#")]),t._v(" _get_applicable_actions "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_applicable_actions",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history), or in\nthe internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._get_applicable_actions()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_applicable_actions_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-176"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-176"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-241"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-241"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of applicable actions.")]),t._v(" "),a("h3",{attrs:{id:"get-applicable-actions-from-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-applicable-actions-from-6"}},[t._v("#")]),t._v(" _get_applicable_actions_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_applicable_actions_from",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"D.T_agent[Space[D.T_event]]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of applicable actions in the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._get_applicable_actions()")]),t._v(", the difference being that\nthe memory parameter is mandatory here.")]),t._v(" "),a("h4",{attrs:{id:"parameters-177"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-177"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-242"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-242"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of applicable actions.")]),t._v(" "),a("h3",{attrs:{id:"get-enabled-events-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-12"}},[t._v("#")]),t._v(" _get_enabled_events "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_enabled_events",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"Space[D.T_event]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory), or in the internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._get_enabled_events()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._get_enabled_events_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-178"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-178"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-243"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-243"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of enabled events.")]),t._v(" "),a("h3",{attrs:{id:"get-enabled-events-from-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-enabled-events-from-6"}},[t._v("#")]),t._v(" _get_enabled_events_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_enabled_events_from",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"Space[D.T_event]"}}}),t._v(" "),a("p",[t._v("Get the space (finite or infinite set) of enabled uncontrollable events in the given memory (state or\nhistory).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._get_enabled_events()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("h4",{attrs:{id:"parameters-179"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-179"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-244"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-244"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The space of enabled events.")]),t._v(" "),a("h3",{attrs:{id:"get-goals-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-goals-2"}},[t._v("#")]),t._v(" _get_goals "),a("Badge",{attrs:{text:"Goals",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_goals",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) domain goals space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Goals._get_goals()")]),t._v(" internally calls "),a("code",[t._v("Goals._get_goals_()")]),t._v(" the first time and automatically caches\nits value to make future calls more efficient (since the goals space is assumed to be constant).")]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Goal states are assumed to be fully observable (i.e. observation = state) so that there is never uncertainty\nabout whether the goal has been reached or not. This assumption guarantees that any policy that does not\nreach the goal with certainty incurs in infinite expected cost. - "),a("em",[t._v("Geffner, 2013: A Concise Introduction to\nModels and Methods for Automated Planning")])])]),t._v(" "),a("h4",{attrs:{id:"returns-245"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-245"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The goals space.")]),t._v(" "),a("h3",{attrs:{id:"get-goals-3"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-goals-3"}},[t._v("#")]),t._v(" _get_goals_ "),a("Badge",{attrs:{text:"Goals",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_goals_",sig:{params:[{name:"self"}]}}}),t._v(" "),a("p",[t._v("Get the domain goals space (finite or infinite set).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Goals._get_goals()")]),t._v(", the difference being that the result is\nnot cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-246"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-246"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The goals space.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-8"}},[t._v("#")]),t._v(" _get_initial_state "),a("Badge",{attrs:{text:"DeterministicInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_initial_state",sig:{params:[{name:"self"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("Get the (cached) initial state.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("DeterministicInitialized._get_initial_state()")]),t._v(" internally\ncalls "),a("code",[t._v("DeterministicInitialized._get_initial_state_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the initial state is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-247"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-247"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The initial state.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-9"}},[t._v("#")]),t._v(" _get_initial_state_ "),a("Badge",{attrs:{text:"DeterministicInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_initial_state_",sig:{params:[{name:"self"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("Get the initial state.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("DeterministicInitialized._get_initial_state()")]),t._v(", the difference\nbeing that the result is not cached here.")]),t._v(" "),a("h4",{attrs:{id:"returns-248"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-248"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The initial state.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-distribution-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-distribution-8"}},[t._v("#")]),t._v(" _get_initial_state_distribution "),a("Badge",{attrs:{text:"UncertainInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_initial_state_distribution",sig:{params:[{name:"self"}],return:"Distribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("Get the (cached) probability distribution of initial states.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("UncertainInitialized._get_initial_state_distribution()")]),t._v(" internally\ncalls "),a("code",[t._v("UncertainInitialized._get_initial_state_distribution_()")]),t._v(" the first time and automatically caches its value\nto make future calls more efficient (since the initial state distribution is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-249"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-249"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of initial states.")]),t._v(" "),a("h3",{attrs:{id:"get-initial-state-distribution-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-initial-state-distribution-9"}},[t._v("#")]),t._v(" _get_initial_state_distribution_ "),a("Badge",{attrs:{text:"UncertainInitialized",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_initial_state_distribution_",sig:{params:[{name:"self"}],return:"Distribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("Get the probability distribution of initial states.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("UncertainInitialized._get_initial_state_distribution()")]),t._v(", the\ndifference being that the result is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-250"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-250"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of initial states.")]),t._v(" "),a("h3",{attrs:{id:"get-memory-maxlen-9"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-memory-maxlen-9"}},[t._v("#")]),t._v(" _get_memory_maxlen "),a("Badge",{attrs:{text:"History",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_memory_maxlen",sig:{params:[{name:"self"}],return:"int"}}}),t._v(" "),a("p",[t._v("Get the (cached) memory max length.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("FiniteHistory._get_memory_maxlen()")]),t._v(" internally calls "),a("code",[t._v("FiniteHistory._get_memory_maxlen_()")]),t._v(" the first\ntime and automatically caches its value to make future calls more efficient (since the memory max length is\nassumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-251"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-251"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The memory max length.")]),t._v(" "),a("h3",{attrs:{id:"get-memory-maxlen-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-memory-maxlen-10"}},[t._v("#")]),t._v(" _get_memory_maxlen_ "),a("Badge",{attrs:{text:"FiniteHistory",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_memory_maxlen_",sig:{params:[{name:"self"}],return:"int"}}}),t._v(" "),a("p",[t._v("Get the memory max length.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("FiniteHistory._get_memory_maxlen()")]),t._v(", the difference being that\nthe result is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-252"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-252"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The memory max length.")]),t._v(" "),a("h3",{attrs:{id:"get-next-state-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-next-state-4"}},[t._v("#")]),t._v(" _get_next_state "),a("Badge",{attrs:{text:"DeterministicTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_next_state",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("Get the next state given a memory and action.")]),t._v(" "),a("h4",{attrs:{id:"parameters-180"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-180"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-253"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-253"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The deterministic next state.")]),t._v(" "),a("h3",{attrs:{id:"get-next-state-distribution-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-next-state-distribution-4"}},[t._v("#")]),t._v(" _get_next_state_distribution "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_next_state_distribution",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"SingleValueDistribution[D.T_state]"}}}),t._v(" "),a("p",[t._v("Get the discrete probability distribution of next state given a memory and action.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("In the Markovian case (memory only holds last state "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.061ex",height:"1.023ex",viewBox:"0 -442 469 452"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})])])])])]),t._v("), given an action "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.197ex",height:"1.02ex",viewBox:"0 -441 529 451"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})])])])])]),t._v(", this function can\nbe mathematically represented by "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.292ex",height:"2.283ex",viewBox:"0 -759 4107.1 1009"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"50",d:"M287 628Q287 635 230 637Q206 637 199 638T192 648Q192 649 194 659Q200 679 203 681T397 683Q587 682 600 680Q664 669 707 631T751 530Q751 453 685 389Q616 321 507 303Q500 302 402 301H307L277 182Q247 66 247 59Q247 55 248 54T255 50T272 48T305 46H336Q342 37 342 35Q342 19 335 5Q330 0 319 0Q316 0 282 1T182 2Q120 2 87 2T51 1Q33 1 33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM645 554Q645 567 643 575T634 597T609 619T560 635Q553 636 480 637Q463 637 445 637T416 636T404 636Q391 635 386 627Q384 621 367 550T332 412T314 344Q314 342 395 342H407H430Q542 342 590 392Q617 419 631 471T645 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(751, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"msup",transform:"translate(1140, 0)"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"53",d:"M308 24Q367 24 416 76T466 197Q466 260 414 284Q308 311 278 321T236 341Q176 383 176 462Q176 523 208 573T273 648Q302 673 343 688T407 704H418H425Q521 704 564 640Q565 640 577 653T603 682T623 704Q624 704 627 704T632 705Q645 705 645 698T617 577T585 459T569 456Q549 456 549 465Q549 471 550 475Q550 478 551 494T553 520Q553 554 544 579T526 616T501 641Q465 662 419 662Q362 662 313 616T263 510Q263 480 278 458T319 427Q323 425 389 408T456 390Q490 379 522 342T554 242Q554 216 546 186Q541 164 528 137T492 78T426 18T332 -20Q320 -22 298 -22Q199 -22 144 33L134 44L106 13Q83 -14 78 -18T65 -22Q52 -22 52 -14Q52 -11 110 221Q112 227 130 227H143Q149 221 149 216Q149 214 148 207T144 186T142 153Q144 114 160 87T203 47T255 29T308 24Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(613, 363) scale(0.707)"}},[a("path",{attrs:{"data-c":"2032",d:"M79 43Q73 43 52 49T30 61Q30 68 85 293T146 528Q161 560 198 560Q218 560 240 545T262 501Q262 496 260 486Q259 479 173 263T84 45T79 43Z"}})])]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1997.5, 0)"}},[a("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(2275.5, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2744.5, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(3189.1, 0)"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3718.1, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(", where "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.05ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.94ex",height:"1.767ex",viewBox:"0 -759 857.5 781"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"msup"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"53",d:"M308 24Q367 24 416 76T466 197Q466 260 414 284Q308 311 278 321T236 341Q176 383 176 462Q176 523 208 573T273 648Q302 673 343 688T407 704H418H425Q521 704 564 640Q565 640 577 653T603 682T623 704Q624 704 627 704T632 705Q645 705 645 698T617 577T585 459T569 456Q549 456 549 465Q549 471 550 475Q550 478 551 494T553 520Q553 554 544 579T526 616T501 641Q465 662 419 662Q362 662 313 616T263 510Q263 480 278 458T319 427Q323 425 389 408T456 390Q490 379 522 342T554 242Q554 216 546 186Q541 164 528 137T492 78T426 18T332 -20Q320 -22 298 -22Q199 -22 144 33L134 44L106 13Q83 -14 78 -18T65 -22Q52 -22 52 -14Q52 -11 110 221Q112 227 130 227H143Q149 221 149 216Q149 214 148 207T144 186T142 153Q144 114 160 87T203 47T255 29T308 24Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(613, 363) scale(0.707)"}},[a("path",{attrs:{"data-c":"2032",d:"M79 43Q73 43 52 49T30 61Q30 68 85 293T146 528Q161 560 198 560Q218 560 240 545T262 501Q262 496 260 486Q259 479 173 263T84 45T79 43Z"}})])])])])])]),t._v(" is the next state random variable.")],1)]),t._v(" "),a("h4",{attrs:{id:"parameters-181"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-181"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-254"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-254"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The discrete probability distribution of next state.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-10"}},[t._v("#")]),t._v(" _get_observation "),a("Badge",{attrs:{text:"TransformedObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Get the deterministic observation given a state and action.")]),t._v(" "),a("h4",{attrs:{id:"parameters-182"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-182"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-255"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-255"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-distribution-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-distribution-10"}},[t._v("#")]),t._v(" _get_observation_distribution "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation_distribution",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"},{name:"action",default:"None",annotation:"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],return:"Distribution[D.T_agent[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the probability distribution of the observation given a state and action.")]),t._v(" "),a("p",[t._v("In mathematical terms (discrete case), given an action "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.023ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.197ex",height:"1.02ex",viewBox:"0 -441 529 451"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})])])])])]),t._v(", this function represents: "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.566ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"9.078ex",height:"2.262ex",viewBox:"0 -750 4012.7 1000"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"50",d:"M287 628Q287 635 230 637Q206 637 199 638T192 648Q192 649 194 659Q200 679 203 681T397 683Q587 682 600 680Q664 669 707 631T751 530Q751 453 685 389Q616 321 507 303Q500 302 402 301H307L277 182Q247 66 247 59Q247 55 248 54T255 50T272 48T305 46H336Q342 37 342 35Q342 19 335 5Q330 0 319 0Q316 0 282 1T182 2Q120 2 87 2T51 1Q33 1 33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM645 554Q645 567 643 575T634 597T609 619T560 635Q553 636 480 637Q463 637 445 637T416 636T404 636Q391 635 386 627Q384 621 367 550T332 412T314 344Q314 342 395 342H407H430Q542 342 590 392Q617 419 631 471T645 554Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(751, 0)"}},[a("path",{attrs:{"data-c":"28",d:"M94 250Q94 319 104 381T127 488T164 576T202 643T244 695T277 729T302 750H315H319Q333 750 333 741Q333 738 316 720T275 667T226 581T184 443T167 250T184 58T225 -81T274 -167T316 -220T333 -241Q333 -250 318 -250H315H302L274 -226Q180 -141 137 -14T94 250Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(1140, 0)"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(1903, 0)"}},[a("path",{attrs:{"data-c":"7C",d:"M139 -249H137Q125 -249 119 -235V251L120 737Q130 750 139 750Q152 750 159 735V-235Q151 -249 141 -249H139Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(2181, 0)"}},[a("path",{attrs:{"data-c":"73",d:"M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(2650, 0)"}},[a("path",{attrs:{"data-c":"2C",d:"M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"}})]),a("g",{attrs:{"data-mml-node":"mi",transform:"translate(3094.7, 0)"}},[a("path",{attrs:{"data-c":"61",d:"M33 157Q33 258 109 349T280 441Q331 441 370 392Q386 422 416 422Q429 422 439 414T449 394Q449 381 412 234T374 68Q374 43 381 35T402 26Q411 27 422 35Q443 55 463 131Q469 151 473 152Q475 153 483 153H487Q506 153 506 144Q506 138 501 117T481 63T449 13Q436 0 417 -8Q409 -10 393 -10Q359 -10 336 5T306 36L300 51Q299 52 296 50Q294 48 292 46Q233 -10 172 -10Q117 -10 75 30T33 157ZM351 328Q351 334 346 350T323 385T277 405Q242 405 210 374T160 293Q131 214 119 129Q119 126 119 118T118 106Q118 61 136 44T179 26Q217 26 254 59T298 110Q300 114 325 217T351 328Z"}})]),a("g",{attrs:{"data-mml-node":"mo",transform:"translate(3623.7, 0)"}},[a("path",{attrs:{"data-c":"29",d:"M60 749L64 750Q69 750 74 750H86L114 726Q208 641 251 514T294 250Q294 182 284 119T261 12T224 -76T186 -143T145 -194T113 -227T90 -246Q87 -249 86 -250H74Q66 -250 63 -250T58 -247T55 -238Q56 -237 66 -225Q221 -64 221 250T66 725Q56 737 55 738Q55 746 60 749Z"}})])])])])]),t._v(",\nwhere "),a("mjx-container",{staticClass:"MathJax",attrs:{jax:"SVG"}},[a("svg",{staticStyle:{"vertical-align":"-0.05ex"},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"1.726ex",height:"1.643ex",viewBox:"0 -704 763 726"}},[a("g",{attrs:{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"matrix(1 0 0 -1 0 0)"}},[a("g",{attrs:{"data-mml-node":"math"}},[a("g",{attrs:{"data-mml-node":"mi"}},[a("path",{attrs:{"data-c":"4F",d:"M740 435Q740 320 676 213T511 42T304 -22Q207 -22 138 35T51 201Q50 209 50 244Q50 346 98 438T227 601Q351 704 476 704Q514 704 524 703Q621 689 680 617T740 435ZM637 476Q637 565 591 615T476 665Q396 665 322 605Q242 542 200 428T157 216Q157 126 200 73T314 19Q404 19 485 98T608 313Q637 408 637 476Z"}})])])])])]),t._v(" is the random variable of the observation.")],1),t._v(" "),a("h4",{attrs:{id:"parameters-183"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-183"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to be observed.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The last applied action (or None if the state is an initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-256"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-256"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The probability distribution of the observation.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-space-14"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-14"}},[t._v("#")]),t._v(" _get_observation_space "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation_space",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the (cached) observation space (finite or infinite set).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(" internally\ncalls "),a("code",[t._v("PartiallyObservable._get_observation_space_()")]),t._v(" the first time and automatically caches its value to make\nfuture calls more efficient (since the observation space is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-257"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-257"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The observation space.")]),t._v(" "),a("h3",{attrs:{id:"get-observation-space-15"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-observation-space-15"}},[t._v("#")]),t._v(" _get_observation_space_ "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_observation_space_",sig:{params:[{name:"self"}],return:"D.T_agent[Space[D.T_observation]]"}}}),t._v(" "),a("p",[t._v("Get the observation space (finite or infinite set).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(", the difference\nbeing that the result is not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-258"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-258"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The observation space.")]),t._v(" "),a("h3",{attrs:{id:"get-transition-value-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#get-transition-value-4"}},[t._v("#")]),t._v(" _get_transition_value "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_get_transition_value",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"},{name:"next_state",default:"None",annotation:"Optional[D.T_state]"}],return:"D.T_agent[Value[D.T_value]]"}}}),t._v(" "),a("p",[t._v("Get the value (reward or cost) of a transition.")]),t._v(" "),a("p",[t._v("The transition to consider is defined by the function parameters.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("If this function never depends on the next_state parameter for its computation, it is recommended to\nindicate it by overriding "),a("code",[t._v("UncertainTransitions._is_transition_value_dependent_on_next_state_()")]),t._v(" to return\nFalse. This information can then be exploited by solvers to avoid computing next state to evaluate a\ntransition value (more efficient).")])]),t._v(" "),a("h4",{attrs:{id:"parameters-184"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-184"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")]),t._v(" "),a("li",[a("strong",[t._v("next_state")]),t._v(": The next state in which the transition ends (if needed for the computation).")])]),t._v(" "),a("h4",{attrs:{id:"returns-259"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-259"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The transition value (reward or cost).")]),t._v(" "),a("h3",{attrs:{id:"init-memory-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#init-memory-5"}},[t._v("#")]),t._v(" _init_memory "),a("Badge",{attrs:{text:"History",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_init_memory",sig:{params:[{name:"self"},{name:"state",default:"None",annotation:"Optional[D.T_state]"}],return:"D.T_memory[D.T_state]"}}}),t._v(" "),a("p",[t._v("Initialize memory (possibly with a state) according to its specification and return it.")]),t._v(" "),a("p",[t._v("This function is automatically called by "),a("code",[t._v("Initializable._reset()")]),t._v(" to reinitialize the internal memory whenever\nthe domain is used as an environment.")]),t._v(" "),a("h4",{attrs:{id:"parameters-185"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-185"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": An optional state to initialize the memory with (typically the initial state).")])]),t._v(" "),a("h4",{attrs:{id:"returns-260"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-260"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The new initialized memory.")]),t._v(" "),a("h3",{attrs:{id:"is-action-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-action-12"}},[t._v("#")]),t._v(" _is_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_action",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an event is an action (i.e. a controllable event for the agents).")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\naction space provided by "),a("code",[t._v("Events._get_action_space()")]),t._v(", but it can be overridden for faster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-186"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-186"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("event")]),t._v(": The event to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-261"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-261"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is an action (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-applicable-action-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-12"}},[t._v("#")]),t._v(" _is_applicable_action "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_applicable_action",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an action is applicable in the given memory (state or history), or in the internal one if\nomitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._is_applicable_action()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_applicable_action_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute\ninstead of the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-187"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-187"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-262"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-262"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the action is applicable (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-applicable-action-from-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-applicable-action-from-6"}},[t._v("#")]),t._v(" _is_applicable_action_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_applicable_action_from",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_event]"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an action is applicable in the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._is_applicable_action()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the space of\napplicable actions provided by "),a("code",[t._v("Events._get_applicable_actions_from()")]),t._v(", but it can be overridden for faster\nimplementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-188"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-188"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-263"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-263"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the action is applicable (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-enabled-event-12"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-12"}},[t._v("#")]),t._v(" _is_enabled_event "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_enabled_event",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an uncontrollable event is enabled in the given memory (state or history), or in the\ninternal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Events._is_enabled_event()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Events._is_enabled_event_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead\nof the memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-189"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-189"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-264"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-264"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is enabled (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-enabled-event-from-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-enabled-event-from-6"}},[t._v("#")]),t._v(" _is_enabled_event_from "),a("Badge",{attrs:{text:"Events",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_enabled_event_from",sig:{params:[{name:"self"},{name:"event",annotation:"D.T_event"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether an event is enabled in the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Events._is_enabled_event()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the space of\nenabled events provided by "),a("code",[t._v("Events._get_enabled_events_from()")]),t._v(", but it can be overridden for faster\nimplementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-190"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-190"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-265"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-265"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the event is enabled (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-goal-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-goal-2"}},[t._v("#")]),t._v(" _is_goal "),a("Badge",{attrs:{text:"Goals",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_goal",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"D.T_agent[D.T_predicate]"}}}),t._v(" "),a("p",[t._v("Indicate whether an observation belongs to the goals.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\ngoals space provided by "),a("code",[t._v("Goals._get_goals()")]),t._v(", but it can be overridden for faster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-191"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-191"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-266"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-266"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the observation is a goal (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-observation-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-observation-10"}},[t._v("#")]),t._v(" _is_observation "),a("Badge",{attrs:{text:"PartiallyObservable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_observation",sig:{params:[{name:"self"},{name:"observation",annotation:"D.T_agent[D.T_observation]"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Check that an observation indeed belongs to the domain observation space.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("By default, this function is implemented using the "),a("code",[t._v("skdecide.core.Space.contains()")]),t._v(" function on the domain\nobservation space provided by "),a("code",[t._v("PartiallyObservable._get_observation_space()")]),t._v(", but it can be overridden for\nfaster implementations.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-192"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-192"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("observation")]),t._v(": The observation to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-267"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-267"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the observation belongs to the domain observation space (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-positive"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-positive"}},[t._v("#")]),t._v(" _is_positive "),a("Badge",{attrs:{text:"PositiveCosts",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_positive",sig:{params:[{name:"self"},{name:"cost",annotation:"D.T_value"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Determine if a value is positive (can be overridden for advanced value types).")]),t._v(" "),a("h4",{attrs:{id:"parameters-193"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-193"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("cost")]),t._v(": The cost to evaluate.")])]),t._v(" "),a("h4",{attrs:{id:"returns-268"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-268"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the cost is positive (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-terminal-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-terminal-4"}},[t._v("#")]),t._v(" _is_terminal "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_terminal",sig:{params:[{name:"self"},{name:"state",annotation:"D.T_state"}],return:"D.T_agent[D.T_predicate]"}}}),t._v(" "),a("p",[t._v("Indicate whether a state is terminal.")]),t._v(" "),a("p",[t._v("A terminal state is a state with no outgoing transition (except to itself with value 0).")]),t._v(" "),a("h4",{attrs:{id:"parameters-194"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-194"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("state")]),t._v(": The state to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-269"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-269"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the state is terminal (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-transition-value-dependent-on-next-state-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-transition-value-dependent-on-next-state-5"}},[t._v("#")]),t._v(" _is_transition_value_dependent_on_next_state "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_transition_value_dependent_on_next_state",sig:{params:[{name:"self"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether _get_transition_value() requires the next_state parameter for its computation (cached).")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("UncertainTransitions._is_transition_value_dependent_on_next_state()")]),t._v(" internally\ncalls "),a("code",[t._v("UncertainTransitions._is_transition_value_dependent_on_next_state_()")]),t._v(" the first time and automatically\ncaches its value to make future calls more efficient (since the returned value is assumed to be constant).")]),t._v(" "),a("h4",{attrs:{id:"returns-270"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-270"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the transition value computation depends on next_state (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"is-transition-value-dependent-on-next-state-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#is-transition-value-dependent-on-next-state-6"}},[t._v("#")]),t._v(" _is_transition_value_dependent_on_next_state_ "),a("Badge",{attrs:{text:"UncertainTransitions",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_is_transition_value_dependent_on_next_state_",sig:{params:[{name:"self"}],return:"bool"}}}),t._v(" "),a("p",[t._v("Indicate whether _get_transition_value() requires the next_state parameter for its computation.")]),t._v(" "),a("p",[t._v("This is a helper function called by default\nfrom "),a("code",[t._v("UncertainTransitions._is_transition_value_dependent_on_next_state()")]),t._v(", the difference being that the result\nis not cached here.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("The underscore at the end of this function's name is a convention to remind that its result should be\nconstant.")])]),t._v(" "),a("h4",{attrs:{id:"returns-271"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-271"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("True if the transition value computation depends on next_state (False otherwise).")]),t._v(" "),a("h3",{attrs:{id:"render-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#render-10"}},[t._v("#")]),t._v(" _render "),a("Badge",{attrs:{text:"Renderable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_render",sig:{params:[{name:"self"},{name:"memory",default:"None",annotation:"Optional[D.T_memory[D.T_state]]"},{name:"**kwargs",annotation:"Any"}],return:"Any"}}}),t._v(" "),a("p",[t._v("Compute a visual render of the given memory (state or history), or the internal one if omitted.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Renderable._render()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Renderable._render_from()")]),t._v(". The boilerplate code automatically passes the "),a("code",[t._v("_memory")]),t._v(" attribute instead of\nthe memory parameter whenever the latter is None.")]),t._v(" "),a("h4",{attrs:{id:"parameters-195"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-195"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider (if None, the internal memory attribute "),a("code",[t._v("_memory")]),t._v(" is used instead).")])]),t._v(" "),a("h4",{attrs:{id:"returns-272"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-272"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("A render (e.g. image) or nothing (if the function handles the display directly).")]),t._v(" "),a("h3",{attrs:{id:"render-from-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#render-from-5"}},[t._v("#")]),t._v(" _render_from "),a("Badge",{attrs:{text:"Renderable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_render_from",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"**kwargs",annotation:"Any"}],return:"Any"}}}),t._v(" "),a("p",[t._v("Compute a visual render of the given memory (state or history).")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Renderable._render()")]),t._v(", the difference being that the\nmemory parameter is mandatory here.")]),t._v(" "),a("h4",{attrs:{id:"parameters-196"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-196"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to consider.")])]),t._v(" "),a("h4",{attrs:{id:"returns-273"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-273"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("A render (e.g. image) or nothing (if the function handles the display directly).")]),t._v(" "),a("h3",{attrs:{id:"reset-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#reset-10"}},[t._v("#")]),t._v(" _reset "),a("Badge",{attrs:{text:"Initializable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_reset",sig:{params:[{name:"self"}],return:"D.T_agent[D.T_observation]"}}}),t._v(" "),a("p",[t._v("Reset the state of the environment and return an initial observation.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Initializable._reset()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Initializable._state_reset()")]),t._v(" (which returns an initial state). The boilerplate code automatically stores\nthe initial state into the "),a("code",[t._v("_memory")]),t._v(" attribute and samples a corresponding observation.")]),t._v(" "),a("h4",{attrs:{id:"returns-274"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-274"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("An initial observation.")]),t._v(" "),a("h3",{attrs:{id:"sample-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#sample-4"}},[t._v("#")]),t._v(" _sample "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_sample",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Sample one transition of the simulator's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Simulation._sample()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Simulation._state_sample()")]),t._v(" (which returns a transition outcome). The boilerplate code automatically\nsamples an observation corresponding to the sampled next state.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing simulator needs to be wrapped instead of implemented fully in scikit-decide (e.g. a\nsimulator), it is recommended to overwrite "),a("code",[t._v("Simulation._sample()")]),t._v(" to call the external simulator and not use\nthe "),a("code",[t._v("Simulation._state_sample()")]),t._v(" helper function.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-197"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-197"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-275"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-275"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of the sampled transition.")]),t._v(" "),a("h3",{attrs:{id:"set-memory-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#set-memory-4"}},[t._v("#")]),t._v(" _set_memory "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_set_memory",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"}],return:"None"}}}),t._v(" "),a("p",[t._v("Set internal memory attribute "),a("code",[t._v("_memory")]),t._v(" to given one.")]),t._v(" "),a("p",[t._v('This can be useful to set a specific "starting point" before doing a rollout with\nsuccessive '),a("code",[t._v("Environment._step()")]),t._v(" calls.")]),t._v(" "),a("h4",{attrs:{id:"parameters-198"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-198"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The memory to set internally.")])]),t._v(" "),a("h4",{attrs:{id:"example-4"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#example-4"}},[t._v("#")]),t._v(" Example")]),t._v(" "),a("div",{staticClass:"language-python extra-class"},[a("pre",{pre:!0,attrs:{class:"language-python"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Set simulation_domain memory to my_state (assuming Markovian domain)")]),t._v("\nsimulation_domain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("_set_memory"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("my_state"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# Start a 100-steps rollout from here (applying my_action at every step)")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("for")]),t._v(" _ "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("in")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("range")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n simulation_domain"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("_step"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("my_action"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),a("h3",{attrs:{id:"state-reset-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#state-reset-5"}},[t._v("#")]),t._v(" _state_reset "),a("Badge",{attrs:{text:"Initializable",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_state_reset",sig:{params:[{name:"self"}],return:"D.T_state"}}}),t._v(" "),a("p",[t._v("Reset the state of the environment and return an initial state.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Initializable._reset()")]),t._v(". It focuses on the state level, as\nopposed to the observation one for the latter.")]),t._v(" "),a("h4",{attrs:{id:"returns-276"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-276"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("An initial state.")]),t._v(" "),a("h3",{attrs:{id:"state-sample-2"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#state-sample-2"}},[t._v("#")]),t._v(" _state_sample "),a("Badge",{attrs:{text:"Simulation",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_state_sample",sig:{params:[{name:"self"},{name:"memory",annotation:"D.T_memory[D.T_state]"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"TransitionOutcome[D.T_state, D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Compute one sample of the transition's dynamics.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Simulation._sample()")]),t._v(". It focuses on the state level, as\nopposed to the observation one for the latter.")]),t._v(" "),a("h4",{attrs:{id:"parameters-199"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-199"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("memory")]),t._v(": The source memory (state or history) of the transition.")]),t._v(" "),a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the given memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-277"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-277"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The transition outcome of the sampled transition.")]),t._v(" "),a("h3",{attrs:{id:"state-step-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#state-step-5"}},[t._v("#")]),t._v(" _state_step "),a("Badge",{attrs:{text:"Environment",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_state_step",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"TransitionOutcome[D.T_state, D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Compute one step of the transition's dynamics.")]),t._v(" "),a("p",[t._v("This is a helper function called by default from "),a("code",[t._v("Environment._step()")]),t._v(". It focuses on the state level, as opposed\nto the observation one for the latter.")]),t._v(" "),a("h4",{attrs:{id:"parameters-200"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-200"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the current memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-278"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-278"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The transition outcome of this step.")]),t._v(" "),a("h3",{attrs:{id:"step-10"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#step-10"}},[t._v("#")]),t._v(" _step "),a("Badge",{attrs:{text:"Environment",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"_step",sig:{params:[{name:"self"},{name:"action",annotation:"D.T_agent[D.T_concurrency[D.T_event]]"}],return:"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"}}}),t._v(" "),a("p",[t._v("Run one step of the environment's dynamics.")]),t._v(" "),a("p",[t._v("By default, "),a("code",[t._v("Environment._step()")]),t._v(" provides some boilerplate code and internally\ncalls "),a("code",[t._v("Environment._state_step()")]),t._v(" (which returns a transition outcome). The boilerplate code automatically stores\nnext state into the "),a("code",[t._v("_memory")]),t._v(" attribute and samples a corresponding observation.")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Whenever an existing environment needs to be wrapped instead of implemented fully in scikit-decide (e.g. compiled\nATARI games), it is recommended to overwrite "),a("code",[t._v("Environment._step()")]),t._v(" to call the external environment and not\nuse the "),a("code",[t._v("Environment._state_step()")]),t._v(" helper function.")])]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("Before calling "),a("code",[t._v("Environment._step()")]),t._v(" the first time or when the end of an episode is\nreached, "),a("code",[t._v("Initializable._reset()")]),t._v(" must be called to reset the environment's state.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-201"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-201"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("action")]),t._v(": The action taken in the current memory (state or history) triggering the transition.")])]),t._v(" "),a("h4",{attrs:{id:"returns-279"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-279"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The environment outcome of this step.")]),t._v(" "),a("h2",{attrs:{id:"asgymenv"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#asgymenv"}},[t._v("#")]),t._v(" AsGymEnv")]),t._v(" "),a("p",[t._v("This class wraps a scikit-decide domain as an OpenAI Gym environment.")]),t._v(" "),a("div",{staticClass:"custom-block warning"},[a("p",{staticClass:"custom-block-title"},[t._v("WARNING")]),t._v(" "),a("p",[t._v("The scikit-decide domain to wrap should inherit "),a("code",[t._v("UnrestrictedActionDomain")]),t._v(" since OpenAI Gym environments usually assume\nthat all their actions are always applicable.")])]),t._v(" "),a("p",[t._v("An OpenAI Gym environment encapsulates an environment with arbitrary behind-the-scenes dynamics. An environment can\nbe partially or fully observed.")]),t._v(" "),a("p",[t._v("The main API methods that users of this class need to know are:")]),t._v(" "),a("ul",[a("li",[t._v("step")]),t._v(" "),a("li",[t._v("reset")]),t._v(" "),a("li",[t._v("render")]),t._v(" "),a("li",[t._v("close")]),t._v(" "),a("li",[t._v("seed")])]),t._v(" "),a("p",[t._v("And set the following attributes:")]),t._v(" "),a("ul",[a("li",[t._v("action_space: The Space object corresponding to valid actions.")]),t._v(" "),a("li",[t._v("observation_space: The Space object corresponding to valid observations.")]),t._v(" "),a("li",[t._v("reward_range: A tuple corresponding to the min and max possible rewards.")])]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v('A default reward range set to [-inf,+inf] already exists. Set it if you want a narrower range. The methods are\naccessed publicly as "step", "reset", etc.. The non-underscored versions are wrapper methods to which\nfunctionality may be added over time.')])]),t._v(" "),a("h3",{attrs:{id:"constructor-8"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#constructor-8"}},[t._v("#")]),t._v(" Constructor "),a("Badge",{attrs:{text:"AsGymEnv",type:"tip"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"AsGymEnv",sig:{params:[{name:"domain",annotation:"Domain"},{name:"unwrap_spaces",default:"True",annotation:"bool"}],return:"None"}}}),t._v(" "),a("p",[t._v("Initialize AsGymEnv.")]),t._v(" "),a("h4",{attrs:{id:"parameters-202"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-202"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("domain")]),t._v(": The scikit-decide domain to wrap as an OpenAI Gym environment.")]),t._v(" "),a("li",[a("strong",[t._v("unwrap_spaces")]),t._v(": Boolean specifying whether the action & observation spaces should be unwrapped.")])]),t._v(" "),a("h3",{attrs:{id:"close"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#close"}},[t._v("#")]),t._v(" close "),a("Badge",{attrs:{text:"Env",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"close",sig:{params:[{name:"self"}]}}}),t._v(" "),a("p",[t._v("Override close in your subclass to perform any necessary cleanup.")]),t._v(" "),a("p",[t._v("Environments will automatically close() themselves when garbage collected or when the program exits.")]),t._v(" "),a("h3",{attrs:{id:"render-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#render-11"}},[t._v("#")]),t._v(" render "),a("Badge",{attrs:{text:"Env",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"render",sig:{params:[{name:"self"},{name:"mode",default:"human"}]}}}),t._v(" "),a("p",[t._v("Render the environment.")]),t._v(" "),a("p",[t._v("The set of supported modes varies per environment. (And some environments do not support rendering at all.) By\nconvention, if mode is:")]),t._v(" "),a("ul",[a("li",[t._v("human: Render to the current display or terminal and return nothing. Usually for human consumption.")]),t._v(" "),a("li",[t._v("rgb_array: Return an numpy.ndarray with shape (x, y, 3), representing RGB values for an x-by-y pixel image,\nsuitable for turning into a video.")]),t._v(" "),a("li",[t._v("ansi: Return a string (str) or StringIO.StringIO containing a terminal-style text representation. The text can\ninclude newlines and ANSI escape sequences (e.g. for colors).")])]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("TIP")]),t._v(" "),a("p",[t._v("Make sure that your class's metadata 'render.modes' key includes he list of supported modes. It's\nrecommended to call super() in implementations to use the functionality of this method.")])]),t._v(" "),a("h4",{attrs:{id:"parameters-203"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-203"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("mode")]),t._v(" (str): The mode to render with.")]),t._v(" "),a("li",[a("strong",[t._v("close")]),t._v(" (bool): Close all open renderings.")])]),t._v(" "),a("h4",{attrs:{id:"example-5"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#example-5"}},[t._v("#")]),t._v(" Example")]),t._v(" "),a("div",{staticClass:"language-python extra-class"},[a("pre",{pre:!0,attrs:{class:"language-python"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("class")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("MyEnv")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("Env"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n metadata "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'render.modes'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'human'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'rgb_array'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("def")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("render")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("self"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" mode"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'human'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),t._v(" mode "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("==")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'rgb_array'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" np"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("array"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# return RGB frame suitable for video")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("elif")]),t._v(" mode "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("is")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[t._v("'human'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# pop up a window and render")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("else")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),a("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("super")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("MyEnv"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" self"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("render"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("mode"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v("mode"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# just raise an exception")]),t._v("\n")])])]),a("h3",{attrs:{id:"reset-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#reset-11"}},[t._v("#")]),t._v(" reset "),a("Badge",{attrs:{text:"Env",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"reset",sig:{params:[{name:"self"}]}}}),t._v(" "),a("p",[t._v("Reset the state of the environment and returns an initial observation.")]),t._v(" "),a("h4",{attrs:{id:"returns-280"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-280"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("observation (object): The initial observation of the space.")]),t._v(" "),a("h3",{attrs:{id:"seed"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#seed"}},[t._v("#")]),t._v(" seed "),a("Badge",{attrs:{text:"Env",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"seed",sig:{params:[{name:"self"},{name:"seed",default:"None"}]}}}),t._v(" "),a("p",[t._v("Sets the seed for this env's random number generator(s).")]),t._v(" "),a("p",[t._v("Note:\nSome environments use multiple pseudorandom number generators.\nWe want to capture all such seeds used in order to ensure that\nthere aren't accidental correlations between multiple generators.")]),t._v(" "),a("p",[t._v("Returns:\nlist: Returns the list of seeds used in this env's random\nnumber generators. The first value in the list should be the\n\"main\" seed, or the value which a reproducer should pass to\n'seed'. Often, the main seed equals the provided 'seed', but\nthis won't be true if seed=None, for example.")]),t._v(" "),a("h3",{attrs:{id:"step-11"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#step-11"}},[t._v("#")]),t._v(" step "),a("Badge",{attrs:{text:"Env",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"step",sig:{params:[{name:"self"},{name:"action"}]}}}),t._v(" "),a("p",[t._v("Run one timestep of the environment's dynamics. When end of episode is reached, you are responsible for\ncalling "),a("code",[t._v("reset()")]),t._v(" to reset this environment's state.")]),t._v(" "),a("p",[t._v("Accepts an action and returns a tuple (observation, reward, done, info).")]),t._v(" "),a("h4",{attrs:{id:"parameters-204"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameters-204"}},[t._v("#")]),t._v(" Parameters")]),t._v(" "),a("ul",[a("li",[a("strong",[t._v("action")]),t._v(" (object): An action provided by the environment.")])]),t._v(" "),a("h4",{attrs:{id:"returns-281"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-281"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("A tuple with following elements:")]),t._v(" "),a("ul",[a("li",[t._v("observation (object): The agent's observation of the current environment.")]),t._v(" "),a("li",[t._v("reward (float) : The amount of reward returned after previous action.")]),t._v(" "),a("li",[t._v("done (boolean): Whether the episode ended, in which case further step() calls will return undefined results.")]),t._v(" "),a("li",[t._v("info (dict): Contains auxiliary diagnostic information (helpful for debugging, and sometimes learning).")])]),t._v(" "),a("h3",{attrs:{id:"unwrapped-6"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#unwrapped-6"}},[t._v("#")]),t._v(" unwrapped "),a("Badge",{attrs:{text:"Env",type:"warn"}})],1),t._v(" "),a("skdecide-signature",{attrs:{name:"unwrapped",sig:{params:[{name:"self"}]}}}),t._v(" "),a("p",[t._v("Unwrap the scikit-decide domain and return it.")]),t._v(" "),a("h4",{attrs:{id:"returns-282"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#returns-282"}},[t._v("#")]),t._v(" Returns")]),t._v(" "),a("p",[t._v("The original scikit-decide domain.")])],1)}),[],!1,null,null,null);e.default=r.exports}}]); \ No newline at end of file diff --git a/assets/js/67.9d2f8468.js b/assets/js/67.919956b0.js similarity index 90% rename from assets/js/67.9d2f8468.js rename to assets/js/67.919956b0.js index 6bdf9cbfd0..a3cd9c2829 100644 --- a/assets/js/67.9d2f8468.js +++ b/assets/js/67.919956b0.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[67],{582:function(s,t,i){"use strict";i.r(t);var r=i(38),a=Object(r.a)({},(function(){var s=this.$createElement,t=this._self._c||s;return t("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[t("h1",{attrs:{id:"hub-domain-rcpsp-rcpsp-sk-parser"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#hub-domain-rcpsp-rcpsp-sk-parser"}},[this._v("#")]),this._v(" hub.domain.rcpsp.rcpsp_sk_parser")]),this._v(" "),t("div",{staticClass:"custom-block tip"},[t("p",{staticClass:"custom-block-title"},[this._v("Domain specification")]),this._v(" "),t("skdecide-summary")],1)])}),[],!1,null,null,null);t.default=a.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[67],{581:function(s,t,i){"use strict";i.r(t);var r=i(38),a=Object(r.a)({},(function(){var s=this.$createElement,t=this._self._c||s;return t("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[t("h1",{attrs:{id:"hub-domain-rcpsp-rcpsp-sk-parser"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#hub-domain-rcpsp-rcpsp-sk-parser"}},[this._v("#")]),this._v(" hub.domain.rcpsp.rcpsp_sk_parser")]),this._v(" "),t("div",{staticClass:"custom-block tip"},[t("p",{staticClass:"custom-block-title"},[this._v("Domain specification")]),this._v(" "),t("skdecide-summary")],1)])}),[],!1,null,null,null);t.default=a.exports}}]); \ No newline at end of file diff --git a/assets/js/68.46e66ebb.js b/assets/js/68.1b53bd75.js similarity index 97% rename from assets/js/68.46e66ebb.js rename to assets/js/68.1b53bd75.js index 9278705fc2..0602cb5ac6 100644 --- a/assets/js/68.46e66ebb.js +++ b/assets/js/68.1b53bd75.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[68],{583:function(t,a,e){"use strict";e.r(a);var s=e(38),r=Object(s.a)({},(function(){var t=this,a=t.$createElement,e=t._self._c||a;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"hub-domain-rock-paper-scissors-rock-paper-scissors"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#hub-domain-rock-paper-scissors-rock-paper-scissors"}},[t._v("#")]),t._v(" hub.domain.rock_paper_scissors.rock_paper_scissors")]),t._v(" "),e("div",{staticClass:"custom-block tip"},[e("p",{staticClass:"custom-block-title"},[t._v("Domain specification")]),t._v(" "),e("skdecide-summary")],1),t._v(" "),e("h2",{attrs:{id:"move"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#move"}},[t._v("#")]),t._v(" Move")]),t._v(" "),e("p",[t._v("An enumeration.")]),t._v(" "),e("h2",{attrs:{id:"state"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#state"}},[t._v("#")]),t._v(" State")]),t._v(" "),e("p",[t._v("State(num_move,)")]),t._v(" "),e("h3",{attrs:{id:"asdict"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#asdict"}},[t._v("#")]),t._v(" _asdict "),e("Badge",{attrs:{text:"State",type:"tip"}})],1),t._v(" "),e("skdecide-signature",{attrs:{name:"_asdict",sig:{params:[{name:"self"}]}}}),t._v(" "),e("p",[t._v("Return a new OrderedDict which maps field names to their values.")]),t._v(" "),e("h3",{attrs:{id:"make"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#make"}},[t._v("#")]),t._v(" _make "),e("Badge",{attrs:{text:"State",type:"tip"}})],1),t._v(" "),e("skdecide-signature",{attrs:{name:"_make",sig:{params:[{name:"iterable"}]}}}),t._v(" "),e("p",[t._v("Make a new State object from a sequence or iterable")]),t._v(" "),e("h3",{attrs:{id:"replace"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#replace"}},[t._v("#")]),t._v(" _replace "),e("Badge",{attrs:{text:"State",type:"tip"}})],1),t._v(" "),e("skdecide-signature",{attrs:{name:"_replace",sig:{params:[{name:"_self"},{name:"**kwds"}]}}}),t._v(" "),e("p",[t._v("Return a new State object replacing specified fields with new values")])],1)}),[],!1,null,null,null);a.default=r.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[68],{585:function(t,a,e){"use strict";e.r(a);var s=e(38),r=Object(s.a)({},(function(){var t=this,a=t.$createElement,e=t._self._c||a;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"hub-domain-rock-paper-scissors-rock-paper-scissors"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#hub-domain-rock-paper-scissors-rock-paper-scissors"}},[t._v("#")]),t._v(" hub.domain.rock_paper_scissors.rock_paper_scissors")]),t._v(" "),e("div",{staticClass:"custom-block tip"},[e("p",{staticClass:"custom-block-title"},[t._v("Domain specification")]),t._v(" "),e("skdecide-summary")],1),t._v(" "),e("h2",{attrs:{id:"move"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#move"}},[t._v("#")]),t._v(" Move")]),t._v(" "),e("p",[t._v("An enumeration.")]),t._v(" "),e("h2",{attrs:{id:"state"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#state"}},[t._v("#")]),t._v(" State")]),t._v(" "),e("p",[t._v("State(num_move,)")]),t._v(" "),e("h3",{attrs:{id:"asdict"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#asdict"}},[t._v("#")]),t._v(" _asdict "),e("Badge",{attrs:{text:"State",type:"tip"}})],1),t._v(" "),e("skdecide-signature",{attrs:{name:"_asdict",sig:{params:[{name:"self"}]}}}),t._v(" "),e("p",[t._v("Return a new OrderedDict which maps field names to their values.")]),t._v(" "),e("h3",{attrs:{id:"make"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#make"}},[t._v("#")]),t._v(" _make "),e("Badge",{attrs:{text:"State",type:"tip"}})],1),t._v(" "),e("skdecide-signature",{attrs:{name:"_make",sig:{params:[{name:"iterable"}]}}}),t._v(" "),e("p",[t._v("Make a new State object from a sequence or iterable")]),t._v(" "),e("h3",{attrs:{id:"replace"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#replace"}},[t._v("#")]),t._v(" _replace "),e("Badge",{attrs:{text:"State",type:"tip"}})],1),t._v(" "),e("skdecide-signature",{attrs:{name:"_replace",sig:{params:[{name:"_self"},{name:"**kwds"}]}}}),t._v(" "),e("p",[t._v("Return a new State object replacing specified fields with new values")])],1)}),[],!1,null,null,null);a.default=r.exports}}]); \ No newline at end of file diff --git a/assets/js/69.d57a93c9.js b/assets/js/69.df4c07e4.js similarity index 97% rename from assets/js/69.d57a93c9.js rename to assets/js/69.df4c07e4.js index 467f9c0c9f..eca9832f92 100644 --- a/assets/js/69.d57a93c9.js +++ b/assets/js/69.df4c07e4.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[69],{584:function(t,a,e){"use strict";e.r(a);var s=e(38),r=Object(s.a)({},(function(){var t=this,a=t.$createElement,e=t._self._c||a;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"hub-domain-simple-grid-world-simple-grid-world"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#hub-domain-simple-grid-world-simple-grid-world"}},[t._v("#")]),t._v(" hub.domain.simple_grid_world.simple_grid_world")]),t._v(" "),e("div",{staticClass:"custom-block tip"},[e("p",{staticClass:"custom-block-title"},[t._v("Domain specification")]),t._v(" "),e("skdecide-summary")],1),t._v(" "),e("h2",{attrs:{id:"state"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#state"}},[t._v("#")]),t._v(" State")]),t._v(" "),e("p",[t._v("State(x, y)")]),t._v(" "),e("h3",{attrs:{id:"asdict"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#asdict"}},[t._v("#")]),t._v(" _asdict "),e("Badge",{attrs:{text:"State",type:"tip"}})],1),t._v(" "),e("skdecide-signature",{attrs:{name:"_asdict",sig:{params:[{name:"self"}]}}}),t._v(" "),e("p",[t._v("Return a new OrderedDict which maps field names to their values.")]),t._v(" "),e("h3",{attrs:{id:"make"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#make"}},[t._v("#")]),t._v(" _make "),e("Badge",{attrs:{text:"State",type:"tip"}})],1),t._v(" "),e("skdecide-signature",{attrs:{name:"_make",sig:{params:[{name:"iterable"}]}}}),t._v(" "),e("p",[t._v("Make a new State object from a sequence or iterable")]),t._v(" "),e("h3",{attrs:{id:"replace"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#replace"}},[t._v("#")]),t._v(" _replace "),e("Badge",{attrs:{text:"State",type:"tip"}})],1),t._v(" "),e("skdecide-signature",{attrs:{name:"_replace",sig:{params:[{name:"_self"},{name:"**kwds"}]}}}),t._v(" "),e("p",[t._v("Return a new State object replacing specified fields with new values")]),t._v(" "),e("h2",{attrs:{id:"action"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#action"}},[t._v("#")]),t._v(" Action")]),t._v(" "),e("p",[t._v("An enumeration.")])],1)}),[],!1,null,null,null);a.default=r.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[69],{586:function(t,a,e){"use strict";e.r(a);var s=e(38),r=Object(s.a)({},(function(){var t=this,a=t.$createElement,e=t._self._c||a;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"hub-domain-simple-grid-world-simple-grid-world"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#hub-domain-simple-grid-world-simple-grid-world"}},[t._v("#")]),t._v(" hub.domain.simple_grid_world.simple_grid_world")]),t._v(" "),e("div",{staticClass:"custom-block tip"},[e("p",{staticClass:"custom-block-title"},[t._v("Domain specification")]),t._v(" "),e("skdecide-summary")],1),t._v(" "),e("h2",{attrs:{id:"state"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#state"}},[t._v("#")]),t._v(" State")]),t._v(" "),e("p",[t._v("State(x, y)")]),t._v(" "),e("h3",{attrs:{id:"asdict"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#asdict"}},[t._v("#")]),t._v(" _asdict "),e("Badge",{attrs:{text:"State",type:"tip"}})],1),t._v(" "),e("skdecide-signature",{attrs:{name:"_asdict",sig:{params:[{name:"self"}]}}}),t._v(" "),e("p",[t._v("Return a new OrderedDict which maps field names to their values.")]),t._v(" "),e("h3",{attrs:{id:"make"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#make"}},[t._v("#")]),t._v(" _make "),e("Badge",{attrs:{text:"State",type:"tip"}})],1),t._v(" "),e("skdecide-signature",{attrs:{name:"_make",sig:{params:[{name:"iterable"}]}}}),t._v(" "),e("p",[t._v("Make a new State object from a sequence or iterable")]),t._v(" "),e("h3",{attrs:{id:"replace"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#replace"}},[t._v("#")]),t._v(" _replace "),e("Badge",{attrs:{text:"State",type:"tip"}})],1),t._v(" "),e("skdecide-signature",{attrs:{name:"_replace",sig:{params:[{name:"_self"},{name:"**kwds"}]}}}),t._v(" "),e("p",[t._v("Return a new State object replacing specified fields with new values")]),t._v(" "),e("h2",{attrs:{id:"action"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#action"}},[t._v("#")]),t._v(" Action")]),t._v(" "),e("p",[t._v("An enumeration.")])],1)}),[],!1,null,null,null);a.default=r.exports}}]); \ No newline at end of file diff --git a/assets/js/70.ddc9f6da.js b/assets/js/70.16f7a11c.js similarity index 90% rename from assets/js/70.ddc9f6da.js rename to assets/js/70.16f7a11c.js index 6965f0c000..b72fc4ab17 100644 --- a/assets/js/70.ddc9f6da.js +++ b/assets/js/70.16f7a11c.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[70],{586:function(t,s,a){"use strict";a.r(s);var o=a(38),i=Object(o.a)({},(function(){var t=this.$createElement,s=this._self._c||t;return s("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[s("h1",{attrs:{id:"hub-solver-aostar-aostar"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#hub-solver-aostar-aostar"}},[this._v("#")]),this._v(" hub.solver.aostar.aostar")]),this._v(" "),s("div",{staticClass:"custom-block tip"},[s("p",{staticClass:"custom-block-title"},[this._v("Domain specification")]),this._v(" "),s("skdecide-summary")],1)])}),[],!1,null,null,null);s.default=i.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[70],{582:function(t,s,a){"use strict";a.r(s);var o=a(38),i=Object(o.a)({},(function(){var t=this.$createElement,s=this._self._c||t;return s("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[s("h1",{attrs:{id:"hub-solver-aostar-aostar"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#hub-solver-aostar-aostar"}},[this._v("#")]),this._v(" hub.solver.aostar.aostar")]),this._v(" "),s("div",{staticClass:"custom-block tip"},[s("p",{staticClass:"custom-block-title"},[this._v("Domain specification")]),this._v(" "),s("skdecide-summary")],1)])}),[],!1,null,null,null);s.default=i.exports}}]); \ No newline at end of file diff --git a/assets/js/71.a4ad120d.js b/assets/js/71.3dd1e6ad.js similarity index 92% rename from assets/js/71.a4ad120d.js rename to assets/js/71.3dd1e6ad.js index fdfa2c231b..d5f49397e1 100644 --- a/assets/js/71.a4ad120d.js +++ b/assets/js/71.3dd1e6ad.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[71],{585:function(t,s,a){"use strict";a.r(s);var e=a(38),r=Object(e.a)({},(function(){var t=this,s=t.$createElement,a=t._self._c||s;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"hub-solver-ars-ars"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#hub-solver-ars-ars"}},[t._v("#")]),t._v(" hub.solver.ars.ars")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("Domain specification")]),t._v(" "),a("skdecide-summary")],1),t._v(" "),a("h2",{attrs:{id:"flatten"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#flatten"}},[t._v("#")]),t._v(" flatten")]),t._v(" "),a("skdecide-signature",{attrs:{name:"flatten",sig:{params:[{name:"c"}]}}}),t._v(" "),a("p",[t._v("Generator flattening the structure")])],1)}),[],!1,null,null,null);s.default=r.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[71],{583:function(t,s,a){"use strict";a.r(s);var e=a(38),r=Object(e.a)({},(function(){var t=this,s=t.$createElement,a=t._self._c||s;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"hub-solver-ars-ars"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#hub-solver-ars-ars"}},[t._v("#")]),t._v(" hub.solver.ars.ars")]),t._v(" "),a("div",{staticClass:"custom-block tip"},[a("p",{staticClass:"custom-block-title"},[t._v("Domain specification")]),t._v(" "),a("skdecide-summary")],1),t._v(" "),a("h2",{attrs:{id:"flatten"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#flatten"}},[t._v("#")]),t._v(" flatten")]),t._v(" "),a("skdecide-signature",{attrs:{name:"flatten",sig:{params:[{name:"c"}]}}}),t._v(" "),a("p",[t._v("Generator flattening the structure")])],1)}),[],!1,null,null,null);s.default=r.exports}}]); \ No newline at end of file diff --git a/assets/js/73.0138011d.js b/assets/js/73.db870ad5.js similarity index 90% rename from assets/js/73.0138011d.js rename to assets/js/73.db870ad5.js index a6f20f2494..610058dc15 100644 --- a/assets/js/73.0138011d.js +++ b/assets/js/73.db870ad5.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[73],{588:function(s,t,i){"use strict";i.r(t);var e=i(38),a=Object(e.a)({},(function(){var s=this.$createElement,t=this._self._c||s;return t("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[t("h1",{attrs:{id:"hub-solver-bfws-bfws"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#hub-solver-bfws-bfws"}},[this._v("#")]),this._v(" hub.solver.bfws.bfws")]),this._v(" "),t("div",{staticClass:"custom-block tip"},[t("p",{staticClass:"custom-block-title"},[this._v("Domain specification")]),this._v(" "),t("skdecide-summary")],1)])}),[],!1,null,null,null);t.default=a.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[73],{589:function(s,t,i){"use strict";i.r(t);var e=i(38),a=Object(e.a)({},(function(){var s=this.$createElement,t=this._self._c||s;return t("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[t("h1",{attrs:{id:"hub-solver-bfws-bfws"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#hub-solver-bfws-bfws"}},[this._v("#")]),this._v(" hub.solver.bfws.bfws")]),this._v(" "),t("div",{staticClass:"custom-block tip"},[t("p",{staticClass:"custom-block-title"},[this._v("Domain specification")]),this._v(" "),t("skdecide-summary")],1)])}),[],!1,null,null,null);t.default=a.exports}}]); \ No newline at end of file diff --git a/assets/js/74.6df934d4.js b/assets/js/74.408baccf.js similarity index 97% rename from assets/js/74.6df934d4.js rename to assets/js/74.408baccf.js index a725b223bd..c1294a8203 100644 --- a/assets/js/74.6df934d4.js +++ b/assets/js/74.408baccf.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[74],{592:function(a,t,e){"use strict";e.r(t);var r=e(38),s=Object(r.a)({},(function(){var a=this,t=a.$createElement,e=a._self._c||t;return e("ContentSlotsDistributor",{attrs:{"slot-key":a.$parent.slotKey}},[e("h1",{attrs:{id:"hub-solver-cgp-cgp"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#hub-solver-cgp-cgp"}},[a._v("#")]),a._v(" hub.solver.cgp.cgp")]),a._v(" "),e("div",{staticClass:"custom-block tip"},[e("p",{staticClass:"custom-block-title"},[a._v("Domain specification")]),a._v(" "),e("skdecide-summary")],1),a._v(" "),e("h2",{attrs:{id:"flatten"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#flatten"}},[a._v("#")]),a._v(" flatten")]),a._v(" "),e("skdecide-signature",{attrs:{name:"flatten",sig:{params:[{name:"c"}]}}}),a._v(" "),e("p",[a._v("Generator flattening the structure")]),a._v(" "),e("blockquote",[e("blockquote",[e("blockquote",[e("p",[a._v('list(flatten([2, [2, "test", [4,5, [7], [2, [6, 2, 6, [6], 4]], 6]]]))\n[2, 2, "test", 4, 5, 7, 2, 6, 2, 6, 6, 4, 6]')])])])]),a._v(" "),e("h2",{attrs:{id:"norm-and-flatten"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#norm-and-flatten"}},[a._v("#")]),a._v(" norm_and_flatten")]),a._v(" "),e("skdecide-signature",{attrs:{name:"norm_and_flatten",sig:{params:[{name:"vals"},{name:"types"}]}}}),a._v(" "),e("p",[a._v("Flatten and normalise according to AIGYM type (BOX, DISCRETE, TUPLE)\n:param vals: a np array structure\n:param types: the gym type corresponding to the vals arrays\n:return: a flatten array with normalised vals")]),a._v(" "),e("h2",{attrs:{id:"norm"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#norm"}},[a._v("#")]),a._v(" norm")]),a._v(" "),e("skdecide-signature",{attrs:{name:"norm",sig:{params:[{name:"vals"},{name:"types"}]}}}),a._v(" "),e("p",[a._v("Normalise according to AIGYM type (BOX, DISCRETE, TUPLE)\n:param vals: a np array structure\n:param types: the gym type corresponding to the vals arrays\n:return: array with normalised vals")]),a._v(" "),e("h2",{attrs:{id:"denorm"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#denorm"}},[a._v("#")]),a._v(" denorm")]),a._v(" "),e("skdecide-signature",{attrs:{name:"denorm",sig:{params:[{name:"vals"},{name:"types"}]}}}),a._v(" "),e("p",[a._v("Denormalize values according to AIGYM types (BOX, DISCRETE, TUPLE)\n:param vals: an array of [-1,1] normalised values\n:param types: the gym types corresponding to vals\n:return: the same vals array with denormalised values")])],1)}),[],!1,null,null,null);t.default=s.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[74],{588:function(a,t,e){"use strict";e.r(t);var r=e(38),s=Object(r.a)({},(function(){var a=this,t=a.$createElement,e=a._self._c||t;return e("ContentSlotsDistributor",{attrs:{"slot-key":a.$parent.slotKey}},[e("h1",{attrs:{id:"hub-solver-cgp-cgp"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#hub-solver-cgp-cgp"}},[a._v("#")]),a._v(" hub.solver.cgp.cgp")]),a._v(" "),e("div",{staticClass:"custom-block tip"},[e("p",{staticClass:"custom-block-title"},[a._v("Domain specification")]),a._v(" "),e("skdecide-summary")],1),a._v(" "),e("h2",{attrs:{id:"flatten"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#flatten"}},[a._v("#")]),a._v(" flatten")]),a._v(" "),e("skdecide-signature",{attrs:{name:"flatten",sig:{params:[{name:"c"}]}}}),a._v(" "),e("p",[a._v("Generator flattening the structure")]),a._v(" "),e("blockquote",[e("blockquote",[e("blockquote",[e("p",[a._v('list(flatten([2, [2, "test", [4,5, [7], [2, [6, 2, 6, [6], 4]], 6]]]))\n[2, 2, "test", 4, 5, 7, 2, 6, 2, 6, 6, 4, 6]')])])])]),a._v(" "),e("h2",{attrs:{id:"norm-and-flatten"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#norm-and-flatten"}},[a._v("#")]),a._v(" norm_and_flatten")]),a._v(" "),e("skdecide-signature",{attrs:{name:"norm_and_flatten",sig:{params:[{name:"vals"},{name:"types"}]}}}),a._v(" "),e("p",[a._v("Flatten and normalise according to AIGYM type (BOX, DISCRETE, TUPLE)\n:param vals: a np array structure\n:param types: the gym type corresponding to the vals arrays\n:return: a flatten array with normalised vals")]),a._v(" "),e("h2",{attrs:{id:"norm"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#norm"}},[a._v("#")]),a._v(" norm")]),a._v(" "),e("skdecide-signature",{attrs:{name:"norm",sig:{params:[{name:"vals"},{name:"types"}]}}}),a._v(" "),e("p",[a._v("Normalise according to AIGYM type (BOX, DISCRETE, TUPLE)\n:param vals: a np array structure\n:param types: the gym type corresponding to the vals arrays\n:return: array with normalised vals")]),a._v(" "),e("h2",{attrs:{id:"denorm"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#denorm"}},[a._v("#")]),a._v(" denorm")]),a._v(" "),e("skdecide-signature",{attrs:{name:"denorm",sig:{params:[{name:"vals"},{name:"types"}]}}}),a._v(" "),e("p",[a._v("Denormalize values according to AIGYM types (BOX, DISCRETE, TUPLE)\n:param vals: an array of [-1,1] normalised values\n:param types: the gym types corresponding to vals\n:return: the same vals array with denormalised values")])],1)}),[],!1,null,null,null);t.default=s.exports}}]); \ No newline at end of file diff --git a/assets/js/75.6e950b0e.js b/assets/js/75.00e3ca16.js similarity index 90% rename from assets/js/75.6e950b0e.js rename to assets/js/75.00e3ca16.js index ad92979418..2bec1dde52 100644 --- a/assets/js/75.6e950b0e.js +++ b/assets/js/75.00e3ca16.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[75],{589:function(t,s,c){"use strict";c.r(s);var i=c(38),e=Object(i.a)({},(function(){var t=this.$createElement,s=this._self._c||t;return s("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[s("h1",{attrs:{id:"hub-solver-cgp-pycgp-cgp"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#hub-solver-cgp-pycgp-cgp"}},[this._v("#")]),this._v(" hub.solver.cgp.pycgp.cgp")]),this._v(" "),s("div",{staticClass:"custom-block tip"},[s("p",{staticClass:"custom-block-title"},[this._v("Domain specification")]),this._v(" "),s("skdecide-summary")],1)])}),[],!1,null,null,null);s.default=e.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[75],{590:function(t,s,c){"use strict";c.r(s);var i=c(38),e=Object(i.a)({},(function(){var t=this.$createElement,s=this._self._c||t;return s("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[s("h1",{attrs:{id:"hub-solver-cgp-pycgp-cgp"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#hub-solver-cgp-pycgp-cgp"}},[this._v("#")]),this._v(" hub.solver.cgp.pycgp.cgp")]),this._v(" "),s("div",{staticClass:"custom-block tip"},[s("p",{staticClass:"custom-block-title"},[this._v("Domain specification")]),this._v(" "),s("skdecide-summary")],1)])}),[],!1,null,null,null);s.default=e.exports}}]); \ No newline at end of file diff --git a/assets/js/76.e6122d58.js b/assets/js/76.bab0b272.js similarity index 90% rename from assets/js/76.e6122d58.js rename to assets/js/76.bab0b272.js index e2103b3c45..492854f1f2 100644 --- a/assets/js/76.e6122d58.js +++ b/assets/js/76.bab0b272.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[76],{591:function(t,s,e){"use strict";e.r(s);var c=e(38),i=Object(c.a)({},(function(){var t=this.$createElement,s=this._self._c||t;return s("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[s("h1",{attrs:{id:"hub-solver-cgp-pycgp-cgpes"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#hub-solver-cgp-pycgp-cgpes"}},[this._v("#")]),this._v(" hub.solver.cgp.pycgp.cgpes")]),this._v(" "),s("div",{staticClass:"custom-block tip"},[s("p",{staticClass:"custom-block-title"},[this._v("Domain specification")]),this._v(" "),s("skdecide-summary")],1)])}),[],!1,null,null,null);s.default=i.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[76],{593:function(t,s,e){"use strict";e.r(s);var c=e(38),i=Object(c.a)({},(function(){var t=this.$createElement,s=this._self._c||t;return s("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[s("h1",{attrs:{id:"hub-solver-cgp-pycgp-cgpes"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#hub-solver-cgp-pycgp-cgpes"}},[this._v("#")]),this._v(" hub.solver.cgp.pycgp.cgpes")]),this._v(" "),s("div",{staticClass:"custom-block tip"},[s("p",{staticClass:"custom-block-title"},[this._v("Domain specification")]),this._v(" "),s("skdecide-summary")],1)])}),[],!1,null,null,null);s.default=i.exports}}]); \ No newline at end of file diff --git a/assets/js/77.d6bcdb39.js b/assets/js/77.7190ff4d.js similarity index 90% rename from assets/js/77.d6bcdb39.js rename to assets/js/77.7190ff4d.js index 3f1d5a8e5d..d19410bf42 100644 --- a/assets/js/77.d6bcdb39.js +++ b/assets/js/77.7190ff4d.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[77],{594:function(t,s,c){"use strict";c.r(s);var i=c(38),e=Object(i.a)({},(function(){var t=this.$createElement,s=this._self._c||t;return s("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[s("h1",{attrs:{id:"hub-solver-cgp-pycgp-cgpfunctions"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#hub-solver-cgp-pycgp-cgpfunctions"}},[this._v("#")]),this._v(" hub.solver.cgp.pycgp.cgpfunctions")]),this._v(" "),s("div",{staticClass:"custom-block tip"},[s("p",{staticClass:"custom-block-title"},[this._v("Domain specification")]),this._v(" "),s("skdecide-summary")],1)])}),[],!1,null,null,null);s.default=e.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[77],{592:function(t,s,c){"use strict";c.r(s);var i=c(38),e=Object(i.a)({},(function(){var t=this.$createElement,s=this._self._c||t;return s("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[s("h1",{attrs:{id:"hub-solver-cgp-pycgp-cgpfunctions"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#hub-solver-cgp-pycgp-cgpfunctions"}},[this._v("#")]),this._v(" hub.solver.cgp.pycgp.cgpfunctions")]),this._v(" "),s("div",{staticClass:"custom-block tip"},[s("p",{staticClass:"custom-block-title"},[this._v("Domain specification")]),this._v(" "),s("skdecide-summary")],1)])}),[],!1,null,null,null);s.default=e.exports}}]); \ No newline at end of file diff --git a/assets/js/78.0e3bd757.js b/assets/js/78.035fe9d5.js similarity index 90% rename from assets/js/78.0e3bd757.js rename to assets/js/78.035fe9d5.js index d2a40e7caf..ef91e52411 100644 --- a/assets/js/78.0e3bd757.js +++ b/assets/js/78.035fe9d5.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[78],{593:function(t,s,a){"use strict";a.r(s);var e=a(38),i=Object(e.a)({},(function(){var t=this.$createElement,s=this._self._c||t;return s("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[s("h1",{attrs:{id:"hub-solver-cgp-pycgp-evaluator"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#hub-solver-cgp-pycgp-evaluator"}},[this._v("#")]),this._v(" hub.solver.cgp.pycgp.evaluator")]),this._v(" "),s("div",{staticClass:"custom-block tip"},[s("p",{staticClass:"custom-block-title"},[this._v("Domain specification")]),this._v(" "),s("skdecide-summary")],1)])}),[],!1,null,null,null);s.default=i.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[78],{594:function(t,s,a){"use strict";a.r(s);var e=a(38),i=Object(e.a)({},(function(){var t=this.$createElement,s=this._self._c||t;return s("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[s("h1",{attrs:{id:"hub-solver-cgp-pycgp-evaluator"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#hub-solver-cgp-pycgp-evaluator"}},[this._v("#")]),this._v(" hub.solver.cgp.pycgp.evaluator")]),this._v(" "),s("div",{staticClass:"custom-block tip"},[s("p",{staticClass:"custom-block-title"},[this._v("Domain specification")]),this._v(" "),s("skdecide-summary")],1)])}),[],!1,null,null,null);s.default=i.exports}}]); \ No newline at end of file diff --git a/assets/js/85.45b8209e.js b/assets/js/85.524465f2.js similarity index 90% rename from assets/js/85.45b8209e.js rename to assets/js/85.524465f2.js index 38db84e6c8..b8b68bb85b 100644 --- a/assets/js/85.45b8209e.js +++ b/assets/js/85.524465f2.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[85],{601:function(t,s,r){"use strict";r.r(s);var a=r(38),e=Object(a.a)({},(function(){var t=this.$createElement,s=this._self._c||t;return s("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[s("h1",{attrs:{id:"hub-solver-graph-explorer-graphdomain"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#hub-solver-graph-explorer-graphdomain"}},[this._v("#")]),this._v(" hub.solver.graph_explorer.GraphDomain")]),this._v(" "),s("div",{staticClass:"custom-block tip"},[s("p",{staticClass:"custom-block-title"},[this._v("Domain specification")]),this._v(" "),s("skdecide-summary")],1)])}),[],!1,null,null,null);s.default=e.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[85],{604:function(t,s,r){"use strict";r.r(s);var a=r(38),e=Object(a.a)({},(function(){var t=this.$createElement,s=this._self._c||t;return s("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[s("h1",{attrs:{id:"hub-solver-graph-explorer-graphdomain"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#hub-solver-graph-explorer-graphdomain"}},[this._v("#")]),this._v(" hub.solver.graph_explorer.GraphDomain")]),this._v(" "),s("div",{staticClass:"custom-block tip"},[s("p",{staticClass:"custom-block-title"},[this._v("Domain specification")]),this._v(" "),s("skdecide-summary")],1)])}),[],!1,null,null,null);s.default=e.exports}}]); \ No newline at end of file diff --git a/assets/js/87.b5140c2e.js b/assets/js/87.a8970c55.js similarity index 90% rename from assets/js/87.b5140c2e.js rename to assets/js/87.a8970c55.js index 0a77ecd48c..1291dbe075 100644 --- a/assets/js/87.b5140c2e.js +++ b/assets/js/87.a8970c55.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[87],{603:function(t,s,a){"use strict";a.r(s);var i=a(38),o=Object(i.a)({},(function(){var t=this.$createElement,s=this._self._c||t;return s("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[s("h1",{attrs:{id:"hub-solver-ilaostar-ilaostar"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#hub-solver-ilaostar-ilaostar"}},[this._v("#")]),this._v(" hub.solver.ilaostar.ilaostar")]),this._v(" "),s("div",{staticClass:"custom-block tip"},[s("p",{staticClass:"custom-block-title"},[this._v("Domain specification")]),this._v(" "),s("skdecide-summary")],1)])}),[],!1,null,null,null);s.default=o.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[87],{601:function(t,s,a){"use strict";a.r(s);var i=a(38),o=Object(i.a)({},(function(){var t=this.$createElement,s=this._self._c||t;return s("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[s("h1",{attrs:{id:"hub-solver-ilaostar-ilaostar"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#hub-solver-ilaostar-ilaostar"}},[this._v("#")]),this._v(" hub.solver.ilaostar.ilaostar")]),this._v(" "),s("div",{staticClass:"custom-block tip"},[s("p",{staticClass:"custom-block-title"},[this._v("Domain specification")]),this._v(" "),s("skdecide-summary")],1)])}),[],!1,null,null,null);s.default=o.exports}}]); \ No newline at end of file diff --git a/assets/js/88.35569a43.js b/assets/js/88.4af6fe55.js similarity index 89% rename from assets/js/88.35569a43.js rename to assets/js/88.4af6fe55.js index f4a2f38102..6272a1b53d 100644 --- a/assets/js/88.35569a43.js +++ b/assets/js/88.4af6fe55.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[88],{604:function(t,s,i){"use strict";i.r(s);var e=i(38),a=Object(e.a)({},(function(){var t=this.$createElement,s=this._self._c||t;return s("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[s("h1",{attrs:{id:"hub-solver-iw-iw"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#hub-solver-iw-iw"}},[this._v("#")]),this._v(" hub.solver.iw.iw")]),this._v(" "),s("div",{staticClass:"custom-block tip"},[s("p",{staticClass:"custom-block-title"},[this._v("Domain specification")]),this._v(" "),s("skdecide-summary")],1)])}),[],!1,null,null,null);s.default=a.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[88],{603:function(t,s,i){"use strict";i.r(s);var e=i(38),a=Object(e.a)({},(function(){var t=this.$createElement,s=this._self._c||t;return s("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[s("h1",{attrs:{id:"hub-solver-iw-iw"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#hub-solver-iw-iw"}},[this._v("#")]),this._v(" hub.solver.iw.iw")]),this._v(" "),s("div",{staticClass:"custom-block tip"},[s("p",{staticClass:"custom-block-title"},[this._v("Domain specification")]),this._v(" "),s("skdecide-summary")],1)])}),[],!1,null,null,null);s.default=a.exports}}]); \ No newline at end of file diff --git a/assets/js/93.6ce172af.js b/assets/js/93.ff029ffb.js similarity index 90% rename from assets/js/93.6ce172af.js rename to assets/js/93.ff029ffb.js index b8b685f4c2..2864408d33 100644 --- a/assets/js/93.6ce172af.js +++ b/assets/js/93.ff029ffb.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[93],{609:function(t,s,a){"use strict";a.r(s);var i=a(38),r=Object(i.a)({},(function(){var t=this.$createElement,s=this._self._c||t;return s("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[s("h1",{attrs:{id:"hub-solver-martdp-martdp"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#hub-solver-martdp-martdp"}},[this._v("#")]),this._v(" hub.solver.martdp.martdp")]),this._v(" "),s("div",{staticClass:"custom-block tip"},[s("p",{staticClass:"custom-block-title"},[this._v("Domain specification")]),this._v(" "),s("skdecide-summary")],1)])}),[],!1,null,null,null);s.default=r.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[93],{610:function(t,s,a){"use strict";a.r(s);var i=a(38),r=Object(i.a)({},(function(){var t=this.$createElement,s=this._self._c||t;return s("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[s("h1",{attrs:{id:"hub-solver-martdp-martdp"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#hub-solver-martdp-martdp"}},[this._v("#")]),this._v(" hub.solver.martdp.martdp")]),this._v(" "),s("div",{staticClass:"custom-block tip"},[s("p",{staticClass:"custom-block-title"},[this._v("Domain specification")]),this._v(" "),s("skdecide-summary")],1)])}),[],!1,null,null,null);s.default=r.exports}}]); \ No newline at end of file diff --git a/assets/js/94.72a2355d.js b/assets/js/94.8b155c6d.js similarity index 90% rename from assets/js/94.72a2355d.js rename to assets/js/94.8b155c6d.js index 7b1eb107de..3cd8131035 100644 --- a/assets/js/94.72a2355d.js +++ b/assets/js/94.8b155c6d.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[94],{611:function(t,s,i){"use strict";i.r(s);var e=i(38),a=Object(e.a)({},(function(){var t=this.$createElement,s=this._self._c||t;return s("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[s("h1",{attrs:{id:"hub-solver-maxent-irl-maxent-irl"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#hub-solver-maxent-irl-maxent-irl"}},[this._v("#")]),this._v(" hub.solver.maxent_irl.maxent_irl")]),this._v(" "),s("div",{staticClass:"custom-block tip"},[s("p",{staticClass:"custom-block-title"},[this._v("Domain specification")]),this._v(" "),s("skdecide-summary")],1)])}),[],!1,null,null,null);s.default=a.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[94],{609:function(t,s,i){"use strict";i.r(s);var e=i(38),a=Object(e.a)({},(function(){var t=this.$createElement,s=this._self._c||t;return s("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[s("h1",{attrs:{id:"hub-solver-maxent-irl-maxent-irl"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#hub-solver-maxent-irl-maxent-irl"}},[this._v("#")]),this._v(" hub.solver.maxent_irl.maxent_irl")]),this._v(" "),s("div",{staticClass:"custom-block tip"},[s("p",{staticClass:"custom-block-title"},[this._v("Domain specification")]),this._v(" "),s("skdecide-summary")],1)])}),[],!1,null,null,null);s.default=a.exports}}]); \ No newline at end of file diff --git a/assets/js/95.9f787adb.js b/assets/js/95.7ad26ea5.js similarity index 90% rename from assets/js/95.9f787adb.js rename to assets/js/95.7ad26ea5.js index 8ee873ddf4..e0ead5cb42 100644 --- a/assets/js/95.9f787adb.js +++ b/assets/js/95.7ad26ea5.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[95],{610:function(t,s,i){"use strict";i.r(s);var e=i(38),c=Object(e.a)({},(function(){var t=this.$createElement,s=this._self._c||t;return s("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[s("h1",{attrs:{id:"hub-solver-mcts-mcts"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#hub-solver-mcts-mcts"}},[this._v("#")]),this._v(" hub.solver.mcts.mcts")]),this._v(" "),s("div",{staticClass:"custom-block tip"},[s("p",{staticClass:"custom-block-title"},[this._v("Domain specification")]),this._v(" "),s("skdecide-summary")],1)])}),[],!1,null,null,null);s.default=c.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[95],{611:function(t,s,i){"use strict";i.r(s);var e=i(38),c=Object(e.a)({},(function(){var t=this.$createElement,s=this._self._c||t;return s("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[s("h1",{attrs:{id:"hub-solver-mcts-mcts"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#hub-solver-mcts-mcts"}},[this._v("#")]),this._v(" hub.solver.mcts.mcts")]),this._v(" "),s("div",{staticClass:"custom-block tip"},[s("p",{staticClass:"custom-block-title"},[this._v("Domain specification")]),this._v(" "),s("skdecide-summary")],1)])}),[],!1,null,null,null);s.default=c.exports}}]); \ No newline at end of file diff --git a/assets/js/98.37e08c33.js b/assets/js/98.b3c3d224.js similarity index 91% rename from assets/js/98.37e08c33.js rename to assets/js/98.b3c3d224.js index 0b4e637084..1ee887273f 100644 --- a/assets/js/98.37e08c33.js +++ b/assets/js/98.b3c3d224.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[98],{615:function(t,s,a){"use strict";a.r(s);var o=a(38),i=Object(o.a)({},(function(){var t=this.$createElement,s=this._self._c||t;return s("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[s("h1",{attrs:{id:"hub-solver-policy-evaluators-policy-evaluator"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#hub-solver-policy-evaluators-policy-evaluator"}},[this._v("#")]),this._v(" hub.solver.policy_evaluators.policy_evaluator")]),this._v(" "),s("div",{staticClass:"custom-block tip"},[s("p",{staticClass:"custom-block-title"},[this._v("Domain specification")]),this._v(" "),s("skdecide-summary")],1)])}),[],!1,null,null,null);s.default=i.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[98],{614:function(t,s,a){"use strict";a.r(s);var o=a(38),i=Object(o.a)({},(function(){var t=this.$createElement,s=this._self._c||t;return s("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[s("h1",{attrs:{id:"hub-solver-policy-evaluators-policy-evaluator"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#hub-solver-policy-evaluators-policy-evaluator"}},[this._v("#")]),this._v(" hub.solver.policy_evaluators.policy_evaluator")]),this._v(" "),s("div",{staticClass:"custom-block tip"},[s("p",{staticClass:"custom-block-title"},[this._v("Domain specification")]),this._v(" "),s("skdecide-summary")],1)])}),[],!1,null,null,null);s.default=i.exports}}]); \ No newline at end of file diff --git a/assets/js/99.81e75079.js b/assets/js/99.875ee937.js similarity index 94% rename from assets/js/99.81e75079.js rename to assets/js/99.875ee937.js index 9bf66319bf..c639a3949c 100644 --- a/assets/js/99.81e75079.js +++ b/assets/js/99.875ee937.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[99],{614:function(t,i,e){"use strict";e.r(i);var s=e(38),a=Object(s.a)({},(function(){var t=this,i=t.$createElement,e=t._self._c||i;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"hub-solver-pomcp-pomcp"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#hub-solver-pomcp-pomcp"}},[t._v("#")]),t._v(" hub.solver.pomcp.pomcp")]),t._v(" "),e("div",{staticClass:"custom-block tip"},[e("p",{staticClass:"custom-block-title"},[t._v("Domain specification")]),t._v(" "),e("skdecide-summary")],1),t._v(" "),e("h2",{attrs:{id:"get-probability"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#get-probability"}},[t._v("#")]),t._v(" get_probability")]),t._v(" "),e("skdecide-signature",{attrs:{name:"get_probability",sig:{params:[{name:"distribution"},{name:"element"},{name:"n",default:"100"}]}}}),t._v(" "),e("p",[t._v("Utility function to get the probability of a specific element from a scikit-decide distribution\n(based on sampling if this distribution is not a DiscreteDistribution).")])],1)}),[],!1,null,null,null);i.default=a.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[99],{615:function(t,i,e){"use strict";e.r(i);var s=e(38),a=Object(s.a)({},(function(){var t=this,i=t.$createElement,e=t._self._c||i;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"hub-solver-pomcp-pomcp"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#hub-solver-pomcp-pomcp"}},[t._v("#")]),t._v(" hub.solver.pomcp.pomcp")]),t._v(" "),e("div",{staticClass:"custom-block tip"},[e("p",{staticClass:"custom-block-title"},[t._v("Domain specification")]),t._v(" "),e("skdecide-summary")],1),t._v(" "),e("h2",{attrs:{id:"get-probability"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#get-probability"}},[t._v("#")]),t._v(" get_probability")]),t._v(" "),e("skdecide-signature",{attrs:{name:"get_probability",sig:{params:[{name:"distribution"},{name:"element"},{name:"n",default:"100"}]}}}),t._v(" "),e("p",[t._v("Utility function to get the probability of a specific element from a scikit-decide distribution\n(based on sampling if this distribution is not a DiscreteDistribution).")])],1)}),[],!1,null,null,null);i.default=a.exports}}]); \ No newline at end of file diff --git a/assets/js/app.c447a952.js b/assets/js/app.627b5298.js similarity index 86% rename from assets/js/app.c447a952.js rename to assets/js/app.627b5298.js index 1bf0c341a0..49d4ba2e0f 100644 --- a/assets/js/app.c447a952.js +++ b/assets/js/app.627b5298.js @@ -1,4 +1,4 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[0],[]]);!function(e){function t(t){for(var n,a,o=t[0],l=t[1],u=t[2],d=0,h=[];d=0&&Math.floor(t)===t&&isFinite(e)}function p(e){return s(e)&&"function"==typeof e.then&&"function"==typeof e.catch}function f(e){return null==e?"":Array.isArray(e)||c(e)&&e.toString===u?JSON.stringify(e,null,2):String(e)}function m(e){var t=parseFloat(e);return isNaN(t)?e:t}function v(e,t){for(var i=Object.create(null),n=e.split(","),r=0;r-1)return e.splice(i,1)}}var b=Object.prototype.hasOwnProperty;function y(e,t){return b.call(e,t)}function x(e){var t=Object.create(null);return function(i){return t[i]||(t[i]=e(i))}}var k=/-(\w)/g,w=x((function(e){return e.replace(k,(function(e,t){return t?t.toUpperCase():""}))})),C=x((function(e){return e.charAt(0).toUpperCase()+e.slice(1)})),S=/\B([A-Z])/g,O=x((function(e){return e.replace(S,"-$1").toLowerCase()}));var D=Function.prototype.bind?function(e,t){return e.bind(t)}:function(e,t){function i(i){var n=arguments.length;return n?n>1?e.apply(t,arguments):e.call(t,i):e.call(t)}return i._length=e.length,i};function E(e,t){t=t||0;for(var i=e.length-t,n=new Array(i);i--;)n[i]=e[i+t];return n}function T(e,t){for(var i in t)e[i]=t[i];return e}function $(e){for(var t={},i=0;i0,Z=Y&&Y.indexOf("edge/")>0,Q=(Y&&Y.indexOf("android"),Y&&/iphone|ipad|ipod|ios/.test(Y)||"ios"===G),J=(Y&&/chrome\/\d+/.test(Y),Y&&/phantomjs/.test(Y),Y&&Y.match(/firefox\/(\d+)/)),ee={}.watch,te=!1;if(q)try{var ie={};Object.defineProperty(ie,"passive",{get:function(){te=!0}}),window.addEventListener("test-passive",null,ie)}catch(e){}var ne=function(){return void 0===H&&(H=!q&&!U&&"undefined"!=typeof global&&(global.process&&"server"===global.process.env.VUE_ENV)),H},re=q&&window.__VUE_DEVTOOLS_GLOBAL_HOOK__;function se(e){return"function"==typeof e&&/native code/.test(e.toString())}var ae,oe="undefined"!=typeof Symbol&&se(Symbol)&&"undefined"!=typeof Reflect&&se(Reflect.ownKeys);ae="undefined"!=typeof Set&&se(Set)?Set:function(){function e(){this.set=Object.create(null)}return e.prototype.has=function(e){return!0===this.set[e]},e.prototype.add=function(e){this.set[e]=!0},e.prototype.clear=function(){this.set=Object.create(null)},e}();var le=P,ue=0,ce=function(){this.id=ue++,this.subs=[]};ce.prototype.addSub=function(e){this.subs.push(e)},ce.prototype.removeSub=function(e){_(this.subs,e)},ce.prototype.depend=function(){ce.target&&ce.target.addDep(this)},ce.prototype.notify=function(){var e=this.subs.slice();for(var t=0,i=e.length;t-1)if(s&&!y(r,"default"))a=!1;else if(""===a||a===O(e)){var l=Be(String,r.type);(l<0||o0&&(dt((l=e(l,(i||"")+"_"+n))[0])&&dt(c)&&(d[u]=ge(c.text+l[0].text),l.shift()),d.push.apply(d,l)):o(l)?dt(c)?d[u]=ge(c.text+l):""!==l&&d.push(ge(l)):dt(l)&&dt(c)?d[u]=ge(c.text+l.text):(a(t._isVList)&&s(l.tag)&&r(l.key)&&s(i)&&(l.key="__vlist"+i+"_"+n+"__"),d.push(l)));return d}(e):void 0}function dt(e){return s(e)&&s(e.text)&&!1===e.isComment}function ht(e,t){if(e){for(var i=Object.create(null),n=oe?Reflect.ownKeys(e):Object.keys(e),r=0;r0,a=e?!!e.$stable:!s,o=e&&e.$key;if(e){if(e._normalized)return e._normalized;if(a&&i&&i!==n&&o===i.$key&&!s&&!i.$hasNormal)return i;for(var l in r={},e)e[l]&&"$"!==l[0]&&(r[l]=gt(t,l,e[l]))}else r={};for(var u in t)u in r||(r[u]=_t(t,u));return e&&Object.isExtensible(e)&&(e._normalized=r),R(r,"$stable",a),R(r,"$key",o),R(r,"$hasNormal",s),r}function gt(e,t,i){var n=function(){var e=arguments.length?i.apply(null,arguments):i({}),t=(e=e&&"object"==typeof e&&!Array.isArray(e)?[e]:ct(e))&&e[0];return e&&(!t||1===e.length&&t.isComment&&!mt(t))?void 0:e};return i.proxy&&Object.defineProperty(e,t,{get:n,enumerable:!0,configurable:!0}),n}function _t(e,t){return function(){return e[t]}}function bt(e,t){var i,n,r,a,o;if(Array.isArray(e)||"string"==typeof e)for(i=new Array(e.length),n=0,r=e.length;ndocument.createEvent("Event").timeStamp&&(li=function(){return ui.now()})}function ci(){var e,t;for(oi=li(),si=!0,ti.sort((function(e,t){return e.id-t.id})),ai=0;aiai&&ti[i].id>e.id;)i--;ti.splice(i+1,0,e)}else ti.push(e);ri||(ri=!0,it(ci))}}(this)},hi.prototype.run=function(){if(this.active){var e=this.get();if(e!==this.value||l(e)||this.deep){var t=this.value;if(this.value=e,this.user){var i='callback for watcher "'+this.expression+'"';We(this.cb,this.vm,[e,t],this.vm,i)}else this.cb.call(this.vm,e,t)}}},hi.prototype.evaluate=function(){this.value=this.get(),this.dirty=!1},hi.prototype.depend=function(){for(var e=this.deps.length;e--;)this.deps[e].depend()},hi.prototype.teardown=function(){if(this.active){this.vm._isBeingDestroyed||_(this.vm._watchers,this);for(var e=this.deps.length;e--;)this.deps[e].removeSub(this);this.active=!1}};var pi={enumerable:!0,configurable:!0,get:P,set:P};function fi(e,t,i){pi.get=function(){return this[t][i]},pi.set=function(e){this[t][i]=e},Object.defineProperty(e,i,pi)}function mi(e){e._watchers=[];var t=e.$options;t.props&&function(e,t){var i=e.$options.propsData||{},n=e._props={},r=e.$options._propKeys=[];e.$parent&&we(!1);var s=function(s){r.push(s);var a=Fe(s,t,i,e);Oe(n,s,a),s in e||fi(e,"_props",s)};for(var a in t)s(a);we(!0)}(e,t.props),t.methods&&function(e,t){e.$options.props;for(var i in t)e[i]="function"!=typeof t[i]?P:D(t[i],e)}(e,t.methods),t.data?function(e){var t=e.$options.data;c(t=e._data="function"==typeof t?function(e,t){he();try{return e.call(t,t)}catch(e){return He(e,t,"data()"),{}}finally{pe()}}(t,e):t||{})||(t={});var i=Object.keys(t),n=e.$options.props,r=(e.$options.methods,i.length);for(;r--;){var s=i[r];0,n&&y(n,s)||(a=void 0,36!==(a=(s+"").charCodeAt(0))&&95!==a&&fi(e,"_data",s))}var a;Se(t,!0)}(e):Se(e._data={},!0),t.computed&&function(e,t){var i=e._computedWatchers=Object.create(null),n=ne();for(var r in t){var s=t[r],a="function"==typeof s?s:s.get;0,n||(i[r]=new hi(e,a||P,P,vi)),r in e||gi(e,r,s)}}(e,t.computed),t.watch&&t.watch!==ee&&function(e,t){for(var i in t){var n=t[i];if(Array.isArray(n))for(var r=0;r-1:"string"==typeof e?e.split(",").indexOf(t)>-1:!!d(e)&&e.test(t)}function Di(e,t){var i=e.cache,n=e.keys,r=e._vnode;for(var s in i){var a=i[s];if(a){var o=a.name;o&&!t(o)&&Ei(i,s,n,r)}}}function Ei(e,t,i,n){var r=e[t];!r||n&&r.tag===n.tag||r.componentInstance.$destroy(),e[t]=null,_(i,t)}!function(e){e.prototype._init=function(e){var t=this;t._uid=xi++,t._isVue=!0,e&&e._isComponent?function(e,t){var i=e.$options=Object.create(e.constructor.options),n=t._parentVnode;i.parent=t.parent,i._parentVnode=n;var r=n.componentOptions;i.propsData=r.propsData,i._parentListeners=r.listeners,i._renderChildren=r.children,i._componentTag=r.tag,t.render&&(i.render=t.render,i.staticRenderFns=t.staticRenderFns)}(t,e):t.$options=Ne(ki(t.constructor),e||{},t),t._renderProxy=t,t._self=t,function(e){var t=e.$options,i=t.parent;if(i&&!t.abstract){for(;i.$options.abstract&&i.$parent;)i=i.$parent;i.$children.push(e)}e.$parent=i,e.$root=i?i.$root:e,e.$children=[],e.$refs={},e._watcher=null,e._inactive=null,e._directInactive=!1,e._isMounted=!1,e._isDestroyed=!1,e._isBeingDestroyed=!1}(t),function(e){e._events=Object.create(null),e._hasHookEvent=!1;var t=e.$options._parentListeners;t&&Kt(e,t)}(t),function(e){e._vnode=null,e._staticTrees=null;var t=e.$options,i=e.$vnode=t._parentVnode,r=i&&i.context;e.$slots=pt(t._renderChildren,r),e.$scopedSlots=n,e._c=function(t,i,n,r){return Rt(e,t,i,n,r,!1)},e.$createElement=function(t,i,n,r){return Rt(e,t,i,n,r,!0)};var s=i&&i.data;Oe(e,"$attrs",s&&s.attrs||n,null,!0),Oe(e,"$listeners",t._parentListeners||n,null,!0)}(t),ei(t,"beforeCreate"),function(e){var t=ht(e.$options.inject,e);t&&(we(!1),Object.keys(t).forEach((function(i){Oe(e,i,t[i])})),we(!0))}(t),mi(t),function(e){var t=e.$options.provide;t&&(e._provided="function"==typeof t?t.call(e):t)}(t),ei(t,"created"),t.$options.el&&t.$mount(t.$options.el)}}(wi),function(e){var t={get:function(){return this._data}},i={get:function(){return this._props}};Object.defineProperty(e.prototype,"$data",t),Object.defineProperty(e.prototype,"$props",i),e.prototype.$set=De,e.prototype.$delete=Ee,e.prototype.$watch=function(e,t,i){if(c(t))return yi(this,e,t,i);(i=i||{}).user=!0;var n=new hi(this,e,t,i);if(i.immediate){var r='callback for immediate watcher "'+n.expression+'"';he(),We(t,this,[n.value],this,r),pe()}return function(){n.teardown()}}}(wi),function(e){var t=/^hook:/;e.prototype.$on=function(e,i){var n=this;if(Array.isArray(e))for(var r=0,s=e.length;r1?E(i):i;for(var n=E(arguments,1),r='event handler for "'+e+'"',s=0,a=i.length;sparseInt(this.max)&&Ei(e,t[0],t,this._vnode),this.vnodeToCache=null}}},created:function(){this.cache=Object.create(null),this.keys=[]},destroyed:function(){for(var e in this.cache)Ei(this.cache,e,this.keys)},mounted:function(){var e=this;this.cacheVNode(),this.$watch("include",(function(t){Di(e,(function(e){return Oi(t,e)}))})),this.$watch("exclude",(function(t){Di(e,(function(e){return!Oi(t,e)}))}))},updated:function(){this.cacheVNode()},render:function(){var e=this.$slots.default,t=qt(e),i=t&&t.componentOptions;if(i){var n=Si(i),r=this.include,s=this.exclude;if(r&&(!n||!Oi(r,n))||s&&n&&Oi(s,n))return t;var a=this.cache,o=this.keys,l=null==t.key?i.Ctor.cid+(i.tag?"::"+i.tag:""):t.key;a[l]?(t.componentInstance=a[l].componentInstance,_(o,l),o.push(l)):(this.vnodeToCache=t,this.keyToCache=l),t.data.keepAlive=!0}return t||e&&e[0]}}};!function(e){var t={get:function(){return V}};Object.defineProperty(e,"config",t),e.util={warn:le,extend:T,mergeOptions:Ne,defineReactive:Oe},e.set=De,e.delete=Ee,e.nextTick=it,e.observable=function(e){return Se(e),e},e.options=Object.create(null),L.forEach((function(t){e.options[t+"s"]=Object.create(null)})),e.options._base=e,T(e.options.components,$i),function(e){e.use=function(e){var t=this._installedPlugins||(this._installedPlugins=[]);if(t.indexOf(e)>-1)return this;var i=E(arguments,1);return i.unshift(this),"function"==typeof e.install?e.install.apply(e,i):"function"==typeof e&&e.apply(null,i),t.push(e),this}}(e),function(e){e.mixin=function(e){return this.options=Ne(this.options,e),this}}(e),Ci(e),function(e){L.forEach((function(t){e[t]=function(e,i){return i?("component"===t&&c(i)&&(i.name=i.name||e,i=this.options._base.extend(i)),"directive"===t&&"function"==typeof i&&(i={bind:i,update:i}),this.options[t+"s"][e]=i,i):this.options[t+"s"][e]}}))}(e)}(wi),Object.defineProperty(wi.prototype,"$isServer",{get:ne}),Object.defineProperty(wi.prototype,"$ssrContext",{get:function(){return this.$vnode&&this.$vnode.ssrContext}}),Object.defineProperty(wi,"FunctionalRenderContext",{value:It}),wi.version="2.6.14";var Pi=v("style,class"),ji=v("input,textarea,option,select,progress"),Mi=v("contenteditable,draggable,spellcheck"),Ii=v("events,caret,typing,plaintext-only"),Ai=v("allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,default,defaultchecked,defaultmuted,defaultselected,defer,disabled,enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,required,reversed,scoped,seamless,selected,sortable,truespeed,typemustmatch,visible"),Ni="http://www.w3.org/1999/xlink",Li=function(e){return":"===e.charAt(5)&&"xlink"===e.slice(0,5)},Fi=function(e){return Li(e)?e.slice(6,e.length):""},Vi=function(e){return null==e||!1===e};function zi(e){for(var t=e.data,i=e,n=e;s(n.componentInstance);)(n=n.componentInstance._vnode)&&n.data&&(t=Ri(n.data,t));for(;s(i=i.parent);)i&&i.data&&(t=Ri(t,i.data));return function(e,t){if(s(e)||s(t))return Bi(e,Hi(t));return""}(t.staticClass,t.class)}function Ri(e,t){return{staticClass:Bi(e.staticClass,t.staticClass),class:s(e.class)?[e.class,t.class]:t.class}}function Bi(e,t){return e?t?e+" "+t:e:t||""}function Hi(e){return Array.isArray(e)?function(e){for(var t,i="",n=0,r=e.length;n-1?pn(e,t,i):Ai(t)?Vi(i)?e.removeAttribute(t):(i="allowfullscreen"===t&&"EMBED"===e.tagName?"true":t,e.setAttribute(t,i)):Mi(t)?e.setAttribute(t,function(e,t){return Vi(t)||"false"===t?"false":"contenteditable"===e&&Ii(t)?t:"true"}(t,i)):Li(t)?Vi(i)?e.removeAttributeNS(Ni,Fi(t)):e.setAttributeNS(Ni,t,i):pn(e,t,i)}function pn(e,t,i){if(Vi(i))e.removeAttribute(t);else{if(K&&!X&&"TEXTAREA"===e.tagName&&"placeholder"===t&&""!==i&&!e.__ieph){var n=function(t){t.stopImmediatePropagation(),e.removeEventListener("input",n)};e.addEventListener("input",n),e.__ieph=!0}e.setAttribute(t,i)}}var fn={create:dn,update:dn};function mn(e,t){var i=t.elm,n=t.data,a=e.data;if(!(r(n.staticClass)&&r(n.class)&&(r(a)||r(a.staticClass)&&r(a.class)))){var o=zi(t),l=i._transitionClasses;s(l)&&(o=Bi(o,Hi(l))),o!==i._prevClass&&(i.setAttribute("class",o),i._prevClass=o)}}var vn,gn={create:mn,update:mn};function _n(e,t,i){var n=vn;return function r(){var s=t.apply(null,arguments);null!==s&&xn(e,r,i,n)}}var bn=Ye&&!(J&&Number(J[1])<=53);function yn(e,t,i,n){if(bn){var r=oi,s=t;t=s._wrapper=function(e){if(e.target===e.currentTarget||e.timeStamp>=r||e.timeStamp<=0||e.target.ownerDocument!==document)return s.apply(this,arguments)}}vn.addEventListener(e,t,te?{capture:i,passive:n}:i)}function xn(e,t,i,n){(n||vn).removeEventListener(e,t._wrapper||t,i)}function kn(e,t){if(!r(e.data.on)||!r(t.data.on)){var i=t.data.on||{},n=e.data.on||{};vn=t.elm,function(e){if(s(e.__r)){var t=K?"change":"input";e[t]=[].concat(e.__r,e[t]||[]),delete e.__r}s(e.__c)&&(e.change=[].concat(e.__c,e.change||[]),delete e.__c)}(i),ot(i,n,yn,xn,_n,t.context),vn=void 0}}var wn,Cn={create:kn,update:kn};function Sn(e,t){if(!r(e.data.domProps)||!r(t.data.domProps)){var i,n,a=t.elm,o=e.data.domProps||{},l=t.data.domProps||{};for(i in s(l.__ob__)&&(l=t.data.domProps=T({},l)),o)i in l||(a[i]="");for(i in l){if(n=l[i],"textContent"===i||"innerHTML"===i){if(t.children&&(t.children.length=0),n===o[i])continue;1===a.childNodes.length&&a.removeChild(a.childNodes[0])}if("value"===i&&"PROGRESS"!==a.tagName){a._value=n;var u=r(n)?"":String(n);On(a,u)&&(a.value=u)}else if("innerHTML"===i&&Ui(a.tagName)&&r(a.innerHTML)){(wn=wn||document.createElement("div")).innerHTML=""+n+"";for(var c=wn.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;c.firstChild;)a.appendChild(c.firstChild)}else if(n!==o[i])try{a[i]=n}catch(e){}}}}function On(e,t){return!e.composing&&("OPTION"===e.tagName||function(e,t){var i=!0;try{i=document.activeElement!==e}catch(e){}return i&&e.value!==t}(e,t)||function(e,t){var i=e.value,n=e._vModifiers;if(s(n)){if(n.number)return m(i)!==m(t);if(n.trim)return i.trim()!==t.trim()}return i!==t}(e,t))}var Dn={create:Sn,update:Sn},En=x((function(e){var t={},i=/:(.+)/;return e.split(/;(?![^(]*\))/g).forEach((function(e){if(e){var n=e.split(i);n.length>1&&(t[n[0].trim()]=n[1].trim())}})),t}));function Tn(e){var t=$n(e.style);return e.staticStyle?T(e.staticStyle,t):t}function $n(e){return Array.isArray(e)?$(e):"string"==typeof e?En(e):e}var Pn,jn=/^--/,Mn=/\s*!important$/,In=function(e,t,i){if(jn.test(t))e.style.setProperty(t,i);else if(Mn.test(i))e.style.setProperty(O(t),i.replace(Mn,""),"important");else{var n=Nn(t);if(Array.isArray(i))for(var r=0,s=i.length;r-1?t.split(Vn).forEach((function(t){return e.classList.add(t)})):e.classList.add(t);else{var i=" "+(e.getAttribute("class")||"")+" ";i.indexOf(" "+t+" ")<0&&e.setAttribute("class",(i+t).trim())}}function Rn(e,t){if(t&&(t=t.trim()))if(e.classList)t.indexOf(" ")>-1?t.split(Vn).forEach((function(t){return e.classList.remove(t)})):e.classList.remove(t),e.classList.length||e.removeAttribute("class");else{for(var i=" "+(e.getAttribute("class")||"")+" ",n=" "+t+" ";i.indexOf(n)>=0;)i=i.replace(n," ");(i=i.trim())?e.setAttribute("class",i):e.removeAttribute("class")}}function Bn(e){if(e){if("object"==typeof e){var t={};return!1!==e.css&&T(t,Hn(e.name||"v")),T(t,e),t}return"string"==typeof e?Hn(e):void 0}}var Hn=x((function(e){return{enterClass:e+"-enter",enterToClass:e+"-enter-to",enterActiveClass:e+"-enter-active",leaveClass:e+"-leave",leaveToClass:e+"-leave-to",leaveActiveClass:e+"-leave-active"}})),Wn=q&&!X,qn="transition",Un="transitionend",Gn="animation",Yn="animationend";Wn&&(void 0===window.ontransitionend&&void 0!==window.onwebkittransitionend&&(qn="WebkitTransition",Un="webkitTransitionEnd"),void 0===window.onanimationend&&void 0!==window.onwebkitanimationend&&(Gn="WebkitAnimation",Yn="webkitAnimationEnd"));var Kn=q?window.requestAnimationFrame?window.requestAnimationFrame.bind(window):setTimeout:function(e){return e()};function Xn(e){Kn((function(){Kn(e)}))}function Zn(e,t){var i=e._transitionClasses||(e._transitionClasses=[]);i.indexOf(t)<0&&(i.push(t),zn(e,t))}function Qn(e,t){e._transitionClasses&&_(e._transitionClasses,t),Rn(e,t)}function Jn(e,t,i){var n=tr(e,t),r=n.type,s=n.timeout,a=n.propCount;if(!r)return i();var o="transition"===r?Un:Yn,l=0,u=function(){e.removeEventListener(o,c),i()},c=function(t){t.target===e&&++l>=a&&u()};setTimeout((function(){l0&&(i="transition",c=a,d=s.length):"animation"===t?u>0&&(i="animation",c=u,d=l.length):d=(i=(c=Math.max(a,u))>0?a>u?"transition":"animation":null)?"transition"===i?s.length:l.length:0,{type:i,timeout:c,propCount:d,hasTransform:"transition"===i&&er.test(n[qn+"Property"])}}function ir(e,t){for(;e.length1}function lr(e,t){!0!==t.data.show&&rr(t)}var ur=function(e){var t,i,n={},l=e.modules,u=e.nodeOps;for(t=0;tf?b(e,r(i[g+1])?null:i[g+1].elm,i,p,g,n):p>g&&x(t,h,f)}(h,v,g,i,c):s(g)?(s(e.text)&&u.setTextContent(h,""),b(h,null,g,0,g.length-1,i)):s(v)?x(v,0,v.length-1):s(e.text)&&u.setTextContent(h,""):e.text!==t.text&&u.setTextContent(h,t.text),s(f)&&s(p=f.hook)&&s(p=p.postpatch)&&p(e,t)}}}function S(e,t,i){if(a(i)&&s(e.parent))e.parent.data.pendingInsert=t;else for(var n=0;n-1,a.selected!==s&&(a.selected=s);else if(I(fr(a),n))return void(e.selectedIndex!==o&&(e.selectedIndex=o));r||(e.selectedIndex=-1)}}function pr(e,t){return t.every((function(t){return!I(t,e)}))}function fr(e){return"_value"in e?e._value:e.value}function mr(e){e.target.composing=!0}function vr(e){e.target.composing&&(e.target.composing=!1,gr(e.target,"input"))}function gr(e,t){var i=document.createEvent("HTMLEvents");i.initEvent(t,!0,!0),e.dispatchEvent(i)}function _r(e){return!e.componentInstance||e.data&&e.data.transition?e:_r(e.componentInstance._vnode)}var br={model:cr,show:{bind:function(e,t,i){var n=t.value,r=(i=_r(i)).data&&i.data.transition,s=e.__vOriginalDisplay="none"===e.style.display?"":e.style.display;n&&r?(i.data.show=!0,rr(i,(function(){e.style.display=s}))):e.style.display=n?s:"none"},update:function(e,t,i){var n=t.value;!n!=!t.oldValue&&((i=_r(i)).data&&i.data.transition?(i.data.show=!0,n?rr(i,(function(){e.style.display=e.__vOriginalDisplay})):sr(i,(function(){e.style.display="none"}))):e.style.display=n?e.__vOriginalDisplay:"none")},unbind:function(e,t,i,n,r){r||(e.style.display=e.__vOriginalDisplay)}}},yr={name:String,appear:Boolean,css:Boolean,mode:String,type:String,enterClass:String,leaveClass:String,enterToClass:String,leaveToClass:String,enterActiveClass:String,leaveActiveClass:String,appearClass:String,appearActiveClass:String,appearToClass:String,duration:[Number,String,Object]};function xr(e){var t=e&&e.componentOptions;return t&&t.Ctor.options.abstract?xr(qt(t.children)):e}function kr(e){var t={},i=e.$options;for(var n in i.propsData)t[n]=e[n];var r=i._parentListeners;for(var s in r)t[w(s)]=r[s];return t}function wr(e,t){if(/\d-keep-alive$/.test(t.tag))return e("keep-alive",{props:t.componentOptions.propsData})}var Cr=function(e){return e.tag||mt(e)},Sr=function(e){return"show"===e.name},Or={name:"transition",props:yr,abstract:!0,render:function(e){var t=this,i=this.$slots.default;if(i&&(i=i.filter(Cr)).length){0;var n=this.mode;0;var r=i[0];if(function(e){for(;e=e.parent;)if(e.data.transition)return!0}(this.$vnode))return r;var s=xr(r);if(!s)return r;if(this._leaving)return wr(e,r);var a="__transition-"+this._uid+"-";s.key=null==s.key?s.isComment?a+"comment":a+s.tag:o(s.key)?0===String(s.key).indexOf(a)?s.key:a+s.key:s.key;var l=(s.data||(s.data={})).transition=kr(this),u=this._vnode,c=xr(u);if(s.data.directives&&s.data.directives.some(Sr)&&(s.data.show=!0),c&&c.data&&!function(e,t){return t.key===e.key&&t.tag===e.tag}(s,c)&&!mt(c)&&(!c.componentInstance||!c.componentInstance._vnode.isComment)){var d=c.data.transition=T({},l);if("out-in"===n)return this._leaving=!0,lt(d,"afterLeave",(function(){t._leaving=!1,t.$forceUpdate()})),wr(e,r);if("in-out"===n){if(mt(s))return u;var h,p=function(){h()};lt(l,"afterEnter",p),lt(l,"enterCancelled",p),lt(d,"delayLeave",(function(e){h=e}))}}return r}}},Dr=T({tag:String,moveClass:String},yr);function Er(e){e.elm._moveCb&&e.elm._moveCb(),e.elm._enterCb&&e.elm._enterCb()}function Tr(e){e.data.newPos=e.elm.getBoundingClientRect()}function $r(e){var t=e.data.pos,i=e.data.newPos,n=t.left-i.left,r=t.top-i.top;if(n||r){e.data.moved=!0;var s=e.elm.style;s.transform=s.WebkitTransform="translate("+n+"px,"+r+"px)",s.transitionDuration="0s"}}delete Dr.mode;var Pr={Transition:Or,TransitionGroup:{props:Dr,beforeMount:function(){var e=this,t=this._update;this._update=function(i,n){var r=Zt(e);e.__patch__(e._vnode,e.kept,!1,!0),e._vnode=e.kept,r(),t.call(e,i,n)}},render:function(e){for(var t=this.tag||this.$vnode.data.tag||"span",i=Object.create(null),n=this.prevChildren=this.children,r=this.$slots.default||[],s=this.children=[],a=kr(this),o=0;o-1?Yi[e]=t.constructor===window.HTMLUnknownElement||t.constructor===window.HTMLElement:Yi[e]=/HTMLUnknownElement/.test(t.toString())},T(wi.options.directives,br),T(wi.options.components,Pr),wi.prototype.__patch__=q?ur:P,wi.prototype.$mount=function(e,t){return function(e,t,i){var n;return e.$el=t,e.$options.render||(e.$options.render=ve),ei(e,"beforeMount"),n=function(){e._update(e._render(),i)},new hi(e,n,P,{before:function(){e._isMounted&&!e._isDestroyed&&ei(e,"beforeUpdate")}},!0),i=!1,null==e.$vnode&&(e._isMounted=!0,ei(e,"mounted")),e}(this,e=e&&q?function(e){if("string"==typeof e){var t=document.querySelector(e);return t||document.createElement("div")}return e}(e):void 0,t)},q&&setTimeout((function(){V.devtools&&re&&re.emit("init",wi)}),0),t.default=wi},function(e,t,i){var n=i(3),r=i(26).f,s=i(32),a=i(13),o=i(102),l=i(148),u=i(100);e.exports=function(e,t){var i,c,d,h,p,f=e.target,m=e.global,v=e.stat;if(i=m?n:v?n[f]||o(f,{}):(n[f]||{}).prototype)for(c in t){if(h=t[c],d=e.noTargetGet?(p=r(i,c))&&p.value:i[c],!u(m?c:f+(v?".":"#")+c,e.forced)&&void 0!==d){if(typeof h==typeof d)continue;l(h,d)}(e.sham||d&&d.sham)&&s(h,"sham",!0),a(i,c,h,e)}}},function(e,t){e.exports=function(e){try{return!!e()}catch(e){return!0}}},function(e,t){var i=function(e){return e&&e.Math==Math&&e};e.exports=i("object"==typeof globalThis&&globalThis)||i("object"==typeof window&&window)||i("object"==typeof self&&self)||i("object"==typeof global&&global)||function(){return this}()||Function("return this")()},function(e,t,i){var n=i(3),r=i(64),s=i(10),a=i(65),o=i(103),l=i(139),u=r("wks"),c=n.Symbol,d=l?c:c&&c.withoutSetter||a;e.exports=function(e){return s(u,e)&&(o||"string"==typeof u[e])||(o&&s(c,e)?u[e]=c[e]:u[e]=d("Symbol."+e)),u[e]}},function(e,t){e.exports=function(e){return"function"==typeof e}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=Object.assign||function(e){for(var t=1;t=a)return e;switch(e){case"%s":return String(t[n++]);case"%d":return Number(t[n++]);case"%j":try{return JSON.stringify(t[n++])}catch(e){return"[Circular]"}break;default:return e}})),l=t[n];n=i.length?{value:void 0,done:!0}:(e=n(i,r),t.index+=e.length,{value:e,done:!1})}))},function(e,t,i){"use strict";t.__esModule=!0,t.isEmpty=t.isEqual=t.arrayEquals=t.looseEqual=t.capitalize=t.kebabCase=t.autoprefixer=t.isFirefox=t.isEdge=t.isIE=t.coerceTruthyValueToArray=t.arrayFind=t.arrayFindIndex=t.escapeRegexpString=t.valueEquals=t.generateId=t.getValueByPath=void 0;var n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};t.noop=function(){},t.hasOwn=function(e,t){return l.call(e,t)},t.toObject=function(e){for(var t={},i=0;i0&&void 0!==arguments[0]?arguments[0]:"";return String(e).replace(/[|\\{}()[\]^$+*?.]/g,"\\$&")};var c=t.arrayFindIndex=function(e,t){for(var i=0;i!==e.length;++i)if(t(e[i]))return i;return-1},d=(t.arrayFind=function(e,t){var i=c(e,t);return-1!==i?e[i]:void 0},t.coerceTruthyValueToArray=function(e){return Array.isArray(e)?e:e?[e]:[]},t.isIE=function(){return!a.default.prototype.$isServer&&!isNaN(Number(document.documentMode))},t.isEdge=function(){return!a.default.prototype.$isServer&&navigator.userAgent.indexOf("Edge")>-1},t.isFirefox=function(){return!a.default.prototype.$isServer&&!!window.navigator.userAgent.match(/firefox/i)},t.autoprefixer=function(e){if("object"!==(void 0===e?"undefined":n(e)))return e;var t=["ms-","webkit-"];return["transform","transition","animation"].forEach((function(i){var n=e[i];i&&n&&t.forEach((function(t){e[t+i]=n}))})),e},t.kebabCase=function(e){var t=/([^-])([A-Z])/g;return e.replace(t,"$1-$2").replace(t,"$1-$2").toLowerCase()},t.capitalize=function(e){return(0,o.isString)(e)?e.charAt(0).toUpperCase()+e.slice(1):e},t.looseEqual=function(e,t){var i=(0,o.isObject)(e),n=(0,o.isObject)(t);return i&&n?JSON.stringify(e)===JSON.stringify(t):!i&&!n&&String(e)===String(t)}),h=t.arrayEquals=function(e,t){if(t=t||[],(e=e||[]).length!==t.length)return!1;for(var i=0;i0?r(n(e),9007199254740991):0}},function(e,t){var i=Array.isArray;e.exports=i},function(e,t,i){var n=i(3),r=i(163),s=i(164),a=i(138),o=i(32),l=i(4),u=l("iterator"),c=l("toStringTag"),d=a.values,h=function(e,t){if(e){if(e[u]!==d)try{o(e,u,d)}catch(t){e[u]=d}if(e[c]||o(e,c,t),r[t])for(var i in a)if(e[i]!==a[i])try{o(e,i,a[i])}catch(t){e[i]=a[i]}}};for(var p in r)h(n[p]&&n[p].prototype,p);h(s,"DOMTokenList")},function(e,t,i){var n=i(176),r="object"==typeof self&&self&&self.Object===Object&&self,s=n||r||Function("return this")();e.exports=s},function(e,t,i){"use strict";t.__esModule=!0,t.isInContainer=t.getScrollContainer=t.isScroll=t.getStyle=t.once=t.off=t.on=void 0;var n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};t.hasClass=p,t.addClass=function(e,t){if(!e)return;for(var i=e.className,n=(t||"").split(" "),r=0,s=n.length;r-1}var f=t.getStyle=u<9?function(e,t){if(!a){if(!e||!t)return null;"float"===(t=c(t))&&(t="styleFloat");try{switch(t){case"opacity":try{return e.filters.item("alpha").opacity/100}catch(e){return 1}default:return e.style[t]||e.currentStyle?e.currentStyle[t]:null}}catch(i){return e.style[t]}}}:function(e,t){if(!a){if(!e||!t)return null;"float"===(t=c(t))&&(t="cssFloat");try{var i=document.defaultView.getComputedStyle(e,"");return e.style[t]||i?i[t]:null}catch(i){return e.style[t]}}};var m=t.isScroll=function(e,t){if(!a)return f(e,null!=t?t?"overflow-y":"overflow-x":"overflow").match(/(scroll|auto|overlay)/)};t.getScrollContainer=function(e,t){if(!a){for(var i=e;i;){if([window,document,document.documentElement].includes(i))return window;if(m(i,t))return i;i=i.parentNode}return i}},t.isInContainer=function(e,t){if(a||!e||!t)return!1;var i=e.getBoundingClientRect(),n=void 0;return n=[window,document,document.documentElement,null,void 0].includes(t)?{top:0,right:window.innerWidth,bottom:window.innerHeight,left:0}:t.getBoundingClientRect(),i.topn.top&&i.right>n.left&&i.left"+e+"<\/script>"},f=function(e){e.write(p("")),e.close();var t=e.parentWindow.Object;return e=null,t},m=function(){try{n=new ActiveXObject("htmlfile")}catch(e){}var e,t;m="undefined"!=typeof document?document.domain&&n?f(n):((t=u("iframe")).style.display="none",l.appendChild(t),t.src=String("javascript:"),(e=t.contentWindow.document).open(),e.write(p("document.F=Object")),e.close(),e.F):f(n);for(var i=a.length;i--;)delete m.prototype[a[i]];return m()};o[d]=!0,e.exports=Object.create||function(e,t){var i;return null!==e?(h.prototype=r(e),i=new h,h.prototype=null,i[d]=e):i=m(),void 0===t?i:s(i,t)}},function(e,t){e.exports=function(e){if(null==e)throw TypeError("Can't call method on "+e);return e}},function(e,t,i){"use strict";var n=i(1),r=i(33).filter;n({target:"Array",proto:!0,forced:!i(81)("filter")},{filter:function(e){return r(this,e,arguments.length>1?arguments[1]:void 0)}})},function(e,t){e.exports=!1},function(e,t,i){var n=i(5),r=i(143);e.exports=function(e){if(n(e))return e;throw TypeError(r(e)+" is not a function")}},function(e,t,i){var n=i(7),r=i(11),s=i(51);e.exports=n?function(e,t,i){return r.f(e,t,s(1,i))}:function(e,t,i){return e[t]=i,e}},function(e,t,i){var n=i(75),r=i(47),s=i(15),a=i(21),o=i(165),l=[].push,u=function(e){var t=1==e,i=2==e,u=3==e,c=4==e,d=6==e,h=7==e,p=5==e||d;return function(f,m,v,g){for(var _,b,y=s(f),x=r(y),k=n(m,v,3),w=a(x.length),C=0,S=g||o,O=t?S(f,w):i||h?S(f,0):void 0;w>C;C++)if((p||C in x)&&(b=k(_=x[C],C,y),e))if(t)O[C]=b;else if(b)switch(e){case 3:return!0;case 5:return _;case 6:return C;case 2:l.call(O,_)}else switch(e){case 4:return!1;case 7:l.call(O,_)}return d?-1:u||c?c:O}};e.exports={forEach:u(0),map:u(1),filter:u(2),some:u(3),every:u(4),find:u(5),findIndex:u(6),filterReject:u(7)}},function(e,t){var i={}.toString;e.exports=function(e){return i.call(e).slice(8,-1)}},function(e,t,i){var n=i(281),r=i(284);e.exports=function(e,t){var i=r(e,t);return n(i)?i:void 0}},function(e,t,i){"use strict";function n(e,t,i){this.$children.forEach((function(r){r.$options.componentName===e?r.$emit.apply(r,[t].concat(i)):n.apply(r,[e,t].concat([i]))}))}t.__esModule=!0,t.default={methods:{dispatch:function(e,t,i){for(var n=this.$parent||this.$root,r=n.$options.componentName;n&&(!r||r!==e);)(n=n.$parent)&&(r=n.$options.componentName);n&&n.$emit.apply(n,[t].concat(i))},broadcast:function(e,t,i){n.call(this,e,t,i)}}}},function(e,t,i){"use strict";i.d(t,"a",(function(){return s}));i(133);var n=i(54);i(42),i(52),i(14),i(82),i(18),i(23),i(173);var r=i(92);function s(e){return function(e){if(Array.isArray(e))return Object(n.a)(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||Object(r.a)(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}},function(e,t,i){"use strict";function n(e,t,i,n,r,s,a,o){var l,u="function"==typeof e?e.options:e;if(t&&(u.render=t,u.staticRenderFns=i,u._compiled=!0),n&&(u.functional=!0),s&&(u._scopeId="data-v-"+s),a?(l=function(e){(e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),r&&r.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(a)},u._ssrRegister=l):r&&(l=o?function(){r.call(this,(u.functional?this.parent:this).$root.$options.shadowRoot)}:r),l)if(u.functional){u._injectStyles=l;var c=u.render;u.render=function(e,t){return l.call(t),c(e,t)}}else{var d=u.beforeCreate;u.beforeCreate=d?[].concat(d,l):[l]}return{exports:e,options:u}}i.d(t,"a",(function(){return n}))},function(e,t,i){var n,r,s,a=i(237),o=i(3),l=i(8),u=i(32),c=i(10),d=i(101),h=i(70),p=i(49),f=o.WeakMap;if(a||d.state){var m=d.state||(d.state=new f),v=m.get,g=m.has,_=m.set;n=function(e,t){if(g.call(m,e))throw new TypeError("Object already initialized");return t.facade=e,_.call(m,e,t),t},r=function(e){return v.call(m,e)||{}},s=function(e){return g.call(m,e)}}else{var b=h("state");p[b]=!0,n=function(e,t){if(c(e,b))throw new TypeError("Object already initialized");return t.facade=e,u(e,b,t),t},r=function(e){return c(e,b)?e[b]:{}},s=function(e){return c(e,b)}}e.exports={set:n,get:r,has:s,enforce:function(e){return s(e)?r(e):n(e,{})},getterFor:function(e){return function(t){var i;if(!l(t)||(i=r(t)).type!==e)throw TypeError("Incompatible receiver, "+e+" required");return i}}}},function(e,t,i){"use strict";var n=i(2);e.exports=function(e,t){var i=[][e];return!!i&&n((function(){i.call(null,t||function(){throw 1},1)}))}},function(e,t){e.exports=function(e){return null!=e&&"object"==typeof e}},function(e,t,i){"use strict";var n=i(1),r=i(3),s=i(17),a=i(30),o=i(7),l=i(103),u=i(2),c=i(10),d=i(43),h=i(5),p=i(8),f=i(68),m=i(9),v=i(15),g=i(16),_=i(67),b=i(20),y=i(51),x=i(27),k=i(48),w=i(45),C=i(170),S=i(106),O=i(26),D=i(11),E=i(72),T=i(13),$=i(64),P=i(70),j=i(49),M=i(65),I=i(4),A=i(171),N=i(172),L=i(73),F=i(39),V=i(33).forEach,z=P("hidden"),R=I("toPrimitive"),B=F.set,H=F.getterFor("Symbol"),W=Object.prototype,q=r.Symbol,U=s("JSON","stringify"),G=O.f,Y=D.f,K=C.f,X=E.f,Z=$("symbols"),Q=$("op-symbols"),J=$("string-to-symbol-registry"),ee=$("symbol-to-string-registry"),te=$("wks"),ie=r.QObject,ne=!ie||!ie.prototype||!ie.prototype.findChild,re=o&&u((function(){return 7!=x(Y({},"a",{get:function(){return Y(this,"a",{value:7}).a}})).a}))?function(e,t,i){var n=G(W,t);n&&delete W[t],Y(e,t,i),n&&e!==W&&Y(W,t,n)}:Y,se=function(e,t){var i=Z[e]=x(q.prototype);return B(i,{type:"Symbol",tag:e,description:t}),o||(i.description=t),i},ae=function(e,t,i){e===W&&ae(Q,t,i),m(e);var n=_(t);return m(i),c(Z,n)?(i.enumerable?(c(e,z)&&e[z][n]&&(e[z][n]=!1),i=x(i,{enumerable:y(0,!1)})):(c(e,z)||Y(e,z,y(1,{})),e[z][n]=!0),re(e,n,i)):Y(e,n,i)},oe=function(e,t){m(e);var i=g(t),n=k(i).concat(de(i));return V(n,(function(t){o&&!le.call(i,t)||ae(e,t,i[t])})),e},le=function(e){var t=_(e),i=X.call(this,t);return!(this===W&&c(Z,t)&&!c(Q,t))&&(!(i||!c(this,t)||!c(Z,t)||c(this,z)&&this[z][t])||i)},ue=function(e,t){var i=g(e),n=_(t);if(i!==W||!c(Z,n)||c(Q,n)){var r=G(i,n);return!r||!c(Z,n)||c(i,z)&&i[z][n]||(r.enumerable=!0),r}},ce=function(e){var t=K(g(e)),i=[];return V(t,(function(e){c(Z,e)||c(j,e)||i.push(e)})),i},de=function(e){var t=e===W,i=K(t?Q:g(e)),n=[];return V(i,(function(e){!c(Z,e)||t&&!c(W,e)||n.push(Z[e])})),n};(l||(T((q=function(){if(this instanceof q)throw TypeError("Symbol is not a constructor");var e=arguments.length&&void 0!==arguments[0]?b(arguments[0]):void 0,t=M(e),i=function(e){this===W&&i.call(Q,e),c(this,z)&&c(this[z],t)&&(this[z][t]=!1),re(this,t,y(1,e))};return o&&ne&&re(W,t,{configurable:!0,set:i}),se(t,e)}).prototype,"toString",(function(){return H(this).tag})),T(q,"withoutSetter",(function(e){return se(M(e),e)})),E.f=le,D.f=ae,O.f=ue,w.f=C.f=ce,S.f=de,A.f=function(e){return se(I(e),e)},o&&(Y(q.prototype,"description",{configurable:!0,get:function(){return H(this).description}}),a||T(W,"propertyIsEnumerable",le,{unsafe:!0}))),n({global:!0,wrap:!0,forced:!l,sham:!l},{Symbol:q}),V(k(te),(function(e){N(e)})),n({target:"Symbol",stat:!0,forced:!l},{for:function(e){var t=b(e);if(c(J,t))return J[t];var i=q(t);return J[t]=i,ee[i]=t,i},keyFor:function(e){if(!f(e))throw TypeError(e+" is not a symbol");if(c(ee,e))return ee[e]},useSetter:function(){ne=!0},useSimple:function(){ne=!1}}),n({target:"Object",stat:!0,forced:!l,sham:!o},{create:function(e,t){return void 0===t?x(e):oe(x(e),t)},defineProperty:ae,defineProperties:oe,getOwnPropertyDescriptor:ue}),n({target:"Object",stat:!0,forced:!l},{getOwnPropertyNames:ce,getOwnPropertySymbols:de}),n({target:"Object",stat:!0,forced:u((function(){S.f(1)}))},{getOwnPropertySymbols:function(e){return S.f(v(e))}}),U)&&n({target:"JSON",stat:!0,forced:!l||u((function(){var e=q();return"[null]"!=U([e])||"{}"!=U({a:e})||"{}"!=U(Object(e))}))},{stringify:function(e,t,i){for(var n,r=[e],s=1;arguments.length>s;)r.push(arguments[s++]);if(n=t,(p(t)||void 0!==e)&&!f(e))return d(t)||(t=function(e,t){if(h(n)&&(t=n.call(this,e,t)),!f(t))return t}),r[1]=t,U.apply(null,r)}});if(!q.prototype[R]){var he=q.prototype.valueOf;T(q.prototype,R,(function(){return he.apply(this,arguments)}))}L(q,"Symbol"),j[z]=!0},function(e,t,i){var n=i(34);e.exports=Array.isArray||function(e){return"Array"==n(e)}},function(e,t,i){var n,r,s=i(3),a=i(60),o=s.process,l=s.Deno,u=o&&o.versions||l&&l.version,c=u&&u.v8;c?r=(n=c.split("."))[0]<4?1:n[0]+n[1]:a&&(!(n=a.match(/Edge\/(\d+)/))||n[1]>=74)&&(n=a.match(/Chrome\/(\d+)/))&&(r=n[1]),e.exports=r&&+r},function(e,t,i){var n=i(144),r=i(105).concat("length","prototype");t.f=Object.getOwnPropertyNames||function(e){return n(e,r)}},function(e,t,i){var n=i(53),r=i(266),s=i(267),a=n?n.toStringTag:void 0;e.exports=function(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":a&&a in Object(e)?r(e):s(e)}},function(e,t,i){var n=i(2),r=i(34),s="".split;e.exports=n((function(){return!Object("z").propertyIsEnumerable(0)}))?function(e){return"String"==r(e)?s.call(e,""):Object(e)}:Object},function(e,t,i){var n=i(144),r=i(105);e.exports=Object.keys||function(e){return n(e,r)}},function(e,t){e.exports={}},function(e,t){e.exports={}},function(e,t){e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},function(e,t,i){"use strict";var n=i(1),r=i(7),s=i(3),a=i(10),o=i(5),l=i(8),u=i(11).f,c=i(148),d=s.Symbol;if(r&&o(d)&&(!("description"in d.prototype)||void 0!==d().description)){var h={},p=function(){var e=arguments.length<1||void 0===arguments[0]?void 0:String(arguments[0]),t=this instanceof p?new d(e):void 0===e?d():d(e);return""===e&&(h[t]=!0),t};c(p,d);var f=p.prototype=d.prototype;f.constructor=p;var m=f.toString,v="Symbol(test)"==String(d("test")),g=/^Symbol\((.*)\)[^)]+$/;u(f,"description",{configurable:!0,get:function(){var e=l(this)?this.valueOf():this,t=m.call(e);if(a(h,e))return"";var i=v?t.slice(7,-1):t.replace(g,"$1");return""===i?void 0:i}}),n({global:!0,forced:!0},{Symbol:p})}},function(e,t,i){var n=i(24).Symbol;e.exports=n},function(e,t,i){"use strict";function n(e,t){(null==t||t>e.length)&&(t=e.length);for(var i=0,n=new Array(t);i1?arguments[1]:void 0)}})},function(e,t,i){var n=i(31);e.exports=function(e,t){var i=e[t];return null==i?void 0:n(i)}},function(e,t,i){"use strict";var n=i(1),r=i(168);n({target:"Array",proto:!0,forced:[].forEach!=r},{forEach:r})},function(e,t,i){var n=i(17);e.exports=n("navigator","userAgent")||""},function(e,t,i){"use strict";var n=i(1),r=i(43),s=i(77),a=i(8),o=i(145),l=i(21),u=i(16),c=i(80),d=i(4),h=i(81)("slice"),p=d("species"),f=[].slice,m=Math.max;n({target:"Array",proto:!0,forced:!h},{slice:function(e,t){var i,n,d,h=u(this),v=l(h.length),g=o(e,v),_=o(void 0===t?v:t,v);if(r(h)&&(i=h.constructor,(s(i)&&(i===Array||r(i.prototype))||a(i)&&null===(i=i[p]))&&(i=void 0),i===Array||void 0===i))return f.call(h,g,_);for(n=new(void 0===i?Array:i)(m(_-g,0)),d=0;g<_;g++,d++)g in h&&c(n,d,h[g]);return n.length=d,n}})},function(e,t,i){var n=i(7),r=i(10),s=Function.prototype,a=n&&Object.getOwnPropertyDescriptor,o=r(s,"name"),l=o&&"something"===function(){}.name,u=o&&(!n||n&&a(s,"name").configurable);e.exports={EXISTS:o,PROPER:l,CONFIGURABLE:u}},function(e,t,i){var n=i(7),r=i(62).EXISTS,s=i(11).f,a=Function.prototype,o=a.toString,l=/^\s*function ([^ (]*)/;n&&!r&&s(a,"name",{configurable:!0,get:function(){try{return o.call(this).match(l)[1]}catch(e){return""}}})},function(e,t,i){var n=i(30),r=i(101);(e.exports=function(e,t){return r[e]||(r[e]=void 0!==t?t:{})})("versions",[]).push({version:"3.18.1",mode:n?"pure":"global",copyright:"© 2021 Denis Pushkarev (zloirock.ru)"})},function(e,t){var i=0,n=Math.random();e.exports=function(e){return"Symbol("+String(void 0===e?"":e)+")_"+(++i+n).toString(36)}},function(e,t,i){var n=i(3),r=i(8),s=n.document,a=r(s)&&r(s.createElement);e.exports=function(e){return a?s.createElement(e):{}}},function(e,t,i){var n=i(142),r=i(68);e.exports=function(e){var t=n(e,"string");return r(t)?t:String(t)}},function(e,t,i){var n=i(5),r=i(17),s=i(139);e.exports=s?function(e){return"symbol"==typeof e}:function(e){var t=r("Symbol");return n(t)&&Object(e)instanceof t}},function(e,t){var i=Math.ceil,n=Math.floor;e.exports=function(e){return isNaN(e=+e)?0:(e>0?n:i)(e)}},function(e,t,i){var n=i(64),r=i(65),s=n("keys");e.exports=function(e){return s[e]||(s[e]=r(e))}},function(e,t,i){var n=i(5),r=i(101),s=Function.toString;n(r.inspectSource)||(r.inspectSource=function(e){return s.call(e)}),e.exports=r.inspectSource},function(e,t,i){"use strict";var n={}.propertyIsEnumerable,r=Object.getOwnPropertyDescriptor,s=r&&!n.call({1:2},1);t.f=s?function(e){var t=r(this,e);return!!t&&t.enumerable}:n},function(e,t,i){var n=i(11).f,r=i(10),s=i(4)("toStringTag");e.exports=function(e,t,i){e&&!r(e=i?e:e.prototype,s)&&n(e,s,{configurable:!0,value:t})}},function(e,t,i){var n=i(9),r=i(239);e.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var e,t=!1,i={};try{(e=Object.getOwnPropertyDescriptor(Object.prototype,"__proto__").set).call(i,[]),t=i instanceof Array}catch(e){}return function(i,s){return n(i),r(s),t?e.call(i,s):i.__proto__=s,i}}():void 0)},function(e,t,i){var n=i(31);e.exports=function(e,t,i){if(n(e),void 0===t)return e;switch(i){case 0:return function(){return e.call(t)};case 1:return function(i){return e.call(t,i)};case 2:return function(i,n){return e.call(t,i,n)};case 3:return function(i,n,r){return e.call(t,i,n,r)}}return function(){return e.apply(t,arguments)}}},function(e,t,i){var n=i(109),r=i(5),s=i(34),a=i(4)("toStringTag"),o="Arguments"==s(function(){return arguments}());e.exports=n?s:function(e){var t,i,n;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(i=function(e,t){try{return e[t]}catch(e){}}(t=Object(e),a))?i:o?s(t):"Object"==(n=s(t))&&r(t.callee)?"Arguments":n}},function(e,t,i){var n=i(2),r=i(5),s=i(76),a=i(17),o=i(71),l=[],u=a("Reflect","construct"),c=/^\s*(?:class|function)\b/,d=c.exec,h=!c.exec((function(){})),p=function(e){if(!r(e))return!1;try{return u(Object,l,e),!0}catch(e){return!1}};e.exports=!u||n((function(){var e;return p(p.call)||!p(Object)||!p((function(){e=!0}))||e}))?function(e){if(!r(e))return!1;switch(s(e)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}return h||!!d.call(c,o(e))}:p},function(e,t,i){var n=i(34),r=i(3);e.exports="process"==n(r.process)},function(e,t,i){"use strict";i.d(t,"a",(function(){return r}));i(14);function n(e,t,i,n,r,s,a){try{var o=e[s](a),l=o.value}catch(e){return void i(e)}o.done?t(l):Promise.resolve(l).then(n,r)}function r(e){return function(){var t=this,i=arguments;return new Promise((function(r,s){var a=e.apply(t,i);function o(e){n(a,r,s,o,l,"next",e)}function l(e){n(a,r,s,o,l,"throw",e)}o(void 0)}))}}},function(e,t,i){"use strict";var n=i(67),r=i(11),s=i(51);e.exports=function(e,t,i){var a=n(t);a in e?r.f(e,a,s(0,i)):e[a]=i}},function(e,t,i){var n=i(2),r=i(4),s=i(44),a=r("species");e.exports=function(e){return s>=51||!n((function(){var t=[];return(t.constructor={})[a]=function(){return{foo:1}},1!==t[e](Boolean).foo}))}},function(e,t,i){i(172)("iterator")},function(e,t,i){var n=i(271),r=i(272),s=i(273),a=i(274),o=i(275);function l(e){var t=-1,i=null==e?0:e.length;for(this.clear();++t-1?"center "+t:t+" center"}},appendArrow:function(e){var t=void 0;if(!this.appended){for(var i in this.appended=!0,e.attributes)if(/^_v-/.test(e.attributes[i].name)){t=e.attributes[i].name;break}var n=document.createElement("div");t&&n.setAttribute(t,""),n.setAttribute("x-arrow",""),n.className="popper__arrow",e.appendChild(n)}}},beforeDestroy:function(){this.doDestroy(!0),this.popperElm&&this.popperElm.parentNode===document.body&&(this.popperElm.removeEventListener("click",l),document.body.removeChild(this.popperElm))},deactivated:function(){this.$options.beforeDestroy[0].call(this)}}},function(e,t,i){"use strict";t.__esModule=!0,t.default=function(e){for(var t=1,i=arguments.length;t=t||i<0||v&&e-u>=s}function x(){var e=p();if(y(e))return k(e);o=setTimeout(x,function(e){var i=t-(e-l);return v?h(i,s-(e-u)):i}(e))}function k(e){return o=void 0,g&&n?_(e):(n=r=void 0,a)}function w(){var e=p(),i=y(e);if(n=arguments,r=this,l=e,i){if(void 0===o)return b(l);if(v)return o=setTimeout(x,t),_(l)}return void 0===o&&(o=setTimeout(x,t)),a}return t=m(t)||0,f(i)&&(c=!!i.leading,s=(v="maxWait"in i)?d(m(i.maxWait)||0,t):s,g="trailing"in i?!!i.trailing:g),w.cancel=function(){void 0!==o&&clearTimeout(o),u=0,n=l=r=o=void 0},w.flush=function(){return void 0===o?a:k(p())},w}},function(e,t,i){var n,r; /* NProgress, (c) 2013, 2014 Rico Sta. Cruz - http://ricostacruz.com/nprogress - * @license MIT */void 0===(r="function"==typeof(n=function(){var e,t,i={version:"0.2.0"},n=i.settings={minimum:.08,easing:"ease",positionUsing:"",speed:200,trickle:!0,trickleRate:.02,trickleSpeed:800,showSpinner:!0,barSelector:'[role="bar"]',spinnerSelector:'[role="spinner"]',parent:"body",template:'
'};function r(e,t,i){return ei?i:e}function s(e){return 100*(-1+e)}i.configure=function(e){var t,i;for(t in e)void 0!==(i=e[t])&&e.hasOwnProperty(t)&&(n[t]=i);return this},i.status=null,i.set=function(e){var t=i.isStarted();e=r(e,n.minimum,1),i.status=1===e?null:e;var l=i.render(!t),u=l.querySelector(n.barSelector),c=n.speed,d=n.easing;return l.offsetWidth,a((function(t){""===n.positionUsing&&(n.positionUsing=i.getPositioningCSS()),o(u,function(e,t,i){var r;return(r="translate3d"===n.positionUsing?{transform:"translate3d("+s(e)+"%,0,0)"}:"translate"===n.positionUsing?{transform:"translate("+s(e)+"%,0)"}:{"margin-left":s(e)+"%"}).transition="all "+t+"ms "+i,r}(e,c,d)),1===e?(o(l,{transition:"none",opacity:1}),l.offsetWidth,setTimeout((function(){o(l,{transition:"all "+c+"ms linear",opacity:0}),setTimeout((function(){i.remove(),t()}),c)}),c)):setTimeout(t,c)})),this},i.isStarted=function(){return"number"==typeof i.status},i.start=function(){i.status||i.set(0);var e=function(){setTimeout((function(){i.status&&(i.trickle(),e())}),n.trickleSpeed)};return n.trickle&&e(),this},i.done=function(e){return e||i.status?i.inc(.3+.5*Math.random()).set(1):this},i.inc=function(e){var t=i.status;return t?("number"!=typeof e&&(e=(1-t)*r(Math.random()*t,.1,.95)),t=r(t+e,0,.994),i.set(t)):i.start()},i.trickle=function(){return i.inc(Math.random()*n.trickleRate)},e=0,t=0,i.promise=function(n){return n&&"resolved"!==n.state()?(0===t&&i.start(),e++,t++,n.always((function(){0==--t?(e=0,i.done()):i.set((e-t)/e)})),this):this},i.render=function(e){if(i.isRendered())return document.getElementById("nprogress");u(document.documentElement,"nprogress-busy");var t=document.createElement("div");t.id="nprogress",t.innerHTML=n.template;var r,a=t.querySelector(n.barSelector),l=e?"-100":s(i.status||0),c=document.querySelector(n.parent);return o(a,{transition:"all 0 linear",transform:"translate3d("+l+"%,0,0)"}),n.showSpinner||(r=t.querySelector(n.spinnerSelector))&&h(r),c!=document.body&&u(c,"nprogress-custom-parent"),c.appendChild(t),t},i.remove=function(){c(document.documentElement,"nprogress-busy"),c(document.querySelector(n.parent),"nprogress-custom-parent");var e=document.getElementById("nprogress");e&&h(e)},i.isRendered=function(){return!!document.getElementById("nprogress")},i.getPositioningCSS=function(){var e=document.body.style,t="WebkitTransform"in e?"Webkit":"MozTransform"in e?"Moz":"msTransform"in e?"ms":"OTransform"in e?"O":"";return t+"Perspective"in e?"translate3d":t+"Transform"in e?"translate":"margin"};var a=function(){var e=[];function t(){var i=e.shift();i&&i(t)}return function(i){e.push(i),1==e.length&&t()}}(),o=function(){var e=["Webkit","O","Moz","ms"],t={};function i(i){return i=i.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,(function(e,t){return t.toUpperCase()})),t[i]||(t[i]=function(t){var i=document.body.style;if(t in i)return t;for(var n,r=e.length,s=t.charAt(0).toUpperCase()+t.slice(1);r--;)if((n=e[r]+s)in i)return n;return t}(i))}function n(e,t,n){t=i(t),e.style[t]=n}return function(e,t){var i,r,s=arguments;if(2==s.length)for(i in t)void 0!==(r=t[i])&&t.hasOwnProperty(i)&&n(e,i,r);else n(e,s[1],s[2])}}();function l(e,t){return("string"==typeof e?e:d(e)).indexOf(" "+t+" ")>=0}function u(e,t){var i=d(e),n=i+t;l(i,t)||(e.className=n.substring(1))}function c(e,t){var i,n=d(e);l(e,t)&&(i=n.replace(" "+t+" "," "),e.className=i.substring(1,i.length-1))}function d(e){return(" "+(e.className||"")+" ").replace(/\s+/gi," ")}function h(e){e&&e.parentNode&&e.parentNode.removeChild(e)}return i})?n.call(t,i,t,e):n)||(e.exports=r)},function(e,t,i){"use strict";var n=i(218),r=i(2),s=i(9),a=i(5),o=i(69),l=i(21),u=i(20),c=i(28),d=i(219),h=i(58),p=i(262),f=i(220),m=i(4)("replace"),v=Math.max,g=Math.min,_="$0"==="a".replace(/./,"$0"),b=!!/./[m]&&""===/./[m]("a","$0");n("replace",(function(e,t,i){var n=b?"$":"$0";return[function(e,i){var n=c(this),r=null==e?void 0:h(e,m);return r?r.call(e,n,i):t.call(u(n),e,i)},function(e,r){var c=s(this),h=u(e);if("string"==typeof r&&-1===r.indexOf(n)&&-1===r.indexOf("$<")){var m=i(t,c,h,r);if(m.done)return m.value}var _=a(r);_||(r=u(r));var b=c.global;if(b){var y=c.unicode;c.lastIndex=0}for(var x=[];;){var k=f(c,h);if(null===k)break;if(x.push(k),!b)break;""===u(k[0])&&(c.lastIndex=d(h,l(c.lastIndex),y))}for(var w,C="",S=0,O=0;O=S&&(C+=h.slice(S,E)+M,S=E+D.length)}return C+h.slice(S)}]}),!!r((function(){var e=/./;return e.exec=function(){var e=[];return e.groups={a:"7"},e},"7"!=="".replace(e,"$")}))||!_||b)},function(e,t,i){var n=i(3),r=i(163),s=i(164),a=i(168),o=i(32),l=function(e){if(e&&e.forEach!==a)try{o(e,"forEach",a)}catch(t){e.forEach=a}};for(var u in r)r[u]&&l(n[u]&&n[u].prototype);l(s)},function(e,t,i){"use strict";var n,r,s=i(20),a=i(137),o=i(217),l=i(64),u=i(27),c=i(39).get,d=i(227),h=i(228),p=RegExp.prototype.exec,f=l("native-string-replace",String.prototype.replace),m=p,v=(n=/a/,r=/b*/g,p.call(n,"a"),p.call(r,"a"),0!==n.lastIndex||0!==r.lastIndex),g=o.UNSUPPORTED_Y||o.BROKEN_CARET,_=void 0!==/()??/.exec("")[1];(v||_||g||d||h)&&(m=function(e){var t,i,n,r,o,l,d,h=this,b=c(h),y=s(e),x=b.raw;if(x)return x.lastIndex=h.lastIndex,t=m.call(x,y),h.lastIndex=x.lastIndex,t;var k=b.groups,w=g&&h.sticky,C=a.call(h),S=h.source,O=0,D=y;if(w&&(-1===(C=C.replace("y","")).indexOf("g")&&(C+="g"),D=y.slice(h.lastIndex),h.lastIndex>0&&(!h.multiline||h.multiline&&"\n"!==y.charAt(h.lastIndex-1))&&(S="(?: "+S+")",D=" "+D,O++),i=new RegExp("^(?:"+S+")",C)),_&&(i=new RegExp("^"+S+"$(?!\\s)",C)),v&&(n=h.lastIndex),r=p.call(w?i:h,D),w?r?(r.input=r.input.slice(O),r[0]=r[0].slice(O),r.index=h.lastIndex,h.lastIndex+=r[0].length):h.lastIndex=0:v&&r&&(h.lastIndex=h.global?r.index+r[0].length:n),_&&r&&r.length>1&&f.call(r[0],i,(function(){for(o=1;oc;)if((o=l[c++])!=o)return!0}else for(;u>c;c++)if((e||c in l)&&l[c]===i)return e||c||0;return!e&&-1}};e.exports={includes:a(!0),indexOf:a(!1)}},function(e,t){e.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},function(e,t){t.f=Object.getOwnPropertySymbols},function(e,t,i){var n=i(10),r=i(5),s=i(15),a=i(70),o=i(151),l=a("IE_PROTO"),u=Object.prototype;e.exports=o?Object.getPrototypeOf:function(e){var t=s(e);if(n(t,l))return t[l];var i=t.constructor;return r(i)&&t instanceof i?i.prototype:t instanceof Object?u:null}},function(e,t,i){var n=i(76),r=i(58),s=i(50),a=i(4)("iterator");e.exports=function(e){if(null!=e)return r(e,a)||r(e,"@@iterator")||s[n(e)]}},function(e,t,i){var n={};n[i(4)("toStringTag")]="z",e.exports="[object z]"===String(n)},function(e,t,i){var n=i(265),r=i(41),s=Object.prototype,a=s.hasOwnProperty,o=s.propertyIsEnumerable,l=n(function(){return arguments}())?n:function(e){return r(e)&&a.call(e,"callee")&&!o.call(e,"callee")};e.exports=l},function(e,t,i){var n=i(35)(i(24),"Map");e.exports=n},function(e,t){e.exports=function(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}},function(e,t,i){var n=i(285),r=i(292),s=i(294),a=i(295),o=i(296);function l(e){var t=-1,i=null==e?0:e.length;for(this.clear();++t-1&&e%1==0&&e<=9007199254740991}},function(e,t,i){var n=i(22),r=i(117),s=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,a=/^\w*$/;e.exports=function(e,t){if(n(e))return!1;var i=typeof e;return!("number"!=i&&"symbol"!=i&&"boolean"!=i&&null!=e&&!r(e))||(a.test(e)||!s.test(e)||null!=t&&e in Object(t))}},function(e,t,i){var n=i(46),r=i(41);e.exports=function(e){return"symbol"==typeof e||r(e)&&"[object Symbol]"==n(e)}},function(e,t){e.exports=function(e){return e}},function(e,t,i){var n=i(1),r=i(7);n({target:"Object",stat:!0,forced:!r,sham:!r},{defineProperty:i(11).f})},function(e,t,i){"use strict";t.__esModule=!0,t.i18n=t.use=t.t=void 0;var n=a(i(361)),r=a(i(0)),s=a(i(362));function a(e){return e&&e.__esModule?e:{default:e}}var o=(0,a(i(363)).default)(r.default),l=n.default,u=!1,c=function(){var e=Object.getPrototypeOf(this||r.default).$t;if("function"==typeof e&&r.default.locale)return u||(u=!0,r.default.locale(r.default.config.lang,(0,s.default)(l,r.default.locale(r.default.config.lang)||{},{clone:!0}))),e.apply(this,arguments)},d=t.t=function(e,t){var i=c.apply(this,arguments);if(null!=i)return i;for(var n=e.split("."),r=l,s=0,a=n.length;s1&&void 0!==arguments[1]?arguments[1]:1,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;l||(l=document.createElement("textarea"),document.body.appendChild(l));var n=d(e),r=n.paddingSize,s=n.borderSize,a=n.boxSizing,o=n.contextStyle;l.setAttribute("style",o+";"+u),l.value=e.value||e.placeholder||"";var c=l.scrollHeight,h={};"border-box"===a?c+=s:"content-box"===a&&(c-=r),l.value="";var p=l.scrollHeight-r;if(null!==t){var f=p*t;"border-box"===a&&(f=f+r+s),c=Math.max(f,c),h.minHeight=f+"px"}if(null!==i){var m=p*i;"border-box"===a&&(m=m+r+s),c=Math.min(m,c)}return h.height=c+"px",l.parentNode&&l.parentNode.removeChild(l),l=null,h}var p=i(9),f=i.n(p),m=i(21),v={name:"ElInput",componentName:"ElInput",mixins:[s.a,o.a],inheritAttrs:!1,inject:{elForm:{default:""},elFormItem:{default:""}},data:function(){return{textareaCalcStyle:{},hovering:!1,focused:!1,isComposing:!1,passwordVisible:!1}},props:{value:[String,Number],size:String,resize:String,form:String,disabled:Boolean,readonly:Boolean,type:{type:String,default:"text"},autosize:{type:[Boolean,Object],default:!1},autocomplete:{type:String,default:"off"},autoComplete:{type:String,validator:function(e){return!0}},validateEvent:{type:Boolean,default:!0},suffixIcon:String,prefixIcon:String,label:String,clearable:{type:Boolean,default:!1},showPassword:{type:Boolean,default:!1},showWordLimit:{type:Boolean,default:!1},tabindex:String},computed:{_elFormItemSize:function(){return(this.elFormItem||{}).elFormItemSize},validateState:function(){return this.elFormItem?this.elFormItem.validateState:""},needStatusIcon:function(){return!!this.elForm&&this.elForm.statusIcon},validateIcon:function(){return{validating:"el-icon-loading",success:"el-icon-circle-check",error:"el-icon-circle-close"}[this.validateState]},textareaStyle:function(){return f()({},this.textareaCalcStyle,{resize:this.resize})},inputSize:function(){return this.size||this._elFormItemSize||(this.$ELEMENT||{}).size},inputDisabled:function(){return this.disabled||(this.elForm||{}).disabled},nativeInputValue:function(){return null===this.value||void 0===this.value?"":String(this.value)},showClear:function(){return this.clearable&&!this.inputDisabled&&!this.readonly&&this.nativeInputValue&&(this.focused||this.hovering)},showPwdVisible:function(){return this.showPassword&&!this.inputDisabled&&!this.readonly&&(!!this.nativeInputValue||this.focused)},isWordLimitVisible:function(){return this.showWordLimit&&this.$attrs.maxlength&&("text"===this.type||"textarea"===this.type)&&!this.inputDisabled&&!this.readonly&&!this.showPassword},upperLimit:function(){return this.$attrs.maxlength},textLength:function(){return"number"==typeof this.value?String(this.value).length:(this.value||"").length},inputExceed:function(){return this.isWordLimitVisible&&this.textLength>this.upperLimit}},watch:{value:function(e){this.$nextTick(this.resizeTextarea),this.validateEvent&&this.dispatch("ElFormItem","el.form.change",[e])},nativeInputValue:function(){this.setNativeInputValue()},type:function(){var e=this;this.$nextTick((function(){e.setNativeInputValue(),e.resizeTextarea(),e.updateIconOffset()}))}},methods:{focus:function(){this.getInput().focus()},blur:function(){this.getInput().blur()},getMigratingConfig:function(){return{props:{icon:"icon is removed, use suffix-icon / prefix-icon instead.","on-icon-click":"on-icon-click is removed."},events:{click:"click is removed."}}},handleBlur:function(e){this.focused=!1,this.$emit("blur",e),this.validateEvent&&this.dispatch("ElFormItem","el.form.blur",[this.value])},select:function(){this.getInput().select()},resizeTextarea:function(){if(!this.$isServer){var e=this.autosize;if("textarea"===this.type)if(e){var t=e.minRows,i=e.maxRows;this.textareaCalcStyle=h(this.$refs.textarea,t,i)}else this.textareaCalcStyle={minHeight:h(this.$refs.textarea).minHeight}}},setNativeInputValue:function(){var e=this.getInput();e&&e.value!==this.nativeInputValue&&(e.value=this.nativeInputValue)},handleFocus:function(e){this.focused=!0,this.$emit("focus",e)},handleCompositionStart:function(){this.isComposing=!0},handleCompositionUpdate:function(e){var t=e.target.value,i=t[t.length-1]||"";this.isComposing=!Object(m.isKorean)(i)},handleCompositionEnd:function(e){this.isComposing&&(this.isComposing=!1,this.handleInput(e))},handleInput:function(e){this.isComposing||e.target.value!==this.nativeInputValue&&(this.$emit("input",e.target.value),this.$nextTick(this.setNativeInputValue))},handleChange:function(e){this.$emit("change",e.target.value)},calcIconOffset:function(e){var t=[].slice.call(this.$el.querySelectorAll(".el-input__"+e)||[]);if(t.length){for(var i=null,n=0;n=t.length)break;r=t[n++]}else{if((n=t.next()).done)break;r=n.value}var s=r.target.__resizeListeners__||[];s.length&&s.forEach((function(e){e()}))}};t.addResizeListener=function(e,t){a||(e.__resizeListeners__||(e.__resizeListeners__=[],e.__ro__=new s.default(o),e.__ro__.observe(e)),e.__resizeListeners__.push(t))},t.removeResizeListener=function(e,t){e&&e.__resizeListeners__&&(e.__resizeListeners__.splice(e.__resizeListeners__.indexOf(t),1),e.__resizeListeners__.length||e.__ro__.disconnect())}},function(e,t){e.exports=function(e,t,i,n){var r,s=0;return"boolean"!=typeof t&&(n=i,i=t,t=void 0),function(){var a=this,o=Number(new Date)-s,l=arguments;function u(){s=Number(new Date),i.apply(a,l)}function c(){r=void 0}n&&!r&&u(),r&&clearTimeout(r),void 0===n&&o>e?u():!0!==t&&(r=setTimeout(n?c:u,void 0===n?e-o:e))}}},function(e,t,i){e.exports=function(e){var t={};function i(n){if(t[n])return t[n].exports;var r=t[n]={i:n,l:!1,exports:{}};return e[n].call(r.exports,r,r.exports,i),r.l=!0,r.exports}return i.m=e,i.c=t,i.d=function(e,t,n){i.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},i.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.t=function(e,t){if(1&t&&(e=i(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(i.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)i.d(n,r,function(t){return e[t]}.bind(null,r));return n},i.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(t,"a",t),t},i.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},i.p="/dist/",i(i.s=132)}({132:function(e,t,i){"use strict";i.r(t);var n=i(16),r=i(38),s=i.n(r),a=i(3),o=i(2),l={vertical:{offset:"offsetHeight",scroll:"scrollTop",scrollSize:"scrollHeight",size:"height",key:"vertical",axis:"Y",client:"clientY",direction:"top"},horizontal:{offset:"offsetWidth",scroll:"scrollLeft",scrollSize:"scrollWidth",size:"width",key:"horizontal",axis:"X",client:"clientX",direction:"left"}};function u(e){var t=e.move,i=e.size,n=e.bar,r={},s="translate"+n.axis+"("+t+"%)";return r[n.size]=i,r.transform=s,r.msTransform=s,r.webkitTransform=s,r}var c={name:"Bar",props:{vertical:Boolean,size:String,move:Number},computed:{bar:function(){return l[this.vertical?"vertical":"horizontal"]},wrap:function(){return this.$parent.wrap}},render:function(e){var t=this.size,i=this.move,n=this.bar;return e("div",{class:["el-scrollbar__bar","is-"+n.key],on:{mousedown:this.clickTrackHandler}},[e("div",{ref:"thumb",class:"el-scrollbar__thumb",on:{mousedown:this.clickThumbHandler},style:u({size:t,move:i,bar:n})})])},methods:{clickThumbHandler:function(e){e.ctrlKey||2===e.button||(this.startDrag(e),this[this.bar.axis]=e.currentTarget[this.bar.offset]-(e[this.bar.client]-e.currentTarget.getBoundingClientRect()[this.bar.direction]))},clickTrackHandler:function(e){var t=100*(Math.abs(e.target.getBoundingClientRect()[this.bar.direction]-e[this.bar.client])-this.$refs.thumb[this.bar.offset]/2)/this.$el[this.bar.offset];this.wrap[this.bar.scroll]=t*this.wrap[this.bar.scrollSize]/100},startDrag:function(e){e.stopImmediatePropagation(),this.cursorDown=!0,Object(o.on)(document,"mousemove",this.mouseMoveDocumentHandler),Object(o.on)(document,"mouseup",this.mouseUpDocumentHandler),document.onselectstart=function(){return!1}},mouseMoveDocumentHandler:function(e){if(!1!==this.cursorDown){var t=this[this.bar.axis];if(t){var i=100*(-1*(this.$el.getBoundingClientRect()[this.bar.direction]-e[this.bar.client])-(this.$refs.thumb[this.bar.offset]-t))/this.$el[this.bar.offset];this.wrap[this.bar.scroll]=i*this.wrap[this.bar.scrollSize]/100}}},mouseUpDocumentHandler:function(e){this.cursorDown=!1,this[this.bar.axis]=0,Object(o.off)(document,"mousemove",this.mouseMoveDocumentHandler),document.onselectstart=null}},destroyed:function(){Object(o.off)(document,"mouseup",this.mouseUpDocumentHandler)}},d={name:"ElScrollbar",components:{Bar:c},props:{native:Boolean,wrapStyle:{},wrapClass:{},viewClass:{},viewStyle:{},noresize:Boolean,tag:{type:String,default:"div"}},data:function(){return{sizeWidth:"0",sizeHeight:"0",moveX:0,moveY:0}},computed:{wrap:function(){return this.$refs.wrap}},render:function(e){var t=s()(),i=this.wrapStyle;if(t){var n="-"+t+"px",r="margin-bottom: "+n+"; margin-right: "+n+";";Array.isArray(this.wrapStyle)?(i=Object(a.toObject)(this.wrapStyle)).marginRight=i.marginBottom=n:"string"==typeof this.wrapStyle?i+=r:i=r}var o=e(this.tag,{class:["el-scrollbar__view",this.viewClass],style:this.viewStyle,ref:"resize"},this.$slots.default),l=e("div",{ref:"wrap",style:i,on:{scroll:this.handleScroll},class:[this.wrapClass,"el-scrollbar__wrap",t?"":"el-scrollbar__wrap--hidden-default"]},[[o]]),u=void 0;return u=this.native?[e("div",{ref:"wrap",class:[this.wrapClass,"el-scrollbar__wrap"],style:i},[[o]])]:[l,e(c,{attrs:{move:this.moveX,size:this.sizeWidth}}),e(c,{attrs:{vertical:!0,move:this.moveY,size:this.sizeHeight}})],e("div",{class:"el-scrollbar"},u)},methods:{handleScroll:function(){var e=this.wrap;this.moveY=100*e.scrollTop/e.clientHeight,this.moveX=100*e.scrollLeft/e.clientWidth},update:function(){var e,t,i=this.wrap;i&&(e=100*i.clientHeight/i.scrollHeight,t=100*i.clientWidth/i.scrollWidth,this.sizeHeight=e<100?e+"%":"",this.sizeWidth=t<100?t+"%":"")}},mounted:function(){this.native||(this.$nextTick(this.update),!this.noresize&&Object(n.addResizeListener)(this.$refs.resize,this.update))},beforeDestroy:function(){this.native||!this.noresize&&Object(n.removeResizeListener)(this.$refs.resize,this.update)},install:function(e){e.component(d.name,d)}};t.default=d},16:function(e,t){e.exports=i(124)},2:function(e,t){e.exports=i(25)},3:function(e,t){e.exports=i(19)},38:function(e,t){e.exports=i(122)}})},function(e,t,i){"use strict";t.__esModule=!0,t.default=function(e){return{methods:{focus:function(){this.$refs[e].focus()}}}}},function(e,t,i){"use strict";t.__esModule=!0,t.default=function(e,t){if(s.default.prototype.$isServer)return;if(!t)return void(e.scrollTop=0);var i=[],n=t.offsetParent;for(;n&&e!==n&&e.contains(n);)i.push(n),n=n.offsetParent;var r=t.offsetTop+i.reduce((function(e,t){return e+t.offsetTop}),0),a=r+t.offsetHeight,o=e.scrollTop,l=o+e.clientHeight;rl&&(e.scrollTop=a-e.clientHeight)};var n,r=i(0),s=(n=r)&&n.__esModule?n:{default:n}},function(e,t,i){"use strict";t.__esModule=!0;var n=n||{};n.Utils=n.Utils||{},n.Utils.focusFirstDescendant=function(e){for(var t=0;t=0;t--){var i=e.childNodes[t];if(n.Utils.attemptFocus(i)||n.Utils.focusLastDescendant(i))return!0}return!1},n.Utils.attemptFocus=function(e){if(!n.Utils.isFocusable(e))return!1;n.Utils.IgnoreUtilFocusChanges=!0;try{e.focus()}catch(e){}return n.Utils.IgnoreUtilFocusChanges=!1,document.activeElement===e},n.Utils.isFocusable=function(e){if(e.tabIndex>0||0===e.tabIndex&&null!==e.getAttribute("tabIndex"))return!0;if(e.disabled)return!1;switch(e.nodeName){case"A":return!!e.href&&"ignore"!==e.rel;case"INPUT":return"hidden"!==e.type&&"file"!==e.type;case"BUTTON":case"SELECT":case"TEXTAREA":return!0;default:return!1}},n.Utils.triggerEvent=function(e,t){var i=void 0;i=/^mouse|click/.test(t)?"MouseEvents":/^key/.test(t)?"KeyboardEvent":"HTMLEvents";for(var n=document.createEvent(i),r=arguments.length,s=Array(r>2?r-2:0),a=2;a1?arguments[1]:void 0)}})},function(e,t,i){var n=i(9),r=i(157),s=i(4)("species");e.exports=function(e,t){var i,a=n(e).constructor;return void 0===a||null==(i=n(a)[s])?t:r(i)}},function(e,t){!function(t){"use strict";var i=Object.prototype,n=i.hasOwnProperty,r="function"==typeof Symbol?Symbol:{},s=r.iterator||"@@iterator",a=r.asyncIterator||"@@asyncIterator",o=r.toStringTag||"@@toStringTag",l="object"==typeof e,u=t.regeneratorRuntime;if(u)l&&(e.exports=u);else{(u=t.regeneratorRuntime=l?e.exports:{}).wrap=m;var c={},d={};d[s]=function(){return this};var h=Object.getPrototypeOf,p=h&&h(h(O([])));p&&p!==i&&n.call(p,s)&&(d=p);var f=b.prototype=g.prototype=Object.create(d);_.prototype=f.constructor=b,b.constructor=_,b[o]=_.displayName="GeneratorFunction",u.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===_||"GeneratorFunction"===(t.displayName||t.name))},u.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,b):(e.__proto__=b,o in e||(e[o]="GeneratorFunction")),e.prototype=Object.create(f),e},u.awrap=function(e){return{__await:e}},y(x.prototype),x.prototype[a]=function(){return this},u.AsyncIterator=x,u.async=function(e,t,i,n){var r=new x(m(e,t,i,n));return u.isGeneratorFunction(t)?r:r.next().then((function(e){return e.done?e.value:r.next()}))},y(f),f[o]="Generator",f[s]=function(){return this},f.toString=function(){return"[object Generator]"},u.keys=function(e){var t=[];for(var i in e)t.push(i);return t.reverse(),function i(){for(;t.length;){var n=t.pop();if(n in e)return i.value=n,i.done=!1,i}return i.done=!0,i}},u.values=O,S.prototype={constructor:S,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(C),!e)for(var t in this)"t"===t.charAt(0)&&n.call(this,t)&&!isNaN(+t.slice(1))&&(this[t]=void 0)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var t=this;function i(i,n){return a.type="throw",a.arg=e,t.next=i,n&&(t.method="next",t.arg=void 0),!!n}for(var r=this.tryEntries.length-1;r>=0;--r){var s=this.tryEntries[r],a=s.completion;if("root"===s.tryLoc)return i("end");if(s.tryLoc<=this.prev){var o=n.call(s,"catchLoc"),l=n.call(s,"finallyLoc");if(o&&l){if(this.prev=0;--i){var r=this.tryEntries[i];if(r.tryLoc<=this.prev&&n.call(r,"finallyLoc")&&this.prev=0;--t){var i=this.tryEntries[t];if(i.finallyLoc===e)return this.complete(i.completion,i.afterLoc),C(i),c}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var i=this.tryEntries[t];if(i.tryLoc===e){var n=i.completion;if("throw"===n.type){var r=n.arg;C(i)}return r}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,i){return this.delegate={iterator:O(e),resultName:t,nextLoc:i},"next"===this.method&&(this.arg=void 0),c}}}function m(e,t,i,n){var r=t&&t.prototype instanceof g?t:g,s=Object.create(r.prototype),a=new S(n||[]);return s._invoke=function(e,t,i){var n="suspendedStart";return function(r,s){if("executing"===n)throw new Error("Generator is already running");if("completed"===n){if("throw"===r)throw s;return D()}for(i.method=r,i.arg=s;;){var a=i.delegate;if(a){var o=k(a,i);if(o){if(o===c)continue;return o}}if("next"===i.method)i.sent=i._sent=i.arg;else if("throw"===i.method){if("suspendedStart"===n)throw n="completed",i.arg;i.dispatchException(i.arg)}else"return"===i.method&&i.abrupt("return",i.arg);n="executing";var l=v(e,t,i);if("normal"===l.type){if(n=i.done?"completed":"suspendedYield",l.arg===c)continue;return{value:l.arg,done:i.done}}"throw"===l.type&&(n="completed",i.method="throw",i.arg=l.arg)}}}(e,i,a),s}function v(e,t,i){try{return{type:"normal",arg:e.call(t,i)}}catch(e){return{type:"throw",arg:e}}}function g(){}function _(){}function b(){}function y(e){["next","throw","return"].forEach((function(t){e[t]=function(e){return this._invoke(t,e)}}))}function x(e){var t;this._invoke=function(i,r){function s(){return new Promise((function(t,s){!function t(i,r,s,a){var o=v(e[i],e,r);if("throw"!==o.type){var l=o.arg,u=l.value;return u&&"object"==typeof u&&n.call(u,"__await")?Promise.resolve(u.__await).then((function(e){t("next",e,s,a)}),(function(e){t("throw",e,s,a)})):Promise.resolve(u).then((function(e){l.value=e,s(l)}),a)}a(o.arg)}(i,r,t,s)}))}return t=t?t.then(s,s):s()}}function k(e,t){var i=e.iterator[t.method];if(void 0===i){if(t.delegate=null,"throw"===t.method){if(e.iterator.return&&(t.method="return",t.arg=void 0,k(e,t),"throw"===t.method))return c;t.method="throw",t.arg=new TypeError("The iterator does not provide a 'throw' method")}return c}var n=v(i,e.iterator,t.arg);if("throw"===n.type)return t.method="throw",t.arg=n.arg,t.delegate=null,c;var r=n.arg;return r?r.done?(t[e.resultName]=r.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,c):r:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,c)}function w(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function C(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function S(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(w,this),this.reset(!0)}function O(e){if(e){var t=e[s];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var i=-1,r=function t(){for(;++i=51||!r((function(){var e=[];return e[f]=!1,e.concat()[0]!==e})),v=d("concat"),g=function(e){if(!a(e))return!1;var t=e[f];return void 0!==t?!!t:s(e)};n({target:"Array",proto:!0,forced:!m||!v},{concat:function(e){var t,i,n,r,s,a=o(this),d=c(a,0),h=0;for(t=-1,n=arguments.length;t9007199254740991)throw TypeError("Maximum allowed index exceeded");for(i=0;i=9007199254740991)throw TypeError("Maximum allowed index exceeded");u(d,h++,s)}return d.length=h,d}})},function(e,t,i){var n=i(216);e.exports=function(e){if(n(e))throw TypeError("The method doesn't accept regular expressions");return e}},function(e,t,i){var n=i(4)("match");e.exports=function(e){var t=/./;try{"/./"[e](t)}catch(i){try{return t[n]=!1,"/./"[e](t)}catch(e){}}return!1}},function(e,t,i){"use strict";var n=i(9);e.exports=function(){var e=n(this),t="";return e.global&&(t+="g"),e.ignoreCase&&(t+="i"),e.multiline&&(t+="m"),e.dotAll&&(t+="s"),e.unicode&&(t+="u"),e.sticky&&(t+="y"),t}},function(e,t,i){"use strict";var n=i(16),r=i(99),s=i(50),a=i(39),o=i(147),l=a.set,u=a.getterFor("Array Iterator");e.exports=o(Array,"Array",(function(e,t){l(this,{type:"Array Iterator",target:n(e),index:0,kind:t})}),(function(){var e=u(this),t=e.target,i=e.kind,n=e.index++;return!t||n>=t.length?(e.target=void 0,{value:void 0,done:!0}):"keys"==i?{value:n,done:!1}:"values"==i?{value:t[n],done:!1}:{value:[n,t[n]],done:!1}}),"values"),s.Arguments=s.Array,r("keys"),r("values"),r("entries")},function(e,t,i){var n=i(103);e.exports=n&&!Symbol.sham&&"symbol"==typeof Symbol.iterator},function(e,t,i){var n=i(7),r=i(11),s=i(9),a=i(48);e.exports=n?Object.defineProperties:function(e,t){s(e);for(var i,n=a(t),o=n.length,l=0;o>l;)r.f(e,i=n[l++],t[i]);return e}},function(e,t,i){var n=i(7),r=i(2),s=i(66);e.exports=!n&&!r((function(){return 7!=Object.defineProperty(s("div"),"a",{get:function(){return 7}}).a}))},function(e,t,i){var n=i(8),r=i(68),s=i(58),a=i(236),o=i(4)("toPrimitive");e.exports=function(e,t){if(!n(e)||r(e))return e;var i,l=s(e,o);if(l){if(void 0===t&&(t="default"),i=l.call(e,t),!n(i)||r(i))return i;throw TypeError("Can't convert object to primitive value")}return void 0===t&&(t="number"),a(e,t)}},function(e,t){e.exports=function(e){try{return String(e)}catch(e){return"Object"}}},function(e,t,i){var n=i(10),r=i(16),s=i(104).indexOf,a=i(49);e.exports=function(e,t){var i,o=r(e),l=0,u=[];for(i in o)!n(a,i)&&n(o,i)&&u.push(i);for(;t.length>l;)n(o,i=t[l++])&&(~s(u,i)||u.push(i));return u}},function(e,t,i){var n=i(69),r=Math.max,s=Math.min;e.exports=function(e,t){var i=n(e);return i<0?r(i+t,0):s(i,t)}},function(e,t,i){var n=i(17);e.exports=n("document","documentElement")},function(e,t,i){"use strict";var n=i(1),r=i(30),s=i(62),a=i(5),o=i(238),l=i(107),u=i(74),c=i(73),d=i(32),h=i(13),p=i(4),f=i(50),m=i(150),v=s.PROPER,g=s.CONFIGURABLE,_=m.IteratorPrototype,b=m.BUGGY_SAFARI_ITERATORS,y=p("iterator"),x=function(){return this};e.exports=function(e,t,i,s,p,m,k){o(i,t,s);var w,C,S,O=function(e){if(e===p&&P)return P;if(!b&&e in T)return T[e];switch(e){case"keys":case"values":case"entries":return function(){return new i(this,e)}}return function(){return new i(this)}},D=t+" Iterator",E=!1,T=e.prototype,$=T[y]||T["@@iterator"]||p&&T[p],P=!b&&$||O(p),j="Array"==t&&T.entries||$;if(j&&(w=l(j.call(new e)))!==Object.prototype&&w.next&&(r||l(w)===_||(u?u(w,_):a(w[y])||h(w,y,x)),c(w,D,!0,!0),r&&(f[D]=x)),v&&"values"==p&&$&&"values"!==$.name&&(!r&&g?d(T,"name","values"):(E=!0,P=function(){return $.call(this)})),p)if(C={values:O("values"),keys:m?P:O("keys"),entries:O("entries")},k)for(S in C)(b||E||!(S in T))&&h(T,S,C[S]);else n({target:t,proto:!0,forced:b||E},C);return r&&!k||T[y]===P||h(T,y,P,{name:p}),f[t]=P,C}},function(e,t,i){var n=i(10),r=i(149),s=i(26),a=i(11);e.exports=function(e,t){for(var i=r(t),o=a.f,l=s.f,u=0;un;)t.push(arguments[n++]);return x[++y]=function(){(l(e)?e:Function(e)).apply(void 0,t)},r(y),y},v=function(e){delete x[e]},f?r=function(e){g.nextTick(w(e))}:b&&b.now?r=function(e){b.now(w(e))}:_&&!p?(a=(s=new _).port2,s.port1.onmessage=C,r=c(a.postMessage,a,1)):o.addEventListener&&l(o.postMessage)&&!o.importScripts&&n&&"file:"!==n.protocol&&!u(S)?(r=S,o.addEventListener("message",C,!1)):r="onreadystatechange"in h("script")?function(e){d.appendChild(h("script")).onreadystatechange=function(){d.removeChild(this),k(e)}}:function(e){setTimeout(w(e),0)}),e.exports={set:m,clear:v}},function(e,t,i){var n=i(60);e.exports=/(?:ipad|iphone|ipod).*applewebkit/i.test(n)},function(e,t,i){var n=i(9),r=i(8),s=i(161);e.exports=function(e,t){if(n(e),r(t)&&t.constructor===e)return t;var i=s.f(e);return(0,i.resolve)(t),i.promise}},function(e,t,i){"use strict";var n=i(31),r=function(e){var t,i;this.promise=new e((function(e,n){if(void 0!==t||void 0!==i)throw TypeError("Bad Promise constructor");t=e,i=n})),this.resolve=n(t),this.reject=n(i)};e.exports.f=function(e){return new r(e)}},function(e,t,i){var n=i(69),r=i(20),s=i(28),a=function(e){return function(t,i){var a,o,l=r(s(t)),u=n(i),c=l.length;return u<0||u>=c?e?"":void 0:(a=l.charCodeAt(u))<55296||a>56319||u+1===c||(o=l.charCodeAt(u+1))<56320||o>57343?e?l.charAt(u):a:e?l.slice(u,u+2):o-56320+(a-55296<<10)+65536}};e.exports={codeAt:a(!1),charAt:a(!0)}},function(e,t){e.exports={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0}},function(e,t,i){var n=i(66)("span").classList,r=n&&n.constructor&&n.constructor.prototype;e.exports=r===Object.prototype?void 0:r},function(e,t,i){var n=i(254);e.exports=function(e,t){return new(n(e))(0===t?0:t)}},function(e,t,i){var n=i(1),r=i(7),s=i(149),a=i(16),o=i(26),l=i(80);n({target:"Object",stat:!0,sham:!r},{getOwnPropertyDescriptors:function(e){for(var t,i,n=a(e),r=o.f,u=s(n),c={},d=0;u.length>d;)void 0!==(i=r(n,t=u[d++]))&&l(c,t,i);return c}})},function(e,t,i){var n=i(1),r=i(2),s=i(15),a=i(107),o=i(151);n({target:"Object",stat:!0,forced:r((function(){a(1)})),sham:!o},{getPrototypeOf:function(e){return a(s(e))}})},function(e,t,i){"use strict";var n=i(33).forEach,r=i(40)("forEach");e.exports=r?[].forEach:function(e){return n(this,e,arguments.length>1?arguments[1]:void 0)}},function(e,t,i){var n=i(2);e.exports=!n((function(){return Object.isExtensible(Object.preventExtensions({}))}))},function(e,t,i){var n=i(16),r=i(45).f,s={}.toString,a="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];e.exports.f=function(e){return a&&"[object Window]"==s.call(e)?function(e){try{return r(e)}catch(e){return a.slice()}}(e):r(n(e))}},function(e,t,i){var n=i(4);t.f=n},function(e,t,i){var n=i(259),r=i(10),s=i(171),a=i(11).f;e.exports=function(e){var t=n.Symbol||(n.Symbol={});r(t,e)||a(t,e,{value:s.f(e)})}},function(e,t,i){var n=i(1),r=i(260);n({target:"Array",stat:!0,forced:!i(156)((function(e){Array.from(e)}))},{from:r})},function(e,t,i){i(1)({target:"Object",stat:!0,sham:!i(7)},{create:i(27)})},function(e,t){e.exports=function(e,t){for(var i=-1,n=t.length,r=e.length;++ic))return!1;var h=l.get(e),p=l.get(t);if(h&&p)return h==t&&p==e;var f=-1,m=!0,v=2&i?new n:void 0;for(l.set(e,t),l.set(t,e);++f-1&&e%1==0&&e3?0:(e-e%10!=10)*e%10]}};var g={D:function(e){return e.getDay()},DD:function(e){return h(e.getDay())},Do:function(e,t){return t.DoFn(e.getDate())},d:function(e){return e.getDate()},dd:function(e){return h(e.getDate())},ddd:function(e,t){return t.dayNamesShort[e.getDay()]},dddd:function(e,t){return t.dayNames[e.getDay()]},M:function(e){return e.getMonth()+1},MM:function(e){return h(e.getMonth()+1)},MMM:function(e,t){return t.monthNamesShort[e.getMonth()]},MMMM:function(e,t){return t.monthNames[e.getMonth()]},yy:function(e){return h(String(e.getFullYear()),4).substr(2)},yyyy:function(e){return h(e.getFullYear(),4)},h:function(e){return e.getHours()%12||12},hh:function(e){return h(e.getHours()%12||12)},H:function(e){return e.getHours()},HH:function(e){return h(e.getHours())},m:function(e){return e.getMinutes()},mm:function(e){return h(e.getMinutes())},s:function(e){return e.getSeconds()},ss:function(e){return h(e.getSeconds())},S:function(e){return Math.round(e.getMilliseconds()/100)},SS:function(e){return h(Math.round(e.getMilliseconds()/10),2)},SSS:function(e){return h(e.getMilliseconds(),3)},a:function(e,t){return e.getHours()<12?t.amPm[0]:t.amPm[1]},A:function(e,t){return e.getHours()<12?t.amPm[0].toUpperCase():t.amPm[1].toUpperCase()},ZZ:function(e){var t=e.getTimezoneOffset();return(t>0?"-":"+")+h(100*Math.floor(Math.abs(t)/60)+Math.abs(t)%60,4)}},_={d:["\\d\\d?",function(e,t){e.day=t}],Do:["\\d\\d?"+o,function(e,t){e.day=parseInt(t,10)}],M:["\\d\\d?",function(e,t){e.month=t-1}],yy:["\\d\\d?",function(e,t){var i=+(""+(new Date).getFullYear()).substr(0,2);e.year=""+(t>68?i-1:i)+t}],h:["\\d\\d?",function(e,t){e.hour=t}],m:["\\d\\d?",function(e,t){e.minute=t}],s:["\\d\\d?",function(e,t){e.second=t}],yyyy:["\\d{4}",function(e,t){e.year=t}],S:["\\d",function(e,t){e.millisecond=100*t}],SS:["\\d{2}",function(e,t){e.millisecond=10*t}],SSS:["\\d{3}",function(e,t){e.millisecond=t}],D:["\\d\\d?",u],ddd:[o,u],MMM:[o,d("monthNamesShort")],MMMM:[o,d("monthNames")],a:[o,function(e,t,i){var n=t.toLowerCase();n===i.amPm[0]?e.isPm=!1:n===i.amPm[1]&&(e.isPm=!0)}],ZZ:["[^\\s]*?[\\+\\-]\\d\\d:?\\d\\d|[^\\s]*?Z",function(e,t){var i,n=(t+"").match(/([+-]|\d\d)/gi);n&&(i=60*n[1]+parseInt(n[2],10),e.timezoneOffset="+"===n[0]?i:-i)}]};_.dd=_.d,_.dddd=_.ddd,_.DD=_.D,_.mm=_.m,_.hh=_.H=_.HH=_.h,_.MM=_.M,_.ss=_.s,_.A=_.a,s.masks={default:"ddd MMM dd yyyy HH:mm:ss",shortDate:"M/D/yy",mediumDate:"MMM d, yyyy",longDate:"MMMM d, yyyy",fullDate:"dddd, MMMM d, yyyy",shortTime:"HH:mm",mediumTime:"HH:mm:ss",longTime:"HH:mm:ss.SSS"},s.format=function(e,t,i){var n=i||s.i18n;if("number"==typeof e&&(e=new Date(e)),"[object Date]"!==Object.prototype.toString.call(e)||isNaN(e.getTime()))throw new Error("Invalid Date in fecha.format");t=s.masks[t]||t||s.masks.default;var r=[];return(t=(t=t.replace(l,(function(e,t){return r.push(t),"@@@"}))).replace(a,(function(t){return t in g?g[t](e,n):t.slice(1,t.length-1)}))).replace(/@@@/g,(function(){return r.shift()}))},s.parse=function(e,t,i){var n=i||s.i18n;if("string"!=typeof t)throw new Error("Invalid format in fecha.parse");if(t=s.masks[t]||t,e.length>1e3)return null;var r={},o=[],u=[];t=t.replace(l,(function(e,t){return u.push(t),"@@@"}));var c,d=(c=t,c.replace(/[|\\{()[^$+*?.-]/g,"\\$&")).replace(a,(function(e){if(_[e]){var t=_[e];return o.push(t[1]),"("+t[0]+")"}return e}));d=d.replace(/@@@/g,(function(){return u.shift()}));var h=e.match(new RegExp(d,"i"));if(!h)return null;for(var p=1;p0?this._openTimer=setTimeout((function(){t._openTimer=null,t.doOpen(i)}),n):this.doOpen(i)},doOpen:function(e){if(!this.$isServer&&(!this.willOpen||this.willOpen())&&!this.opened){this._opening=!0;var t=this.$el,i=e.modal,n=e.zIndex;if(n&&(s.default.zIndex=n),i&&(this._closing&&(s.default.closeModal(this._popupId),this._closing=!1),s.default.openModal(this._popupId,s.default.nextZIndex(),this.modalAppendToBody?void 0:t,e.modalClass,e.modalFade),e.lockScroll)){this.withoutHiddenClass=!(0,o.hasClass)(document.body,"el-popup-parent--hidden"),this.withoutHiddenClass&&(this.bodyPaddingRight=document.body.style.paddingRight,this.computedBodyPaddingRight=parseInt((0,o.getStyle)(document.body,"paddingRight"),10)),c=(0,a.default)();var r=document.documentElement.clientHeight0&&(r||"scroll"===l)&&this.withoutHiddenClass&&(document.body.style.paddingRight=this.computedBodyPaddingRight+c+"px"),(0,o.addClass)(document.body,"el-popup-parent--hidden")}"static"===getComputedStyle(t).position&&(t.style.position="absolute"),t.style.zIndex=s.default.nextZIndex(),this.opened=!0,this.onOpen&&this.onOpen(),this.doAfterOpen()}},doAfterOpen:function(){this._opening=!1},close:function(){var e=this;if(!this.willClose||this.willClose()){null!==this._openTimer&&(clearTimeout(this._openTimer),this._openTimer=null),clearTimeout(this._closeTimer);var t=Number(this.closeDelay);t>0?this._closeTimer=setTimeout((function(){e._closeTimer=null,e.doClose()}),t):this.doClose()}},doClose:function(){this._closing=!0,this.onClose&&this.onClose(),this.lockScroll&&setTimeout(this.restoreBodyStyle,200),this.opened=!1,this.doAfterClose()},doAfterClose:function(){s.default.closeModal(this._popupId),this._closing=!1},restoreBodyStyle:function(){this.modal&&this.withoutHiddenClass&&(document.body.style.paddingRight=this.bodyPaddingRight,(0,o.removeClass)(document.body,"el-popup-parent--hidden")),this.withoutHiddenClass=!0}}},t.PopupManager=s.default},function(e,t,i){"use strict";t.__esModule=!0;i(19);t.default={mounted:function(){},methods:{getMigratingConfig:function(){return{props:{},events:{}}}}}},function(e,t,i){"use strict";t.__esModule=!0;var n,r=i(0),s=(n=r)&&n.__esModule?n:{default:n},a=i(25);var o=[],l="@@clickoutsideContext",u=void 0,c=0;function d(e,t,i){return function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};!(i&&i.context&&n.target&&r.target)||e.contains(n.target)||e.contains(r.target)||e===n.target||i.context.popperElm&&(i.context.popperElm.contains(n.target)||i.context.popperElm.contains(r.target))||(t.expression&&e[l].methodName&&i.context[e[l].methodName]?i.context[e[l].methodName]():e[l].bindingFn&&e[l].bindingFn())}}!s.default.prototype.$isServer&&(0,a.on)(document,"mousedown",(function(e){return u=e})),!s.default.prototype.$isServer&&(0,a.on)(document,"mouseup",(function(e){o.forEach((function(t){return t[l].documentHandler(e,u)}))})),t.default={bind:function(e,t,i){o.push(e);var n=c++;e[l]={id:n,documentHandler:d(e,t,i),methodName:t.expression,bindingFn:t.value}},update:function(e,t,i){e[l].documentHandler=d(e,t,i),e[l].methodName=t.expression,e[l].bindingFn=t.value},unbind:function(e){for(var t=o.length,i=0;i-1:e._q(e.model,e.trueLabel)},on:{change:[function(t){var i=e.model,n=t.target,r=n.checked?e.trueLabel:e.falseLabel;if(Array.isArray(i)){var s=e._i(i,null);n.checked?s<0&&(e.model=i.concat([null])):s>-1&&(e.model=i.slice(0,s).concat(i.slice(s+1)))}else e.model=r},e.handleChange],focus:function(t){e.focus=!0},blur:function(t){e.focus=!1}}}):i("input",{directives:[{name:"model",rawName:"v-model",value:e.model,expression:"model"}],staticClass:"el-checkbox__original",attrs:{type:"checkbox","aria-hidden":e.indeterminate?"true":"false",disabled:e.isDisabled,name:e.name},domProps:{value:e.label,checked:Array.isArray(e.model)?e._i(e.model,e.label)>-1:e.model},on:{change:[function(t){var i=e.model,n=t.target,r=!!n.checked;if(Array.isArray(i)){var s=e.label,a=e._i(i,s);n.checked?a<0&&(e.model=i.concat([s])):a>-1&&(e.model=i.slice(0,a).concat(i.slice(a+1)))}else e.model=r},e.handleChange],focus:function(t){e.focus=!0},blur:function(t){e.focus=!1}}})]),e.$slots.default||e.label?i("span",{staticClass:"el-checkbox__label"},[e._t("default"),e.$slots.default?e._e():[e._v(e._s(e.label))]],2):e._e()])};n._withStripped=!0;var r=i(4),s={name:"ElCheckbox",mixins:[i.n(r).a],inject:{elForm:{default:""},elFormItem:{default:""}},componentName:"ElCheckbox",data:function(){return{selfModel:!1,focus:!1,isLimitExceeded:!1}},computed:{model:{get:function(){return this.isGroup?this.store:void 0!==this.value?this.value:this.selfModel},set:function(e){this.isGroup?(this.isLimitExceeded=!1,void 0!==this._checkboxGroup.min&&e.lengththis._checkboxGroup.max&&(this.isLimitExceeded=!0),!1===this.isLimitExceeded&&this.dispatch("ElCheckboxGroup","input",[e])):(this.$emit("input",e),this.selfModel=e)}},isChecked:function(){return"[object Boolean]"==={}.toString.call(this.model)?this.model:Array.isArray(this.model)?this.model.indexOf(this.label)>-1:null!==this.model&&void 0!==this.model?this.model===this.trueLabel:void 0},isGroup:function(){for(var e=this.$parent;e;){if("ElCheckboxGroup"===e.$options.componentName)return this._checkboxGroup=e,!0;e=e.$parent}return!1},store:function(){return this._checkboxGroup?this._checkboxGroup.value:this.value},isLimitDisabled:function(){var e=this._checkboxGroup,t=e.max,i=e.min;return!(!t&&!i)&&this.model.length>=t&&!this.isChecked||this.model.length<=i&&this.isChecked},isDisabled:function(){return this.isGroup?this._checkboxGroup.disabled||this.disabled||(this.elForm||{}).disabled||this.isLimitDisabled:this.disabled||(this.elForm||{}).disabled},_elFormItemSize:function(){return(this.elFormItem||{}).elFormItemSize},checkboxSize:function(){var e=this.size||this._elFormItemSize||(this.$ELEMENT||{}).size;return this.isGroup&&this._checkboxGroup.checkboxGroupSize||e}},props:{value:{},label:{},indeterminate:Boolean,disabled:Boolean,checked:Boolean,name:String,trueLabel:[String,Number],falseLabel:[String,Number],id:String,controls:String,border:Boolean,size:String},methods:{addToStore:function(){Array.isArray(this.model)&&-1===this.model.indexOf(this.label)?this.model.push(this.label):this.model=this.trueLabel||!0},handleChange:function(e){var t=this;if(!this.isLimitExceeded){var i=void 0;i=e.target.checked?void 0===this.trueLabel||this.trueLabel:void 0!==this.falseLabel&&this.falseLabel,this.$emit("change",i,e),this.$nextTick((function(){t.isGroup&&t.dispatch("ElCheckboxGroup","change",[t._checkboxGroup.value])}))}}},created:function(){this.checked&&this.addToStore()},mounted:function(){this.indeterminate&&this.$el.setAttribute("aria-controls",this.controls)},watch:{value:function(e){this.dispatch("ElFormItem","el.form.change",e)}}},a=i(0),o=Object(a.a)(s,n,[],!1,null,null,null);o.options.__file="packages/checkbox/src/checkbox.vue";var l=o.exports;l.install=function(e){e.component(l.name,l)};t.default=l},4:function(e,t){e.exports=i(36)}})},function(e,t){var i=/^(attrs|props|on|nativeOn|class|style|hook)$/;function n(e,t){return function(){e&&e.apply(this,arguments),t&&t.apply(this,arguments)}}e.exports=function(e){return e.reduce((function(e,t){var r,s,a,o,l;for(a in t)if(r=e[a],s=t[a],r&&i.test(a))if("class"===a&&("string"==typeof r&&(l=r,e[a]=r={},r[l]=!0),"string"==typeof s&&(l=s,t[a]=s={},s[l]=!0)),"on"===a||"nativeOn"===a||"hook"===a)for(o in s)r[o]=n(r[o],s[o]);else if(Array.isArray(r))e[a]=r.concat(s);else if(Array.isArray(s))e[a]=[r].concat(s);else for(o in s)r[o]=s[o];else e[a]=t[a];return e}),{})}},function(e,t,i){e.exports=function(e){var t={};function i(n){if(t[n])return t[n].exports;var r=t[n]={i:n,l:!1,exports:{}};return e[n].call(r.exports,r,r.exports,i),r.l=!0,r.exports}return i.m=e,i.c=t,i.d=function(e,t,n){i.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},i.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.t=function(e,t){if(1&t&&(e=i(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(i.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)i.d(n,r,function(t){return e[t]}.bind(null,r));return n},i.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(t,"a",t),t},i.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},i.p="/dist/",i(i.s=130)}({0:function(e,t,i){"use strict";function n(e,t,i,n,r,s,a,o){var l,u="function"==typeof e?e.options:e;if(t&&(u.render=t,u.staticRenderFns=i,u._compiled=!0),n&&(u.functional=!0),s&&(u._scopeId="data-v-"+s),a?(l=function(e){(e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),r&&r.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(a)},u._ssrRegister=l):r&&(l=o?function(){r.call(this,this.$root.$options.shadowRoot)}:r),l)if(u.functional){u._injectStyles=l;var c=u.render;u.render=function(e,t){return l.call(t),c(e,t)}}else{var d=u.beforeCreate;u.beforeCreate=d?[].concat(d,l):[l]}return{exports:e,options:u}}i.d(t,"a",(function(){return n}))},130:function(e,t,i){"use strict";i.r(t);var n={name:"ElTag",props:{text:String,closable:Boolean,type:String,hit:Boolean,disableTransitions:Boolean,color:String,size:String,effect:{type:String,default:"light",validator:function(e){return-1!==["dark","light","plain"].indexOf(e)}}},methods:{handleClose:function(e){e.stopPropagation(),this.$emit("close",e)},handleClick:function(e){this.$emit("click",e)}},computed:{tagSize:function(){return this.size||(this.$ELEMENT||{}).size}},render:function(e){var t=this.type,i=this.tagSize,n=this.hit,r=this.effect,s=e("span",{class:["el-tag",t?"el-tag--"+t:"",i?"el-tag--"+i:"",r?"el-tag--"+r:"",n&&"is-hit"],style:{backgroundColor:this.color},on:{click:this.handleClick}},[this.$slots.default,this.closable&&e("i",{class:"el-tag__close el-icon-close",on:{click:this.handleClose}})]);return this.disableTransitions?s:e("transition",{attrs:{name:"el-zoom-in-center"}},[s])}},r=i(0),s=Object(r.a)(n,void 0,void 0,!1,null,null,null);s.options.__file="packages/tag/src/tag.vue";var a=s.exports;a.install=function(e){e.component(a.name,a)};t.default=a}})},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&(t[i]=e[i]);return t.default=e,t}(i(6));t.default=function(e,t,i,r,s,a){!e.required||i.hasOwnProperty(e.field)&&!n.isEmptyValue(t,a||e.type)||r.push(n.format(s.messages.required,e.fullField))}},function(e,t,i){e.exports=function(e){var t={};function i(n){if(t[n])return t[n].exports;var r=t[n]={i:n,l:!1,exports:{}};return e[n].call(r.exports,r,r.exports,i),r.l=!0,r.exports}return i.m=e,i.c=t,i.d=function(e,t,n){i.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},i.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.t=function(e,t){if(1&t&&(e=i(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(i.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)i.d(n,r,function(t){return e[t]}.bind(null,r));return n},i.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(t,"a",t),t},i.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},i.p="/dist/",i(i.s=108)}({0:function(e,t,i){"use strict";function n(e,t,i,n,r,s,a,o){var l,u="function"==typeof e?e.options:e;if(t&&(u.render=t,u.staticRenderFns=i,u._compiled=!0),n&&(u.functional=!0),s&&(u._scopeId="data-v-"+s),a?(l=function(e){(e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),r&&r.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(a)},u._ssrRegister=l):r&&(l=o?function(){r.call(this,this.$root.$options.shadowRoot)}:r),l)if(u.functional){u._injectStyles=l;var c=u.render;u.render=function(e,t){return l.call(t),c(e,t)}}else{var d=u.beforeCreate;u.beforeCreate=d?[].concat(d,l):[l]}return{exports:e,options:u}}i.d(t,"a",(function(){return n}))},108:function(e,t,i){"use strict";i.r(t);var n=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("label",{staticClass:"el-radio",class:[e.border&&e.radioSize?"el-radio--"+e.radioSize:"",{"is-disabled":e.isDisabled},{"is-focus":e.focus},{"is-bordered":e.border},{"is-checked":e.model===e.label}],attrs:{role:"radio","aria-checked":e.model===e.label,"aria-disabled":e.isDisabled,tabindex:e.tabIndex},on:{keydown:function(t){if(!("button"in t)&&e._k(t.keyCode,"space",32,t.key,[" ","Spacebar"]))return null;t.stopPropagation(),t.preventDefault(),e.model=e.isDisabled?e.model:e.label}}},[i("span",{staticClass:"el-radio__input",class:{"is-disabled":e.isDisabled,"is-checked":e.model===e.label}},[i("span",{staticClass:"el-radio__inner"}),i("input",{directives:[{name:"model",rawName:"v-model",value:e.model,expression:"model"}],ref:"radio",staticClass:"el-radio__original",attrs:{type:"radio","aria-hidden":"true",name:e.name,disabled:e.isDisabled,tabindex:"-1",autocomplete:"off"},domProps:{value:e.label,checked:e._q(e.model,e.label)},on:{focus:function(t){e.focus=!0},blur:function(t){e.focus=!1},change:[function(t){e.model=e.label},e.handleChange]}})]),i("span",{staticClass:"el-radio__label",on:{keydown:function(e){e.stopPropagation()}}},[e._t("default"),e.$slots.default?e._e():[e._v(e._s(e.label))]],2)])};n._withStripped=!0;var r=i(4),s={name:"ElRadio",mixins:[i.n(r).a],inject:{elForm:{default:""},elFormItem:{default:""}},componentName:"ElRadio",props:{value:{},label:{},disabled:Boolean,name:String,border:Boolean,size:String},data:function(){return{focus:!1}},computed:{isGroup:function(){for(var e=this.$parent;e;){if("ElRadioGroup"===e.$options.componentName)return this._radioGroup=e,!0;e=e.$parent}return!1},model:{get:function(){return this.isGroup?this._radioGroup.value:this.value},set:function(e){this.isGroup?this.dispatch("ElRadioGroup","input",[e]):this.$emit("input",e),this.$refs.radio&&(this.$refs.radio.checked=this.model===this.label)}},_elFormItemSize:function(){return(this.elFormItem||{}).elFormItemSize},radioSize:function(){var e=this.size||this._elFormItemSize||(this.$ELEMENT||{}).size;return this.isGroup&&this._radioGroup.radioGroupSize||e},isDisabled:function(){return this.isGroup?this._radioGroup.disabled||this.disabled||(this.elForm||{}).disabled:this.disabled||(this.elForm||{}).disabled},tabIndex:function(){return this.isDisabled||this.isGroup&&this.model!==this.label?-1:0}},methods:{handleChange:function(){var e=this;this.$nextTick((function(){e.$emit("change",e.model),e.isGroup&&e.dispatch("ElRadioGroup","handleChange",e.model)}))}}},a=i(0),o=Object(a.a)(s,n,[],!1,null,null,null);o.options.__file="packages/radio/src/radio.vue";var l=o.exports;l.install=function(e){e.component(l.name,l)};t.default=l},4:function(e,t){e.exports=i(36)}})},function(e,t,i){},function(e,t,i){i(1)({target:"Object",stat:!0},{setPrototypeOf:i(74)})},function(e,t,i){var n=i(1),r=i(17),s=i(157),a=i(9),o=i(8),l=i(27),u=i(418),c=i(2),d=r("Reflect","construct"),h=c((function(){function e(){}return!(d((function(){}),[],e)instanceof e)})),p=!c((function(){d((function(){}))})),f=h||p;n({target:"Reflect",stat:!0,forced:f,sham:f},{construct:function(e,t){s(e),a(t);var i=arguments.length<3?e:s(arguments[2]);if(p&&!h)return d(e,t,i);if(e==i){switch(t.length){case 0:return new e;case 1:return new e(t[0]);case 2:return new e(t[0],t[1]);case 3:return new e(t[0],t[1],t[2]);case 4:return new e(t[0],t[1],t[2],t[3])}var n=[null];return n.push.apply(n,t),new(u.apply(e,n))}var r=i.prototype,c=l(o(r)?r:Object.prototype),f=Function.apply.call(e,c,t);return o(f)?f:c}})},function(e,t,i){},function(e,t,i){},function(e,t,i){var n=i(263),r=i(268),s=i(338),a=i(346),o=i(355),l=i(232),u=s((function(e){var t=l(e);return o(t)&&(t=void 0),a(n(e,1,o,!0),r(t,2))}));e.exports=u},function(e,t,i){e.exports=function(e){var t={};function i(n){if(t[n])return t[n].exports;var r=t[n]={i:n,l:!1,exports:{}};return e[n].call(r.exports,r,r.exports,i),r.l=!0,r.exports}return i.m=e,i.c=t,i.d=function(e,t,n){i.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},i.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.t=function(e,t){if(1&t&&(e=i(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(i.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)i.d(n,r,function(t){return e[t]}.bind(null,r));return n},i.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(t,"a",t),t},i.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},i.p="/dist/",i(i.s=45)}([function(e,t){e.exports=i(360)},function(e,t){e.exports=i(25)},function(e,t){e.exports=i(19)},function(e,t){e.exports=i(36)},function(e,t){e.exports=i(121)},function(e,t){e.exports=i(88)},function(e,t){e.exports=i(0)},function(e,t){e.exports=i(89)},function(e,t){e.exports=i(123)},function(e,t){e.exports=i(199)},function(e,t){e.exports=i(200)},function(e,t){e.exports=i(198)},function(e,t){e.exports=i(120)},function(e,t){e.exports=i(366)},function(e,t){e.exports=i(124)},function(e,t){e.exports=i(197)},function(e,t){e.exports=i(91)},function(e,t){e.exports=i(201)},function(e,t){e.exports=i(126)},function(e,t){e.exports=i(90)},function(e,t){e.exports=i(196)},function(e,t){e.exports=i(368)},function(e,t){e.exports=i(369)},function(e,t){e.exports=i(127)},function(e,t){e.exports=i(202)},function(e,t){e.exports=i(125)},function(e,t){e.exports=i(370)},function(e,t){e.exports=i(128)},function(e,t){e.exports=i(371)},function(e,t){e.exports=i(203)},function(e,t){e.exports=i(122)},function(e,t){e.exports=i(372)},function(e,t){e.exports=i(373)},function(e,t){e.exports=i(374)},function(e,t){e.exports=i(129)},function(e,t){e.exports=i(375)},function(e,t){e.exports=i(376)},function(e,t){e.exports=i(377)},function(e,t){e.exports=i(378)},function(e,t){e.exports=i(383)},function(e,t){e.exports=i(384)},function(e,t){e.exports=i(406)},function(e,t){e.exports=i(407)},function(e,t){e.exports=i(205)},function(e,t){e.exports=i(408)},function(e,t,i){e.exports=i(46)},function(e,t,i){"use strict";i.r(t);var n=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("ul",{staticClass:"el-pager",on:{click:e.onPagerClick}},[e.pageCount>0?i("li",{staticClass:"number",class:{active:1===e.currentPage,disabled:e.disabled}},[e._v("1")]):e._e(),e.showPrevMore?i("li",{staticClass:"el-icon more btn-quickprev",class:[e.quickprevIconClass,{disabled:e.disabled}],on:{mouseenter:function(t){e.onMouseenter("left")},mouseleave:function(t){e.quickprevIconClass="el-icon-more"}}}):e._e(),e._l(e.pagers,(function(t){return i("li",{key:t,staticClass:"number",class:{active:e.currentPage===t,disabled:e.disabled}},[e._v(e._s(t))])})),e.showNextMore?i("li",{staticClass:"el-icon more btn-quicknext",class:[e.quicknextIconClass,{disabled:e.disabled}],on:{mouseenter:function(t){e.onMouseenter("right")},mouseleave:function(t){e.quicknextIconClass="el-icon-more"}}}):e._e(),e.pageCount>1?i("li",{staticClass:"number",class:{active:e.currentPage===e.pageCount,disabled:e.disabled}},[e._v(e._s(e.pageCount))]):e._e()],2)};function r(e,t,i,n,r,s,a,o){var l,u="function"==typeof e?e.options:e;if(t&&(u.render=t,u.staticRenderFns=i,u._compiled=!0),n&&(u.functional=!0),s&&(u._scopeId="data-v-"+s),a?(l=function(e){(e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),r&&r.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(a)},u._ssrRegister=l):r&&(l=o?function(){r.call(this,this.$root.$options.shadowRoot)}:r),l)if(u.functional){u._injectStyles=l;var c=u.render;u.render=function(e,t){return l.call(t),c(e,t)}}else{var d=u.beforeCreate;u.beforeCreate=d?[].concat(d,l):[l]}return{exports:e,options:u}}n._withStripped=!0;var s=r({name:"ElPager",props:{currentPage:Number,pageCount:Number,pagerCount:Number,disabled:Boolean},watch:{showPrevMore:function(e){e||(this.quickprevIconClass="el-icon-more")},showNextMore:function(e){e||(this.quicknextIconClass="el-icon-more")}},methods:{onPagerClick:function(e){var t=e.target;if("UL"!==t.tagName&&!this.disabled){var i=Number(e.target.textContent),n=this.pageCount,r=this.currentPage,s=this.pagerCount-2;-1!==t.className.indexOf("more")&&(-1!==t.className.indexOf("quickprev")?i=r-s:-1!==t.className.indexOf("quicknext")&&(i=r+s)),isNaN(i)||(i<1&&(i=1),i>n&&(i=n)),i!==r&&this.$emit("change",i)}},onMouseenter:function(e){this.disabled||("left"===e?this.quickprevIconClass="el-icon-d-arrow-left":this.quicknextIconClass="el-icon-d-arrow-right")}},computed:{pagers:function(){var e=this.pagerCount,t=(e-1)/2,i=Number(this.currentPage),n=Number(this.pageCount),r=!1,s=!1;n>e&&(i>e-t&&(r=!0),i4&&e<22&&e%2==1},default:7},currentPage:{type:Number,default:1},layout:{default:"prev, pager, next, jumper, ->, total"},pageSizes:{type:Array,default:function(){return[10,20,30,40,50,100]}},popperClass:String,prevText:String,nextText:String,background:Boolean,disabled:Boolean,hideOnSinglePage:Boolean},data:function(){return{internalCurrentPage:1,internalPageSize:0,lastEmittedPage:-1,userChangePageSize:!1}},render:function(e){var t=this.layout;if(!t)return null;if(this.hideOnSinglePage&&(!this.internalPageCount||1===this.internalPageCount))return null;var i=e("div",{class:["el-pagination",{"is-background":this.background,"el-pagination--small":this.small}]}),n={prev:e("prev"),jumper:e("jumper"),pager:e("pager",{attrs:{currentPage:this.internalCurrentPage,pageCount:this.internalPageCount,pagerCount:this.pagerCount,disabled:this.disabled},on:{change:this.handleCurrentChange}}),next:e("next"),sizes:e("sizes",{attrs:{pageSizes:this.pageSizes}}),slot:e("slot",[this.$slots.default?this.$slots.default:""]),total:e("total")},r=t.split(",").map((function(e){return e.trim()})),s=e("div",{class:"el-pagination__rightwrapper"}),a=!1;return i.children=i.children||[],s.children=s.children||[],r.forEach((function(e){"->"!==e?a?s.children.push(n[e]):i.children.push(n[e]):a=!0})),a&&i.children.unshift(s),i},components:{Prev:{render:function(e){return e("button",{attrs:{type:"button",disabled:this.$parent.disabled||this.$parent.internalCurrentPage<=1},class:"btn-prev",on:{click:this.$parent.prev}},[this.$parent.prevText?e("span",[this.$parent.prevText]):e("i",{class:"el-icon el-icon-arrow-left"})])}},Next:{render:function(e){return e("button",{attrs:{type:"button",disabled:this.$parent.disabled||this.$parent.internalCurrentPage===this.$parent.internalPageCount||0===this.$parent.internalPageCount},class:"btn-next",on:{click:this.$parent.next}},[this.$parent.nextText?e("span",[this.$parent.nextText]):e("i",{class:"el-icon el-icon-arrow-right"})])}},Sizes:{mixins:[f.a],props:{pageSizes:Array},watch:{pageSizes:{immediate:!0,handler:function(e,t){Object(m.valueEquals)(e,t)||Array.isArray(e)&&(this.$parent.internalPageSize=e.indexOf(this.$parent.pageSize)>-1?this.$parent.pageSize:this.pageSizes[0])}}},render:function(e){var t=this;return e("span",{class:"el-pagination__sizes"},[e("el-select",{attrs:{value:this.$parent.internalPageSize,popperClass:this.$parent.popperClass||"",size:"mini",disabled:this.$parent.disabled},on:{input:this.handleChange}},[this.pageSizes.map((function(i){return e("el-option",{attrs:{value:i,label:i+t.t("el.pagination.pagesize")}})}))])])},components:{ElSelect:l.a,ElOption:c.a},methods:{handleChange:function(e){e!==this.$parent.internalPageSize&&(this.$parent.internalPageSize=e=parseInt(e,10),this.$parent.userChangePageSize=!0,this.$parent.$emit("update:pageSize",e),this.$parent.$emit("size-change",e))}}},Jumper:{mixins:[f.a],components:{ElInput:h.a},data:function(){return{userInput:null}},watch:{"$parent.internalCurrentPage":function(){this.userInput=null}},methods:{handleKeyup:function(e){var t=e.keyCode,i=e.target;13===t&&this.handleChange(i.value)},handleInput:function(e){this.userInput=e},handleChange:function(e){this.$parent.internalCurrentPage=this.$parent.getValidCurrentPage(e),this.$parent.emitChange(),this.userInput=null}},render:function(e){return e("span",{class:"el-pagination__jump"},[this.t("el.pagination.goto"),e("el-input",{class:"el-pagination__editor is-in-pagination",attrs:{min:1,max:this.$parent.internalPageCount,value:null!==this.userInput?this.userInput:this.$parent.internalCurrentPage,type:"number",disabled:this.$parent.disabled},nativeOn:{keyup:this.handleKeyup},on:{input:this.handleInput,change:this.handleChange}}),this.t("el.pagination.pageClassifier")])}},Total:{mixins:[f.a],render:function(e){return"number"==typeof this.$parent.total?e("span",{class:"el-pagination__total"},[this.t("el.pagination.total",{total:this.$parent.total})]):""}},Pager:a},methods:{handleCurrentChange:function(e){this.internalCurrentPage=this.getValidCurrentPage(e),this.userChangePageSize=!0,this.emitChange()},prev:function(){if(!this.disabled){var e=this.internalCurrentPage-1;this.internalCurrentPage=this.getValidCurrentPage(e),this.$emit("prev-click",this.internalCurrentPage),this.emitChange()}},next:function(){if(!this.disabled){var e=this.internalCurrentPage+1;this.internalCurrentPage=this.getValidCurrentPage(e),this.$emit("next-click",this.internalCurrentPage),this.emitChange()}},getValidCurrentPage:function(e){e=parseInt(e,10);var t=void 0;return"number"==typeof this.internalPageCount?e<1?t=1:e>this.internalPageCount&&(t=this.internalPageCount):(isNaN(e)||e<1)&&(t=1),(void 0===t&&isNaN(e)||0===t)&&(t=1),void 0===t?e:t},emitChange:function(){var e=this;this.$nextTick((function(){(e.internalCurrentPage!==e.lastEmittedPage||e.userChangePageSize)&&(e.$emit("current-change",e.internalCurrentPage),e.lastEmittedPage=e.internalCurrentPage,e.userChangePageSize=!1)}))}},computed:{internalPageCount:function(){return"number"==typeof this.total?Math.max(1,Math.ceil(this.total/this.internalPageSize)):"number"==typeof this.pageCount?Math.max(1,this.pageCount):null}},watch:{currentPage:{immediate:!0,handler:function(e){this.internalCurrentPage=this.getValidCurrentPage(e)}},pageSize:{immediate:!0,handler:function(e){this.internalPageSize=isNaN(e)?10:e}},internalCurrentPage:{immediate:!0,handler:function(e){this.$emit("update:currentPage",e),this.lastEmittedPage=-1}},internalPageCount:function(e){var t=this.internalCurrentPage;e>0&&0===t?this.internalCurrentPage=1:t>e&&(this.internalCurrentPage=0===e?1:e,this.userChangePageSize&&this.emitChange()),this.userChangePageSize=!1}},install:function(e){e.component(v.name,v)}},g=v,_=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("transition",{attrs:{name:"dialog-fade"},on:{"after-enter":e.afterEnter,"after-leave":e.afterLeave}},[i("div",{directives:[{name:"show",rawName:"v-show",value:e.visible,expression:"visible"}],staticClass:"el-dialog__wrapper",on:{click:function(t){return t.target!==t.currentTarget?null:e.handleWrapperClick(t)}}},[i("div",{key:e.key,ref:"dialog",class:["el-dialog",{"is-fullscreen":e.fullscreen,"el-dialog--center":e.center},e.customClass],style:e.style,attrs:{role:"dialog","aria-modal":"true","aria-label":e.title||"dialog"}},[i("div",{staticClass:"el-dialog__header"},[e._t("title",[i("span",{staticClass:"el-dialog__title"},[e._v(e._s(e.title))])]),e.showClose?i("button",{staticClass:"el-dialog__headerbtn",attrs:{type:"button","aria-label":"Close"},on:{click:e.handleClose}},[i("i",{staticClass:"el-dialog__close el-icon el-icon-close"})]):e._e()],2),e.rendered?i("div",{staticClass:"el-dialog__body"},[e._t("default")],2):e._e(),e.$slots.footer?i("div",{staticClass:"el-dialog__footer"},[e._t("footer")],2):e._e()])])])};_._withStripped=!0;var b=i(11),y=i.n(b),x=i(9),k=i.n(x),w=i(3),C=i.n(w),S=r({name:"ElDialog",mixins:[y.a,C.a,k.a],props:{title:{type:String,default:""},modal:{type:Boolean,default:!0},modalAppendToBody:{type:Boolean,default:!0},appendToBody:{type:Boolean,default:!1},lockScroll:{type:Boolean,default:!0},closeOnClickModal:{type:Boolean,default:!0},closeOnPressEscape:{type:Boolean,default:!0},showClose:{type:Boolean,default:!0},width:String,fullscreen:Boolean,customClass:{type:String,default:""},top:{type:String,default:"15vh"},beforeClose:Function,center:{type:Boolean,default:!1},destroyOnClose:Boolean},data:function(){return{closed:!1,key:0}},watch:{visible:function(e){var t=this;e?(this.closed=!1,this.$emit("open"),this.$el.addEventListener("scroll",this.updatePopper),this.$nextTick((function(){t.$refs.dialog.scrollTop=0})),this.appendToBody&&document.body.appendChild(this.$el)):(this.$el.removeEventListener("scroll",this.updatePopper),this.closed||this.$emit("close"),this.destroyOnClose&&this.$nextTick((function(){t.key++})))}},computed:{style:function(){var e={};return this.fullscreen||(e.marginTop=this.top,this.width&&(e.width=this.width)),e}},methods:{getMigratingConfig:function(){return{props:{size:"size is removed."}}},handleWrapperClick:function(){this.closeOnClickModal&&this.handleClose()},handleClose:function(){"function"==typeof this.beforeClose?this.beforeClose(this.hide):this.hide()},hide:function(e){!1!==e&&(this.$emit("update:visible",!1),this.$emit("close"),this.closed=!0)},updatePopper:function(){this.broadcast("ElSelectDropdown","updatePopper"),this.broadcast("ElDropdownMenu","updatePopper")},afterEnter:function(){this.$emit("opened")},afterLeave:function(){this.$emit("closed")}},mounted:function(){this.visible&&(this.rendered=!0,this.open(),this.appendToBody&&document.body.appendChild(this.$el))},destroyed:function(){this.appendToBody&&this.$el&&this.$el.parentNode&&this.$el.parentNode.removeChild(this.$el)}},_,[],!1,null,null,null);S.options.__file="packages/dialog/src/component.vue";var O=S.exports;O.install=function(e){e.component(O.name,O)};var D=O,E=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{directives:[{name:"clickoutside",rawName:"v-clickoutside",value:e.close,expression:"close"}],staticClass:"el-autocomplete",attrs:{"aria-haspopup":"listbox",role:"combobox","aria-expanded":e.suggestionVisible,"aria-owns":e.id}},[i("el-input",e._b({ref:"input",on:{input:e.handleInput,change:e.handleChange,focus:e.handleFocus,blur:e.handleBlur,clear:e.handleClear},nativeOn:{keydown:[function(t){if(!("button"in t)&&e._k(t.keyCode,"up",38,t.key,["Up","ArrowUp"]))return null;t.preventDefault(),e.highlight(e.highlightedIndex-1)},function(t){if(!("button"in t)&&e._k(t.keyCode,"down",40,t.key,["Down","ArrowDown"]))return null;t.preventDefault(),e.highlight(e.highlightedIndex+1)},function(t){return!("button"in t)&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:e.handleKeyEnter(t)},function(t){return!("button"in t)&&e._k(t.keyCode,"tab",9,t.key,"Tab")?null:e.close(t)}]}},"el-input",[e.$props,e.$attrs],!1),[e.$slots.prepend?i("template",{slot:"prepend"},[e._t("prepend")],2):e._e(),e.$slots.append?i("template",{slot:"append"},[e._t("append")],2):e._e(),e.$slots.prefix?i("template",{slot:"prefix"},[e._t("prefix")],2):e._e(),e.$slots.suffix?i("template",{slot:"suffix"},[e._t("suffix")],2):e._e()],2),i("el-autocomplete-suggestions",{ref:"suggestions",class:[e.popperClass?e.popperClass:""],attrs:{"visible-arrow":"","popper-options":e.popperOptions,"append-to-body":e.popperAppendToBody,placement:e.placement,id:e.id}},e._l(e.suggestions,(function(t,n){return i("li",{key:n,class:{highlighted:e.highlightedIndex===n},attrs:{id:e.id+"-item-"+n,role:"option","aria-selected":e.highlightedIndex===n},on:{click:function(i){e.select(t)}}},[e._t("default",[e._v("\n "+e._s(t[e.valueKey])+"\n ")],{item:t})],2)})),0)],1)};E._withStripped=!0;var T=i(16),$=i.n(T),P=i(10),j=i.n(P),M=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("transition",{attrs:{name:"el-zoom-in-top"},on:{"after-leave":e.doDestroy}},[i("div",{directives:[{name:"show",rawName:"v-show",value:e.showPopper,expression:"showPopper"}],staticClass:"el-autocomplete-suggestion el-popper",class:{"is-loading":!e.parent.hideLoading&&e.parent.loading},style:{width:e.dropdownWidth},attrs:{role:"region"}},[i("el-scrollbar",{attrs:{tag:"ul","wrap-class":"el-autocomplete-suggestion__wrap","view-class":"el-autocomplete-suggestion__list"}},[!e.parent.hideLoading&&e.parent.loading?i("li",[i("i",{staticClass:"el-icon-loading"})]):e._t("default")],2)],1)])};M._withStripped=!0;var I=i(5),A=i.n(I),N=i(18),L=i.n(N),F=r({components:{ElScrollbar:L.a},mixins:[A.a,C.a],componentName:"ElAutocompleteSuggestions",data:function(){return{parent:this.$parent,dropdownWidth:""}},props:{options:{default:function(){return{gpuAcceleration:!1}}},id:String},methods:{select:function(e){this.dispatch("ElAutocomplete","item-click",e)}},updated:function(){var e=this;this.$nextTick((function(t){e.popperJS&&e.updatePopper()}))},mounted:function(){this.$parent.popperElm=this.popperElm=this.$el,this.referenceElm=this.$parent.$refs.input.$refs.input||this.$parent.$refs.input.$refs.textarea,this.referenceList=this.$el.querySelector(".el-autocomplete-suggestion__list"),this.referenceList.setAttribute("role","listbox"),this.referenceList.setAttribute("id",this.id)},created:function(){var e=this;this.$on("visible",(function(t,i){e.dropdownWidth=i+"px",e.showPopper=t}))}},M,[],!1,null,null,null);F.options.__file="packages/autocomplete/src/autocomplete-suggestions.vue";var V=F.exports,z=i(23),R=i.n(z),B=r({name:"ElAutocomplete",mixins:[C.a,R()("input"),k.a],inheritAttrs:!1,componentName:"ElAutocomplete",components:{ElInput:h.a,ElAutocompleteSuggestions:V},directives:{Clickoutside:j.a},props:{valueKey:{type:String,default:"value"},popperClass:String,popperOptions:Object,placeholder:String,clearable:{type:Boolean,default:!1},disabled:Boolean,name:String,size:String,value:String,maxlength:Number,minlength:Number,autofocus:Boolean,fetchSuggestions:Function,triggerOnFocus:{type:Boolean,default:!0},customItem:String,selectWhenUnmatched:{type:Boolean,default:!1},prefixIcon:String,suffixIcon:String,label:String,debounce:{type:Number,default:300},placement:{type:String,default:"bottom-start"},hideLoading:Boolean,popperAppendToBody:{type:Boolean,default:!0},highlightFirstItem:{type:Boolean,default:!1}},data:function(){return{activated:!1,suggestions:[],loading:!1,highlightedIndex:-1,suggestionDisabled:!1}},computed:{suggestionVisible:function(){var e=this.suggestions;return(Array.isArray(e)&&e.length>0||this.loading)&&this.activated},id:function(){return"el-autocomplete-"+Object(m.generateId)()}},watch:{suggestionVisible:function(e){var t=this.getInput();t&&this.broadcast("ElAutocompleteSuggestions","visible",[e,t.offsetWidth])}},methods:{getMigratingConfig:function(){return{props:{"custom-item":"custom-item is removed, use scoped slot instead.",props:"props is removed, use value-key instead."}}},getData:function(e){var t=this;this.suggestionDisabled||(this.loading=!0,this.fetchSuggestions(e,(function(e){t.loading=!1,t.suggestionDisabled||(Array.isArray(e)?(t.suggestions=e,t.highlightedIndex=t.highlightFirstItem?0:-1):console.error("[Element Error][Autocomplete]autocomplete suggestions must be an array"))})))},handleInput:function(e){if(this.$emit("input",e),this.suggestionDisabled=!1,!this.triggerOnFocus&&!e)return this.suggestionDisabled=!0,void(this.suggestions=[]);this.debouncedGetData(e)},handleChange:function(e){this.$emit("change",e)},handleFocus:function(e){this.activated=!0,this.$emit("focus",e),this.triggerOnFocus&&this.debouncedGetData(this.value)},handleBlur:function(e){this.$emit("blur",e)},handleClear:function(){this.activated=!1,this.$emit("clear")},close:function(e){this.activated=!1},handleKeyEnter:function(e){var t=this;this.suggestionVisible&&this.highlightedIndex>=0&&this.highlightedIndex=this.suggestions.length&&(e=this.suggestions.length-1);var t=this.$refs.suggestions.$el.querySelector(".el-autocomplete-suggestion__wrap"),i=t.querySelectorAll(".el-autocomplete-suggestion__list li")[e],n=t.scrollTop,r=i.offsetTop;r+i.scrollHeight>n+t.clientHeight&&(t.scrollTop+=i.scrollHeight),r=0&&this.resetTabindex(this.triggerElm),clearTimeout(this.timeout),this.timeout=setTimeout((function(){e.visible=!1}),"click"===this.trigger?0:this.hideTimeout))},handleClick:function(){this.disabled||(this.visible?this.hide():this.show())},handleTriggerKeyDown:function(e){var t=e.keyCode;[38,40].indexOf(t)>-1?(this.removeTabindex(),this.resetTabindex(this.menuItems[0]),this.menuItems[0].focus(),e.preventDefault(),e.stopPropagation()):13===t?this.handleClick():[9,27].indexOf(t)>-1&&this.hide()},handleItemKeyDown:function(e){var t=e.keyCode,i=e.target,n=this.menuItemsArray.indexOf(i),r=this.menuItemsArray.length-1,s=void 0;[38,40].indexOf(t)>-1?(s=38===t?0!==n?n-1:0:n-1&&(this.hide(),this.triggerElmFocus())},resetTabindex:function(e){this.removeTabindex(),e.setAttribute("tabindex","0")},removeTabindex:function(){this.triggerElm.setAttribute("tabindex","-1"),this.menuItemsArray.forEach((function(e){e.setAttribute("tabindex","-1")}))},initAria:function(){this.dropdownElm.setAttribute("id",this.listId),this.triggerElm.setAttribute("aria-haspopup","list"),this.triggerElm.setAttribute("aria-controls",this.listId),this.splitButton||(this.triggerElm.setAttribute("role","button"),this.triggerElm.setAttribute("tabindex",this.tabindex),this.triggerElm.setAttribute("class",(this.triggerElm.getAttribute("class")||"")+" el-dropdown-selfdefine"))},initEvent:function(){var e=this,t=this.trigger,i=this.show,n=this.hide,r=this.handleClick,s=this.splitButton,a=this.handleTriggerKeyDown,o=this.handleItemKeyDown;this.triggerElm=s?this.$refs.trigger.$el:this.$slots.default[0].elm;var l=this.dropdownElm;this.triggerElm.addEventListener("keydown",a),l.addEventListener("keydown",o,!0),s||(this.triggerElm.addEventListener("focus",(function(){e.focusing=!0})),this.triggerElm.addEventListener("blur",(function(){e.focusing=!1})),this.triggerElm.addEventListener("click",(function(){e.focusing=!1}))),"hover"===t?(this.triggerElm.addEventListener("mouseenter",i),this.triggerElm.addEventListener("mouseleave",n),l.addEventListener("mouseenter",i),l.addEventListener("mouseleave",n)):"click"===t&&this.triggerElm.addEventListener("click",r)},handleMenuItemClick:function(e,t){this.hideOnClick&&(this.visible=!1),this.$emit("command",e,t)},triggerElmFocus:function(){this.triggerElm.focus&&this.triggerElm.focus()},initDomOperation:function(){this.dropdownElm=this.popperElm,this.menuItems=this.dropdownElm.querySelectorAll("[tabindex='-1']"),this.menuItemsArray=[].slice.call(this.menuItems),this.initEvent(),this.initAria()}},render:function(e){var t=this,i=this.hide,n=this.splitButton,r=this.type,s=this.dropdownSize,a=this.disabled,o=null;if(n)o=e("el-button-group",[e("el-button",{attrs:{type:r,size:s,disabled:a},nativeOn:{click:function(e){t.$emit("click",e),i()}}},[this.$slots.default]),e("el-button",{ref:"trigger",attrs:{type:r,size:s,disabled:a},class:"el-dropdown__caret-button"},[e("i",{class:"el-dropdown__icon el-icon-arrow-down"})])]);else{var l=(o=this.$slots.default)[0].data||{},u=l.attrs,c=void 0===u?{}:u;a&&!c.disabled&&(c.disabled=!0,l.attrs=c)}var d=a?null:this.$slots.dropdown;return e("div",{class:"el-dropdown",directives:[{name:"clickoutside",value:i}],attrs:{"aria-disabled":a}},[o,d])}},void 0,void 0,!1,null,null,null);K.options.__file="packages/dropdown/src/dropdown.vue";var X=K.exports;X.install=function(e){e.component(X.name,X)};var Z=X,Q=function(){var e=this.$createElement,t=this._self._c||e;return t("transition",{attrs:{name:"el-zoom-in-top"},on:{"after-leave":this.doDestroy}},[t("ul",{directives:[{name:"show",rawName:"v-show",value:this.showPopper,expression:"showPopper"}],staticClass:"el-dropdown-menu el-popper",class:[this.size&&"el-dropdown-menu--"+this.size]},[this._t("default")],2)])};Q._withStripped=!0;var J=r({name:"ElDropdownMenu",componentName:"ElDropdownMenu",mixins:[A.a],props:{visibleArrow:{type:Boolean,default:!0},arrowOffset:{type:Number,default:0}},data:function(){return{size:this.dropdown.dropdownSize}},inject:["dropdown"],created:function(){var e=this;this.$on("updatePopper",(function(){e.showPopper&&e.updatePopper()})),this.$on("visible",(function(t){e.showPopper=t}))},mounted:function(){this.dropdown.popperElm=this.popperElm=this.$el,this.referenceElm=this.dropdown.$el,this.dropdown.initDomOperation()},watch:{"dropdown.placement":{immediate:!0,handler:function(e){this.currentPlacement=e}}}},Q,[],!1,null,null,null);J.options.__file="packages/dropdown/src/dropdown-menu.vue";var ee=J.exports;ee.install=function(e){e.component(ee.name,ee)};var te=ee,ie=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("li",{staticClass:"el-dropdown-menu__item",class:{"is-disabled":e.disabled,"el-dropdown-menu__item--divided":e.divided},attrs:{"aria-disabled":e.disabled,tabindex:e.disabled?null:-1},on:{click:e.handleClick}},[e.icon?i("i",{class:e.icon}):e._e(),e._t("default")],2)};ie._withStripped=!0;var ne=r({name:"ElDropdownItem",mixins:[C.a],props:{command:{},disabled:Boolean,divided:Boolean,icon:String},methods:{handleClick:function(e){this.dispatch("ElDropdown","menu-item-click",[this.command,this])}}},ie,[],!1,null,null,null);ne.options.__file="packages/dropdown/src/dropdown-item.vue";var re=ne.exports;re.install=function(e){e.component(re.name,re)};var se=re,ae=ae||{};ae.Utils=ae.Utils||{},ae.Utils.focusFirstDescendant=function(e){for(var t=0;t=0;t--){var i=e.childNodes[t];if(ae.Utils.attemptFocus(i)||ae.Utils.focusLastDescendant(i))return!0}return!1},ae.Utils.attemptFocus=function(e){if(!ae.Utils.isFocusable(e))return!1;ae.Utils.IgnoreUtilFocusChanges=!0;try{e.focus()}catch(e){}return ae.Utils.IgnoreUtilFocusChanges=!1,document.activeElement===e},ae.Utils.isFocusable=function(e){if(e.tabIndex>0||0===e.tabIndex&&null!==e.getAttribute("tabIndex"))return!0;if(e.disabled)return!1;switch(e.nodeName){case"A":return!!e.href&&"ignore"!==e.rel;case"INPUT":return"hidden"!==e.type&&"file"!==e.type;case"BUTTON":case"SELECT":case"TEXTAREA":return!0;default:return!1}},ae.Utils.triggerEvent=function(e,t){var i=void 0;i=/^mouse|click/.test(t)?"MouseEvents":/^key/.test(t)?"KeyboardEvent":"HTMLEvents";for(var n=document.createEvent(i),r=arguments.length,s=Array(r>2?r-2:0),a=2;a=0;t--)e.splice(t,0,e[t]);e=e.join("")}return/^[0-9a-fA-F]{6}$/.test(e)?{red:parseInt(e.slice(0,2),16),green:parseInt(e.slice(2,4),16),blue:parseInt(e.slice(4,6),16)}:{red:255,green:255,blue:255}},mixColor:function(e,t){var i=this.getColorChannels(e),n=i.red,r=i.green,s=i.blue;return t>0?(n*=1-t,r*=1-t,s*=1-t):(n+=(255-n)*t,r+=(255-r)*t,s+=(255-s)*t),"rgb("+Math.round(n)+", "+Math.round(r)+", "+Math.round(s)+")"},addItem:function(e){this.$set(this.items,e.index,e)},removeItem:function(e){delete this.items[e.index]},addSubmenu:function(e){this.$set(this.submenus,e.index,e)},removeSubmenu:function(e){delete this.submenus[e.index]},openMenu:function(e,t){var i=this.openedMenus;-1===i.indexOf(e)&&(this.uniqueOpened&&(this.openedMenus=i.filter((function(e){return-1!==t.indexOf(e)}))),this.openedMenus.push(e))},closeMenu:function(e){var t=this.openedMenus.indexOf(e);-1!==t&&this.openedMenus.splice(t,1)},handleSubmenuClick:function(e){var t=e.index,i=e.indexPath;-1!==this.openedMenus.indexOf(t)?(this.closeMenu(t),this.$emit("close",t,i)):(this.openMenu(t,i),this.$emit("open",t,i))},handleItemClick:function(e){var t=this,i=e.index,n=e.indexPath,r=this.activeIndex,s=null!==e.index;s&&(this.activeIndex=e.index),this.$emit("select",i,n,e),("horizontal"===this.mode||this.collapse)&&(this.openedMenus=[]),this.router&&s&&this.routeToItem(e,(function(e){if(t.activeIndex=r,e){if("NavigationDuplicated"===e.name)return;console.error(e)}}))},initOpenedMenu:function(){var e=this,t=this.activeIndex,i=this.items[t];i&&"horizontal"!==this.mode&&!this.collapse&&i.indexPath.forEach((function(t){var i=e.submenus[t];i&&e.openMenu(t,i.indexPath)}))},routeToItem:function(e,t){var i=e.route||e.index;try{this.$router.push(i,(function(){}),t)}catch(e){console.error(e)}},open:function(e){var t=this,i=this.submenus[e.toString()].indexPath;i.forEach((function(e){return t.openMenu(e,i)}))},close:function(e){this.closeMenu(e)}},mounted:function(){this.initOpenedMenu(),this.$on("item-click",this.handleItemClick),this.$on("submenu-click",this.handleSubmenuClick),"horizontal"===this.mode&&new pe(this.$el),this.$watch("items",this.updateActiveIndex)}},void 0,void 0,!1,null,null,null);me.options.__file="packages/menu/src/menu.vue";var ve=me.exports;ve.install=function(e){e.component(ve.name,ve)};var ge=ve,_e=i(21),be=i.n(_e),ye={inject:["rootMenu"],computed:{indexPath:function(){for(var e=[this.index],t=this.$parent;"ElMenu"!==t.$options.componentName;)t.index&&e.unshift(t.index),t=t.$parent;return e},parentMenu:function(){for(var e=this.$parent;e&&-1===["ElMenu","ElSubmenu"].indexOf(e.$options.componentName);)e=e.$parent;return e},paddingStyle:function(){if("vertical"!==this.rootMenu.mode)return{};var e=20,t=this.$parent;if(this.rootMenu.collapse)e=20;else for(;t&&"ElMenu"!==t.$options.componentName;)"ElSubmenu"===t.$options.componentName&&(e+=20),t=t.$parent;return{paddingLeft:e+"px"}}}},xe={props:{transformOrigin:{type:[Boolean,String],default:!1},offset:A.a.props.offset,boundariesPadding:A.a.props.boundariesPadding,popperOptions:A.a.props.popperOptions},data:A.a.data,methods:A.a.methods,beforeDestroy:A.a.beforeDestroy,deactivated:A.a.deactivated},ke=r({name:"ElSubmenu",componentName:"ElSubmenu",mixins:[ye,C.a,xe],components:{ElCollapseTransition:be.a},props:{index:{type:String,required:!0},showTimeout:{type:Number,default:300},hideTimeout:{type:Number,default:300},popperClass:String,disabled:Boolean,popperAppendToBody:{type:Boolean,default:void 0}},data:function(){return{popperJS:null,timeout:null,items:{},submenus:{},mouseInChild:!1}},watch:{opened:function(e){var t=this;this.isMenuPopup&&this.$nextTick((function(e){t.updatePopper()}))}},computed:{appendToBody:function(){return void 0===this.popperAppendToBody?this.isFirstLevel:this.popperAppendToBody},menuTransitionName:function(){return this.rootMenu.collapse?"el-zoom-in-left":"el-zoom-in-top"},opened:function(){return this.rootMenu.openedMenus.indexOf(this.index)>-1},active:function(){var e=!1,t=this.submenus,i=this.items;return Object.keys(i).forEach((function(t){i[t].active&&(e=!0)})),Object.keys(t).forEach((function(i){t[i].active&&(e=!0)})),e},hoverBackground:function(){return this.rootMenu.hoverBackground},backgroundColor:function(){return this.rootMenu.backgroundColor||""},activeTextColor:function(){return this.rootMenu.activeTextColor||""},textColor:function(){return this.rootMenu.textColor||""},mode:function(){return this.rootMenu.mode},isMenuPopup:function(){return this.rootMenu.isMenuPopup},titleStyle:function(){return"horizontal"!==this.mode?{color:this.textColor}:{borderBottomColor:this.active?this.rootMenu.activeTextColor?this.activeTextColor:"":"transparent",color:this.active?this.activeTextColor:this.textColor}},isFirstLevel:function(){for(var e=!0,t=this.$parent;t&&t!==this.rootMenu;){if(["ElSubmenu","ElMenuItemGroup"].indexOf(t.$options.componentName)>-1){e=!1;break}t=t.$parent}return e}},methods:{handleCollapseToggle:function(e){e?this.initPopper():this.doDestroy()},addItem:function(e){this.$set(this.items,e.index,e)},removeItem:function(e){delete this.items[e.index]},addSubmenu:function(e){this.$set(this.submenus,e.index,e)},removeSubmenu:function(e){delete this.submenus[e.index]},handleClick:function(){var e=this.rootMenu,t=this.disabled;"hover"===e.menuTrigger&&"horizontal"===e.mode||e.collapse&&"vertical"===e.mode||t||this.dispatch("ElMenu","submenu-click",this)},handleMouseenter:function(e){var t=this,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.showTimeout;if("ActiveXObject"in window||"focus"!==e.type||e.relatedTarget){var n=this.rootMenu,r=this.disabled;"click"===n.menuTrigger&&"horizontal"===n.mode||!n.collapse&&"vertical"===n.mode||r||(this.dispatch("ElSubmenu","mouse-enter-child"),clearTimeout(this.timeout),this.timeout=setTimeout((function(){t.rootMenu.openMenu(t.index,t.indexPath)}),i),this.appendToBody&&this.$parent.$el.dispatchEvent(new MouseEvent("mouseenter")))}},handleMouseleave:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]&&arguments[0],i=this.rootMenu;"click"===i.menuTrigger&&"horizontal"===i.mode||!i.collapse&&"vertical"===i.mode||(this.dispatch("ElSubmenu","mouse-leave-child"),clearTimeout(this.timeout),this.timeout=setTimeout((function(){!e.mouseInChild&&e.rootMenu.closeMenu(e.index)}),this.hideTimeout),this.appendToBody&&t&&"ElSubmenu"===this.$parent.$options.name&&this.$parent.handleMouseleave(!0))},handleTitleMouseenter:function(){if("horizontal"!==this.mode||this.rootMenu.backgroundColor){var e=this.$refs["submenu-title"];e&&(e.style.backgroundColor=this.rootMenu.hoverBackground)}},handleTitleMouseleave:function(){if("horizontal"!==this.mode||this.rootMenu.backgroundColor){var e=this.$refs["submenu-title"];e&&(e.style.backgroundColor=this.rootMenu.backgroundColor||"")}},updatePlacement:function(){this.currentPlacement="horizontal"===this.mode&&this.isFirstLevel?"bottom-start":"right-start"},initPopper:function(){this.referenceElm=this.$el,this.popperElm=this.$refs.menu,this.updatePlacement()}},created:function(){var e=this;this.$on("toggle-collapse",this.handleCollapseToggle),this.$on("mouse-enter-child",(function(){e.mouseInChild=!0,clearTimeout(e.timeout)})),this.$on("mouse-leave-child",(function(){e.mouseInChild=!1,clearTimeout(e.timeout)}))},mounted:function(){this.parentMenu.addSubmenu(this),this.rootMenu.addSubmenu(this),this.initPopper()},beforeDestroy:function(){this.parentMenu.removeSubmenu(this),this.rootMenu.removeSubmenu(this)},render:function(e){var t=this,i=this.active,n=this.opened,r=this.paddingStyle,s=this.titleStyle,a=this.backgroundColor,o=this.rootMenu,l=this.currentPlacement,u=this.menuTransitionName,c=this.mode,d=this.disabled,h=this.popperClass,p=this.$slots,f=this.isFirstLevel,m=e("transition",{attrs:{name:u}},[e("div",{ref:"menu",directives:[{name:"show",value:n}],class:["el-menu--"+c,h],on:{mouseenter:function(e){return t.handleMouseenter(e,100)},mouseleave:function(){return t.handleMouseleave(!0)},focus:function(e){return t.handleMouseenter(e,100)}}},[e("ul",{attrs:{role:"menu"},class:["el-menu el-menu--popup","el-menu--popup-"+l],style:{backgroundColor:o.backgroundColor||""}},[p.default])])]),v=e("el-collapse-transition",[e("ul",{attrs:{role:"menu"},class:"el-menu el-menu--inline",directives:[{name:"show",value:n}],style:{backgroundColor:o.backgroundColor||""}},[p.default])]),g="horizontal"===o.mode&&f||"vertical"===o.mode&&!o.collapse?"el-icon-arrow-down":"el-icon-arrow-right";return e("li",{class:{"el-submenu":!0,"is-active":i,"is-opened":n,"is-disabled":d},attrs:{role:"menuitem","aria-haspopup":"true","aria-expanded":n},on:{mouseenter:this.handleMouseenter,mouseleave:function(){return t.handleMouseleave(!1)},focus:this.handleMouseenter}},[e("div",{class:"el-submenu__title",ref:"submenu-title",on:{click:this.handleClick,mouseenter:this.handleTitleMouseenter,mouseleave:this.handleTitleMouseleave},style:[r,s,{backgroundColor:a}]},[p.title,e("i",{class:["el-submenu__icon-arrow",g]})]),this.isMenuPopup?m:v])}},void 0,void 0,!1,null,null,null);ke.options.__file="packages/menu/src/submenu.vue";var we=ke.exports;we.install=function(e){e.component(we.name,we)};var Ce=we,Se=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("li",{staticClass:"el-menu-item",class:{"is-active":e.active,"is-disabled":e.disabled},style:[e.paddingStyle,e.itemStyle,{backgroundColor:e.backgroundColor}],attrs:{role:"menuitem",tabindex:"-1"},on:{click:e.handleClick,mouseenter:e.onMouseEnter,focus:e.onMouseEnter,blur:e.onMouseLeave,mouseleave:e.onMouseLeave}},["ElMenu"===e.parentMenu.$options.componentName&&e.rootMenu.collapse&&e.$slots.title?i("el-tooltip",{attrs:{effect:"dark",placement:"right"}},[i("div",{attrs:{slot:"content"},slot:"content"},[e._t("title")],2),i("div",{staticStyle:{position:"absolute",left:"0",top:"0",height:"100%",width:"100%",display:"inline-block","box-sizing":"border-box",padding:"0 20px"}},[e._t("default")],2)]):[e._t("default"),e._t("title")]],2)};Se._withStripped=!0;var Oe=i(26),De=i.n(Oe),Ee=r({name:"ElMenuItem",componentName:"ElMenuItem",mixins:[ye,C.a],components:{ElTooltip:De.a},props:{index:{default:null,validator:function(e){return"string"==typeof e||null===e}},route:[String,Object],disabled:Boolean},computed:{active:function(){return this.index===this.rootMenu.activeIndex},hoverBackground:function(){return this.rootMenu.hoverBackground},backgroundColor:function(){return this.rootMenu.backgroundColor||""},activeTextColor:function(){return this.rootMenu.activeTextColor||""},textColor:function(){return this.rootMenu.textColor||""},mode:function(){return this.rootMenu.mode},itemStyle:function(){var e={color:this.active?this.activeTextColor:this.textColor};return"horizontal"!==this.mode||this.isNested||(e.borderBottomColor=this.active?this.rootMenu.activeTextColor?this.activeTextColor:"":"transparent"),e},isNested:function(){return this.parentMenu!==this.rootMenu}},methods:{onMouseEnter:function(){("horizontal"!==this.mode||this.rootMenu.backgroundColor)&&(this.$el.style.backgroundColor=this.hoverBackground)},onMouseLeave:function(){("horizontal"!==this.mode||this.rootMenu.backgroundColor)&&(this.$el.style.backgroundColor=this.backgroundColor)},handleClick:function(){this.disabled||(this.dispatch("ElMenu","item-click",this),this.$emit("click",this))}},mounted:function(){this.parentMenu.addItem(this),this.rootMenu.addItem(this)},beforeDestroy:function(){this.parentMenu.removeItem(this),this.rootMenu.removeItem(this)}},Se,[],!1,null,null,null);Ee.options.__file="packages/menu/src/menu-item.vue";var Te=Ee.exports;Te.install=function(e){e.component(Te.name,Te)};var $e=Te,Pe=function(){var e=this.$createElement,t=this._self._c||e;return t("li",{staticClass:"el-menu-item-group"},[t("div",{staticClass:"el-menu-item-group__title",style:{paddingLeft:this.levelPadding+"px"}},[this.$slots.title?this._t("title"):[this._v(this._s(this.title))]],2),t("ul",[this._t("default")],2)])};Pe._withStripped=!0;var je=r({name:"ElMenuItemGroup",componentName:"ElMenuItemGroup",inject:["rootMenu"],props:{title:{type:String}},data:function(){return{paddingLeft:20}},computed:{levelPadding:function(){var e=20,t=this.$parent;if(this.rootMenu.collapse)return 20;for(;t&&"ElMenu"!==t.$options.componentName;)"ElSubmenu"===t.$options.componentName&&(e+=20),t=t.$parent;return e}}},Pe,[],!1,null,null,null);je.options.__file="packages/menu/src/menu-item-group.vue";var Me=je.exports;Me.install=function(e){e.component(Me.name,Me)};var Ie=Me,Ae=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{class:["textarea"===e.type?"el-textarea":"el-input",e.inputSize?"el-input--"+e.inputSize:"",{"is-disabled":e.inputDisabled,"is-exceed":e.inputExceed,"el-input-group":e.$slots.prepend||e.$slots.append,"el-input-group--append":e.$slots.append,"el-input-group--prepend":e.$slots.prepend,"el-input--prefix":e.$slots.prefix||e.prefixIcon,"el-input--suffix":e.$slots.suffix||e.suffixIcon||e.clearable||e.showPassword}],on:{mouseenter:function(t){e.hovering=!0},mouseleave:function(t){e.hovering=!1}}},["textarea"!==e.type?[e.$slots.prepend?i("div",{staticClass:"el-input-group__prepend"},[e._t("prepend")],2):e._e(),"textarea"!==e.type?i("input",e._b({ref:"input",staticClass:"el-input__inner",attrs:{tabindex:e.tabindex,type:e.showPassword?e.passwordVisible?"text":"password":e.type,disabled:e.inputDisabled,readonly:e.readonly,autocomplete:e.autoComplete||e.autocomplete,"aria-label":e.label},on:{compositionstart:e.handleCompositionStart,compositionupdate:e.handleCompositionUpdate,compositionend:e.handleCompositionEnd,input:e.handleInput,focus:e.handleFocus,blur:e.handleBlur,change:e.handleChange}},"input",e.$attrs,!1)):e._e(),e.$slots.prefix||e.prefixIcon?i("span",{staticClass:"el-input__prefix"},[e._t("prefix"),e.prefixIcon?i("i",{staticClass:"el-input__icon",class:e.prefixIcon}):e._e()],2):e._e(),e.getSuffixVisible()?i("span",{staticClass:"el-input__suffix"},[i("span",{staticClass:"el-input__suffix-inner"},[e.showClear&&e.showPwdVisible&&e.isWordLimitVisible?e._e():[e._t("suffix"),e.suffixIcon?i("i",{staticClass:"el-input__icon",class:e.suffixIcon}):e._e()],e.showClear?i("i",{staticClass:"el-input__icon el-icon-circle-close el-input__clear",on:{mousedown:function(e){e.preventDefault()},click:e.clear}}):e._e(),e.showPwdVisible?i("i",{staticClass:"el-input__icon el-icon-view el-input__clear",on:{click:e.handlePasswordVisible}}):e._e(),e.isWordLimitVisible?i("span",{staticClass:"el-input__count"},[i("span",{staticClass:"el-input__count-inner"},[e._v("\n "+e._s(e.textLength)+"/"+e._s(e.upperLimit)+"\n ")])]):e._e()],2),e.validateState?i("i",{staticClass:"el-input__icon",class:["el-input__validateIcon",e.validateIcon]}):e._e()]):e._e(),e.$slots.append?i("div",{staticClass:"el-input-group__append"},[e._t("append")],2):e._e()]:i("textarea",e._b({ref:"textarea",staticClass:"el-textarea__inner",style:e.textareaStyle,attrs:{tabindex:e.tabindex,disabled:e.inputDisabled,readonly:e.readonly,autocomplete:e.autoComplete||e.autocomplete,"aria-label":e.label},on:{compositionstart:e.handleCompositionStart,compositionupdate:e.handleCompositionUpdate,compositionend:e.handleCompositionEnd,input:e.handleInput,focus:e.handleFocus,blur:e.handleBlur,change:e.handleChange}},"textarea",e.$attrs,!1)),e.isWordLimitVisible&&"textarea"===e.type?i("span",{staticClass:"el-input__count"},[e._v(e._s(e.textLength)+"/"+e._s(e.upperLimit))]):e._e()],2)};Ae._withStripped=!0;var Ne=void 0,Le="\n height:0 !important;\n visibility:hidden !important;\n overflow:hidden !important;\n position:absolute !important;\n z-index:-1000 !important;\n top:0 !important;\n right:0 !important\n",Fe=["letter-spacing","line-height","padding-top","padding-bottom","font-family","font-weight","font-size","text-rendering","text-transform","width","text-indent","padding-left","padding-right","border-width","box-sizing"];function Ve(e){var t=window.getComputedStyle(e),i=t.getPropertyValue("box-sizing"),n=parseFloat(t.getPropertyValue("padding-bottom"))+parseFloat(t.getPropertyValue("padding-top")),r=parseFloat(t.getPropertyValue("border-bottom-width"))+parseFloat(t.getPropertyValue("border-top-width"));return{contextStyle:Fe.map((function(e){return e+":"+t.getPropertyValue(e)})).join(";"),paddingSize:n,borderSize:r,boxSizing:i}}function ze(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;Ne||(Ne=document.createElement("textarea"),document.body.appendChild(Ne));var n=Ve(e),r=n.paddingSize,s=n.borderSize,a=n.boxSizing,o=n.contextStyle;Ne.setAttribute("style",o+";"+Le),Ne.value=e.value||e.placeholder||"";var l=Ne.scrollHeight,u={};"border-box"===a?l+=s:"content-box"===a&&(l-=r),Ne.value="";var c=Ne.scrollHeight-r;if(null!==t){var d=c*t;"border-box"===a&&(d=d+r+s),l=Math.max(d,l),u.minHeight=d+"px"}if(null!==i){var h=c*i;"border-box"===a&&(h=h+r+s),l=Math.min(h,l)}return u.height=l+"px",Ne.parentNode&&Ne.parentNode.removeChild(Ne),Ne=null,u}var Re=i(7),Be=i.n(Re),He=i(19),We=r({name:"ElInput",componentName:"ElInput",mixins:[C.a,k.a],inheritAttrs:!1,inject:{elForm:{default:""},elFormItem:{default:""}},data:function(){return{textareaCalcStyle:{},hovering:!1,focused:!1,isComposing:!1,passwordVisible:!1}},props:{value:[String,Number],size:String,resize:String,form:String,disabled:Boolean,readonly:Boolean,type:{type:String,default:"text"},autosize:{type:[Boolean,Object],default:!1},autocomplete:{type:String,default:"off"},autoComplete:{type:String,validator:function(e){return!0}},validateEvent:{type:Boolean,default:!0},suffixIcon:String,prefixIcon:String,label:String,clearable:{type:Boolean,default:!1},showPassword:{type:Boolean,default:!1},showWordLimit:{type:Boolean,default:!1},tabindex:String},computed:{_elFormItemSize:function(){return(this.elFormItem||{}).elFormItemSize},validateState:function(){return this.elFormItem?this.elFormItem.validateState:""},needStatusIcon:function(){return!!this.elForm&&this.elForm.statusIcon},validateIcon:function(){return{validating:"el-icon-loading",success:"el-icon-circle-check",error:"el-icon-circle-close"}[this.validateState]},textareaStyle:function(){return Be()({},this.textareaCalcStyle,{resize:this.resize})},inputSize:function(){return this.size||this._elFormItemSize||(this.$ELEMENT||{}).size},inputDisabled:function(){return this.disabled||(this.elForm||{}).disabled},nativeInputValue:function(){return null===this.value||void 0===this.value?"":String(this.value)},showClear:function(){return this.clearable&&!this.inputDisabled&&!this.readonly&&this.nativeInputValue&&(this.focused||this.hovering)},showPwdVisible:function(){return this.showPassword&&!this.inputDisabled&&!this.readonly&&(!!this.nativeInputValue||this.focused)},isWordLimitVisible:function(){return this.showWordLimit&&this.$attrs.maxlength&&("text"===this.type||"textarea"===this.type)&&!this.inputDisabled&&!this.readonly&&!this.showPassword},upperLimit:function(){return this.$attrs.maxlength},textLength:function(){return"number"==typeof this.value?String(this.value).length:(this.value||"").length},inputExceed:function(){return this.isWordLimitVisible&&this.textLength>this.upperLimit}},watch:{value:function(e){this.$nextTick(this.resizeTextarea),this.validateEvent&&this.dispatch("ElFormItem","el.form.change",[e])},nativeInputValue:function(){this.setNativeInputValue()},type:function(){var e=this;this.$nextTick((function(){e.setNativeInputValue(),e.resizeTextarea(),e.updateIconOffset()}))}},methods:{focus:function(){this.getInput().focus()},blur:function(){this.getInput().blur()},getMigratingConfig:function(){return{props:{icon:"icon is removed, use suffix-icon / prefix-icon instead.","on-icon-click":"on-icon-click is removed."},events:{click:"click is removed."}}},handleBlur:function(e){this.focused=!1,this.$emit("blur",e),this.validateEvent&&this.dispatch("ElFormItem","el.form.blur",[this.value])},select:function(){this.getInput().select()},resizeTextarea:function(){if(!this.$isServer){var e=this.autosize;if("textarea"===this.type)if(e){var t=e.minRows,i=e.maxRows;this.textareaCalcStyle=ze(this.$refs.textarea,t,i)}else this.textareaCalcStyle={minHeight:ze(this.$refs.textarea).minHeight}}},setNativeInputValue:function(){var e=this.getInput();e&&e.value!==this.nativeInputValue&&(e.value=this.nativeInputValue)},handleFocus:function(e){this.focused=!0,this.$emit("focus",e)},handleCompositionStart:function(){this.isComposing=!0},handleCompositionUpdate:function(e){var t=e.target.value,i=t[t.length-1]||"";this.isComposing=!Object(He.isKorean)(i)},handleCompositionEnd:function(e){this.isComposing&&(this.isComposing=!1,this.handleInput(e))},handleInput:function(e){this.isComposing||e.target.value!==this.nativeInputValue&&(this.$emit("input",e.target.value),this.$nextTick(this.setNativeInputValue))},handleChange:function(e){this.$emit("change",e.target.value)},calcIconOffset:function(e){var t=[].slice.call(this.$el.querySelectorAll(".el-input__"+e)||[]);if(t.length){for(var i=null,n=0;n=0&&e===parseInt(e,10)}}},data:function(){return{currentValue:0,userInput:null}},watch:{value:{immediate:!0,handler:function(e){var t=void 0===e?e:Number(e);if(void 0!==t){if(isNaN(t))return;if(this.stepStrictly){var i=this.getPrecision(this.step),n=Math.pow(10,i);t=Math.round(t/this.step)*n*this.step/n}void 0!==this.precision&&(t=this.toPrecision(t,this.precision))}t>=this.max&&(t=this.max),t<=this.min&&(t=this.min),this.currentValue=t,this.userInput=null,this.$emit("input",t)}}},computed:{minDisabled:function(){return this._decrease(this.value,this.step)this.max},numPrecision:function(){var e=this.value,t=this.step,i=this.getPrecision,n=this.precision,r=i(t);return void 0!==n?(r>n&&console.warn("[Element Warn][InputNumber]precision should not be less than the decimal places of step"),n):Math.max(i(e),r)},controlsAtRight:function(){return this.controls&&"right"===this.controlsPosition},_elFormItemSize:function(){return(this.elFormItem||{}).elFormItemSize},inputNumberSize:function(){return this.size||this._elFormItemSize||(this.$ELEMENT||{}).size},inputNumberDisabled:function(){return this.disabled||!!(this.elForm||{}).disabled},displayValue:function(){if(null!==this.userInput)return this.userInput;var e=this.currentValue;if("number"==typeof e){if(this.stepStrictly){var t=this.getPrecision(this.step),i=Math.pow(10,t);e=Math.round(e/this.step)*i*this.step/i}void 0!==this.precision&&(e=e.toFixed(this.precision))}return e}},methods:{toPrecision:function(e,t){return void 0===t&&(t=this.numPrecision),parseFloat(Math.round(e*Math.pow(10,t))/Math.pow(10,t))},getPrecision:function(e){if(void 0===e)return 0;var t=e.toString(),i=t.indexOf("."),n=0;return-1!==i&&(n=t.length-i-1),n},_increase:function(e,t){if("number"!=typeof e&&void 0!==e)return this.currentValue;var i=Math.pow(10,this.numPrecision);return this.toPrecision((i*e+i*t)/i)},_decrease:function(e,t){if("number"!=typeof e&&void 0!==e)return this.currentValue;var i=Math.pow(10,this.numPrecision);return this.toPrecision((i*e-i*t)/i)},increase:function(){if(!this.inputNumberDisabled&&!this.maxDisabled){var e=this.value||0,t=this._increase(e,this.step);this.setCurrentValue(t)}},decrease:function(){if(!this.inputNumberDisabled&&!this.minDisabled){var e=this.value||0,t=this._decrease(e,this.step);this.setCurrentValue(t)}},handleBlur:function(e){this.$emit("blur",e)},handleFocus:function(e){this.$emit("focus",e)},setCurrentValue:function(e){var t=this.currentValue;"number"==typeof e&&void 0!==this.precision&&(e=this.toPrecision(e,this.precision)),e>=this.max&&(e=this.max),e<=this.min&&(e=this.min),t!==e&&(this.userInput=null,this.$emit("input",e),this.$emit("change",e,t),this.currentValue=e)},handleInput:function(e){this.userInput=e},handleInputChange:function(e){var t=""===e?void 0:Number(e);isNaN(t)&&""!==e||this.setCurrentValue(t),this.userInput=null},select:function(){this.$refs.input.select()}},mounted:function(){var e=this.$refs.input.$refs.input;e.setAttribute("role","spinbutton"),e.setAttribute("aria-valuemax",this.max),e.setAttribute("aria-valuemin",this.min),e.setAttribute("aria-valuenow",this.currentValue),e.setAttribute("aria-disabled",this.inputNumberDisabled)},updated:function(){this.$refs&&this.$refs.input&&this.$refs.input.$refs.input.setAttribute("aria-valuenow",this.currentValue)}},Ge,[],!1,null,null,null);Ke.options.__file="packages/input-number/src/input-number.vue";var Xe=Ke.exports;Xe.install=function(e){e.component(Xe.name,Xe)};var Ze=Xe,Qe=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("label",{staticClass:"el-radio",class:[e.border&&e.radioSize?"el-radio--"+e.radioSize:"",{"is-disabled":e.isDisabled},{"is-focus":e.focus},{"is-bordered":e.border},{"is-checked":e.model===e.label}],attrs:{role:"radio","aria-checked":e.model===e.label,"aria-disabled":e.isDisabled,tabindex:e.tabIndex},on:{keydown:function(t){if(!("button"in t)&&e._k(t.keyCode,"space",32,t.key,[" ","Spacebar"]))return null;t.stopPropagation(),t.preventDefault(),e.model=e.isDisabled?e.model:e.label}}},[i("span",{staticClass:"el-radio__input",class:{"is-disabled":e.isDisabled,"is-checked":e.model===e.label}},[i("span",{staticClass:"el-radio__inner"}),i("input",{directives:[{name:"model",rawName:"v-model",value:e.model,expression:"model"}],ref:"radio",staticClass:"el-radio__original",attrs:{type:"radio","aria-hidden":"true",name:e.name,disabled:e.isDisabled,tabindex:"-1",autocomplete:"off"},domProps:{value:e.label,checked:e._q(e.model,e.label)},on:{focus:function(t){e.focus=!0},blur:function(t){e.focus=!1},change:[function(t){e.model=e.label},e.handleChange]}})]),i("span",{staticClass:"el-radio__label",on:{keydown:function(e){e.stopPropagation()}}},[e._t("default"),e.$slots.default?e._e():[e._v(e._s(e.label))]],2)])};Qe._withStripped=!0;var Je=r({name:"ElRadio",mixins:[C.a],inject:{elForm:{default:""},elFormItem:{default:""}},componentName:"ElRadio",props:{value:{},label:{},disabled:Boolean,name:String,border:Boolean,size:String},data:function(){return{focus:!1}},computed:{isGroup:function(){for(var e=this.$parent;e;){if("ElRadioGroup"===e.$options.componentName)return this._radioGroup=e,!0;e=e.$parent}return!1},model:{get:function(){return this.isGroup?this._radioGroup.value:this.value},set:function(e){this.isGroup?this.dispatch("ElRadioGroup","input",[e]):this.$emit("input",e),this.$refs.radio&&(this.$refs.radio.checked=this.model===this.label)}},_elFormItemSize:function(){return(this.elFormItem||{}).elFormItemSize},radioSize:function(){var e=this.size||this._elFormItemSize||(this.$ELEMENT||{}).size;return this.isGroup&&this._radioGroup.radioGroupSize||e},isDisabled:function(){return this.isGroup?this._radioGroup.disabled||this.disabled||(this.elForm||{}).disabled:this.disabled||(this.elForm||{}).disabled},tabIndex:function(){return this.isDisabled||this.isGroup&&this.model!==this.label?-1:0}},methods:{handleChange:function(){var e=this;this.$nextTick((function(){e.$emit("change",e.model),e.isGroup&&e.dispatch("ElRadioGroup","handleChange",e.model)}))}}},Qe,[],!1,null,null,null);Je.options.__file="packages/radio/src/radio.vue";var et=Je.exports;et.install=function(e){e.component(et.name,et)};var tt=et,it=function(){var e=this.$createElement;return(this._self._c||e)(this._elTag,{tag:"component",staticClass:"el-radio-group",attrs:{role:"radiogroup"},on:{keydown:this.handleKeydown}},[this._t("default")],2)};it._withStripped=!0;var nt=Object.freeze({LEFT:37,UP:38,RIGHT:39,DOWN:40}),rt=r({name:"ElRadioGroup",componentName:"ElRadioGroup",inject:{elFormItem:{default:""}},mixins:[C.a],props:{value:{},size:String,fill:String,textColor:String,disabled:Boolean},computed:{_elFormItemSize:function(){return(this.elFormItem||{}).elFormItemSize},_elTag:function(){var e=(this.$vnode.data||{}).tag;return e&&"component"!==e||(e="div"),e},radioGroupSize:function(){return this.size||this._elFormItemSize||(this.$ELEMENT||{}).size}},created:function(){var e=this;this.$on("handleChange",(function(t){e.$emit("change",t)}))},mounted:function(){var e=this.$el.querySelectorAll("[type=radio]"),t=this.$el.querySelectorAll("[role=radio]")[0];![].some.call(e,(function(e){return e.checked}))&&t&&(t.tabIndex=0)},methods:{handleKeydown:function(e){var t=e.target,i="INPUT"===t.nodeName?"[type=radio]":"[role=radio]",n=this.$el.querySelectorAll(i),r=n.length,s=[].indexOf.call(n,t),a=this.$el.querySelectorAll("[role=radio]");switch(e.keyCode){case nt.LEFT:case nt.UP:e.stopPropagation(),e.preventDefault(),0===s?(a[r-1].click(),a[r-1].focus()):(a[s-1].click(),a[s-1].focus());break;case nt.RIGHT:case nt.DOWN:s===r-1?(e.stopPropagation(),e.preventDefault(),a[0].click(),a[0].focus()):(a[s+1].click(),a[s+1].focus())}}},watch:{value:function(e){this.dispatch("ElFormItem","el.form.change",[this.value])}}},it,[],!1,null,null,null);rt.options.__file="packages/radio/src/radio-group.vue";var st=rt.exports;st.install=function(e){e.component(st.name,st)};var at=st,ot=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("label",{staticClass:"el-radio-button",class:[e.size?"el-radio-button--"+e.size:"",{"is-active":e.value===e.label},{"is-disabled":e.isDisabled},{"is-focus":e.focus}],attrs:{role:"radio","aria-checked":e.value===e.label,"aria-disabled":e.isDisabled,tabindex:e.tabIndex},on:{keydown:function(t){if(!("button"in t)&&e._k(t.keyCode,"space",32,t.key,[" ","Spacebar"]))return null;t.stopPropagation(),t.preventDefault(),e.value=e.isDisabled?e.value:e.label}}},[i("input",{directives:[{name:"model",rawName:"v-model",value:e.value,expression:"value"}],staticClass:"el-radio-button__orig-radio",attrs:{type:"radio",name:e.name,disabled:e.isDisabled,tabindex:"-1",autocomplete:"off"},domProps:{value:e.label,checked:e._q(e.value,e.label)},on:{change:[function(t){e.value=e.label},e.handleChange],focus:function(t){e.focus=!0},blur:function(t){e.focus=!1}}}),i("span",{staticClass:"el-radio-button__inner",style:e.value===e.label?e.activeStyle:null,on:{keydown:function(e){e.stopPropagation()}}},[e._t("default"),e.$slots.default?e._e():[e._v(e._s(e.label))]],2)])};ot._withStripped=!0;var lt=r({name:"ElRadioButton",mixins:[C.a],inject:{elForm:{default:""},elFormItem:{default:""}},props:{label:{},disabled:Boolean,name:String},data:function(){return{focus:!1}},computed:{value:{get:function(){return this._radioGroup.value},set:function(e){this._radioGroup.$emit("input",e)}},_radioGroup:function(){for(var e=this.$parent;e;){if("ElRadioGroup"===e.$options.componentName)return e;e=e.$parent}return!1},activeStyle:function(){return{backgroundColor:this._radioGroup.fill||"",borderColor:this._radioGroup.fill||"",boxShadow:this._radioGroup.fill?"-1px 0 0 0 "+this._radioGroup.fill:"",color:this._radioGroup.textColor||""}},_elFormItemSize:function(){return(this.elFormItem||{}).elFormItemSize},size:function(){return this._radioGroup.radioGroupSize||this._elFormItemSize||(this.$ELEMENT||{}).size},isDisabled:function(){return this.disabled||this._radioGroup.disabled||(this.elForm||{}).disabled},tabIndex:function(){return this.isDisabled||this._radioGroup&&this.value!==this.label?-1:0}},methods:{handleChange:function(){var e=this;this.$nextTick((function(){e.dispatch("ElRadioGroup","handleChange",e.value)}))}}},ot,[],!1,null,null,null);lt.options.__file="packages/radio/src/radio-button.vue";var ut=lt.exports;ut.install=function(e){e.component(ut.name,ut)};var ct=ut,dt=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("label",{staticClass:"el-checkbox",class:[e.border&&e.checkboxSize?"el-checkbox--"+e.checkboxSize:"",{"is-disabled":e.isDisabled},{"is-bordered":e.border},{"is-checked":e.isChecked}],attrs:{id:e.id}},[i("span",{staticClass:"el-checkbox__input",class:{"is-disabled":e.isDisabled,"is-checked":e.isChecked,"is-indeterminate":e.indeterminate,"is-focus":e.focus},attrs:{tabindex:!!e.indeterminate&&0,role:!!e.indeterminate&&"checkbox","aria-checked":!!e.indeterminate&&"mixed"}},[i("span",{staticClass:"el-checkbox__inner"}),e.trueLabel||e.falseLabel?i("input",{directives:[{name:"model",rawName:"v-model",value:e.model,expression:"model"}],staticClass:"el-checkbox__original",attrs:{type:"checkbox","aria-hidden":e.indeterminate?"true":"false",name:e.name,disabled:e.isDisabled,"true-value":e.trueLabel,"false-value":e.falseLabel},domProps:{checked:Array.isArray(e.model)?e._i(e.model,null)>-1:e._q(e.model,e.trueLabel)},on:{change:[function(t){var i=e.model,n=t.target,r=n.checked?e.trueLabel:e.falseLabel;if(Array.isArray(i)){var s=e._i(i,null);n.checked?s<0&&(e.model=i.concat([null])):s>-1&&(e.model=i.slice(0,s).concat(i.slice(s+1)))}else e.model=r},e.handleChange],focus:function(t){e.focus=!0},blur:function(t){e.focus=!1}}}):i("input",{directives:[{name:"model",rawName:"v-model",value:e.model,expression:"model"}],staticClass:"el-checkbox__original",attrs:{type:"checkbox","aria-hidden":e.indeterminate?"true":"false",disabled:e.isDisabled,name:e.name},domProps:{value:e.label,checked:Array.isArray(e.model)?e._i(e.model,e.label)>-1:e.model},on:{change:[function(t){var i=e.model,n=t.target,r=!!n.checked;if(Array.isArray(i)){var s=e.label,a=e._i(i,s);n.checked?a<0&&(e.model=i.concat([s])):a>-1&&(e.model=i.slice(0,a).concat(i.slice(a+1)))}else e.model=r},e.handleChange],focus:function(t){e.focus=!0},blur:function(t){e.focus=!1}}})]),e.$slots.default||e.label?i("span",{staticClass:"el-checkbox__label"},[e._t("default"),e.$slots.default?e._e():[e._v(e._s(e.label))]],2):e._e()])};dt._withStripped=!0;var ht=r({name:"ElCheckbox",mixins:[C.a],inject:{elForm:{default:""},elFormItem:{default:""}},componentName:"ElCheckbox",data:function(){return{selfModel:!1,focus:!1,isLimitExceeded:!1}},computed:{model:{get:function(){return this.isGroup?this.store:void 0!==this.value?this.value:this.selfModel},set:function(e){this.isGroup?(this.isLimitExceeded=!1,void 0!==this._checkboxGroup.min&&e.lengththis._checkboxGroup.max&&(this.isLimitExceeded=!0),!1===this.isLimitExceeded&&this.dispatch("ElCheckboxGroup","input",[e])):(this.$emit("input",e),this.selfModel=e)}},isChecked:function(){return"[object Boolean]"==={}.toString.call(this.model)?this.model:Array.isArray(this.model)?this.model.indexOf(this.label)>-1:null!==this.model&&void 0!==this.model?this.model===this.trueLabel:void 0},isGroup:function(){for(var e=this.$parent;e;){if("ElCheckboxGroup"===e.$options.componentName)return this._checkboxGroup=e,!0;e=e.$parent}return!1},store:function(){return this._checkboxGroup?this._checkboxGroup.value:this.value},isLimitDisabled:function(){var e=this._checkboxGroup,t=e.max,i=e.min;return!(!t&&!i)&&this.model.length>=t&&!this.isChecked||this.model.length<=i&&this.isChecked},isDisabled:function(){return this.isGroup?this._checkboxGroup.disabled||this.disabled||(this.elForm||{}).disabled||this.isLimitDisabled:this.disabled||(this.elForm||{}).disabled},_elFormItemSize:function(){return(this.elFormItem||{}).elFormItemSize},checkboxSize:function(){var e=this.size||this._elFormItemSize||(this.$ELEMENT||{}).size;return this.isGroup&&this._checkboxGroup.checkboxGroupSize||e}},props:{value:{},label:{},indeterminate:Boolean,disabled:Boolean,checked:Boolean,name:String,trueLabel:[String,Number],falseLabel:[String,Number],id:String,controls:String,border:Boolean,size:String},methods:{addToStore:function(){Array.isArray(this.model)&&-1===this.model.indexOf(this.label)?this.model.push(this.label):this.model=this.trueLabel||!0},handleChange:function(e){var t=this;if(!this.isLimitExceeded){var i=void 0;i=e.target.checked?void 0===this.trueLabel||this.trueLabel:void 0!==this.falseLabel&&this.falseLabel,this.$emit("change",i,e),this.$nextTick((function(){t.isGroup&&t.dispatch("ElCheckboxGroup","change",[t._checkboxGroup.value])}))}}},created:function(){this.checked&&this.addToStore()},mounted:function(){this.indeterminate&&this.$el.setAttribute("aria-controls",this.controls)},watch:{value:function(e){this.dispatch("ElFormItem","el.form.change",e)}}},dt,[],!1,null,null,null);ht.options.__file="packages/checkbox/src/checkbox.vue";var pt=ht.exports;pt.install=function(e){e.component(pt.name,pt)};var ft=pt,mt=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("label",{staticClass:"el-checkbox-button",class:[e.size?"el-checkbox-button--"+e.size:"",{"is-disabled":e.isDisabled},{"is-checked":e.isChecked},{"is-focus":e.focus}],attrs:{role:"checkbox","aria-checked":e.isChecked,"aria-disabled":e.isDisabled}},[e.trueLabel||e.falseLabel?i("input",{directives:[{name:"model",rawName:"v-model",value:e.model,expression:"model"}],staticClass:"el-checkbox-button__original",attrs:{type:"checkbox",name:e.name,disabled:e.isDisabled,"true-value":e.trueLabel,"false-value":e.falseLabel},domProps:{checked:Array.isArray(e.model)?e._i(e.model,null)>-1:e._q(e.model,e.trueLabel)},on:{change:[function(t){var i=e.model,n=t.target,r=n.checked?e.trueLabel:e.falseLabel;if(Array.isArray(i)){var s=e._i(i,null);n.checked?s<0&&(e.model=i.concat([null])):s>-1&&(e.model=i.slice(0,s).concat(i.slice(s+1)))}else e.model=r},e.handleChange],focus:function(t){e.focus=!0},blur:function(t){e.focus=!1}}}):i("input",{directives:[{name:"model",rawName:"v-model",value:e.model,expression:"model"}],staticClass:"el-checkbox-button__original",attrs:{type:"checkbox",name:e.name,disabled:e.isDisabled},domProps:{value:e.label,checked:Array.isArray(e.model)?e._i(e.model,e.label)>-1:e.model},on:{change:[function(t){var i=e.model,n=t.target,r=!!n.checked;if(Array.isArray(i)){var s=e.label,a=e._i(i,s);n.checked?a<0&&(e.model=i.concat([s])):a>-1&&(e.model=i.slice(0,a).concat(i.slice(a+1)))}else e.model=r},e.handleChange],focus:function(t){e.focus=!0},blur:function(t){e.focus=!1}}}),e.$slots.default||e.label?i("span",{staticClass:"el-checkbox-button__inner",style:e.isChecked?e.activeStyle:null},[e._t("default",[e._v(e._s(e.label))])],2):e._e()])};mt._withStripped=!0;var vt=r({name:"ElCheckboxButton",mixins:[C.a],inject:{elForm:{default:""},elFormItem:{default:""}},data:function(){return{selfModel:!1,focus:!1,isLimitExceeded:!1}},props:{value:{},label:{},disabled:Boolean,checked:Boolean,name:String,trueLabel:[String,Number],falseLabel:[String,Number]},computed:{model:{get:function(){return this._checkboxGroup?this.store:void 0!==this.value?this.value:this.selfModel},set:function(e){this._checkboxGroup?(this.isLimitExceeded=!1,void 0!==this._checkboxGroup.min&&e.lengththis._checkboxGroup.max&&(this.isLimitExceeded=!0),!1===this.isLimitExceeded&&this.dispatch("ElCheckboxGroup","input",[e])):void 0!==this.value?this.$emit("input",e):this.selfModel=e}},isChecked:function(){return"[object Boolean]"==={}.toString.call(this.model)?this.model:Array.isArray(this.model)?this.model.indexOf(this.label)>-1:null!==this.model&&void 0!==this.model?this.model===this.trueLabel:void 0},_checkboxGroup:function(){for(var e=this.$parent;e;){if("ElCheckboxGroup"===e.$options.componentName)return e;e=e.$parent}return!1},store:function(){return this._checkboxGroup?this._checkboxGroup.value:this.value},activeStyle:function(){return{backgroundColor:this._checkboxGroup.fill||"",borderColor:this._checkboxGroup.fill||"",color:this._checkboxGroup.textColor||"","box-shadow":"-1px 0 0 0 "+this._checkboxGroup.fill}},_elFormItemSize:function(){return(this.elFormItem||{}).elFormItemSize},size:function(){return this._checkboxGroup.checkboxGroupSize||this._elFormItemSize||(this.$ELEMENT||{}).size},isLimitDisabled:function(){var e=this._checkboxGroup,t=e.max,i=e.min;return!(!t&&!i)&&this.model.length>=t&&!this.isChecked||this.model.length<=i&&this.isChecked},isDisabled:function(){return this._checkboxGroup?this._checkboxGroup.disabled||this.disabled||(this.elForm||{}).disabled||this.isLimitDisabled:this.disabled||(this.elForm||{}).disabled}},methods:{addToStore:function(){Array.isArray(this.model)&&-1===this.model.indexOf(this.label)?this.model.push(this.label):this.model=this.trueLabel||!0},handleChange:function(e){var t=this;if(!this.isLimitExceeded){var i=void 0;i=e.target.checked?void 0===this.trueLabel||this.trueLabel:void 0!==this.falseLabel&&this.falseLabel,this.$emit("change",i,e),this.$nextTick((function(){t._checkboxGroup&&t.dispatch("ElCheckboxGroup","change",[t._checkboxGroup.value])}))}}},created:function(){this.checked&&this.addToStore()}},mt,[],!1,null,null,null);vt.options.__file="packages/checkbox/src/checkbox-button.vue";var gt=vt.exports;gt.install=function(e){e.component(gt.name,gt)};var _t=gt,bt=function(){var e=this.$createElement;return(this._self._c||e)("div",{staticClass:"el-checkbox-group",attrs:{role:"group","aria-label":"checkbox-group"}},[this._t("default")],2)};bt._withStripped=!0;var yt=r({name:"ElCheckboxGroup",componentName:"ElCheckboxGroup",mixins:[C.a],inject:{elFormItem:{default:""}},props:{value:{},disabled:Boolean,min:Number,max:Number,size:String,fill:String,textColor:String},computed:{_elFormItemSize:function(){return(this.elFormItem||{}).elFormItemSize},checkboxGroupSize:function(){return this.size||this._elFormItemSize||(this.$ELEMENT||{}).size}},watch:{value:function(e){this.dispatch("ElFormItem","el.form.change",[e])}}},bt,[],!1,null,null,null);yt.options.__file="packages/checkbox/src/checkbox-group.vue";var xt=yt.exports;xt.install=function(e){e.component(xt.name,xt)};var kt=xt,wt=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{staticClass:"el-switch",class:{"is-disabled":e.switchDisabled,"is-checked":e.checked},attrs:{role:"switch","aria-checked":e.checked,"aria-disabled":e.switchDisabled},on:{click:function(t){return t.preventDefault(),e.switchValue(t)}}},[i("input",{ref:"input",staticClass:"el-switch__input",attrs:{type:"checkbox",id:e.id,name:e.name,"true-value":e.activeValue,"false-value":e.inactiveValue,disabled:e.switchDisabled},on:{change:e.handleChange,keydown:function(t){return!("button"in t)&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:e.switchValue(t)}}}),e.inactiveIconClass||e.inactiveText?i("span",{class:["el-switch__label","el-switch__label--left",e.checked?"":"is-active"]},[e.inactiveIconClass?i("i",{class:[e.inactiveIconClass]}):e._e(),!e.inactiveIconClass&&e.inactiveText?i("span",{attrs:{"aria-hidden":e.checked}},[e._v(e._s(e.inactiveText))]):e._e()]):e._e(),i("span",{ref:"core",staticClass:"el-switch__core",style:{width:e.coreWidth+"px"}}),e.activeIconClass||e.activeText?i("span",{class:["el-switch__label","el-switch__label--right",e.checked?"is-active":""]},[e.activeIconClass?i("i",{class:[e.activeIconClass]}):e._e(),!e.activeIconClass&&e.activeText?i("span",{attrs:{"aria-hidden":!e.checked}},[e._v(e._s(e.activeText))]):e._e()]):e._e()])};wt._withStripped=!0;var Ct=r({name:"ElSwitch",mixins:[R()("input"),k.a,C.a],inject:{elForm:{default:""}},props:{value:{type:[Boolean,String,Number],default:!1},disabled:{type:Boolean,default:!1},width:{type:Number,default:40},activeIconClass:{type:String,default:""},inactiveIconClass:{type:String,default:""},activeText:String,inactiveText:String,activeColor:{type:String,default:""},inactiveColor:{type:String,default:""},activeValue:{type:[Boolean,String,Number],default:!0},inactiveValue:{type:[Boolean,String,Number],default:!1},name:{type:String,default:""},validateEvent:{type:Boolean,default:!0},id:String},data:function(){return{coreWidth:this.width}},created:function(){~[this.activeValue,this.inactiveValue].indexOf(this.value)||this.$emit("input",this.inactiveValue)},computed:{checked:function(){return this.value===this.activeValue},switchDisabled:function(){return this.disabled||(this.elForm||{}).disabled}},watch:{checked:function(){this.$refs.input.checked=this.checked,(this.activeColor||this.inactiveColor)&&this.setBackgroundColor(),this.validateEvent&&this.dispatch("ElFormItem","el.form.change",[this.value])}},methods:{handleChange:function(e){var t=this,i=this.checked?this.inactiveValue:this.activeValue;this.$emit("input",i),this.$emit("change",i),this.$nextTick((function(){t.$refs.input.checked=t.checked}))},setBackgroundColor:function(){var e=this.checked?this.activeColor:this.inactiveColor;this.$refs.core.style.borderColor=e,this.$refs.core.style.backgroundColor=e},switchValue:function(){!this.switchDisabled&&this.handleChange()},getMigratingConfig:function(){return{props:{"on-color":"on-color is renamed to active-color.","off-color":"off-color is renamed to inactive-color.","on-text":"on-text is renamed to active-text.","off-text":"off-text is renamed to inactive-text.","on-value":"on-value is renamed to active-value.","off-value":"off-value is renamed to inactive-value.","on-icon-class":"on-icon-class is renamed to active-icon-class.","off-icon-class":"off-icon-class is renamed to inactive-icon-class."}}}},mounted:function(){this.coreWidth=this.width||40,(this.activeColor||this.inactiveColor)&&this.setBackgroundColor(),this.$refs.input.checked=this.checked}},wt,[],!1,null,null,null);Ct.options.__file="packages/switch/src/component.vue";var St=Ct.exports;St.install=function(e){e.component(St.name,St)};var Ot=St,Dt=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{directives:[{name:"clickoutside",rawName:"v-clickoutside",value:e.handleClose,expression:"handleClose"}],staticClass:"el-select",class:[e.selectSize?"el-select--"+e.selectSize:""],on:{click:function(t){return t.stopPropagation(),e.toggleMenu(t)}}},[e.multiple?i("div",{ref:"tags",staticClass:"el-select__tags",style:{"max-width":e.inputWidth-32+"px",width:"100%"}},[e.collapseTags&&e.selected.length?i("span",[i("el-tag",{attrs:{closable:!e.selectDisabled,size:e.collapseTagSize,hit:e.selected[0].hitState,type:"info","disable-transitions":""},on:{close:function(t){e.deleteTag(t,e.selected[0])}}},[i("span",{staticClass:"el-select__tags-text"},[e._v(e._s(e.selected[0].currentLabel))])]),e.selected.length>1?i("el-tag",{attrs:{closable:!1,size:e.collapseTagSize,type:"info","disable-transitions":""}},[i("span",{staticClass:"el-select__tags-text"},[e._v("+ "+e._s(e.selected.length-1))])]):e._e()],1):e._e(),e.collapseTags?e._e():i("transition-group",{on:{"after-leave":e.resetInputHeight}},e._l(e.selected,(function(t){return i("el-tag",{key:e.getValueKey(t),attrs:{closable:!e.selectDisabled,size:e.collapseTagSize,hit:t.hitState,type:"info","disable-transitions":""},on:{close:function(i){e.deleteTag(i,t)}}},[i("span",{staticClass:"el-select__tags-text"},[e._v(e._s(t.currentLabel))])])})),1),e.filterable?i("input",{directives:[{name:"model",rawName:"v-model",value:e.query,expression:"query"}],ref:"input",staticClass:"el-select__input",class:[e.selectSize?"is-"+e.selectSize:""],style:{"flex-grow":"1",width:e.inputLength/(e.inputWidth-32)+"%","max-width":e.inputWidth-42+"px"},attrs:{type:"text",disabled:e.selectDisabled,autocomplete:e.autoComplete||e.autocomplete},domProps:{value:e.query},on:{focus:e.handleFocus,blur:function(t){e.softFocus=!1},keyup:e.managePlaceholder,keydown:[e.resetInputState,function(t){if(!("button"in t)&&e._k(t.keyCode,"down",40,t.key,["Down","ArrowDown"]))return null;t.preventDefault(),e.navigateOptions("next")},function(t){if(!("button"in t)&&e._k(t.keyCode,"up",38,t.key,["Up","ArrowUp"]))return null;t.preventDefault(),e.navigateOptions("prev")},function(t){return!("button"in t)&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:(t.preventDefault(),e.selectOption(t))},function(t){if(!("button"in t)&&e._k(t.keyCode,"esc",27,t.key,["Esc","Escape"]))return null;t.stopPropagation(),t.preventDefault(),e.visible=!1},function(t){return!("button"in t)&&e._k(t.keyCode,"delete",[8,46],t.key,["Backspace","Delete","Del"])?null:e.deletePrevTag(t)},function(t){if(!("button"in t)&&e._k(t.keyCode,"tab",9,t.key,"Tab"))return null;e.visible=!1}],compositionstart:e.handleComposition,compositionupdate:e.handleComposition,compositionend:e.handleComposition,input:[function(t){t.target.composing||(e.query=t.target.value)},e.debouncedQueryChange]}}):e._e()],1):e._e(),i("el-input",{ref:"reference",class:{"is-focus":e.visible},attrs:{type:"text",placeholder:e.currentPlaceholder,name:e.name,id:e.id,autocomplete:e.autoComplete||e.autocomplete,size:e.selectSize,disabled:e.selectDisabled,readonly:e.readonly,"validate-event":!1,tabindex:e.multiple&&e.filterable?"-1":null},on:{focus:e.handleFocus,blur:e.handleBlur,input:e.debouncedOnInputChange},nativeOn:{keydown:[function(t){if(!("button"in t)&&e._k(t.keyCode,"down",40,t.key,["Down","ArrowDown"]))return null;t.stopPropagation(),t.preventDefault(),e.navigateOptions("next")},function(t){if(!("button"in t)&&e._k(t.keyCode,"up",38,t.key,["Up","ArrowUp"]))return null;t.stopPropagation(),t.preventDefault(),e.navigateOptions("prev")},function(t){return!("button"in t)&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:(t.preventDefault(),e.selectOption(t))},function(t){if(!("button"in t)&&e._k(t.keyCode,"esc",27,t.key,["Esc","Escape"]))return null;t.stopPropagation(),t.preventDefault(),e.visible=!1},function(t){if(!("button"in t)&&e._k(t.keyCode,"tab",9,t.key,"Tab"))return null;e.visible=!1}],mouseenter:function(t){e.inputHovering=!0},mouseleave:function(t){e.inputHovering=!1}},model:{value:e.selectedLabel,callback:function(t){e.selectedLabel=t},expression:"selectedLabel"}},[e.$slots.prefix?i("template",{slot:"prefix"},[e._t("prefix")],2):e._e(),i("template",{slot:"suffix"},[i("i",{directives:[{name:"show",rawName:"v-show",value:!e.showClose,expression:"!showClose"}],class:["el-select__caret","el-input__icon","el-icon-"+e.iconClass]}),e.showClose?i("i",{staticClass:"el-select__caret el-input__icon el-icon-circle-close",on:{click:e.handleClearClick}}):e._e()])],2),i("transition",{attrs:{name:"el-zoom-in-top"},on:{"before-enter":e.handleMenuEnter,"after-leave":e.doDestroy}},[i("el-select-menu",{directives:[{name:"show",rawName:"v-show",value:e.visible&&!1!==e.emptyText,expression:"visible && emptyText !== false"}],ref:"popper",attrs:{"append-to-body":e.popperAppendToBody}},[i("el-scrollbar",{directives:[{name:"show",rawName:"v-show",value:e.options.length>0&&!e.loading,expression:"options.length > 0 && !loading"}],ref:"scrollbar",class:{"is-empty":!e.allowCreate&&e.query&&0===e.filteredOptionsCount},attrs:{tag:"ul","wrap-class":"el-select-dropdown__wrap","view-class":"el-select-dropdown__list"}},[e.showNewOption?i("el-option",{attrs:{value:e.query,created:""}}):e._e(),e._t("default")],2),e.emptyText&&(!e.allowCreate||e.loading||e.allowCreate&&0===e.options.length)?[e.$slots.empty?e._t("empty"):i("p",{staticClass:"el-select-dropdown__empty"},[e._v("\n "+e._s(e.emptyText)+"\n ")])]:e._e()],2)],1)],1)};Dt._withStripped=!0;var Et=function(){var e=this.$createElement;return(this._self._c||e)("div",{staticClass:"el-select-dropdown el-popper",class:[{"is-multiple":this.$parent.multiple},this.popperClass],style:{minWidth:this.minWidth}},[this._t("default")],2)};Et._withStripped=!0;var Tt=r({name:"ElSelectDropdown",componentName:"ElSelectDropdown",mixins:[A.a],props:{placement:{default:"bottom-start"},boundariesPadding:{default:0},popperOptions:{default:function(){return{gpuAcceleration:!1}}},visibleArrow:{default:!0},appendToBody:{type:Boolean,default:!0}},data:function(){return{minWidth:""}},computed:{popperClass:function(){return this.$parent.popperClass}},watch:{"$parent.inputWidth":function(){this.minWidth=this.$parent.$el.getBoundingClientRect().width+"px"}},mounted:function(){var e=this;this.referenceElm=this.$parent.$refs.reference.$el,this.$parent.popperElm=this.popperElm=this.$el,this.$on("updatePopper",(function(){e.$parent.visible&&e.updatePopper()})),this.$on("destroyPopper",this.destroyPopper)}},Et,[],!1,null,null,null);Tt.options.__file="packages/select/src/select-dropdown.vue";var $t=Tt.exports,Pt=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("li",{directives:[{name:"show",rawName:"v-show",value:e.visible,expression:"visible"}],staticClass:"el-select-dropdown__item",class:{selected:e.itemSelected,"is-disabled":e.disabled||e.groupDisabled||e.limitReached,hover:e.hover},on:{mouseenter:e.hoverItem,click:function(t){return t.stopPropagation(),e.selectOptionClick(t)}}},[e._t("default",[i("span",[e._v(e._s(e.currentLabel))])])],2)};Pt._withStripped=!0;var jt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Mt=r({mixins:[C.a],name:"ElOption",componentName:"ElOption",inject:["select"],props:{value:{required:!0},label:[String,Number],created:Boolean,disabled:{type:Boolean,default:!1}},data:function(){return{index:-1,groupDisabled:!1,visible:!0,hitState:!1,hover:!1}},computed:{isObject:function(){return"[object object]"===Object.prototype.toString.call(this.value).toLowerCase()},currentLabel:function(){return this.label||(this.isObject?"":this.value)},currentValue:function(){return this.value||this.label||""},itemSelected:function(){return this.select.multiple?this.contains(this.select.value,this.value):this.isEqual(this.value,this.select.value)},limitReached:function(){return!!this.select.multiple&&(!this.itemSelected&&(this.select.value||[]).length>=this.select.multipleLimit&&this.select.multipleLimit>0)}},watch:{currentLabel:function(){this.created||this.select.remote||this.dispatch("ElSelect","setSelected")},value:function(e,t){var i=this.select,n=i.remote,r=i.valueKey;if(!this.created&&!n){if(r&&"object"===(void 0===e?"undefined":jt(e))&&"object"===(void 0===t?"undefined":jt(t))&&e[r]===t[r])return;this.dispatch("ElSelect","setSelected")}}},methods:{isEqual:function(e,t){if(this.isObject){var i=this.select.valueKey;return Object(m.getValueByPath)(e,i)===Object(m.getValueByPath)(t,i)}return e===t},contains:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments[1];if(this.isObject){var i=this.select.valueKey;return e&&e.some((function(e){return Object(m.getValueByPath)(e,i)===Object(m.getValueByPath)(t,i)}))}return e&&e.indexOf(t)>-1},handleGroupDisabled:function(e){this.groupDisabled=e},hoverItem:function(){this.disabled||this.groupDisabled||(this.select.hoverIndex=this.select.options.indexOf(this))},selectOptionClick:function(){!0!==this.disabled&&!0!==this.groupDisabled&&this.dispatch("ElSelect","handleOptionClick",[this,!0])},queryChange:function(e){this.visible=new RegExp(Object(m.escapeRegexpString)(e),"i").test(this.currentLabel)||this.created,this.visible||this.select.filteredOptionsCount--}},created:function(){this.select.options.push(this),this.select.cachedOptions.push(this),this.select.optionsCount++,this.select.filteredOptionsCount++,this.$on("queryChange",this.queryChange),this.$on("handleGroupDisabled",this.handleGroupDisabled)},beforeDestroy:function(){var e=this.select,t=e.selected,i=e.multiple?t:[t],n=this.select.cachedOptions.indexOf(this),r=i.indexOf(this);n>-1&&r<0&&this.select.cachedOptions.splice(n,1),this.select.onOptionDestroy(this.select.options.indexOf(this))}},Pt,[],!1,null,null,null);Mt.options.__file="packages/select/src/option.vue";var It=Mt.exports,At=i(29),Nt=i.n(At),Lt=i(14),Ft=i(27),Vt=i.n(Ft),zt=r({mixins:[C.a,f.a,R()("reference"),{data:function(){return{hoverOption:-1}},computed:{optionsAllDisabled:function(){return this.options.filter((function(e){return e.visible})).every((function(e){return e.disabled}))}},watch:{hoverIndex:function(e){var t=this;"number"==typeof e&&e>-1&&(this.hoverOption=this.options[e]||{}),this.options.forEach((function(e){e.hover=t.hoverOption===e}))}},methods:{navigateOptions:function(e){var t=this;if(this.visible){if(0!==this.options.length&&0!==this.filteredOptionsCount&&!this.optionsAllDisabled){"next"===e?(this.hoverIndex++,this.hoverIndex===this.options.length&&(this.hoverIndex=0)):"prev"===e&&(this.hoverIndex--,this.hoverIndex<0&&(this.hoverIndex=this.options.length-1));var i=this.options[this.hoverIndex];!0!==i.disabled&&!0!==i.groupDisabled&&i.visible||this.navigateOptions(e),this.$nextTick((function(){return t.scrollToOption(t.hoverOption)}))}}else this.visible=!0}}}],name:"ElSelect",componentName:"ElSelect",inject:{elForm:{default:""},elFormItem:{default:""}},provide:function(){return{select:this}},computed:{_elFormItemSize:function(){return(this.elFormItem||{}).elFormItemSize},readonly:function(){return!this.filterable||this.multiple||!Object(m.isIE)()&&!Object(m.isEdge)()&&!this.visible},showClose:function(){var e=this.multiple?Array.isArray(this.value)&&this.value.length>0:void 0!==this.value&&null!==this.value&&""!==this.value;return this.clearable&&!this.selectDisabled&&this.inputHovering&&e},iconClass:function(){return this.remote&&this.filterable?"":this.visible?"arrow-up is-reverse":"arrow-up"},debounce:function(){return this.remote?300:0},emptyText:function(){return this.loading?this.loadingText||this.t("el.select.loading"):(!this.remote||""!==this.query||0!==this.options.length)&&(this.filterable&&this.query&&this.options.length>0&&0===this.filteredOptionsCount?this.noMatchText||this.t("el.select.noMatch"):0===this.options.length?this.noDataText||this.t("el.select.noData"):null)},showNewOption:function(){var e=this,t=this.options.filter((function(e){return!e.created})).some((function(t){return t.currentLabel===e.query}));return this.filterable&&this.allowCreate&&""!==this.query&&!t},selectSize:function(){return this.size||this._elFormItemSize||(this.$ELEMENT||{}).size},selectDisabled:function(){return this.disabled||(this.elForm||{}).disabled},collapseTagSize:function(){return["small","mini"].indexOf(this.selectSize)>-1?"mini":"small"},propPlaceholder:function(){return void 0!==this.placeholder?this.placeholder:this.t("el.select.placeholder")}},components:{ElInput:h.a,ElSelectMenu:$t,ElOption:It,ElTag:Nt.a,ElScrollbar:L.a},directives:{Clickoutside:j.a},props:{name:String,id:String,value:{required:!0},autocomplete:{type:String,default:"off"},autoComplete:{type:String,validator:function(e){return!0}},automaticDropdown:Boolean,size:String,disabled:Boolean,clearable:Boolean,filterable:Boolean,allowCreate:Boolean,loading:Boolean,popperClass:String,remote:Boolean,loadingText:String,noMatchText:String,noDataText:String,remoteMethod:Function,filterMethod:Function,multiple:Boolean,multipleLimit:{type:Number,default:0},placeholder:{type:String,required:!1},defaultFirstOption:Boolean,reserveKeyword:Boolean,valueKey:{type:String,default:"value"},collapseTags:Boolean,popperAppendToBody:{type:Boolean,default:!0}},data:function(){return{options:[],cachedOptions:[],createdLabel:null,createdSelected:!1,selected:this.multiple?[]:{},inputLength:20,inputWidth:0,initialInputHeight:0,cachedPlaceHolder:"",optionsCount:0,filteredOptionsCount:0,visible:!1,softFocus:!1,selectedLabel:"",hoverIndex:-1,query:"",previousQuery:null,inputHovering:!1,currentPlaceholder:"",menuVisibleOnFocus:!1,isOnComposition:!1,isSilentBlur:!1}},watch:{selectDisabled:function(){var e=this;this.$nextTick((function(){e.resetInputHeight()}))},propPlaceholder:function(e){this.cachedPlaceHolder=this.currentPlaceholder=e},value:function(e,t){this.multiple&&(this.resetInputHeight(),e&&e.length>0||this.$refs.input&&""!==this.query?this.currentPlaceholder="":this.currentPlaceholder=this.cachedPlaceHolder,this.filterable&&!this.reserveKeyword&&(this.query="",this.handleQueryChange(this.query))),this.setSelected(),this.filterable&&!this.multiple&&(this.inputLength=20),Object(m.valueEquals)(e,t)||this.dispatch("ElFormItem","el.form.change",e)},visible:function(e){var t=this;e?(this.broadcast("ElSelectDropdown","updatePopper"),this.filterable&&(this.query=this.remote?"":this.selectedLabel,this.handleQueryChange(this.query),this.multiple?this.$refs.input.focus():(this.remote||(this.broadcast("ElOption","queryChange",""),this.broadcast("ElOptionGroup","queryChange")),this.selectedLabel&&(this.currentPlaceholder=this.selectedLabel,this.selectedLabel="")))):(this.broadcast("ElSelectDropdown","destroyPopper"),this.$refs.input&&this.$refs.input.blur(),this.query="",this.previousQuery=null,this.selectedLabel="",this.inputLength=20,this.menuVisibleOnFocus=!1,this.resetHoverIndex(),this.$nextTick((function(){t.$refs.input&&""===t.$refs.input.value&&0===t.selected.length&&(t.currentPlaceholder=t.cachedPlaceHolder)})),this.multiple||(this.selected&&(this.filterable&&this.allowCreate&&this.createdSelected&&this.createdLabel?this.selectedLabel=this.createdLabel:this.selectedLabel=this.selected.currentLabel,this.filterable&&(this.query=this.selectedLabel)),this.filterable&&(this.currentPlaceholder=this.cachedPlaceHolder))),this.$emit("visible-change",e)},options:function(){var e=this;if(!this.$isServer){this.$nextTick((function(){e.broadcast("ElSelectDropdown","updatePopper")})),this.multiple&&this.resetInputHeight();var t=this.$el.querySelectorAll("input");-1===[].indexOf.call(t,document.activeElement)&&this.setSelected(),this.defaultFirstOption&&(this.filterable||this.remote)&&this.filteredOptionsCount&&this.checkDefaultFirstOption()}}},methods:{handleComposition:function(e){var t=this,i=e.target.value;if("compositionend"===e.type)this.isOnComposition=!1,this.$nextTick((function(e){return t.handleQueryChange(i)}));else{var n=i[i.length-1]||"";this.isOnComposition=!Object(He.isKorean)(n)}},handleQueryChange:function(e){var t=this;this.previousQuery===e||this.isOnComposition||(null!==this.previousQuery||"function"!=typeof this.filterMethod&&"function"!=typeof this.remoteMethod?(this.previousQuery=e,this.$nextTick((function(){t.visible&&t.broadcast("ElSelectDropdown","updatePopper")})),this.hoverIndex=-1,this.multiple&&this.filterable&&this.$nextTick((function(){var e=15*t.$refs.input.value.length+20;t.inputLength=t.collapseTags?Math.min(50,e):e,t.managePlaceholder(),t.resetInputHeight()})),this.remote&&"function"==typeof this.remoteMethod?(this.hoverIndex=-1,this.remoteMethod(e)):"function"==typeof this.filterMethod?(this.filterMethod(e),this.broadcast("ElOptionGroup","queryChange")):(this.filteredOptionsCount=this.optionsCount,this.broadcast("ElOption","queryChange",e),this.broadcast("ElOptionGroup","queryChange")),this.defaultFirstOption&&(this.filterable||this.remote)&&this.filteredOptionsCount&&this.checkDefaultFirstOption()):this.previousQuery=e)},scrollToOption:function(e){var t=Array.isArray(e)&&e[0]?e[0].$el:e.$el;if(this.$refs.popper&&t){var i=this.$refs.popper.$el.querySelector(".el-select-dropdown__wrap");Vt()(i,t)}this.$refs.scrollbar&&this.$refs.scrollbar.handleScroll()},handleMenuEnter:function(){var e=this;this.$nextTick((function(){return e.scrollToOption(e.selected)}))},emitChange:function(e){Object(m.valueEquals)(this.value,e)||this.$emit("change",e)},getOption:function(e){for(var t=void 0,i="[object object]"===Object.prototype.toString.call(e).toLowerCase(),n="[object null]"===Object.prototype.toString.call(e).toLowerCase(),r="[object undefined]"===Object.prototype.toString.call(e).toLowerCase(),s=this.cachedOptions.length-1;s>=0;s--){var a=this.cachedOptions[s];if(i?Object(m.getValueByPath)(a.value,this.valueKey)===Object(m.getValueByPath)(e,this.valueKey):a.value===e){t=a;break}}if(t)return t;var o={value:e,currentLabel:i||n||r?"":String(e)};return this.multiple&&(o.hitState=!1),o},setSelected:function(){var e=this;if(!this.multiple){var t=this.getOption(this.value);return t.created?(this.createdLabel=t.currentLabel,this.createdSelected=!0):this.createdSelected=!1,this.selectedLabel=t.currentLabel,this.selected=t,void(this.filterable&&(this.query=this.selectedLabel))}var i=[];Array.isArray(this.value)&&this.value.forEach((function(t){i.push(e.getOption(t))})),this.selected=i,this.$nextTick((function(){e.resetInputHeight()}))},handleFocus:function(e){this.softFocus?this.softFocus=!1:((this.automaticDropdown||this.filterable)&&(this.visible=!0,this.filterable&&(this.menuVisibleOnFocus=!0)),this.$emit("focus",e))},blur:function(){this.visible=!1,this.$refs.reference.blur()},handleBlur:function(e){var t=this;setTimeout((function(){t.isSilentBlur?t.isSilentBlur=!1:t.$emit("blur",e)}),50),this.softFocus=!1},handleClearClick:function(e){this.deleteSelected(e)},doDestroy:function(){this.$refs.popper&&this.$refs.popper.doDestroy()},handleClose:function(){this.visible=!1},toggleLastOptionHitState:function(e){if(Array.isArray(this.selected)){var t=this.selected[this.selected.length-1];if(t)return!0===e||!1===e?(t.hitState=e,e):(t.hitState=!t.hitState,t.hitState)}},deletePrevTag:function(e){if(e.target.value.length<=0&&!this.toggleLastOptionHitState()){var t=this.value.slice();t.pop(),this.$emit("input",t),this.emitChange(t)}},managePlaceholder:function(){""!==this.currentPlaceholder&&(this.currentPlaceholder=this.$refs.input.value?"":this.cachedPlaceHolder)},resetInputState:function(e){8!==e.keyCode&&this.toggleLastOptionHitState(!1),this.inputLength=15*this.$refs.input.value.length+20,this.resetInputHeight()},resetInputHeight:function(){var e=this;this.collapseTags&&!this.filterable||this.$nextTick((function(){if(e.$refs.reference){var t=e.$refs.reference.$el.childNodes,i=[].filter.call(t,(function(e){return"INPUT"===e.tagName}))[0],n=e.$refs.tags,r=n?Math.round(n.getBoundingClientRect().height):0,s=e.initialInputHeight||40;i.style.height=0===e.selected.length?s+"px":Math.max(n?r+(r>s?6:0):0,s)+"px",e.visible&&!1!==e.emptyText&&e.broadcast("ElSelectDropdown","updatePopper")}}))},resetHoverIndex:function(){var e=this;setTimeout((function(){e.multiple?e.selected.length>0?e.hoverIndex=Math.min.apply(null,e.selected.map((function(t){return e.options.indexOf(t)}))):e.hoverIndex=-1:e.hoverIndex=e.options.indexOf(e.selected)}),300)},handleOptionSelect:function(e,t){var i=this;if(this.multiple){var n=(this.value||[]).slice(),r=this.getValueIndex(n,e.value);r>-1?n.splice(r,1):(this.multipleLimit<=0||n.length0&&void 0!==arguments[0]?arguments[0]:[],t=arguments[1],i="[object object]"===Object.prototype.toString.call(t).toLowerCase();if(i){var n=this.valueKey,r=-1;return e.some((function(e,i){return Object(m.getValueByPath)(e,n)===Object(m.getValueByPath)(t,n)&&(r=i,!0)})),r}return e.indexOf(t)},toggleMenu:function(){this.selectDisabled||(this.menuVisibleOnFocus?this.menuVisibleOnFocus=!1:this.visible=!this.visible,this.visible&&(this.$refs.input||this.$refs.reference).focus())},selectOption:function(){this.visible?this.options[this.hoverIndex]&&this.handleOptionSelect(this.options[this.hoverIndex]):this.toggleMenu()},deleteSelected:function(e){e.stopPropagation();var t=this.multiple?[]:"";this.$emit("input",t),this.emitChange(t),this.visible=!1,this.$emit("clear")},deleteTag:function(e,t){var i=this.selected.indexOf(t);if(i>-1&&!this.selectDisabled){var n=this.value.slice();n.splice(i,1),this.$emit("input",n),this.emitChange(n),this.$emit("remove-tag",t.value)}e.stopPropagation()},onInputChange:function(){this.filterable&&this.query!==this.selectedLabel&&(this.query=this.selectedLabel,this.handleQueryChange(this.query))},onOptionDestroy:function(e){e>-1&&(this.optionsCount--,this.filteredOptionsCount--,this.options.splice(e,1))},resetInputWidth:function(){this.inputWidth=this.$refs.reference.$el.getBoundingClientRect().width},handleResize:function(){this.resetInputWidth(),this.multiple&&this.resetInputHeight()},checkDefaultFirstOption:function(){this.hoverIndex=-1;for(var e=!1,t=this.options.length-1;t>=0;t--)if(this.options[t].created){e=!0,this.hoverIndex=t;break}if(!e)for(var i=0;i!==this.options.length;++i){var n=this.options[i];if(this.query){if(!n.disabled&&!n.groupDisabled&&n.visible){this.hoverIndex=i;break}}else if(n.itemSelected){this.hoverIndex=i;break}}},getValueKey:function(e){return"[object object]"!==Object.prototype.toString.call(e.value).toLowerCase()?e.value:Object(m.getValueByPath)(e.value,this.valueKey)}},created:function(){var e=this;this.cachedPlaceHolder=this.currentPlaceholder=this.propPlaceholder,this.multiple&&!Array.isArray(this.value)&&this.$emit("input",[]),!this.multiple&&Array.isArray(this.value)&&this.$emit("input",""),this.debouncedOnInputChange=$()(this.debounce,(function(){e.onInputChange()})),this.debouncedQueryChange=$()(this.debounce,(function(t){e.handleQueryChange(t.target.value)})),this.$on("handleOptionClick",this.handleOptionSelect),this.$on("setSelected",this.setSelected)},mounted:function(){var e=this;this.multiple&&Array.isArray(this.value)&&this.value.length>0&&(this.currentPlaceholder=""),Object(Lt.addResizeListener)(this.$el,this.handleResize);var t=this.$refs.reference;if(t&&t.$el){var i=t.$el.querySelector("input");this.initialInputHeight=i.getBoundingClientRect().height||{medium:36,small:32,mini:28}[this.selectSize]}this.remote&&this.multiple&&this.resetInputHeight(),this.$nextTick((function(){t&&t.$el&&(e.inputWidth=t.$el.getBoundingClientRect().width)})),this.setSelected()},beforeDestroy:function(){this.$el&&this.handleResize&&Object(Lt.removeResizeListener)(this.$el,this.handleResize)}},Dt,[],!1,null,null,null);zt.options.__file="packages/select/src/select.vue";var Rt=zt.exports;Rt.install=function(e){e.component(Rt.name,Rt)};var Bt=Rt;It.install=function(e){e.component(It.name,It)};var Ht=It,Wt=function(){var e=this.$createElement,t=this._self._c||e;return t("ul",{directives:[{name:"show",rawName:"v-show",value:this.visible,expression:"visible"}],staticClass:"el-select-group__wrap"},[t("li",{staticClass:"el-select-group__title"},[this._v(this._s(this.label))]),t("li",[t("ul",{staticClass:"el-select-group"},[this._t("default")],2)])])};Wt._withStripped=!0;var qt=r({mixins:[C.a],name:"ElOptionGroup",componentName:"ElOptionGroup",props:{label:String,disabled:{type:Boolean,default:!1}},data:function(){return{visible:!0}},watch:{disabled:function(e){this.broadcast("ElOption","handleGroupDisabled",e)}},methods:{queryChange:function(){this.visible=this.$children&&Array.isArray(this.$children)&&this.$children.some((function(e){return!0===e.visible}))}},created:function(){this.$on("queryChange",this.queryChange)},mounted:function(){this.disabled&&this.broadcast("ElOption","handleGroupDisabled",this.disabled)}},Wt,[],!1,null,null,null);qt.options.__file="packages/select/src/option-group.vue";var Ut=qt.exports;Ut.install=function(e){e.component(Ut.name,Ut)};var Gt=Ut,Yt=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("button",{staticClass:"el-button",class:[e.type?"el-button--"+e.type:"",e.buttonSize?"el-button--"+e.buttonSize:"",{"is-disabled":e.buttonDisabled,"is-loading":e.loading,"is-plain":e.plain,"is-round":e.round,"is-circle":e.circle}],attrs:{disabled:e.buttonDisabled||e.loading,autofocus:e.autofocus,type:e.nativeType},on:{click:e.handleClick}},[e.loading?i("i",{staticClass:"el-icon-loading"}):e._e(),e.icon&&!e.loading?i("i",{class:e.icon}):e._e(),e.$slots.default?i("span",[e._t("default")],2):e._e()])};Yt._withStripped=!0;var Kt=r({name:"ElButton",inject:{elForm:{default:""},elFormItem:{default:""}},props:{type:{type:String,default:"default"},size:String,icon:{type:String,default:""},nativeType:{type:String,default:"button"},loading:Boolean,disabled:Boolean,plain:Boolean,autofocus:Boolean,round:Boolean,circle:Boolean},computed:{_elFormItemSize:function(){return(this.elFormItem||{}).elFormItemSize},buttonSize:function(){return this.size||this._elFormItemSize||(this.$ELEMENT||{}).size},buttonDisabled:function(){return this.disabled||(this.elForm||{}).disabled}},methods:{handleClick:function(e){this.$emit("click",e)}}},Yt,[],!1,null,null,null);Kt.options.__file="packages/button/src/button.vue";var Xt=Kt.exports;Xt.install=function(e){e.component(Xt.name,Xt)};var Zt=Xt,Qt=function(){var e=this.$createElement;return(this._self._c||e)("div",{staticClass:"el-button-group"},[this._t("default")],2)};Qt._withStripped=!0;var Jt=r({name:"ElButtonGroup"},Qt,[],!1,null,null,null);Jt.options.__file="packages/button/src/button-group.vue";var ei=Jt.exports;ei.install=function(e){e.component(ei.name,ei)};var ti=ei,ii=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{staticClass:"el-table",class:[{"el-table--fit":e.fit,"el-table--striped":e.stripe,"el-table--border":e.border||e.isGroup,"el-table--hidden":e.isHidden,"el-table--group":e.isGroup,"el-table--fluid-height":e.maxHeight,"el-table--scrollable-x":e.layout.scrollX,"el-table--scrollable-y":e.layout.scrollY,"el-table--enable-row-hover":!e.store.states.isComplex,"el-table--enable-row-transition":0!==(e.store.states.data||[]).length&&(e.store.states.data||[]).length<100},e.tableSize?"el-table--"+e.tableSize:""],on:{mouseleave:function(t){e.handleMouseLeave(t)}}},[i("div",{ref:"hiddenColumns",staticClass:"hidden-columns"},[e._t("default")],2),e.showHeader?i("div",{directives:[{name:"mousewheel",rawName:"v-mousewheel",value:e.handleHeaderFooterMousewheel,expression:"handleHeaderFooterMousewheel"}],ref:"headerWrapper",staticClass:"el-table__header-wrapper"},[i("table-header",{ref:"tableHeader",style:{width:e.layout.bodyWidth?e.layout.bodyWidth+"px":""},attrs:{store:e.store,border:e.border,"default-sort":e.defaultSort}})],1):e._e(),i("div",{ref:"bodyWrapper",staticClass:"el-table__body-wrapper",class:[e.layout.scrollX?"is-scrolling-"+e.scrollPosition:"is-scrolling-none"],style:[e.bodyHeight]},[i("table-body",{style:{width:e.bodyWidth},attrs:{context:e.context,store:e.store,stripe:e.stripe,"row-class-name":e.rowClassName,"row-style":e.rowStyle,highlight:e.highlightCurrentRow}}),e.data&&0!==e.data.length?e._e():i("div",{ref:"emptyBlock",staticClass:"el-table__empty-block",style:e.emptyBlockStyle},[i("span",{staticClass:"el-table__empty-text"},[e._t("empty",[e._v(e._s(e.emptyText||e.t("el.table.emptyText")))])],2)]),e.$slots.append?i("div",{ref:"appendWrapper",staticClass:"el-table__append-wrapper"},[e._t("append")],2):e._e()],1),e.showSummary?i("div",{directives:[{name:"show",rawName:"v-show",value:e.data&&e.data.length>0,expression:"data && data.length > 0"},{name:"mousewheel",rawName:"v-mousewheel",value:e.handleHeaderFooterMousewheel,expression:"handleHeaderFooterMousewheel"}],ref:"footerWrapper",staticClass:"el-table__footer-wrapper"},[i("table-footer",{style:{width:e.layout.bodyWidth?e.layout.bodyWidth+"px":""},attrs:{store:e.store,border:e.border,"sum-text":e.sumText||e.t("el.table.sumText"),"summary-method":e.summaryMethod,"default-sort":e.defaultSort}})],1):e._e(),e.fixedColumns.length>0?i("div",{directives:[{name:"mousewheel",rawName:"v-mousewheel",value:e.handleFixedMousewheel,expression:"handleFixedMousewheel"}],ref:"fixedWrapper",staticClass:"el-table__fixed",style:[{width:e.layout.fixedWidth?e.layout.fixedWidth+"px":""},e.fixedHeight]},[e.showHeader?i("div",{ref:"fixedHeaderWrapper",staticClass:"el-table__fixed-header-wrapper"},[i("table-header",{ref:"fixedTableHeader",style:{width:e.bodyWidth},attrs:{fixed:"left",border:e.border,store:e.store}})],1):e._e(),i("div",{ref:"fixedBodyWrapper",staticClass:"el-table__fixed-body-wrapper",style:[{top:e.layout.headerHeight+"px"},e.fixedBodyHeight]},[i("table-body",{style:{width:e.bodyWidth},attrs:{fixed:"left",store:e.store,stripe:e.stripe,highlight:e.highlightCurrentRow,"row-class-name":e.rowClassName,"row-style":e.rowStyle}}),e.$slots.append?i("div",{staticClass:"el-table__append-gutter",style:{height:e.layout.appendHeight+"px"}}):e._e()],1),e.showSummary?i("div",{directives:[{name:"show",rawName:"v-show",value:e.data&&e.data.length>0,expression:"data && data.length > 0"}],ref:"fixedFooterWrapper",staticClass:"el-table__fixed-footer-wrapper"},[i("table-footer",{style:{width:e.bodyWidth},attrs:{fixed:"left",border:e.border,"sum-text":e.sumText||e.t("el.table.sumText"),"summary-method":e.summaryMethod,store:e.store}})],1):e._e()]):e._e(),e.rightFixedColumns.length>0?i("div",{directives:[{name:"mousewheel",rawName:"v-mousewheel",value:e.handleFixedMousewheel,expression:"handleFixedMousewheel"}],ref:"rightFixedWrapper",staticClass:"el-table__fixed-right",style:[{width:e.layout.rightFixedWidth?e.layout.rightFixedWidth+"px":"",right:e.layout.scrollY?(e.border?e.layout.gutterWidth:e.layout.gutterWidth||0)+"px":""},e.fixedHeight]},[e.showHeader?i("div",{ref:"rightFixedHeaderWrapper",staticClass:"el-table__fixed-header-wrapper"},[i("table-header",{ref:"rightFixedTableHeader",style:{width:e.bodyWidth},attrs:{fixed:"right",border:e.border,store:e.store}})],1):e._e(),i("div",{ref:"rightFixedBodyWrapper",staticClass:"el-table__fixed-body-wrapper",style:[{top:e.layout.headerHeight+"px"},e.fixedBodyHeight]},[i("table-body",{style:{width:e.bodyWidth},attrs:{fixed:"right",store:e.store,stripe:e.stripe,"row-class-name":e.rowClassName,"row-style":e.rowStyle,highlight:e.highlightCurrentRow}}),e.$slots.append?i("div",{staticClass:"el-table__append-gutter",style:{height:e.layout.appendHeight+"px"}}):e._e()],1),e.showSummary?i("div",{directives:[{name:"show",rawName:"v-show",value:e.data&&e.data.length>0,expression:"data && data.length > 0"}],ref:"rightFixedFooterWrapper",staticClass:"el-table__fixed-footer-wrapper"},[i("table-footer",{style:{width:e.bodyWidth},attrs:{fixed:"right",border:e.border,"sum-text":e.sumText||e.t("el.table.sumText"),"summary-method":e.summaryMethod,store:e.store}})],1):e._e()]):e._e(),e.rightFixedColumns.length>0?i("div",{ref:"rightFixedPatch",staticClass:"el-table__fixed-right-patch",style:{width:e.layout.scrollY?e.layout.gutterWidth+"px":"0",height:e.layout.headerHeight+"px"}}):e._e(),i("div",{directives:[{name:"show",rawName:"v-show",value:e.resizeProxyVisible,expression:"resizeProxyVisible"}],ref:"resizeProxy",staticClass:"el-table__column-resize-proxy"})])};ii._withStripped=!0;var ni=i(17),ri=i.n(ni),si=i(35),ai=i(38),oi=i.n(ai),li="undefined"!=typeof navigator&&navigator.userAgent.toLowerCase().indexOf("firefox")>-1,ui={bind:function(e,t){var i,n;i=e,n=t.value,i&&i.addEventListener&&i.addEventListener(li?"DOMMouseScroll":"mousewheel",(function(e){var t=oi()(e);n&&n.apply(this,[e,t])}))}},ci=i(6),di=i.n(ci),hi="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},pi=function(e){for(var t=e.target;t&&"HTML"!==t.tagName.toUpperCase();){if("TD"===t.tagName.toUpperCase())return t;t=t.parentNode}return null},fi=function(e){return null!==e&&"object"===(void 0===e?"undefined":hi(e))},mi=function(e,t,i,n,r){if(!t&&!n&&(!r||Array.isArray(r)&&!r.length))return e;i="string"==typeof i?"descending"===i?-1:1:i&&i<0?-1:1;var s=n?null:function(i,n){return r?(Array.isArray(r)||(r=[r]),r.map((function(t){return"string"==typeof t?Object(m.getValueByPath)(i,t):t(i,n,e)}))):("$key"!==t&&fi(i)&&"$value"in i&&(i=i.$value),[fi(i)?Object(m.getValueByPath)(i,t):i])};return e.map((function(e,t){return{value:e,index:t,key:s?s(e,t):null}})).sort((function(e,t){var r=function(e,t){if(n)return n(e.value,t.value);for(var i=0,r=e.key.length;it.key[i])return 1}return 0}(e,t);return r||(r=e.index-t.index),r*i})).map((function(e){return e.value}))},vi=function(e,t){var i=null;return e.columns.forEach((function(e){e.id===t&&(i=e)})),i},gi=function(e,t){var i=(t.className||"").match(/el-table_[^\s]+/gm);return i?vi(e,i[0]):null},_i=function(e,t){if(!e)throw new Error("row is required when get row identity");if("string"==typeof t){if(t.indexOf(".")<0)return e[t];for(var i=t.split("."),n=e,r=0;r2&&void 0!==arguments[2]?arguments[2]:"children",n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"hasChildren",r=function(e){return!(Array.isArray(e)&&e.length)};function s(e,a,o){t(e,a,o),a.forEach((function(e){if(e[n])t(e,null,o+1);else{var a=e[i];r(a)||s(e,a,o+1)}}))}e.forEach((function(e){if(e[n])t(e,null,0);else{var a=e[i];r(a)||s(e,a,0)}}))}(e,(function(e,t,i){var n=_i(e,r);Array.isArray(t)?a[n]={children:t.map((function(e){return _i(e,r)})),level:i}:s&&(a[n]={children:[],lazy:!0,level:i})}),i,n),a},updateTreeData:function(){var e=this.normalizedData,t=this.normalizedLazyNode,i=Object.keys(e),n={};if(i.length){var r=this.states,s=r.treeData,a=r.defaultExpandAll,o=r.expandRowKeys,l=r.lazy,u=[],c=function(e,t){var i=a||o&&-1!==o.indexOf(t);return!!(e&&e.expanded||i)};i.forEach((function(t){var i=s[t],r=Oi({},e[t]);if(r.expanded=c(i,t),r.lazy){var a=i||{},o=a.loaded,l=void 0!==o&&o,d=a.loading,h=void 0!==d&&d;r.loaded=!!l,r.loading=!!h,u.push(t)}n[t]=r}));var d=Object.keys(t);l&&d.length&&u.length&&d.forEach((function(e){var i=s[e],r=t[e].children;if(-1!==u.indexOf(e)){if(0!==n[e].children.length)throw new Error("[ElTable]children must be an empty array.");n[e].children=r}else{var a=i||{},o=a.loaded,l=void 0!==o&&o,d=a.loading,h=void 0!==d&&d;n[e]={lazy:!0,loaded:!!l,loading:!!h,expanded:c(i,e),children:r,level:""}}}))}this.states.treeData=n,this.updateTableScrollY()},updateTreeExpandKeys:function(e){this.states.expandRowKeys=e,this.updateTreeData()},toggleTreeExpansion:function(e,t){this.assertRowKey();var i=this.states,n=i.rowKey,r=i.treeData,s=_i(e,n),a=s&&r[s];if(s&&a&&"expanded"in a){var o=a.expanded;t=void 0===t?!a.expanded:t,r[s].expanded=t,o!==t&&this.table.$emit("expand-change",e,t),this.updateTableScrollY()}},loadOrToggle:function(e){this.assertRowKey();var t=this.states,i=t.lazy,n=t.treeData,r=t.rowKey,s=_i(e,r),a=n[s];i&&a&&"loaded"in a&&!a.loaded?this.loadData(e,s,a):this.toggleTreeExpansion(e)},loadData:function(e,t,i){var n=this,r=this.table.load,s=this.states.treeData;r&&!s[t].loaded&&(s[t].loading=!0,r(e,i,(function(i){if(!Array.isArray(i))throw new Error("[ElTable] data must be an array");var r=n.states,s=r.lazyTreeNodeMap,a=r.treeData;a[t].loading=!1,a[t].loaded=!0,a[t].expanded=!0,i.length&&n.$set(s,t,i),n.table.$emit("expand-change",e,!0)})))}}},Ei=function e(t){var i=[];return t.forEach((function(t){t.children?i.push.apply(i,e(t.children)):i.push(t)})),i},Ti=di.a.extend({data:function(){return{states:{rowKey:null,data:[],isComplex:!1,_columns:[],originColumns:[],columns:[],fixedColumns:[],rightFixedColumns:[],leafColumns:[],fixedLeafColumns:[],rightFixedLeafColumns:[],leafColumnsLength:0,fixedLeafColumnsLength:0,rightFixedLeafColumnsLength:0,isAllSelected:!1,selection:[],reserveSelection:!1,selectOnIndeterminate:!1,selectable:null,filters:{},filteredData:null,sortingColumn:null,sortProp:null,sortOrder:null,hoverRow:null}}},mixins:[Ci,Si,Di],methods:{assertRowKey:function(){if(!this.states.rowKey)throw new Error("[ElTable] prop row-key is required")},updateColumns:function(){var e=this.states,t=e._columns||[];e.fixedColumns=t.filter((function(e){return!0===e.fixed||"left"===e.fixed})),e.rightFixedColumns=t.filter((function(e){return"right"===e.fixed})),e.fixedColumns.length>0&&t[0]&&"selection"===t[0].type&&!t[0].fixed&&(t[0].fixed=!0,e.fixedColumns.unshift(t[0]));var i=t.filter((function(e){return!e.fixed}));e.originColumns=[].concat(e.fixedColumns).concat(i).concat(e.rightFixedColumns);var n=Ei(i),r=Ei(e.fixedColumns),s=Ei(e.rightFixedColumns);e.leafColumnsLength=n.length,e.fixedLeafColumnsLength=r.length,e.rightFixedLeafColumnsLength=s.length,e.columns=[].concat(r).concat(n).concat(s),e.isComplex=e.fixedColumns.length>0||e.rightFixedColumns.length>0},scheduleLayout:function(e){e&&this.updateColumns(),this.table.debouncedUpdateLayout()},isSelected:function(e){var t=this.states.selection;return(void 0===t?[]:t).indexOf(e)>-1},clearSelection:function(){var e=this.states;e.isAllSelected=!1,e.selection.length&&(e.selection=[],this.table.$emit("selection-change",[]))},cleanSelection:function(){var e=this.states,t=e.data,i=e.rowKey,n=e.selection,r=void 0;if(i){r=[];var s=bi(n,i),a=bi(t,i);for(var o in s)s.hasOwnProperty(o)&&!a[o]&&r.push(s[o].row)}else r=n.filter((function(e){return-1===t.indexOf(e)}));if(r.length){var l=n.filter((function(e){return-1===r.indexOf(e)}));e.selection=l,this.table.$emit("selection-change",l.slice())}},toggleRowSelection:function(e,t){var i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],n=wi(this.states.selection,e,t);if(n){var r=(this.states.selection||[]).slice();i&&this.table.$emit("select",r,e),this.table.$emit("selection-change",r)}},_toggleAllSelection:function(){var e=this.states,t=e.data,i=void 0===t?[]:t,n=e.selection,r=e.selectOnIndeterminate?!e.isAllSelected:!(e.isAllSelected||n.length);e.isAllSelected=r;var s=!1;i.forEach((function(t,i){e.selectable?e.selectable.call(null,t,i)&&wi(n,t,r)&&(s=!0):wi(n,t,r)&&(s=!0)})),s&&this.table.$emit("selection-change",n?n.slice():[]),this.table.$emit("select-all",n)},updateSelectionByRowKey:function(){var e=this.states,t=e.selection,i=e.rowKey,n=e.data,r=bi(t,i);n.forEach((function(e){var n=_i(e,i),s=r[n];s&&(t[s.index]=e)}))},updateAllSelected:function(){var e=this.states,t=e.selection,i=e.rowKey,n=e.selectable,r=e.data||[];if(0!==r.length){var s=void 0;i&&(s=bi(t,i));for(var a,o=!0,l=0,u=0,c=r.length;u1?i-1:0),r=1;rthis.bodyHeight;return this.scrollY=n,i!==n}return!1},e.prototype.setHeight=function(e){var t=this,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"height";if(!di.a.prototype.$isServer){var n=this.table.$el;if(e=ki(e),this.height=e,!n&&(e||0===e))return di.a.nextTick((function(){return t.setHeight(e,i)}));"number"==typeof e?(n.style[i]=e+"px",this.updateElsHeight()):"string"==typeof e&&(n.style[i]=e,this.updateElsHeight())}},e.prototype.setMaxHeight=function(e){this.setHeight(e,"max-height")},e.prototype.getFlattenColumns=function(){var e=[];return this.table.columns.forEach((function(t){t.isColumnGroup?e.push.apply(e,t.columns):e.push(t)})),e},e.prototype.updateElsHeight=function(){var e=this;if(!this.table.$ready)return di.a.nextTick((function(){return e.updateElsHeight()}));var t=this.table.$refs,i=t.headerWrapper,n=t.appendWrapper,r=t.footerWrapper;if(this.appendHeight=n?n.offsetHeight:0,!this.showHeader||i){var s=i?i.querySelector(".el-table__header tr"):null,a=this.headerDisplayNone(s),o=this.headerHeight=this.showHeader?i.offsetHeight:0;if(this.showHeader&&!a&&i.offsetWidth>0&&(this.table.columns||[]).length>0&&o<2)return di.a.nextTick((function(){return e.updateElsHeight()}));var l=this.tableHeight=this.table.$el.clientHeight,u=this.footerHeight=r?r.offsetHeight:0;null!==this.height&&(this.bodyHeight=l-o-u+(r?1:0)),this.fixedBodyHeight=this.scrollX?this.bodyHeight-this.gutterWidth:this.bodyHeight;var c=!(this.store.states.data&&this.store.states.data.length);this.viewportHeight=this.scrollX?l-(c?0:this.gutterWidth):l,this.updateScrollY(),this.notifyObservers("scrollable")}},e.prototype.headerDisplayNone=function(e){if(!e)return!0;for(var t=e;"DIV"!==t.tagName;){if("none"===getComputedStyle(t).display)return!0;t=t.parentElement}return!1},e.prototype.updateColumnsWidth=function(){if(!di.a.prototype.$isServer){var e=this.fit,t=this.table.$el.clientWidth,i=0,n=this.getFlattenColumns(),r=n.filter((function(e){return"number"!=typeof e.width}));if(n.forEach((function(e){"number"==typeof e.width&&e.realWidth&&(e.realWidth=null)})),r.length>0&&e){n.forEach((function(e){i+=e.width||e.minWidth||80}));var s=this.scrollY?this.gutterWidth:0;if(i<=t-s){this.scrollX=!1;var a=t-s-i;if(1===r.length)r[0].realWidth=(r[0].minWidth||80)+a;else{var o=a/r.reduce((function(e,t){return e+(t.minWidth||80)}),0),l=0;r.forEach((function(e,t){if(0!==t){var i=Math.floor((e.minWidth||80)*o);l+=i,e.realWidth=(e.minWidth||80)+i}})),r[0].realWidth=(r[0].minWidth||80)+a-l}}else this.scrollX=!0,r.forEach((function(e){e.realWidth=e.minWidth}));this.bodyWidth=Math.max(i,t),this.table.resizeState.width=this.bodyWidth}else n.forEach((function(e){e.width||e.minWidth?e.realWidth=e.width||e.minWidth:e.realWidth=80,i+=e.realWidth})),this.scrollX=i>t,this.bodyWidth=i;var u=this.store.states.fixedColumns;if(u.length>0){var c=0;u.forEach((function(e){c+=e.realWidth||e.width})),this.fixedWidth=c}var d=this.store.states.rightFixedColumns;if(d.length>0){var h=0;d.forEach((function(e){h+=e.realWidth||e.width})),this.rightFixedWidth=h}this.notifyObservers("columns")}},e.prototype.addObserver=function(e){this.observers.push(e)},e.prototype.removeObserver=function(e){var t=this.observers.indexOf(e);-1!==t&&this.observers.splice(t,1)},e.prototype.notifyObservers=function(e){var t=this;this.observers.forEach((function(i){switch(e){case"columns":i.onColumnsChange(t);break;case"scrollable":i.onScrollableChange(t);break;default:throw new Error("Table Layout don't have event "+e+".")}}))},e}(),Ai={created:function(){this.tableLayout.addObserver(this)},destroyed:function(){this.tableLayout.removeObserver(this)},computed:{tableLayout:function(){var e=this.layout;if(!e&&this.table&&(e=this.table.layout),!e)throw new Error("Can not find table layout.");return e}},mounted:function(){this.onColumnsChange(this.tableLayout),this.onScrollableChange(this.tableLayout)},updated:function(){this.__updated__||(this.onColumnsChange(this.tableLayout),this.onScrollableChange(this.tableLayout),this.__updated__=!0)},methods:{onColumnsChange:function(e){var t=this.$el.querySelectorAll("colgroup > col");if(t.length){var i=e.getFlattenColumns(),n={};i.forEach((function(e){n[e.id]=e}));for(var r=0,s=t.length;r col[name=gutter]"),i=0,n=t.length;i=this.leftFixedLeafCount:"right"===this.fixed?e=this.columnsCount-this.rightFixedLeafCount},getSpan:function(e,t,i,n){var r=1,s=1,a=this.table.spanMethod;if("function"==typeof a){var o=a({row:e,column:t,rowIndex:i,columnIndex:n});Array.isArray(o)?(r=o[0],s=o[1]):"object"===(void 0===o?"undefined":Ni(o))&&(r=o.rowspan,s=o.colspan)}return{rowspan:r,colspan:s}},getRowStyle:function(e,t){var i=this.table.rowStyle;return"function"==typeof i?i.call(null,{row:e,rowIndex:t}):i||null},getRowClass:function(e,t){var i=["el-table__row"];this.table.highlightCurrentRow&&e===this.store.states.currentRow&&i.push("current-row"),this.stripe&&t%2==1&&i.push("el-table__row--striped");var n=this.table.rowClassName;return"string"==typeof n?i.push(n):"function"==typeof n&&i.push(n.call(null,{row:e,rowIndex:t})),this.store.states.expandRows.indexOf(e)>-1&&i.push("expanded"),i},getCellStyle:function(e,t,i,n){var r=this.table.cellStyle;return"function"==typeof r?r.call(null,{rowIndex:e,columnIndex:t,row:i,column:n}):r},getCellClass:function(e,t,i,n){var r=[n.id,n.align,n.className];this.isColumnHidden(t)&&r.push("is-hidden");var s=this.table.cellClassName;return"string"==typeof s?r.push(s):"function"==typeof s&&r.push(s.call(null,{rowIndex:e,columnIndex:t,row:i,column:n})),r.push("el-table__cell"),r.join(" ")},getColspanRealWidth:function(e,t,i){return t<1?e[i].realWidth:e.map((function(e){return e.realWidth})).slice(i,i+t).reduce((function(e,t){return e+t}),-1)},handleCellMouseEnter:function(e,t){var i=this.table,n=pi(e);if(n){var r=gi(i,n),s=i.hoverState={cell:n,column:r,row:t};i.$emit("cell-mouse-enter",s.row,s.column,s.cell,e)}var a=e.target.querySelector(".cell");if(Object(fe.hasClass)(a,"el-tooltip")&&a.childNodes.length){var o=document.createRange();if(o.setStart(a,0),o.setEnd(a,a.childNodes.length),(o.getBoundingClientRect().width+((parseInt(Object(fe.getStyle)(a,"paddingLeft"),10)||0)+(parseInt(Object(fe.getStyle)(a,"paddingRight"),10)||0))>a.offsetWidth||a.scrollWidth>a.offsetWidth)&&this.$refs.tooltip){var l=this.$refs.tooltip;this.tooltipContent=n.innerText||n.textContent,l.referenceElm=n,l.$refs.popper&&(l.$refs.popper.style.display="none"),l.doDestroy(),l.setExpectedState(!0),this.activateTooltip(l)}}},handleCellMouseLeave:function(e){var t=this.$refs.tooltip;if(t&&(t.setExpectedState(!1),t.handleClosePopper()),pi(e)){var i=this.table.hoverState||{};this.table.$emit("cell-mouse-leave",i.row,i.column,i.cell,e)}},handleMouseEnter:$()(30,(function(e){this.store.commit("setHoverRow",e)})),handleMouseLeave:$()(30,(function(){this.store.commit("setHoverRow",null)})),handleContextMenu:function(e,t){this.handleEvent(e,t,"contextmenu")},handleDoubleClick:function(e,t){this.handleEvent(e,t,"dblclick")},handleClick:function(e,t){this.store.commit("setCurrentRow",t),this.handleEvent(e,t,"click")},handleEvent:function(e,t,i){var n=this.table,r=pi(e),s=void 0;r&&(s=gi(n,r))&&n.$emit("cell-"+i,t,s,r,e),n.$emit("row-"+i,t,s,e)},rowRender:function(e,t,i){var n=this,r=this.$createElement,s=this.treeIndent,a=this.columns,o=this.firstDefaultColumnIndex,l=a.map((function(e,t){return n.isColumnHidden(t)})),u=this.getRowClass(e,t),c=!0;return i&&(u.push("el-table__row--level-"+i.level),c=i.display),r("tr",{style:[c?null:{display:"none"},this.getRowStyle(e,t)],class:u,key:this.getKeyOfRow(e,t),on:{dblclick:function(t){return n.handleDoubleClick(t,e)},click:function(t){return n.handleClick(t,e)},contextmenu:function(t){return n.handleContextMenu(t,e)},mouseenter:function(e){return n.handleMouseEnter(t)},mouseleave:this.handleMouseLeave}},[a.map((function(u,c){var d=n.getSpan(e,u,t,c),h=d.rowspan,p=d.colspan;if(!h||!p)return null;var f=Li({},u);f.realWidth=n.getColspanRealWidth(a,p,c);var m={store:n.store,_self:n.context||n.table.$vnode.context,column:f,row:e,$index:t};return c===o&&i&&(m.treeNode={indent:i.level*s,level:i.level},"boolean"==typeof i.expanded&&(m.treeNode.expanded=i.expanded,"loading"in i&&(m.treeNode.loading=i.loading),"noLazyChildren"in i&&(m.treeNode.noLazyChildren=i.noLazyChildren))),r("td",{style:n.getCellStyle(t,c,e,u),class:n.getCellClass(t,c,e,u),attrs:{rowspan:h,colspan:p},on:{mouseenter:function(t){return n.handleCellMouseEnter(t,e)},mouseleave:n.handleCellMouseLeave}},[u.renderCell.call(n._renderProxy,n.$createElement,m,l[c])])}))])},wrappedRowRender:function(e,t){var i=this,n=this.$createElement,r=this.store,s=r.isRowExpanded,a=r.assertRowKey,o=r.states,l=o.treeData,u=o.lazyTreeNodeMap,c=o.childrenColumnName,d=o.rowKey;if(this.hasExpandColumn&&s(e)){var h=this.table.renderExpanded,p=this.rowRender(e,t);return h?[[p,n("tr",{key:"expanded-row__"+p.key},[n("td",{attrs:{colspan:this.columnsCount},class:"el-table__cell el-table__expanded-cell"},[h(this.$createElement,{row:e,$index:t,store:this.store})])])]]:(console.error("[Element Error]renderExpanded is required."),p)}if(Object.keys(l).length){a();var f=_i(e,d),m=l[f],v=null;m&&(v={expanded:m.expanded,level:m.level,display:!0},"boolean"==typeof m.lazy&&("boolean"==typeof m.loaded&&m.loaded&&(v.noLazyChildren=!(m.children&&m.children.length)),v.loading=m.loading));var g=[this.rowRender(e,t,v)];if(m){var _=0;m.display=!0,function e(n,r){n&&n.length&&r&&n.forEach((function(n){var s={display:r.display&&r.expanded,level:r.level+1},a=_i(n,d);if(null==a)throw new Error("for nested data item, row-key is required.");if((m=Li({},l[a]))&&(s.expanded=m.expanded,m.level=m.level||s.level,m.display=!(!m.expanded||!s.display),"boolean"==typeof m.lazy&&("boolean"==typeof m.loaded&&m.loaded&&(s.noLazyChildren=!(m.children&&m.children.length)),s.loading=m.loading)),_++,g.push(i.rowRender(n,t+_,s)),m){var o=u[a]||n[c];e(o,m)}}))}(u[f]||e[c],m)}return g}return this.rowRender(e,t)}}},Vi=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("transition",{attrs:{name:"el-zoom-in-top"}},[e.multiple?i("div",{directives:[{name:"clickoutside",rawName:"v-clickoutside",value:e.handleOutsideClick,expression:"handleOutsideClick"},{name:"show",rawName:"v-show",value:e.showPopper,expression:"showPopper"}],staticClass:"el-table-filter"},[i("div",{staticClass:"el-table-filter__content"},[i("el-scrollbar",{attrs:{"wrap-class":"el-table-filter__wrap"}},[i("el-checkbox-group",{staticClass:"el-table-filter__checkbox-group",model:{value:e.filteredValue,callback:function(t){e.filteredValue=t},expression:"filteredValue"}},e._l(e.filters,(function(t){return i("el-checkbox",{key:t.value,attrs:{label:t.value}},[e._v(e._s(t.text))])})),1)],1)],1),i("div",{staticClass:"el-table-filter__bottom"},[i("button",{class:{"is-disabled":0===e.filteredValue.length},attrs:{disabled:0===e.filteredValue.length},on:{click:e.handleConfirm}},[e._v(e._s(e.t("el.table.confirmFilter")))]),i("button",{on:{click:e.handleReset}},[e._v(e._s(e.t("el.table.resetFilter")))])])]):i("div",{directives:[{name:"clickoutside",rawName:"v-clickoutside",value:e.handleOutsideClick,expression:"handleOutsideClick"},{name:"show",rawName:"v-show",value:e.showPopper,expression:"showPopper"}],staticClass:"el-table-filter"},[i("ul",{staticClass:"el-table-filter__list"},[i("li",{staticClass:"el-table-filter__list-item",class:{"is-active":void 0===e.filterValue||null===e.filterValue},on:{click:function(t){e.handleSelect(null)}}},[e._v(e._s(e.t("el.table.clearFilter")))]),e._l(e.filters,(function(t){return i("li",{key:t.value,staticClass:"el-table-filter__list-item",class:{"is-active":e.isActive(t)},attrs:{label:t.value},on:{click:function(i){e.handleSelect(t.value)}}},[e._v(e._s(t.text))])}))],2)])])};Vi._withStripped=!0;var zi=[];!di.a.prototype.$isServer&&document.addEventListener("click",(function(e){zi.forEach((function(t){var i=e.target;t&&t.$el&&(i===t.$el||t.$el.contains(i)||t.handleOutsideClick&&t.handleOutsideClick(e))}))}));var Ri=function(e){e&&zi.push(e)},Bi=function(e){-1!==zi.indexOf(e)&&zi.splice(e,1)},Hi=i(31),Wi=i.n(Hi),qi=r({name:"ElTableFilterPanel",mixins:[A.a,f.a],directives:{Clickoutside:j.a},components:{ElCheckbox:ri.a,ElCheckboxGroup:Wi.a,ElScrollbar:L.a},props:{placement:{type:String,default:"bottom-end"}},methods:{isActive:function(e){return e.value===this.filterValue},handleOutsideClick:function(){var e=this;setTimeout((function(){e.showPopper=!1}),16)},handleConfirm:function(){this.confirmFilter(this.filteredValue),this.handleOutsideClick()},handleReset:function(){this.filteredValue=[],this.confirmFilter(this.filteredValue),this.handleOutsideClick()},handleSelect:function(e){this.filterValue=e,null!=e?this.confirmFilter(this.filteredValue):this.confirmFilter([]),this.handleOutsideClick()},confirmFilter:function(e){this.table.store.commit("filterChange",{column:this.column,values:e}),this.table.store.updateAllSelected()}},data:function(){return{table:null,cell:null,column:null}},computed:{filters:function(){return this.column&&this.column.filters},filterValue:{get:function(){return(this.column.filteredValue||[])[0]},set:function(e){this.filteredValue&&(null!=e?this.filteredValue.splice(0,1,e):this.filteredValue.splice(0,1))}},filteredValue:{get:function(){return this.column&&this.column.filteredValue||[]},set:function(e){this.column&&(this.column.filteredValue=e)}},multiple:function(){return!this.column||this.column.filterMultiple}},mounted:function(){var e=this;this.popperElm=this.$el,this.referenceElm=this.cell,this.table.bodyWrapper.addEventListener("scroll",(function(){e.updatePopper()})),this.$watch("showPopper",(function(t){e.column&&(e.column.filterOpened=t),t?Ri(e):Bi(e)}))},watch:{showPopper:function(e){!0===e&&parseInt(this.popperJS._popper.style.zIndex,10)1;return r&&(this.$parent.isGroup=!0),e("table",{class:"el-table__header",attrs:{cellspacing:"0",cellpadding:"0",border:"0"}},[e("colgroup",[this.columns.map((function(t){return e("col",{attrs:{name:t.id},key:t.id})})),this.hasGutter?e("col",{attrs:{name:"gutter"}}):""]),e("thead",{class:[{"is-group":r,"has-gutter":this.hasGutter}]},[this._l(n,(function(i,n){return e("tr",{style:t.getHeaderRowStyle(n),class:t.getHeaderRowClass(n)},[i.map((function(r,s){return e("th",{attrs:{colspan:r.colSpan,rowspan:r.rowSpan},on:{mousemove:function(e){return t.handleMouseMove(e,r)},mouseout:t.handleMouseOut,mousedown:function(e){return t.handleMouseDown(e,r)},click:function(e){return t.handleHeaderClick(e,r)},contextmenu:function(e){return t.handleHeaderContextMenu(e,r)}},style:t.getHeaderCellStyle(n,s,i,r),class:t.getHeaderCellClass(n,s,i,r),key:r.id},[e("div",{class:["cell",r.filteredValue&&r.filteredValue.length>0?"highlight":"",r.labelClassName]},[r.renderHeader?r.renderHeader.call(t._renderProxy,e,{column:r,$index:s,store:t.store,_self:t.$parent.$vnode.context}):r.label,r.sortable?e("span",{class:"caret-wrapper",on:{click:function(e){return t.handleSortClick(e,r)}}},[e("i",{class:"sort-caret ascending",on:{click:function(e){return t.handleSortClick(e,r,"ascending")}}}),e("i",{class:"sort-caret descending",on:{click:function(e){return t.handleSortClick(e,r,"descending")}}})]):"",r.filterable?e("span",{class:"el-table__column-filter-trigger",on:{click:function(e){return t.handleFilterClick(e,r)}}},[e("i",{class:["el-icon-arrow-down",r.filterOpened?"el-icon-arrow-up":""]})]):""])])})),t.hasGutter?e("th",{class:"el-table__cell gutter"}):""])}))])])},props:{fixed:String,store:{required:!0},border:Boolean,defaultSort:{type:Object,default:function(){return{prop:"",order:""}}}},components:{ElCheckbox:ri.a},computed:Gi({table:function(){return this.$parent},hasGutter:function(){return!this.fixed&&this.tableLayout.gutterWidth}},Pi({columns:"columns",isAllSelected:"isAllSelected",leftFixedLeafCount:"fixedLeafColumnsLength",rightFixedLeafCount:"rightFixedLeafColumnsLength",columnsCount:function(e){return e.columns.length},leftFixedCount:function(e){return e.fixedColumns.length},rightFixedCount:function(e){return e.rightFixedColumns.length}})),created:function(){this.filterPanels={}},mounted:function(){var e=this;this.$nextTick((function(){var t=e.defaultSort,i=t.prop,n=t.order;e.store.commit("sort",{prop:i,order:n,init:!0})}))},beforeDestroy:function(){var e=this.filterPanels;for(var t in e)e.hasOwnProperty(t)&&e[t]&&e[t].$destroy(!0)},methods:{isCellHidden:function(e,t){for(var i=0,n=0;n=this.leftFixedLeafCount:"right"===this.fixed?i=this.columnsCount-this.rightFixedLeafCount},getHeaderRowStyle:function(e){var t=this.table.headerRowStyle;return"function"==typeof t?t.call(null,{rowIndex:e}):t},getHeaderRowClass:function(e){var t=[],i=this.table.headerRowClassName;return"string"==typeof i?t.push(i):"function"==typeof i&&t.push(i.call(null,{rowIndex:e})),t.join(" ")},getHeaderCellStyle:function(e,t,i,n){var r=this.table.headerCellStyle;return"function"==typeof r?r.call(null,{rowIndex:e,columnIndex:t,row:i,column:n}):r},getHeaderCellClass:function(e,t,i,n){var r=[n.id,n.order,n.headerAlign,n.className,n.labelClassName];0===e&&this.isCellHidden(t,i)&&r.push("is-hidden"),n.children||r.push("is-leaf"),n.sortable&&r.push("is-sortable");var s=this.table.headerCellClassName;return"string"==typeof s?r.push(s):"function"==typeof s&&r.push(s.call(null,{rowIndex:e,columnIndex:t,row:i,column:n})),r.push("el-table__cell"),r.join(" ")},toggleAllSelection:function(e){e.stopPropagation(),this.store.commit("toggleAllSelection")},handleFilterClick:function(e,t){e.stopPropagation();var i=e.target,n="TH"===i.tagName?i:i.parentNode;if(!Object(fe.hasClass)(n,"noclick")){n=n.querySelector(".el-table__column-filter-trigger")||n;var r=this.$parent,s=this.filterPanels[t.id];s&&t.filterOpened?s.showPopper=!1:(s||(s=new di.a(Ui),this.filterPanels[t.id]=s,t.filterPlacement&&(s.placement=t.filterPlacement),s.table=r,s.cell=n,s.column=t,!this.$isServer&&s.$mount(document.createElement("div"))),setTimeout((function(){s.showPopper=!0}),16))}},handleHeaderClick:function(e,t){!t.filters&&t.sortable?this.handleSortClick(e,t):t.filterable&&!t.sortable&&this.handleFilterClick(e,t),this.$parent.$emit("header-click",t,e)},handleHeaderContextMenu:function(e,t){this.$parent.$emit("header-contextmenu",t,e)},handleMouseDown:function(e,t){var i=this;if(!this.$isServer&&!(t.children&&t.children.length>0)&&this.draggingColumn&&this.border){this.dragging=!0,this.$parent.resizeProxyVisible=!0;var n=this.$parent,r=n.$el.getBoundingClientRect().left,s=this.$el.querySelector("th."+t.id),a=s.getBoundingClientRect(),o=a.left-r+30;Object(fe.addClass)(s,"noclick"),this.dragState={startMouseLeft:e.clientX,startLeft:a.right-r,startColumnLeft:a.left-r,tableLeft:r};var l=n.$refs.resizeProxy;l.style.left=this.dragState.startLeft+"px",document.onselectstart=function(){return!1},document.ondragstart=function(){return!1};var u=function(e){var t=e.clientX-i.dragState.startMouseLeft,n=i.dragState.startLeft+t;l.style.left=Math.max(o,n)+"px"};document.addEventListener("mousemove",u),document.addEventListener("mouseup",(function r(){if(i.dragging){var a=i.dragState,o=a.startColumnLeft,c=a.startLeft,d=parseInt(l.style.left,10)-o;t.width=t.realWidth=d,n.$emit("header-dragend",t.width,c-o,t,e),i.store.scheduleLayout(),document.body.style.cursor="",i.dragging=!1,i.draggingColumn=null,i.dragState={},n.resizeProxyVisible=!1}document.removeEventListener("mousemove",u),document.removeEventListener("mouseup",r),document.onselectstart=null,document.ondragstart=null,setTimeout((function(){Object(fe.removeClass)(s,"noclick")}),0)}))}},handleMouseMove:function(e,t){if(!(t.children&&t.children.length>0)){for(var i=e.target;i&&"TH"!==i.tagName;)i=i.parentNode;if(t&&t.resizable&&!this.dragging&&this.border){var n=i.getBoundingClientRect(),r=document.body.style;n.width>12&&n.right-e.pageX<8?(r.cursor="col-resize",Object(fe.hasClass)(i,"is-sortable")&&(i.style.cursor="col-resize"),this.draggingColumn=t):this.dragging||(r.cursor="",Object(fe.hasClass)(i,"is-sortable")&&(i.style.cursor="pointer"),this.draggingColumn=null)}}},handleMouseOut:function(){this.$isServer||(document.body.style.cursor="")},toggleOrder:function(e){var t=e.order,i=e.sortOrders;if(""===t)return i[0];var n=i.indexOf(t||null);return i[n>i.length-2?0:n+1]},handleSortClick:function(e,t,i){e.stopPropagation();for(var n=t.order===i?null:i||this.toggleOrder(t),r=e.target;r&&"TH"!==r.tagName;)r=r.parentNode;if(r&&"TH"===r.tagName&&Object(fe.hasClass)(r,"noclick"))Object(fe.removeClass)(r,"noclick");else if(t.sortable){var s=this.store.states,a=s.sortProp,o=void 0,l=s.sortingColumn;(l!==t||l===t&&null===l.order)&&(l&&(l.order=null),s.sortingColumn=t,a=t.property),o=t.order=n||null,s.sortProp=a,s.sortOrder=o,this.store.commit("changeSortCondition")}}},data:function(){return{draggingColumn:null,dragging:!1,dragState:{}}}},Xi=Object.assign||function(e){for(var t=1;t=this.leftFixedLeafCount;if("right"===this.fixed){for(var n=0,r=0;r=this.columnsCount-this.rightFixedCount)},getRowClasses:function(e,t){var i=[e.id,e.align,e.labelClassName];return e.className&&i.push(e.className),this.isCellHidden(t,this.columns,e)&&i.push("is-hidden"),e.children||i.push("is-leaf"),i}}},Qi=Object.assign||function(e){for(var t=1;t0){var n=i.scrollTop;t.pixelY<0&&0!==n&&e.preventDefault(),t.pixelY>0&&i.scrollHeight-i.clientHeight>n&&e.preventDefault(),i.scrollTop+=Math.ceil(t.pixelY/5)}else i.scrollLeft+=Math.ceil(t.pixelX/5)},handleHeaderFooterMousewheel:function(e,t){var i=t.pixelX,n=t.pixelY;Math.abs(i)>=Math.abs(n)&&(this.bodyWrapper.scrollLeft+=t.pixelX/5)},syncPostion:Object(si.throttle)(20,(function(){var e=this.bodyWrapper,t=e.scrollLeft,i=e.scrollTop,n=e.offsetWidth,r=e.scrollWidth,s=this.$refs,a=s.headerWrapper,o=s.footerWrapper,l=s.fixedBodyWrapper,u=s.rightFixedBodyWrapper;a&&(a.scrollLeft=t),o&&(o.scrollLeft=t),l&&(l.scrollTop=i),u&&(u.scrollTop=i);var c=r-n-1;this.scrollPosition=t>=c?"right":0===t?"left":"middle"})),bindEvents:function(){this.bodyWrapper.addEventListener("scroll",this.syncPostion,{passive:!0}),this.fit&&Object(Lt.addResizeListener)(this.$el,this.resizeListener)},unbindEvents:function(){this.bodyWrapper.removeEventListener("scroll",this.syncPostion,{passive:!0}),this.fit&&Object(Lt.removeResizeListener)(this.$el,this.resizeListener)},resizeListener:function(){if(this.$ready){var e=!1,t=this.$el,i=this.resizeState,n=i.width,r=i.height,s=t.offsetWidth;n!==s&&(e=!0);var a=t.offsetHeight;(this.height||this.shouldUpdateHeight)&&r!==a&&(e=!0),e&&(this.resizeState.width=s,this.resizeState.height=a,this.doLayout())}},doLayout:function(){this.shouldUpdateHeight&&this.layout.updateElsHeight(),this.layout.updateColumnsWidth()},sort:function(e,t){this.store.commit("sort",{prop:e,order:t})},toggleAllSelection:function(){this.store.commit("toggleAllSelection")}},computed:Qi({tableSize:function(){return this.size||(this.$ELEMENT||{}).size},bodyWrapper:function(){return this.$refs.bodyWrapper},shouldUpdateHeight:function(){return this.height||this.maxHeight||this.fixedColumns.length>0||this.rightFixedColumns.length>0},bodyWidth:function(){var e=this.layout,t=e.bodyWidth,i=e.scrollY,n=e.gutterWidth;return t?t-(i?n:0)+"px":""},bodyHeight:function(){var e=this.layout,t=e.headerHeight,i=void 0===t?0:t,n=e.bodyHeight,r=e.footerHeight,s=void 0===r?0:r;if(this.height)return{height:n?n+"px":""};if(this.maxHeight){var a=ki(this.maxHeight);if("number"==typeof a)return{"max-height":a-s-(this.showHeader?i:0)+"px"}}return{}},fixedBodyHeight:function(){if(this.height)return{height:this.layout.fixedBodyHeight?this.layout.fixedBodyHeight+"px":""};if(this.maxHeight){var e=ki(this.maxHeight);if("number"==typeof e)return e=this.layout.scrollX?e-this.layout.gutterWidth:e,this.showHeader&&(e-=this.layout.headerHeight),{"max-height":(e-=this.layout.footerHeight)+"px"}}return{}},fixedHeight:function(){return this.maxHeight?this.showSummary?{bottom:0}:{bottom:this.layout.scrollX&&this.data.length?this.layout.gutterWidth+"px":""}:this.showSummary?{height:this.layout.tableHeight?this.layout.tableHeight+"px":""}:{height:this.layout.viewportHeight?this.layout.viewportHeight+"px":""}},emptyBlockStyle:function(){if(this.data&&this.data.length)return null;var e="100%";return this.layout.appendHeight&&(e="calc(100% - "+this.layout.appendHeight+"px)"),{width:this.bodyWidth,height:e}}},Pi({selection:"selection",columns:"columns",tableData:"data",fixedColumns:"fixedColumns",rightFixedColumns:"rightFixedColumns"})),watch:{height:{immediate:!0,handler:function(e){this.layout.setHeight(e)}},maxHeight:{immediate:!0,handler:function(e){this.layout.setMaxHeight(e)}},currentRowKey:{immediate:!0,handler:function(e){this.rowKey&&this.store.setCurrentRowKey(e)}},data:{immediate:!0,handler:function(e){this.store.commit("setData",e)}},expandRowKeys:{immediate:!0,handler:function(e){e&&this.store.setExpandRowKeysAdapter(e)}}},created:function(){var e=this;this.tableId="el-table_"+Ji++,this.debouncedUpdateLayout=Object(si.debounce)(50,(function(){return e.doLayout()}))},mounted:function(){var e=this;this.bindEvents(),this.store.updateColumns(),this.doLayout(),this.resizeState={width:this.$el.offsetWidth,height:this.$el.offsetHeight},this.store.states.columns.forEach((function(t){t.filteredValue&&t.filteredValue.length&&e.store.commit("filterChange",{column:t,values:t.filteredValue,silent:!0})})),this.$ready=!0},destroyed:function(){this.unbindEvents()},data:function(){var e=this.treeProps,t=e.hasChildren,i=void 0===t?"hasChildren":t,n=e.children,r=void 0===n?"children":n;return this.store=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!e)throw new Error("Table is required.");var i=new $i;return i.table=e,i.toggleAllSelection=$()(10,i._toggleAllSelection),Object.keys(t).forEach((function(e){i.states[e]=t[e]})),i}(this,{rowKey:this.rowKey,defaultExpandAll:this.defaultExpandAll,selectOnIndeterminate:this.selectOnIndeterminate,indent:this.indent,lazy:this.lazy,lazyColumnIdentifier:i,childrenColumnName:r}),{layout:new Ii({store:this.store,table:this,fit:this.fit,showHeader:this.showHeader}),isHidden:!1,renderExpanded:null,resizeProxyVisible:!1,resizeState:{width:null,height:null},isGroup:!1,scrollPosition:"left"}}},ii,[],!1,null,null,null);en.options.__file="packages/table/src/table.vue";var tn=en.exports;tn.install=function(e){e.component(tn.name,tn)};var nn=tn,rn={default:{order:""},selection:{width:48,minWidth:48,realWidth:48,order:"",className:"el-table-column--selection"},expand:{width:48,minWidth:48,realWidth:48,order:""},index:{width:48,minWidth:48,realWidth:48,order:""}},sn={selection:{renderHeader:function(e,t){var i=t.store;return e("el-checkbox",{attrs:{disabled:i.states.data&&0===i.states.data.length,indeterminate:i.states.selection.length>0&&!this.isAllSelected,value:this.isAllSelected},nativeOn:{click:this.toggleAllSelection}})},renderCell:function(e,t){var i=t.row,n=t.column,r=t.store,s=t.$index;return e("el-checkbox",{nativeOn:{click:function(e){return e.stopPropagation()}},attrs:{value:r.isSelected(i),disabled:!!n.selectable&&!n.selectable.call(null,i,s)},on:{input:function(){r.commit("rowSelectedChanged",i)}}})},sortable:!1,resizable:!1},index:{renderHeader:function(e,t){return t.column.label||"#"},renderCell:function(e,t){var i=t.$index,n=i+1,r=t.column.index;return"number"==typeof r?n=i+r:"function"==typeof r&&(n=r(i)),e("div",[n])},sortable:!1},expand:{renderHeader:function(e,t){return t.column.label||""},renderCell:function(e,t){var i=t.row,n=t.store,r=["el-table__expand-icon"];n.states.expandRows.indexOf(i)>-1&&r.push("el-table__expand-icon--expanded");return e("div",{class:r,on:{click:function(e){e.stopPropagation(),n.toggleRowExpansion(i)}}},[e("i",{class:"el-icon el-icon-arrow-right"})])},sortable:!1,resizable:!1,className:"el-table__expand-column"}};function an(e,t){var i=t.row,n=t.column,r=t.$index,s=n.property,a=s&&Object(m.getPropByPath)(i,s).v;return n&&n.formatter?n.formatter(i,n,a,r):a}var on=Object.assign||function(e){for(var t=1;t-1}))}}},data:function(){return{isSubColumn:!1,columns:[]}},computed:{owner:function(){for(var e=this.$parent;e&&!e.tableId;)e=e.$parent;return e},columnOrTableParent:function(){for(var e=this.$parent;e&&!e.tableId&&!e.columnId;)e=e.$parent;return e},realWidth:function(){return xi(this.width)},realMinWidth:function(){return void 0!==(e=this.minWidth)&&(e=xi(e),isNaN(e)&&(e=80)),e;var e},realAlign:function(){return this.align?"is-"+this.align:null},realHeaderAlign:function(){return this.headerAlign?"is-"+this.headerAlign:this.realAlign}},methods:{getPropsData:function(){for(var e=this,t=arguments.length,i=Array(t),n=0;n3&&void 0!==arguments[3]?arguments[3]:"-";if(!e)return null;var r=(yn[i]||yn.default).parser,s=t||fn[i];return r(e,s,n)},wn=function(e,t,i){return e?(0,(yn[i]||yn.default).formatter)(e,t||fn[i]):null},Cn=function(e,t){var i=function(e,t){var i=e instanceof Date,n=t instanceof Date;return i&&n?e.getTime()===t.getTime():!i&&!n&&e===t},n=e instanceof Array,r=t instanceof Array;return n&&r?e.length===t.length&&e.every((function(e,n){return i(e,t[n])})):!n&&!r&&i(e,t)},Sn=function(e){return"string"==typeof e||e instanceof String},On=function(e){return null==e||Sn(e)||Array.isArray(e)&&2===e.length&&e.every(Sn)},Dn=r({mixins:[C.a,pn],inject:{elForm:{default:""},elFormItem:{default:""}},props:{size:String,format:String,valueFormat:String,readonly:Boolean,placeholder:String,startPlaceholder:String,endPlaceholder:String,prefixIcon:String,clearIcon:{type:String,default:"el-icon-circle-close"},name:{default:"",validator:On},disabled:Boolean,clearable:{type:Boolean,default:!0},id:{default:"",validator:On},popperClass:String,editable:{type:Boolean,default:!0},align:{type:String,default:"left"},value:{},defaultValue:{},defaultTime:{},rangeSeparator:{default:"-"},pickerOptions:{},unlinkPanels:Boolean,validateEvent:{type:Boolean,default:!0}},components:{ElInput:h.a},directives:{Clickoutside:j.a},data:function(){return{pickerVisible:!1,showClose:!1,userInput:null,valueOnOpen:null,unwatchPickerOptions:null}},watch:{pickerVisible:function(e){this.readonly||this.pickerDisabled||(e?(this.showPicker(),this.valueOnOpen=Array.isArray(this.value)?[].concat(this.value):this.value):(this.hidePicker(),this.emitChange(this.value),this.userInput=null,this.validateEvent&&this.dispatch("ElFormItem","el.form.blur"),this.$emit("blur",this),this.blur()))},parsedValue:{immediate:!0,handler:function(e){this.picker&&(this.picker.value=e)}},defaultValue:function(e){this.picker&&(this.picker.defaultValue=e)},value:function(e,t){Cn(e,t)||this.pickerVisible||!this.validateEvent||this.dispatch("ElFormItem","el.form.change",e)}},computed:{ranged:function(){return this.type.indexOf("range")>-1},reference:function(){var e=this.$refs.reference;return e.$el||e},refInput:function(){return this.reference?[].slice.call(this.reference.querySelectorAll("input")):[]},valueIsEmpty:function(){var e=this.value;if(Array.isArray(e)){for(var t=0,i=e.length;t0&&void 0!==arguments[0]?arguments[0]:"",i=arguments.length>1&&void 0!==arguments[1]&&arguments[1];e.userInput=null,e.pickerVisible=e.picker.visible=i,e.emitInput(t),e.picker.resetView&&e.picker.resetView()})),this.picker.$on("select-range",(function(t,i,n){0!==e.refInput.length&&(n&&"min"!==n?"max"===n&&(e.refInput[1].setSelectionRange(t,i),e.refInput[1].focus()):(e.refInput[0].setSelectionRange(t,i),e.refInput[0].focus()))}))},unmountPicker:function(){this.picker&&(this.picker.$destroy(),this.picker.$off(),"function"==typeof this.unwatchPickerOptions&&this.unwatchPickerOptions(),this.picker.$el.parentNode.removeChild(this.picker.$el))},emitChange:function(e){Cn(e,this.valueOnOpen)||(this.$emit("change",e),this.valueOnOpen=e,this.validateEvent&&this.dispatch("ElFormItem","el.form.change",e))},emitInput:function(e){var t=this.formatToValue(e);Cn(this.value,t)||this.$emit("input",t)},isValidValue:function(e){return this.picker||this.mountPicker(),!this.picker.isValidValue||e&&this.picker.isValidValue(e)}}},dn,[],!1,null,null,null);Dn.options.__file="packages/date-picker/src/picker.vue";var En=Dn.exports,Tn=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("transition",{attrs:{name:"el-zoom-in-top"},on:{"after-enter":e.handleEnter,"after-leave":e.handleLeave}},[i("div",{directives:[{name:"show",rawName:"v-show",value:e.visible,expression:"visible"}],staticClass:"el-picker-panel el-date-picker el-popper",class:[{"has-sidebar":e.$slots.sidebar||e.shortcuts,"has-time":e.showTime},e.popperClass]},[i("div",{staticClass:"el-picker-panel__body-wrapper"},[e._t("sidebar"),e.shortcuts?i("div",{staticClass:"el-picker-panel__sidebar"},e._l(e.shortcuts,(function(t,n){return i("button",{key:n,staticClass:"el-picker-panel__shortcut",attrs:{type:"button"},on:{click:function(i){e.handleShortcutClick(t)}}},[e._v(e._s(t.text))])})),0):e._e(),i("div",{staticClass:"el-picker-panel__body"},[e.showTime?i("div",{staticClass:"el-date-picker__time-header"},[i("span",{staticClass:"el-date-picker__editor-wrap"},[i("el-input",{attrs:{placeholder:e.t("el.datepicker.selectDate"),value:e.visibleDate,size:"small"},on:{input:function(t){return e.userInputDate=t},change:e.handleVisibleDateChange}})],1),i("span",{directives:[{name:"clickoutside",rawName:"v-clickoutside",value:e.handleTimePickClose,expression:"handleTimePickClose"}],staticClass:"el-date-picker__editor-wrap"},[i("el-input",{ref:"input",attrs:{placeholder:e.t("el.datepicker.selectTime"),value:e.visibleTime,size:"small"},on:{focus:function(t){e.timePickerVisible=!0},input:function(t){return e.userInputTime=t},change:e.handleVisibleTimeChange}}),i("time-picker",{ref:"timepicker",attrs:{"time-arrow-control":e.arrowControl,visible:e.timePickerVisible},on:{pick:e.handleTimePick,mounted:e.proxyTimePickerDataProperties}})],1)]):e._e(),i("div",{directives:[{name:"show",rawName:"v-show",value:"time"!==e.currentView,expression:"currentView !== 'time'"}],staticClass:"el-date-picker__header",class:{"el-date-picker__header--bordered":"year"===e.currentView||"month"===e.currentView}},[i("button",{staticClass:"el-picker-panel__icon-btn el-date-picker__prev-btn el-icon-d-arrow-left",attrs:{type:"button","aria-label":e.t("el.datepicker.prevYear")},on:{click:e.prevYear}}),i("button",{directives:[{name:"show",rawName:"v-show",value:"date"===e.currentView,expression:"currentView === 'date'"}],staticClass:"el-picker-panel__icon-btn el-date-picker__prev-btn el-icon-arrow-left",attrs:{type:"button","aria-label":e.t("el.datepicker.prevMonth")},on:{click:e.prevMonth}}),i("span",{staticClass:"el-date-picker__header-label",attrs:{role:"button"},on:{click:e.showYearPicker}},[e._v(e._s(e.yearLabel))]),i("span",{directives:[{name:"show",rawName:"v-show",value:"date"===e.currentView,expression:"currentView === 'date'"}],staticClass:"el-date-picker__header-label",class:{active:"month"===e.currentView},attrs:{role:"button"},on:{click:e.showMonthPicker}},[e._v(e._s(e.t("el.datepicker.month"+(e.month+1))))]),i("button",{staticClass:"el-picker-panel__icon-btn el-date-picker__next-btn el-icon-d-arrow-right",attrs:{type:"button","aria-label":e.t("el.datepicker.nextYear")},on:{click:e.nextYear}}),i("button",{directives:[{name:"show",rawName:"v-show",value:"date"===e.currentView,expression:"currentView === 'date'"}],staticClass:"el-picker-panel__icon-btn el-date-picker__next-btn el-icon-arrow-right",attrs:{type:"button","aria-label":e.t("el.datepicker.nextMonth")},on:{click:e.nextMonth}})]),i("div",{staticClass:"el-picker-panel__content"},[i("date-table",{directives:[{name:"show",rawName:"v-show",value:"date"===e.currentView,expression:"currentView === 'date'"}],attrs:{"selection-mode":e.selectionMode,"first-day-of-week":e.firstDayOfWeek,value:e.value,"default-value":e.defaultValue?new Date(e.defaultValue):null,date:e.date,"cell-class-name":e.cellClassName,"disabled-date":e.disabledDate},on:{pick:e.handleDatePick}}),i("year-table",{directives:[{name:"show",rawName:"v-show",value:"year"===e.currentView,expression:"currentView === 'year'"}],attrs:{value:e.value,"default-value":e.defaultValue?new Date(e.defaultValue):null,date:e.date,"disabled-date":e.disabledDate},on:{pick:e.handleYearPick}}),i("month-table",{directives:[{name:"show",rawName:"v-show",value:"month"===e.currentView,expression:"currentView === 'month'"}],attrs:{value:e.value,"default-value":e.defaultValue?new Date(e.defaultValue):null,date:e.date,"disabled-date":e.disabledDate},on:{pick:e.handleMonthPick}})],1)])],2),i("div",{directives:[{name:"show",rawName:"v-show",value:e.footerVisible&&"date"===e.currentView,expression:"footerVisible && currentView === 'date'"}],staticClass:"el-picker-panel__footer"},[i("el-button",{directives:[{name:"show",rawName:"v-show",value:"dates"!==e.selectionMode,expression:"selectionMode !== 'dates'"}],staticClass:"el-picker-panel__link-btn",attrs:{size:"mini",type:"text"},on:{click:e.changeToNow}},[e._v("\n "+e._s(e.t("el.datepicker.now"))+"\n ")]),i("el-button",{staticClass:"el-picker-panel__link-btn",attrs:{plain:"",size:"mini"},on:{click:e.confirm}},[e._v("\n "+e._s(e.t("el.datepicker.confirm"))+"\n ")])],1)])])};Tn._withStripped=!0;var $n=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("transition",{attrs:{name:"el-zoom-in-top"},on:{"after-leave":function(t){e.$emit("dodestroy")}}},[i("div",{directives:[{name:"show",rawName:"v-show",value:e.visible,expression:"visible"}],staticClass:"el-time-panel el-popper",class:e.popperClass},[i("div",{staticClass:"el-time-panel__content",class:{"has-seconds":e.showSeconds}},[i("time-spinner",{ref:"spinner",attrs:{"arrow-control":e.useArrow,"show-seconds":e.showSeconds,"am-pm-mode":e.amPmMode,date:e.date},on:{change:e.handleChange,"select-range":e.setSelectionRange}})],1),i("div",{staticClass:"el-time-panel__footer"},[i("button",{staticClass:"el-time-panel__btn cancel",attrs:{type:"button"},on:{click:e.handleCancel}},[e._v(e._s(e.t("el.datepicker.cancel")))]),i("button",{staticClass:"el-time-panel__btn",class:{confirm:!e.disabled},attrs:{type:"button"},on:{click:function(t){e.handleConfirm()}}},[e._v(e._s(e.t("el.datepicker.confirm")))])])])])};$n._withStripped=!0;var Pn=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{staticClass:"el-time-spinner",class:{"has-seconds":e.showSeconds}},[e.arrowControl?e._e():[i("el-scrollbar",{ref:"hours",staticClass:"el-time-spinner__wrapper",attrs:{"wrap-style":"max-height: inherit;","view-class":"el-time-spinner__list",noresize:"",tag:"ul"},nativeOn:{mouseenter:function(t){e.emitSelectRange("hours")},mousemove:function(t){e.adjustCurrentSpinner("hours")}}},e._l(e.hoursList,(function(t,n){return i("li",{key:n,staticClass:"el-time-spinner__item",class:{active:n===e.hours,disabled:t},on:{click:function(i){e.handleClick("hours",{value:n,disabled:t})}}},[e._v(e._s(("0"+(e.amPmMode?n%12||12:n)).slice(-2))+e._s(e.amPm(n)))])})),0),i("el-scrollbar",{ref:"minutes",staticClass:"el-time-spinner__wrapper",attrs:{"wrap-style":"max-height: inherit;","view-class":"el-time-spinner__list",noresize:"",tag:"ul"},nativeOn:{mouseenter:function(t){e.emitSelectRange("minutes")},mousemove:function(t){e.adjustCurrentSpinner("minutes")}}},e._l(e.minutesList,(function(t,n){return i("li",{key:n,staticClass:"el-time-spinner__item",class:{active:n===e.minutes,disabled:!t},on:{click:function(t){e.handleClick("minutes",{value:n,disabled:!1})}}},[e._v(e._s(("0"+n).slice(-2)))])})),0),i("el-scrollbar",{directives:[{name:"show",rawName:"v-show",value:e.showSeconds,expression:"showSeconds"}],ref:"seconds",staticClass:"el-time-spinner__wrapper",attrs:{"wrap-style":"max-height: inherit;","view-class":"el-time-spinner__list",noresize:"",tag:"ul"},nativeOn:{mouseenter:function(t){e.emitSelectRange("seconds")},mousemove:function(t){e.adjustCurrentSpinner("seconds")}}},e._l(60,(function(t,n){return i("li",{key:n,staticClass:"el-time-spinner__item",class:{active:n===e.seconds},on:{click:function(t){e.handleClick("seconds",{value:n,disabled:!1})}}},[e._v(e._s(("0"+n).slice(-2)))])})),0)],e.arrowControl?[i("div",{staticClass:"el-time-spinner__wrapper is-arrow",on:{mouseenter:function(t){e.emitSelectRange("hours")}}},[i("i",{directives:[{name:"repeat-click",rawName:"v-repeat-click",value:e.decrease,expression:"decrease"}],staticClass:"el-time-spinner__arrow el-icon-arrow-up"}),i("i",{directives:[{name:"repeat-click",rawName:"v-repeat-click",value:e.increase,expression:"increase"}],staticClass:"el-time-spinner__arrow el-icon-arrow-down"}),i("ul",{ref:"hours",staticClass:"el-time-spinner__list"},e._l(e.arrowHourList,(function(t,n){return i("li",{key:n,staticClass:"el-time-spinner__item",class:{active:t===e.hours,disabled:e.hoursList[t]}},[e._v(e._s(void 0===t?"":("0"+(e.amPmMode?t%12||12:t)).slice(-2)+e.amPm(t)))])})),0)]),i("div",{staticClass:"el-time-spinner__wrapper is-arrow",on:{mouseenter:function(t){e.emitSelectRange("minutes")}}},[i("i",{directives:[{name:"repeat-click",rawName:"v-repeat-click",value:e.decrease,expression:"decrease"}],staticClass:"el-time-spinner__arrow el-icon-arrow-up"}),i("i",{directives:[{name:"repeat-click",rawName:"v-repeat-click",value:e.increase,expression:"increase"}],staticClass:"el-time-spinner__arrow el-icon-arrow-down"}),i("ul",{ref:"minutes",staticClass:"el-time-spinner__list"},e._l(e.arrowMinuteList,(function(t,n){return i("li",{key:n,staticClass:"el-time-spinner__item",class:{active:t===e.minutes}},[e._v("\n "+e._s(void 0===t?"":("0"+t).slice(-2))+"\n ")])})),0)]),e.showSeconds?i("div",{staticClass:"el-time-spinner__wrapper is-arrow",on:{mouseenter:function(t){e.emitSelectRange("seconds")}}},[i("i",{directives:[{name:"repeat-click",rawName:"v-repeat-click",value:e.decrease,expression:"decrease"}],staticClass:"el-time-spinner__arrow el-icon-arrow-up"}),i("i",{directives:[{name:"repeat-click",rawName:"v-repeat-click",value:e.increase,expression:"increase"}],staticClass:"el-time-spinner__arrow el-icon-arrow-down"}),i("ul",{ref:"seconds",staticClass:"el-time-spinner__list"},e._l(e.arrowSecondList,(function(t,n){return i("li",{key:n,staticClass:"el-time-spinner__item",class:{active:t===e.seconds}},[e._v("\n "+e._s(void 0===t?"":("0"+t).slice(-2))+"\n ")])})),0)]):e._e()]:e._e()],2)};Pn._withStripped=!0;var jn=r({components:{ElScrollbar:L.a},directives:{repeatClick:Ye},props:{date:{},defaultValue:{},showSeconds:{type:Boolean,default:!0},arrowControl:Boolean,amPmMode:{type:String,default:""}},computed:{hours:function(){return this.date.getHours()},minutes:function(){return this.date.getMinutes()},seconds:function(){return this.date.getSeconds()},hoursList:function(){return Object(hn.getRangeHours)(this.selectableRange)},minutesList:function(){return Object(hn.getRangeMinutes)(this.selectableRange,this.hours)},arrowHourList:function(){var e=this.hours;return[e>0?e-1:void 0,e,e<23?e+1:void 0]},arrowMinuteList:function(){var e=this.minutes;return[e>0?e-1:void 0,e,e<59?e+1:void 0]},arrowSecondList:function(){var e=this.seconds;return[e>0?e-1:void 0,e,e<59?e+1:void 0]}},data:function(){return{selectableRange:[],currentScrollbar:null}},mounted:function(){var e=this;this.$nextTick((function(){!e.arrowControl&&e.bindScrollEvent()}))},methods:{increase:function(){this.scrollDown(1)},decrease:function(){this.scrollDown(-1)},modifyDateField:function(e,t){switch(e){case"hours":this.$emit("change",Object(hn.modifyTime)(this.date,t,this.minutes,this.seconds));break;case"minutes":this.$emit("change",Object(hn.modifyTime)(this.date,this.hours,t,this.seconds));break;case"seconds":this.$emit("change",Object(hn.modifyTime)(this.date,this.hours,this.minutes,t))}},handleClick:function(e,t){var i=t.value;t.disabled||(this.modifyDateField(e,i),this.emitSelectRange(e),this.adjustSpinner(e,i))},emitSelectRange:function(e){"hours"===e?this.$emit("select-range",0,2):"minutes"===e?this.$emit("select-range",3,5):"seconds"===e&&this.$emit("select-range",6,8),this.currentScrollbar=e},bindScrollEvent:function(){var e=this,t=function(t){e.$refs[t].wrap.onscroll=function(i){e.handleScroll(t,i)}};t("hours"),t("minutes"),t("seconds")},handleScroll:function(e){var t=Math.min(Math.round((this.$refs[e].wrap.scrollTop-(.5*this.scrollBarHeight(e)-10)/this.typeItemHeight(e)+3)/this.typeItemHeight(e)),"hours"===e?23:59);this.modifyDateField(e,t)},adjustSpinners:function(){this.adjustSpinner("hours",this.hours),this.adjustSpinner("minutes",this.minutes),this.adjustSpinner("seconds",this.seconds)},adjustCurrentSpinner:function(e){this.adjustSpinner(e,this[e])},adjustSpinner:function(e,t){if(!this.arrowControl){var i=this.$refs[e].wrap;i&&(i.scrollTop=Math.max(0,t*this.typeItemHeight(e)))}},scrollDown:function(e){var t=this;this.currentScrollbar||this.emitSelectRange("hours");var i=this.currentScrollbar,n=this.hoursList,r=this[i];if("hours"===this.currentScrollbar){var s=Math.abs(e);e=e>0?1:-1;for(var a=n.length;a--&&s;)n[r=(r+e+n.length)%n.length]||s--;if(n[r])return}else r=(r+e+60)%60;this.modifyDateField(i,r),this.adjustSpinner(i,r),this.$nextTick((function(){return t.emitSelectRange(t.currentScrollbar)}))},amPm:function(e){if(!("a"===this.amPmMode.toLowerCase()))return"";var t=e<12?" am":" pm";return"A"===this.amPmMode&&(t=t.toUpperCase()),t},typeItemHeight:function(e){return this.$refs[e].$el.querySelector("li").offsetHeight},scrollBarHeight:function(e){return this.$refs[e].$el.offsetHeight}}},Pn,[],!1,null,null,null);jn.options.__file="packages/date-picker/src/basic/time-spinner.vue";var Mn=jn.exports,In=r({mixins:[f.a],components:{TimeSpinner:Mn},props:{visible:Boolean,timeArrowControl:Boolean},watch:{visible:function(e){var t=this;e?(this.oldValue=this.value,this.$nextTick((function(){return t.$refs.spinner.emitSelectRange("hours")}))):this.needInitAdjust=!0},value:function(e){var t=this,i=void 0;e instanceof Date?i=Object(hn.limitTimeRange)(e,this.selectableRange,this.format):e||(i=this.defaultValue?new Date(this.defaultValue):new Date),this.date=i,this.visible&&this.needInitAdjust&&(this.$nextTick((function(e){return t.adjustSpinners()})),this.needInitAdjust=!1)},selectableRange:function(e){this.$refs.spinner.selectableRange=e},defaultValue:function(e){Object(hn.isDate)(this.value)||(this.date=e?new Date(e):new Date)}},data:function(){return{popperClass:"",format:"HH:mm:ss",value:"",defaultValue:null,date:new Date,oldValue:new Date,selectableRange:[],selectionRange:[0,2],disabled:!1,arrowControl:!1,needInitAdjust:!0}},computed:{showSeconds:function(){return-1!==(this.format||"").indexOf("ss")},useArrow:function(){return this.arrowControl||this.timeArrowControl||!1},amPmMode:function(){return-1!==(this.format||"").indexOf("A")?"A":-1!==(this.format||"").indexOf("a")?"a":""}},methods:{handleCancel:function(){this.$emit("pick",this.oldValue,!1)},handleChange:function(e){this.visible&&(this.date=Object(hn.clearMilliseconds)(e),this.isValidValue(this.date)&&this.$emit("pick",this.date,!0))},setSelectionRange:function(e,t){this.$emit("select-range",e,t),this.selectionRange=[e,t]},handleConfirm:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=arguments[1];if(!t){var i=Object(hn.clearMilliseconds)(Object(hn.limitTimeRange)(this.date,this.selectableRange,this.format));this.$emit("pick",i,e,t)}},handleKeydown:function(e){var t=e.keyCode,i={38:-1,40:1,37:-1,39:1};if(37===t||39===t){var n=i[t];return this.changeSelectionRange(n),void e.preventDefault()}if(38===t||40===t){var r=i[t];return this.$refs.spinner.scrollDown(r),void e.preventDefault()}},isValidValue:function(e){return Object(hn.timeWithinRange)(e,this.selectableRange,this.format)},adjustSpinners:function(){return this.$refs.spinner.adjustSpinners()},changeSelectionRange:function(e){var t=[0,3].concat(this.showSeconds?[6]:[]),i=["hours","minutes"].concat(this.showSeconds?["seconds"]:[]),n=(t.indexOf(this.selectionRange[0])+e+t.length)%t.length;this.$refs.spinner.emitSelectRange(i[n])}},mounted:function(){var e=this;this.$nextTick((function(){return e.handleConfirm(!0,!0)})),this.$emit("mounted")}},$n,[],!1,null,null,null);In.options.__file="packages/date-picker/src/panel/time.vue";var An=In.exports,Nn=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("table",{staticClass:"el-year-table",on:{click:e.handleYearTableClick}},[i("tbody",[i("tr",[i("td",{staticClass:"available",class:e.getCellStyle(e.startYear+0)},[i("a",{staticClass:"cell"},[e._v(e._s(e.startYear))])]),i("td",{staticClass:"available",class:e.getCellStyle(e.startYear+1)},[i("a",{staticClass:"cell"},[e._v(e._s(e.startYear+1))])]),i("td",{staticClass:"available",class:e.getCellStyle(e.startYear+2)},[i("a",{staticClass:"cell"},[e._v(e._s(e.startYear+2))])]),i("td",{staticClass:"available",class:e.getCellStyle(e.startYear+3)},[i("a",{staticClass:"cell"},[e._v(e._s(e.startYear+3))])])]),i("tr",[i("td",{staticClass:"available",class:e.getCellStyle(e.startYear+4)},[i("a",{staticClass:"cell"},[e._v(e._s(e.startYear+4))])]),i("td",{staticClass:"available",class:e.getCellStyle(e.startYear+5)},[i("a",{staticClass:"cell"},[e._v(e._s(e.startYear+5))])]),i("td",{staticClass:"available",class:e.getCellStyle(e.startYear+6)},[i("a",{staticClass:"cell"},[e._v(e._s(e.startYear+6))])]),i("td",{staticClass:"available",class:e.getCellStyle(e.startYear+7)},[i("a",{staticClass:"cell"},[e._v(e._s(e.startYear+7))])])]),i("tr",[i("td",{staticClass:"available",class:e.getCellStyle(e.startYear+8)},[i("a",{staticClass:"cell"},[e._v(e._s(e.startYear+8))])]),i("td",{staticClass:"available",class:e.getCellStyle(e.startYear+9)},[i("a",{staticClass:"cell"},[e._v(e._s(e.startYear+9))])]),i("td"),i("td")])])])};Nn._withStripped=!0;var Ln=r({props:{disabledDate:{},value:{},defaultValue:{validator:function(e){return null===e||e instanceof Date&&Object(hn.isDate)(e)}},date:{}},computed:{startYear:function(){return 10*Math.floor(this.date.getFullYear()/10)}},methods:{getCellStyle:function(e){var t={},i=new Date;return t.disabled="function"==typeof this.disabledDate&&function(e){var t=Object(hn.getDayCountOfYear)(e),i=new Date(e,0,1);return Object(hn.range)(t).map((function(e){return Object(hn.nextDate)(i,e)}))}(e).every(this.disabledDate),t.current=Object(m.arrayFindIndex)(Object(m.coerceTruthyValueToArray)(this.value),(function(t){return t.getFullYear()===e}))>=0,t.today=i.getFullYear()===e,t.default=this.defaultValue&&this.defaultValue.getFullYear()===e,t},handleYearTableClick:function(e){var t=e.target;if("A"===t.tagName){if(Object(fe.hasClass)(t.parentNode,"disabled"))return;var i=t.textContent||t.innerText;this.$emit("pick",Number(i))}}}},Nn,[],!1,null,null,null);Ln.options.__file="packages/date-picker/src/basic/year-table.vue";var Fn=Ln.exports,Vn=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("table",{staticClass:"el-month-table",on:{click:e.handleMonthTableClick,mousemove:e.handleMouseMove}},[i("tbody",e._l(e.rows,(function(t,n){return i("tr",{key:n},e._l(t,(function(t,n){return i("td",{key:n,class:e.getCellStyle(t)},[i("div",[i("a",{staticClass:"cell"},[e._v(e._s(e.t("el.datepicker.months."+e.months[t.text])))])])])})),0)})),0)])};Vn._withStripped=!0;var zn=function(e){return new Date(e.getFullYear(),e.getMonth())},Rn=function(e){return"number"==typeof e||"string"==typeof e?zn(new Date(e)).getTime():e instanceof Date?zn(e).getTime():NaN},Bn=r({props:{disabledDate:{},value:{},selectionMode:{default:"month"},minDate:{},maxDate:{},defaultValue:{validator:function(e){return null===e||Object(hn.isDate)(e)||Array.isArray(e)&&e.every(hn.isDate)}},date:{},rangeState:{default:function(){return{endDate:null,selecting:!1}}}},mixins:[f.a],watch:{"rangeState.endDate":function(e){this.markRange(this.minDate,e)},minDate:function(e,t){Rn(e)!==Rn(t)&&this.markRange(this.minDate,this.maxDate)},maxDate:function(e,t){Rn(e)!==Rn(t)&&this.markRange(this.minDate,this.maxDate)}},data:function(){return{months:["jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec"],tableRows:[[],[],[]],lastRow:null,lastColumn:null}},methods:{cellMatchesDate:function(e,t){var i=new Date(t);return this.date.getFullYear()===i.getFullYear()&&Number(e.text)===i.getMonth()},getCellStyle:function(e){var t=this,i={},n=this.date.getFullYear(),r=new Date,s=e.text,a=this.defaultValue?Array.isArray(this.defaultValue)?this.defaultValue:[this.defaultValue]:[];return i.disabled="function"==typeof this.disabledDate&&function(e,t){var i=Object(hn.getDayCountOfMonth)(e,t),n=new Date(e,t,1);return Object(hn.range)(i).map((function(e){return Object(hn.nextDate)(n,e)}))}(n,s).every(this.disabledDate),i.current=Object(m.arrayFindIndex)(Object(m.coerceTruthyValueToArray)(this.value),(function(e){return e.getFullYear()===n&&e.getMonth()===s}))>=0,i.today=r.getFullYear()===n&&r.getMonth()===s,i.default=a.some((function(i){return t.cellMatchesDate(e,i)})),e.inRange&&(i["in-range"]=!0,e.start&&(i["start-date"]=!0),e.end&&(i["end-date"]=!0)),i},getMonthOfCell:function(e){var t=this.date.getFullYear();return new Date(t,e,1)},markRange:function(e,t){e=Rn(e),t=Rn(t)||e;var i=[Math.min(e,t),Math.max(e,t)];e=i[0],t=i[1];for(var n=this.rows,r=0,s=n.length;r=e&&d<=t,u.start=e&&d===e,u.end=t&&d===t}},handleMouseMove:function(e){if(this.rangeState.selecting){var t=e.target;if("A"===t.tagName&&(t=t.parentNode.parentNode),"DIV"===t.tagName&&(t=t.parentNode),"TD"===t.tagName){var i=t.parentNode.rowIndex,n=t.cellIndex;this.rows[i][n].disabled||i===this.lastRow&&n===this.lastColumn||(this.lastRow=i,this.lastColumn=n,this.$emit("changerange",{minDate:this.minDate,maxDate:this.maxDate,rangeState:{selecting:!0,endDate:this.getMonthOfCell(4*i+n)}}))}}},handleMonthTableClick:function(e){var t=e.target;if("A"===t.tagName&&(t=t.parentNode.parentNode),"DIV"===t.tagName&&(t=t.parentNode),"TD"===t.tagName&&!Object(fe.hasClass)(t,"disabled")){var i=t.cellIndex,n=4*t.parentNode.rowIndex+i,r=this.getMonthOfCell(n);"range"===this.selectionMode?this.rangeState.selecting?(r>=this.minDate?this.$emit("pick",{minDate:this.minDate,maxDate:r}):this.$emit("pick",{minDate:r,maxDate:this.minDate}),this.rangeState.selecting=!1):(this.$emit("pick",{minDate:r,maxDate:null}),this.rangeState.selecting=!0):this.$emit("pick",n)}}},computed:{rows:function(){for(var e=this,t=this.tableRows,i=this.disabledDate,n=[],r=Rn(new Date),s=0;s<3;s++)for(var a=t[s],o=function(t){var o=a[t];o||(o={row:s,column:t,type:"normal",inRange:!1,start:!1,end:!1}),o.type="normal";var l=4*s+t,u=new Date(e.date.getFullYear(),l).getTime();o.inRange=u>=Rn(e.minDate)&&u<=Rn(e.maxDate),o.start=e.minDate&&u===Rn(e.minDate),o.end=e.maxDate&&u===Rn(e.maxDate),u===r&&(o.type="today"),o.text=l;var c=new Date(u);o.disabled="function"==typeof i&&i(c),o.selected=Object(m.arrayFind)(n,(function(e){return e.getTime()===c.getTime()})),e.$set(a,t,o)},l=0;l<4;l++)o(l);return t}}},Vn,[],!1,null,null,null);Bn.options.__file="packages/date-picker/src/basic/month-table.vue";var Hn=Bn.exports,Wn=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("table",{staticClass:"el-date-table",class:{"is-week-mode":"week"===e.selectionMode},attrs:{cellspacing:"0",cellpadding:"0"},on:{click:e.handleClick,mousemove:e.handleMouseMove}},[i("tbody",[i("tr",[e.showWeekNumber?i("th",[e._v(e._s(e.t("el.datepicker.week")))]):e._e(),e._l(e.WEEKS,(function(t,n){return i("th",{key:n},[e._v(e._s(e.t("el.datepicker.weeks."+t)))])}))],2),e._l(e.rows,(function(t,n){return i("tr",{key:n,staticClass:"el-date-table__row",class:{current:e.isWeekActive(t[1])}},e._l(t,(function(t,n){return i("td",{key:n,class:e.getCellClasses(t)},[i("div",[i("span",[e._v("\n "+e._s(t.text)+"\n ")])])])})),0)}))],2)])};Wn._withStripped=!0;var qn=["sun","mon","tue","wed","thu","fri","sat"],Un=function(e){return"number"==typeof e||"string"==typeof e?Object(hn.clearTime)(new Date(e)).getTime():e instanceof Date?Object(hn.clearTime)(e).getTime():NaN},Gn=r({mixins:[f.a],props:{firstDayOfWeek:{default:7,type:Number,validator:function(e){return e>=1&&e<=7}},value:{},defaultValue:{validator:function(e){return null===e||Object(hn.isDate)(e)||Array.isArray(e)&&e.every(hn.isDate)}},date:{},selectionMode:{default:"day"},showWeekNumber:{type:Boolean,default:!1},disabledDate:{},cellClassName:{},minDate:{},maxDate:{},rangeState:{default:function(){return{endDate:null,selecting:!1}}}},computed:{offsetDay:function(){var e=this.firstDayOfWeek;return e>3?7-e:-e},WEEKS:function(){var e=this.firstDayOfWeek;return qn.concat(qn).slice(e,e+7)},year:function(){return this.date.getFullYear()},month:function(){return this.date.getMonth()},startDate:function(){return Object(hn.getStartDateOfMonth)(this.year,this.month)},rows:function(){var e=this,t=new Date(this.year,this.month,1),i=Object(hn.getFirstDayOfMonth)(t),n=Object(hn.getDayCountOfMonth)(t.getFullYear(),t.getMonth()),r=Object(hn.getDayCountOfMonth)(t.getFullYear(),0===t.getMonth()?11:t.getMonth()-1);i=0===i?7:i;for(var s=this.offsetDay,a=this.tableRows,o=1,l=this.startDate,u=this.disabledDate,c=this.cellClassName,d="dates"===this.selectionMode?Object(m.coerceTruthyValueToArray)(this.value):[],h=Un(new Date),p=0;p<6;p++){var f=a[p];this.showWeekNumber&&(f[0]||(f[0]={type:"week",text:Object(hn.getWeekNumber)(Object(hn.nextDate)(l,7*p+1))}));for(var v=function(t){var a=f[e.showWeekNumber?t+1:t];a||(a={row:p,column:t,type:"normal",inRange:!1,start:!1,end:!1}),a.type="normal";var v=7*p+t,g=Object(hn.nextDate)(l,v-s).getTime();if(a.inRange=g>=Un(e.minDate)&&g<=Un(e.maxDate),a.start=e.minDate&&g===Un(e.minDate),a.end=e.maxDate&&g===Un(e.maxDate),g===h&&(a.type="today"),p>=0&&p<=1){var _=i+s<0?7+i+s:i+s;t+7*p>=_?a.text=o++:(a.text=r-(_-t%7)+1+7*p,a.type="prev-month")}else o<=n?a.text=o++:(a.text=o++-n,a.type="next-month");var b=new Date(g);a.disabled="function"==typeof u&&u(b),a.selected=Object(m.arrayFind)(d,(function(e){return e.getTime()===b.getTime()})),a.customClass="function"==typeof c&&c(b),e.$set(f,e.showWeekNumber?t+1:t,a)},g=0;g<7;g++)v(g);if("week"===this.selectionMode){var _=this.showWeekNumber?1:0,b=this.showWeekNumber?7:6,y=this.isWeekActive(f[_+1]);f[_].inRange=y,f[_].start=y,f[b].inRange=y,f[b].end=y}}return a}},watch:{"rangeState.endDate":function(e){this.markRange(this.minDate,e)},minDate:function(e,t){Un(e)!==Un(t)&&this.markRange(this.minDate,this.maxDate)},maxDate:function(e,t){Un(e)!==Un(t)&&this.markRange(this.minDate,this.maxDate)}},data:function(){return{tableRows:[[],[],[],[],[],[]],lastRow:null,lastColumn:null}},methods:{cellMatchesDate:function(e,t){var i=new Date(t);return this.year===i.getFullYear()&&this.month===i.getMonth()&&Number(e.text)===i.getDate()},getCellClasses:function(e){var t=this,i=this.selectionMode,n=this.defaultValue?Array.isArray(this.defaultValue)?this.defaultValue:[this.defaultValue]:[],r=[];return"normal"!==e.type&&"today"!==e.type||e.disabled?r.push(e.type):(r.push("available"),"today"===e.type&&r.push("today")),"normal"===e.type&&n.some((function(i){return t.cellMatchesDate(e,i)}))&&r.push("default"),"day"!==i||"normal"!==e.type&&"today"!==e.type||!this.cellMatchesDate(e,this.value)||r.push("current"),!e.inRange||"normal"!==e.type&&"today"!==e.type&&"week"!==this.selectionMode||(r.push("in-range"),e.start&&r.push("start-date"),e.end&&r.push("end-date")),e.disabled&&r.push("disabled"),e.selected&&r.push("selected"),e.customClass&&r.push(e.customClass),r.join(" ")},getDateOfCell:function(e,t){var i=7*e+(t-(this.showWeekNumber?1:0))-this.offsetDay;return Object(hn.nextDate)(this.startDate,i)},isWeekActive:function(e){if("week"!==this.selectionMode)return!1;var t=new Date(this.year,this.month,1),i=t.getFullYear(),n=t.getMonth();if("prev-month"===e.type&&(t.setMonth(0===n?11:n-1),t.setFullYear(0===n?i-1:i)),"next-month"===e.type&&(t.setMonth(11===n?0:n+1),t.setFullYear(11===n?i+1:i)),t.setDate(parseInt(e.text,10)),Object(hn.isDate)(this.value)){var r=(this.value.getDay()-this.firstDayOfWeek+7)%7-1;return Object(hn.prevDate)(this.value,r).getTime()===t.getTime()}return!1},markRange:function(e,t){e=Un(e),t=Un(t)||e;var i=[Math.min(e,t),Math.max(e,t)];e=i[0],t=i[1];for(var n=this.startDate,r=this.rows,s=0,a=r.length;s=e&&h<=t,c.start=e&&h===e,c.end=t&&h===t}},handleMouseMove:function(e){if(this.rangeState.selecting){var t=e.target;if("SPAN"===t.tagName&&(t=t.parentNode.parentNode),"DIV"===t.tagName&&(t=t.parentNode),"TD"===t.tagName){var i=t.parentNode.rowIndex-1,n=t.cellIndex;this.rows[i][n].disabled||i===this.lastRow&&n===this.lastColumn||(this.lastRow=i,this.lastColumn=n,this.$emit("changerange",{minDate:this.minDate,maxDate:this.maxDate,rangeState:{selecting:!0,endDate:this.getDateOfCell(i,n)}}))}}},handleClick:function(e){var t=e.target;if("SPAN"===t.tagName&&(t=t.parentNode.parentNode),"DIV"===t.tagName&&(t=t.parentNode),"TD"===t.tagName){var i=t.parentNode.rowIndex-1,n="week"===this.selectionMode?1:t.cellIndex,r=this.rows[i][n];if(!r.disabled&&"week"!==r.type){var s,a,o,l=this.getDateOfCell(i,n);if("range"===this.selectionMode)this.rangeState.selecting?(l>=this.minDate?this.$emit("pick",{minDate:this.minDate,maxDate:l}):this.$emit("pick",{minDate:l,maxDate:this.minDate}),this.rangeState.selecting=!1):(this.$emit("pick",{minDate:l,maxDate:null}),this.rangeState.selecting=!0);else if("day"===this.selectionMode)this.$emit("pick",l);else if("week"===this.selectionMode){var u=Object(hn.getWeekNumber)(l),c=l.getFullYear()+"w"+u;this.$emit("pick",{year:l.getFullYear(),week:u,value:c,date:l})}else if("dates"===this.selectionMode){var d=this.value||[],h=r.selected?(s=d,(o="function"==typeof(a=function(e){return e.getTime()===l.getTime()})?Object(m.arrayFindIndex)(s,a):s.indexOf(a))>=0?[].concat(s.slice(0,o),s.slice(o+1)):s):[].concat(d,[l]);this.$emit("pick",h)}}}}}},Wn,[],!1,null,null,null);Gn.options.__file="packages/date-picker/src/basic/date-table.vue";var Yn=Gn.exports,Kn=r({mixins:[f.a],directives:{Clickoutside:j.a},watch:{showTime:function(e){var t=this;e&&this.$nextTick((function(e){var i=t.$refs.input.$el;i&&(t.pickerWidth=i.getBoundingClientRect().width+10)}))},value:function(e){"dates"===this.selectionMode&&this.value||(Object(hn.isDate)(e)?this.date=new Date(e):this.date=this.getDefaultValue())},defaultValue:function(e){Object(hn.isDate)(this.value)||(this.date=e?new Date(e):new Date)},timePickerVisible:function(e){var t=this;e&&this.$nextTick((function(){return t.$refs.timepicker.adjustSpinners()}))},selectionMode:function(e){"month"===e?"year"===this.currentView&&"month"===this.currentView||(this.currentView="month"):"dates"===e&&(this.currentView="date")}},methods:{proxyTimePickerDataProperties:function(){var e,t=this,i=function(e){t.$refs.timepicker.value=e},n=function(e){t.$refs.timepicker.date=e},r=function(e){t.$refs.timepicker.selectableRange=e};this.$watch("value",i),this.$watch("date",n),this.$watch("selectableRange",r),e=this.timeFormat,t.$refs.timepicker.format=e,i(this.value),n(this.date),r(this.selectableRange)},handleClear:function(){this.date=this.getDefaultValue(),this.$emit("pick",null)},emit:function(e){for(var t=this,i=arguments.length,n=Array(i>1?i-1:0),r=1;r0)||Object(hn.timeWithinRange)(e,this.selectableRange,this.format||"HH:mm:ss")}},components:{TimePicker:An,YearTable:Fn,MonthTable:Hn,DateTable:Yn,ElInput:h.a,ElButton:U.a},data:function(){return{popperClass:"",date:new Date,value:"",defaultValue:null,defaultTime:null,showTime:!1,selectionMode:"day",shortcuts:"",visible:!1,currentView:"date",disabledDate:"",cellClassName:"",selectableRange:[],firstDayOfWeek:7,showWeekNumber:!1,timePickerVisible:!1,format:"",arrowControl:!1,userInputDate:null,userInputTime:null}},computed:{year:function(){return this.date.getFullYear()},month:function(){return this.date.getMonth()},week:function(){return Object(hn.getWeekNumber)(this.date)},monthDate:function(){return this.date.getDate()},footerVisible:function(){return this.showTime||"dates"===this.selectionMode},visibleTime:function(){return null!==this.userInputTime?this.userInputTime:Object(hn.formatDate)(this.value||this.defaultValue,this.timeFormat)},visibleDate:function(){return null!==this.userInputDate?this.userInputDate:Object(hn.formatDate)(this.value||this.defaultValue,this.dateFormat)},yearLabel:function(){var e=this.t("el.datepicker.year");if("year"===this.currentView){var t=10*Math.floor(this.year/10);return e?t+" "+e+" - "+(t+9)+" "+e:t+" - "+(t+9)}return this.year+" "+e},timeFormat:function(){return this.format?Object(hn.extractTimeFormat)(this.format):"HH:mm:ss"},dateFormat:function(){return this.format?Object(hn.extractDateFormat)(this.format):"yyyy-MM-dd"}}},Tn,[],!1,null,null,null);Kn.options.__file="packages/date-picker/src/panel/date.vue";var Xn=Kn.exports,Zn=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("transition",{attrs:{name:"el-zoom-in-top"},on:{"after-leave":function(t){e.$emit("dodestroy")}}},[i("div",{directives:[{name:"show",rawName:"v-show",value:e.visible,expression:"visible"}],staticClass:"el-picker-panel el-date-range-picker el-popper",class:[{"has-sidebar":e.$slots.sidebar||e.shortcuts,"has-time":e.showTime},e.popperClass]},[i("div",{staticClass:"el-picker-panel__body-wrapper"},[e._t("sidebar"),e.shortcuts?i("div",{staticClass:"el-picker-panel__sidebar"},e._l(e.shortcuts,(function(t,n){return i("button",{key:n,staticClass:"el-picker-panel__shortcut",attrs:{type:"button"},on:{click:function(i){e.handleShortcutClick(t)}}},[e._v(e._s(t.text))])})),0):e._e(),i("div",{staticClass:"el-picker-panel__body"},[e.showTime?i("div",{staticClass:"el-date-range-picker__time-header"},[i("span",{staticClass:"el-date-range-picker__editors-wrap"},[i("span",{staticClass:"el-date-range-picker__time-picker-wrap"},[i("el-input",{ref:"minInput",staticClass:"el-date-range-picker__editor",attrs:{size:"small",disabled:e.rangeState.selecting,placeholder:e.t("el.datepicker.startDate"),value:e.minVisibleDate},on:{input:function(t){return e.handleDateInput(t,"min")},change:function(t){return e.handleDateChange(t,"min")}}})],1),i("span",{directives:[{name:"clickoutside",rawName:"v-clickoutside",value:e.handleMinTimeClose,expression:"handleMinTimeClose"}],staticClass:"el-date-range-picker__time-picker-wrap"},[i("el-input",{staticClass:"el-date-range-picker__editor",attrs:{size:"small",disabled:e.rangeState.selecting,placeholder:e.t("el.datepicker.startTime"),value:e.minVisibleTime},on:{focus:function(t){e.minTimePickerVisible=!0},input:function(t){return e.handleTimeInput(t,"min")},change:function(t){return e.handleTimeChange(t,"min")}}}),i("time-picker",{ref:"minTimePicker",attrs:{"time-arrow-control":e.arrowControl,visible:e.minTimePickerVisible},on:{pick:e.handleMinTimePick,mounted:function(t){e.$refs.minTimePicker.format=e.timeFormat}}})],1)]),i("span",{staticClass:"el-icon-arrow-right"}),i("span",{staticClass:"el-date-range-picker__editors-wrap is-right"},[i("span",{staticClass:"el-date-range-picker__time-picker-wrap"},[i("el-input",{staticClass:"el-date-range-picker__editor",attrs:{size:"small",disabled:e.rangeState.selecting,placeholder:e.t("el.datepicker.endDate"),value:e.maxVisibleDate,readonly:!e.minDate},on:{input:function(t){return e.handleDateInput(t,"max")},change:function(t){return e.handleDateChange(t,"max")}}})],1),i("span",{directives:[{name:"clickoutside",rawName:"v-clickoutside",value:e.handleMaxTimeClose,expression:"handleMaxTimeClose"}],staticClass:"el-date-range-picker__time-picker-wrap"},[i("el-input",{staticClass:"el-date-range-picker__editor",attrs:{size:"small",disabled:e.rangeState.selecting,placeholder:e.t("el.datepicker.endTime"),value:e.maxVisibleTime,readonly:!e.minDate},on:{focus:function(t){e.minDate&&(e.maxTimePickerVisible=!0)},input:function(t){return e.handleTimeInput(t,"max")},change:function(t){return e.handleTimeChange(t,"max")}}}),i("time-picker",{ref:"maxTimePicker",attrs:{"time-arrow-control":e.arrowControl,visible:e.maxTimePickerVisible},on:{pick:e.handleMaxTimePick,mounted:function(t){e.$refs.maxTimePicker.format=e.timeFormat}}})],1)])]):e._e(),i("div",{staticClass:"el-picker-panel__content el-date-range-picker__content is-left"},[i("div",{staticClass:"el-date-range-picker__header"},[i("button",{staticClass:"el-picker-panel__icon-btn el-icon-d-arrow-left",attrs:{type:"button"},on:{click:e.leftPrevYear}}),i("button",{staticClass:"el-picker-panel__icon-btn el-icon-arrow-left",attrs:{type:"button"},on:{click:e.leftPrevMonth}}),e.unlinkPanels?i("button",{staticClass:"el-picker-panel__icon-btn el-icon-d-arrow-right",class:{"is-disabled":!e.enableYearArrow},attrs:{type:"button",disabled:!e.enableYearArrow},on:{click:e.leftNextYear}}):e._e(),e.unlinkPanels?i("button",{staticClass:"el-picker-panel__icon-btn el-icon-arrow-right",class:{"is-disabled":!e.enableMonthArrow},attrs:{type:"button",disabled:!e.enableMonthArrow},on:{click:e.leftNextMonth}}):e._e(),i("div",[e._v(e._s(e.leftLabel))])]),i("date-table",{attrs:{"selection-mode":"range",date:e.leftDate,"default-value":e.defaultValue,"min-date":e.minDate,"max-date":e.maxDate,"range-state":e.rangeState,"disabled-date":e.disabledDate,"cell-class-name":e.cellClassName,"first-day-of-week":e.firstDayOfWeek},on:{changerange:e.handleChangeRange,pick:e.handleRangePick}})],1),i("div",{staticClass:"el-picker-panel__content el-date-range-picker__content is-right"},[i("div",{staticClass:"el-date-range-picker__header"},[e.unlinkPanels?i("button",{staticClass:"el-picker-panel__icon-btn el-icon-d-arrow-left",class:{"is-disabled":!e.enableYearArrow},attrs:{type:"button",disabled:!e.enableYearArrow},on:{click:e.rightPrevYear}}):e._e(),e.unlinkPanels?i("button",{staticClass:"el-picker-panel__icon-btn el-icon-arrow-left",class:{"is-disabled":!e.enableMonthArrow},attrs:{type:"button",disabled:!e.enableMonthArrow},on:{click:e.rightPrevMonth}}):e._e(),i("button",{staticClass:"el-picker-panel__icon-btn el-icon-d-arrow-right",attrs:{type:"button"},on:{click:e.rightNextYear}}),i("button",{staticClass:"el-picker-panel__icon-btn el-icon-arrow-right",attrs:{type:"button"},on:{click:e.rightNextMonth}}),i("div",[e._v(e._s(e.rightLabel))])]),i("date-table",{attrs:{"selection-mode":"range",date:e.rightDate,"default-value":e.defaultValue,"min-date":e.minDate,"max-date":e.maxDate,"range-state":e.rangeState,"disabled-date":e.disabledDate,"cell-class-name":e.cellClassName,"first-day-of-week":e.firstDayOfWeek},on:{changerange:e.handleChangeRange,pick:e.handleRangePick}})],1)])],2),e.showTime?i("div",{staticClass:"el-picker-panel__footer"},[i("el-button",{staticClass:"el-picker-panel__link-btn",attrs:{size:"mini",type:"text"},on:{click:e.handleClear}},[e._v("\n "+e._s(e.t("el.datepicker.clear"))+"\n ")]),i("el-button",{staticClass:"el-picker-panel__link-btn",attrs:{plain:"",size:"mini",disabled:e.btnDisabled},on:{click:function(t){e.handleConfirm(!1)}}},[e._v("\n "+e._s(e.t("el.datepicker.confirm"))+"\n ")])],1):e._e()])])};Zn._withStripped=!0;var Qn=function(e){return Array.isArray(e)?[new Date(e[0]),new Date(e[1])]:e?[new Date(e),Object(hn.nextDate)(new Date(e),1)]:[new Date,Object(hn.nextDate)(new Date,1)]},Jn=r({mixins:[f.a],directives:{Clickoutside:j.a},computed:{btnDisabled:function(){return!(this.minDate&&this.maxDate&&!this.selecting&&this.isValidValue([this.minDate,this.maxDate]))},leftLabel:function(){return this.leftDate.getFullYear()+" "+this.t("el.datepicker.year")+" "+this.t("el.datepicker.month"+(this.leftDate.getMonth()+1))},rightLabel:function(){return this.rightDate.getFullYear()+" "+this.t("el.datepicker.year")+" "+this.t("el.datepicker.month"+(this.rightDate.getMonth()+1))},leftYear:function(){return this.leftDate.getFullYear()},leftMonth:function(){return this.leftDate.getMonth()},leftMonthDate:function(){return this.leftDate.getDate()},rightYear:function(){return this.rightDate.getFullYear()},rightMonth:function(){return this.rightDate.getMonth()},rightMonthDate:function(){return this.rightDate.getDate()},minVisibleDate:function(){return null!==this.dateUserInput.min?this.dateUserInput.min:this.minDate?Object(hn.formatDate)(this.minDate,this.dateFormat):""},maxVisibleDate:function(){return null!==this.dateUserInput.max?this.dateUserInput.max:this.maxDate||this.minDate?Object(hn.formatDate)(this.maxDate||this.minDate,this.dateFormat):""},minVisibleTime:function(){return null!==this.timeUserInput.min?this.timeUserInput.min:this.minDate?Object(hn.formatDate)(this.minDate,this.timeFormat):""},maxVisibleTime:function(){return null!==this.timeUserInput.max?this.timeUserInput.max:this.maxDate||this.minDate?Object(hn.formatDate)(this.maxDate||this.minDate,this.timeFormat):""},timeFormat:function(){return this.format?Object(hn.extractTimeFormat)(this.format):"HH:mm:ss"},dateFormat:function(){return this.format?Object(hn.extractDateFormat)(this.format):"yyyy-MM-dd"},enableMonthArrow:function(){var e=(this.leftMonth+1)%12,t=this.leftMonth+1>=12?1:0;return this.unlinkPanels&&new Date(this.leftYear+t,e)=12}},data:function(){return{popperClass:"",value:[],defaultValue:null,defaultTime:null,minDate:"",maxDate:"",leftDate:new Date,rightDate:Object(hn.nextMonth)(new Date),rangeState:{endDate:null,selecting:!1,row:null,column:null},showTime:!1,shortcuts:"",visible:"",disabledDate:"",cellClassName:"",firstDayOfWeek:7,minTimePickerVisible:!1,maxTimePickerVisible:!1,format:"",arrowControl:!1,unlinkPanels:!1,dateUserInput:{min:null,max:null},timeUserInput:{min:null,max:null}}},watch:{minDate:function(e){var t=this;this.dateUserInput.min=null,this.timeUserInput.min=null,this.$nextTick((function(){if(t.$refs.maxTimePicker&&t.maxDate&&t.maxDatethis.maxDate&&(this.maxDate=this.minDate)):(this.maxDate=Object(hn.modifyDate)(this.maxDate,i.getFullYear(),i.getMonth(),i.getDate()),this.maxDatethis.maxDate&&(this.maxDate=this.minDate),this.$refs.minTimePicker.value=this.minDate,this.minTimePickerVisible=!1):(this.maxDate=Object(hn.modifyTime)(this.maxDate,i.getHours(),i.getMinutes(),i.getSeconds()),this.maxDate1&&void 0!==arguments[1])||arguments[1],n=this.defaultTime||[],r=Object(hn.modifyWithTimeString)(e.minDate,n[0]),s=Object(hn.modifyWithTimeString)(e.maxDate,n[1]);this.maxDate===s&&this.minDate===r||(this.onPick&&this.onPick(e),this.maxDate=s,this.minDate=r,setTimeout((function(){t.maxDate=s,t.minDate=r}),10),i&&!this.showTime&&this.handleConfirm())},handleShortcutClick:function(e){e.onClick&&e.onClick(this)},handleMinTimePick:function(e,t,i){this.minDate=this.minDate||new Date,e&&(this.minDate=Object(hn.modifyTime)(this.minDate,e.getHours(),e.getMinutes(),e.getSeconds())),i||(this.minTimePickerVisible=t),(!this.maxDate||this.maxDate&&this.maxDate.getTime()this.maxDate.getTime()&&(this.minDate=new Date(this.maxDate))},handleMaxTimeClose:function(){this.maxTimePickerVisible=!1},leftPrevYear:function(){this.leftDate=Object(hn.prevYear)(this.leftDate),this.unlinkPanels||(this.rightDate=Object(hn.nextMonth)(this.leftDate))},leftPrevMonth:function(){this.leftDate=Object(hn.prevMonth)(this.leftDate),this.unlinkPanels||(this.rightDate=Object(hn.nextMonth)(this.leftDate))},rightNextYear:function(){this.unlinkPanels?this.rightDate=Object(hn.nextYear)(this.rightDate):(this.leftDate=Object(hn.nextYear)(this.leftDate),this.rightDate=Object(hn.nextMonth)(this.leftDate))},rightNextMonth:function(){this.unlinkPanels?this.rightDate=Object(hn.nextMonth)(this.rightDate):(this.leftDate=Object(hn.nextMonth)(this.leftDate),this.rightDate=Object(hn.nextMonth)(this.leftDate))},leftNextYear:function(){this.leftDate=Object(hn.nextYear)(this.leftDate)},leftNextMonth:function(){this.leftDate=Object(hn.nextMonth)(this.leftDate)},rightPrevYear:function(){this.rightDate=Object(hn.prevYear)(this.rightDate)},rightPrevMonth:function(){this.rightDate=Object(hn.prevMonth)(this.rightDate)},handleConfirm:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];this.isValidValue([this.minDate,this.maxDate])&&this.$emit("pick",[this.minDate,this.maxDate],e)},isValidValue:function(e){return Array.isArray(e)&&e&&e[0]&&e[1]&&Object(hn.isDate)(e[0])&&Object(hn.isDate)(e[1])&&e[0].getTime()<=e[1].getTime()&&("function"!=typeof this.disabledDate||!this.disabledDate(e[0])&&!this.disabledDate(e[1]))},resetView:function(){this.minDate&&null==this.maxDate&&(this.rangeState.selecting=!1),this.minDate=this.value&&Object(hn.isDate)(this.value[0])?new Date(this.value[0]):null,this.maxDate=this.value&&Object(hn.isDate)(this.value[0])?new Date(this.value[1]):null}},components:{TimePicker:An,DateTable:Yn,ElInput:h.a,ElButton:U.a}},Zn,[],!1,null,null,null);Jn.options.__file="packages/date-picker/src/panel/date-range.vue";var er=Jn.exports,tr=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("transition",{attrs:{name:"el-zoom-in-top"},on:{"after-leave":function(t){e.$emit("dodestroy")}}},[i("div",{directives:[{name:"show",rawName:"v-show",value:e.visible,expression:"visible"}],staticClass:"el-picker-panel el-date-range-picker el-popper",class:[{"has-sidebar":e.$slots.sidebar||e.shortcuts},e.popperClass]},[i("div",{staticClass:"el-picker-panel__body-wrapper"},[e._t("sidebar"),e.shortcuts?i("div",{staticClass:"el-picker-panel__sidebar"},e._l(e.shortcuts,(function(t,n){return i("button",{key:n,staticClass:"el-picker-panel__shortcut",attrs:{type:"button"},on:{click:function(i){e.handleShortcutClick(t)}}},[e._v(e._s(t.text))])})),0):e._e(),i("div",{staticClass:"el-picker-panel__body"},[i("div",{staticClass:"el-picker-panel__content el-date-range-picker__content is-left"},[i("div",{staticClass:"el-date-range-picker__header"},[i("button",{staticClass:"el-picker-panel__icon-btn el-icon-d-arrow-left",attrs:{type:"button"},on:{click:e.leftPrevYear}}),e.unlinkPanels?i("button",{staticClass:"el-picker-panel__icon-btn el-icon-d-arrow-right",class:{"is-disabled":!e.enableYearArrow},attrs:{type:"button",disabled:!e.enableYearArrow},on:{click:e.leftNextYear}}):e._e(),i("div",[e._v(e._s(e.leftLabel))])]),i("month-table",{attrs:{"selection-mode":"range",date:e.leftDate,"default-value":e.defaultValue,"min-date":e.minDate,"max-date":e.maxDate,"range-state":e.rangeState,"disabled-date":e.disabledDate},on:{changerange:e.handleChangeRange,pick:e.handleRangePick}})],1),i("div",{staticClass:"el-picker-panel__content el-date-range-picker__content is-right"},[i("div",{staticClass:"el-date-range-picker__header"},[e.unlinkPanels?i("button",{staticClass:"el-picker-panel__icon-btn el-icon-d-arrow-left",class:{"is-disabled":!e.enableYearArrow},attrs:{type:"button",disabled:!e.enableYearArrow},on:{click:e.rightPrevYear}}):e._e(),i("button",{staticClass:"el-picker-panel__icon-btn el-icon-d-arrow-right",attrs:{type:"button"},on:{click:e.rightNextYear}}),i("div",[e._v(e._s(e.rightLabel))])]),i("month-table",{attrs:{"selection-mode":"range",date:e.rightDate,"default-value":e.defaultValue,"min-date":e.minDate,"max-date":e.maxDate,"range-state":e.rangeState,"disabled-date":e.disabledDate},on:{changerange:e.handleChangeRange,pick:e.handleRangePick}})],1)])],2)])])};tr._withStripped=!0;var ir=function(e){return Array.isArray(e)?[new Date(e[0]),new Date(e[1])]:e?[new Date(e),Object(hn.nextMonth)(new Date(e))]:[new Date,Object(hn.nextMonth)(new Date)]},nr=r({mixins:[f.a],directives:{Clickoutside:j.a},computed:{btnDisabled:function(){return!(this.minDate&&this.maxDate&&!this.selecting&&this.isValidValue([this.minDate,this.maxDate]))},leftLabel:function(){return this.leftDate.getFullYear()+" "+this.t("el.datepicker.year")},rightLabel:function(){return this.rightDate.getFullYear()+" "+this.t("el.datepicker.year")},leftYear:function(){return this.leftDate.getFullYear()},rightYear:function(){return this.rightDate.getFullYear()===this.leftDate.getFullYear()?this.leftDate.getFullYear()+1:this.rightDate.getFullYear()},enableYearArrow:function(){return this.unlinkPanels&&this.rightYear>this.leftYear+1}},data:function(){return{popperClass:"",value:[],defaultValue:null,defaultTime:null,minDate:"",maxDate:"",leftDate:new Date,rightDate:Object(hn.nextYear)(new Date),rangeState:{endDate:null,selecting:!1,row:null,column:null},shortcuts:"",visible:"",disabledDate:"",format:"",arrowControl:!1,unlinkPanels:!1}},watch:{value:function(e){if(e){if(Array.isArray(e))if(this.minDate=Object(hn.isDate)(e[0])?new Date(e[0]):null,this.maxDate=Object(hn.isDate)(e[1])?new Date(e[1]):null,this.minDate)if(this.leftDate=this.minDate,this.unlinkPanels&&this.maxDate){var t=this.minDate.getFullYear(),i=this.maxDate.getFullYear();this.rightDate=t===i?Object(hn.nextYear)(this.maxDate):this.maxDate}else this.rightDate=Object(hn.nextYear)(this.leftDate);else this.leftDate=ir(this.defaultValue)[0],this.rightDate=Object(hn.nextYear)(this.leftDate)}else this.minDate=null,this.maxDate=null},defaultValue:function(e){if(!Array.isArray(this.value)){var t=ir(e),i=t[0],n=t[1];this.leftDate=i,this.rightDate=e&&e[1]&&i.getFullYear()!==n.getFullYear()&&this.unlinkPanels?n:Object(hn.nextYear)(this.leftDate)}}},methods:{handleClear:function(){this.minDate=null,this.maxDate=null,this.leftDate=ir(this.defaultValue)[0],this.rightDate=Object(hn.nextYear)(this.leftDate),this.$emit("pick",null)},handleChangeRange:function(e){this.minDate=e.minDate,this.maxDate=e.maxDate,this.rangeState=e.rangeState},handleRangePick:function(e){var t=this,i=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=this.defaultTime||[],r=Object(hn.modifyWithTimeString)(e.minDate,n[0]),s=Object(hn.modifyWithTimeString)(e.maxDate,n[1]);this.maxDate===s&&this.minDate===r||(this.onPick&&this.onPick(e),this.maxDate=s,this.minDate=r,setTimeout((function(){t.maxDate=s,t.minDate=r}),10),i&&this.handleConfirm())},handleShortcutClick:function(e){e.onClick&&e.onClick(this)},leftPrevYear:function(){this.leftDate=Object(hn.prevYear)(this.leftDate),this.unlinkPanels||(this.rightDate=Object(hn.prevYear)(this.rightDate))},rightNextYear:function(){this.unlinkPanels||(this.leftDate=Object(hn.nextYear)(this.leftDate)),this.rightDate=Object(hn.nextYear)(this.rightDate)},leftNextYear:function(){this.leftDate=Object(hn.nextYear)(this.leftDate)},rightPrevYear:function(){this.rightDate=Object(hn.prevYear)(this.rightDate)},handleConfirm:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];this.isValidValue([this.minDate,this.maxDate])&&this.$emit("pick",[this.minDate,this.maxDate],e)},isValidValue:function(e){return Array.isArray(e)&&e&&e[0]&&e[1]&&Object(hn.isDate)(e[0])&&Object(hn.isDate)(e[1])&&e[0].getTime()<=e[1].getTime()&&("function"!=typeof this.disabledDate||!this.disabledDate(e[0])&&!this.disabledDate(e[1]))},resetView:function(){this.minDate=this.value&&Object(hn.isDate)(this.value[0])?new Date(this.value[0]):null,this.maxDate=this.value&&Object(hn.isDate)(this.value[0])?new Date(this.value[1]):null}},components:{MonthTable:Hn,ElInput:h.a,ElButton:U.a}},tr,[],!1,null,null,null);nr.options.__file="packages/date-picker/src/panel/month-range.vue";var rr=nr.exports,sr=function(e){return"daterange"===e||"datetimerange"===e?er:"monthrange"===e?rr:Xn},ar={mixins:[En],name:"ElDatePicker",props:{type:{type:String,default:"date"},timeArrowControl:Boolean},watch:{type:function(e){this.picker?(this.unmountPicker(),this.panel=sr(e),this.mountPicker()):this.panel=sr(e)}},created:function(){this.panel=sr(this.type)},install:function(e){e.component(ar.name,ar)}},or=ar,lr=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("transition",{attrs:{name:"el-zoom-in-top"},on:{"before-enter":e.handleMenuEnter,"after-leave":function(t){e.$emit("dodestroy")}}},[i("div",{directives:[{name:"show",rawName:"v-show",value:e.visible,expression:"visible"}],ref:"popper",staticClass:"el-picker-panel time-select el-popper",class:e.popperClass,style:{width:e.width+"px"}},[i("el-scrollbar",{attrs:{noresize:"","wrap-class":"el-picker-panel__content"}},e._l(e.items,(function(t){return i("div",{key:t.value,staticClass:"time-select-item",class:{selected:e.value===t.value,disabled:t.disabled,default:t.value===e.defaultValue},attrs:{disabled:t.disabled},on:{click:function(i){e.handleClick(t)}}},[e._v(e._s(t.value))])})),0)],1)])};lr._withStripped=!0;var ur=function(e){var t=(e||"").split(":");return t.length>=2?{hours:parseInt(t[0],10),minutes:parseInt(t[1],10)}:null},cr=function(e,t){var i=ur(e),n=ur(t),r=i.minutes+60*i.hours,s=n.minutes+60*n.hours;return r===s?0:r>s?1:-1},dr=function(e,t){var i=ur(e),n=ur(t),r={hours:i.hours,minutes:i.minutes};return r.minutes+=n.minutes,r.hours+=n.hours,r.hours+=Math.floor(r.minutes/60),r.minutes=r.minutes%60,function(e){return(e.hours<10?"0"+e.hours:e.hours)+":"+(e.minutes<10?"0"+e.minutes:e.minutes)}(r)},hr=r({components:{ElScrollbar:L.a},watch:{value:function(e){var t=this;e&&this.$nextTick((function(){return t.scrollToOption()}))}},methods:{handleClick:function(e){e.disabled||this.$emit("pick",e.value)},handleClear:function(){this.$emit("pick",null)},scrollToOption:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:".selected",t=this.$refs.popper.querySelector(".el-picker-panel__content");Vt()(t,t.querySelector(e))},handleMenuEnter:function(){var e=this,t=-1!==this.items.map((function(e){return e.value})).indexOf(this.value),i=-1!==this.items.map((function(e){return e.value})).indexOf(this.defaultValue),n=(t?".selected":i&&".default")||".time-select-item:not(.disabled)";this.$nextTick((function(){return e.scrollToOption(n)}))},scrollDown:function(e){for(var t=this.items,i=t.length,n=t.length,r=t.map((function(e){return e.value})).indexOf(this.value);n--;)if(!t[r=(r+e+i)%i].disabled)return void this.$emit("pick",t[r].value,!0)},isValidValue:function(e){return-1!==this.items.filter((function(e){return!e.disabled})).map((function(e){return e.value})).indexOf(e)},handleKeydown:function(e){var t=e.keyCode;if(38===t||40===t){var i={40:1,38:-1}[t.toString()];return this.scrollDown(i),void e.stopPropagation()}}},data:function(){return{popperClass:"",start:"09:00",end:"18:00",step:"00:30",value:"",defaultValue:"",visible:!1,minTime:"",maxTime:"",width:0}},computed:{items:function(){var e=this.start,t=this.end,i=this.step,n=[];if(e&&t&&i)for(var r=e;cr(r,t)<=0;)n.push({value:r,disabled:cr(r,this.minTime||"-1:-1")<=0||cr(r,this.maxTime||"100:100")>=0}),r=dr(r,i);return n}}},lr,[],!1,null,null,null);hr.options.__file="packages/date-picker/src/panel/time-select.vue";var pr=hr.exports,fr={mixins:[En],name:"ElTimeSelect",componentName:"ElTimeSelect",props:{type:{type:String,default:"time-select"}},beforeCreate:function(){this.panel=pr},install:function(e){e.component(fr.name,fr)}},mr=fr,vr=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("transition",{attrs:{name:"el-zoom-in-top"},on:{"after-leave":function(t){e.$emit("dodestroy")}}},[i("div",{directives:[{name:"show",rawName:"v-show",value:e.visible,expression:"visible"}],staticClass:"el-time-range-picker el-picker-panel el-popper",class:e.popperClass},[i("div",{staticClass:"el-time-range-picker__content"},[i("div",{staticClass:"el-time-range-picker__cell"},[i("div",{staticClass:"el-time-range-picker__header"},[e._v(e._s(e.t("el.datepicker.startTime")))]),i("div",{staticClass:"el-time-range-picker__body el-time-panel__content",class:{"has-seconds":e.showSeconds,"is-arrow":e.arrowControl}},[i("time-spinner",{ref:"minSpinner",attrs:{"show-seconds":e.showSeconds,"am-pm-mode":e.amPmMode,"arrow-control":e.arrowControl,date:e.minDate},on:{change:e.handleMinChange,"select-range":e.setMinSelectionRange}})],1)]),i("div",{staticClass:"el-time-range-picker__cell"},[i("div",{staticClass:"el-time-range-picker__header"},[e._v(e._s(e.t("el.datepicker.endTime")))]),i("div",{staticClass:"el-time-range-picker__body el-time-panel__content",class:{"has-seconds":e.showSeconds,"is-arrow":e.arrowControl}},[i("time-spinner",{ref:"maxSpinner",attrs:{"show-seconds":e.showSeconds,"am-pm-mode":e.amPmMode,"arrow-control":e.arrowControl,date:e.maxDate},on:{change:e.handleMaxChange,"select-range":e.setMaxSelectionRange}})],1)])]),i("div",{staticClass:"el-time-panel__footer"},[i("button",{staticClass:"el-time-panel__btn cancel",attrs:{type:"button"},on:{click:function(t){e.handleCancel()}}},[e._v(e._s(e.t("el.datepicker.cancel")))]),i("button",{staticClass:"el-time-panel__btn confirm",attrs:{type:"button",disabled:e.btnDisabled},on:{click:function(t){e.handleConfirm()}}},[e._v(e._s(e.t("el.datepicker.confirm")))])])])])};vr._withStripped=!0;var gr=Object(hn.parseDate)("00:00:00","HH:mm:ss"),_r=Object(hn.parseDate)("23:59:59","HH:mm:ss"),br=function(e){return Object(hn.modifyDate)(_r,e.getFullYear(),e.getMonth(),e.getDate())},yr=function(e,t){return new Date(Math.min(e.getTime()+t,br(e).getTime()))},xr=r({mixins:[f.a],components:{TimeSpinner:Mn},computed:{showSeconds:function(){return-1!==(this.format||"").indexOf("ss")},offset:function(){return this.showSeconds?11:8},spinner:function(){return this.selectionRange[0]this.maxDate.getTime()},amPmMode:function(){return-1!==(this.format||"").indexOf("A")?"A":-1!==(this.format||"").indexOf("a")?"a":""}},data:function(){return{popperClass:"",minDate:new Date,maxDate:new Date,value:[],oldValue:[new Date,new Date],defaultValue:null,format:"HH:mm:ss",visible:!1,selectionRange:[0,2],arrowControl:!1}},watch:{value:function(e){Array.isArray(e)?(this.minDate=new Date(e[0]),this.maxDate=new Date(e[1])):Array.isArray(this.defaultValue)?(this.minDate=new Date(this.defaultValue[0]),this.maxDate=new Date(this.defaultValue[1])):this.defaultValue?(this.minDate=new Date(this.defaultValue),this.maxDate=yr(new Date(this.defaultValue),36e5)):(this.minDate=new Date,this.maxDate=yr(new Date,36e5))},visible:function(e){var t=this;e&&(this.oldValue=this.value,this.$nextTick((function(){return t.$refs.minSpinner.emitSelectRange("hours")})))}},methods:{handleClear:function(){this.$emit("pick",null)},handleCancel:function(){this.$emit("pick",this.oldValue)},handleMinChange:function(e){this.minDate=Object(hn.clearMilliseconds)(e),this.handleChange()},handleMaxChange:function(e){this.maxDate=Object(hn.clearMilliseconds)(e),this.handleChange()},handleChange:function(){var e;this.isValidValue([this.minDate,this.maxDate])&&(this.$refs.minSpinner.selectableRange=[[(e=this.minDate,Object(hn.modifyDate)(gr,e.getFullYear(),e.getMonth(),e.getDate())),this.maxDate]],this.$refs.maxSpinner.selectableRange=[[this.minDate,br(this.maxDate)]],this.$emit("pick",[this.minDate,this.maxDate],!0))},setMinSelectionRange:function(e,t){this.$emit("select-range",e,t,"min"),this.selectionRange=[e,t]},setMaxSelectionRange:function(e,t){this.$emit("select-range",e,t,"max"),this.selectionRange=[e+this.offset,t+this.offset]},handleConfirm:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=this.$refs.minSpinner.selectableRange,i=this.$refs.maxSpinner.selectableRange;this.minDate=Object(hn.limitTimeRange)(this.minDate,t,this.format),this.maxDate=Object(hn.limitTimeRange)(this.maxDate,i,this.format),this.$emit("pick",[this.minDate,this.maxDate],e)},adjustSpinners:function(){this.$refs.minSpinner.adjustSpinners(),this.$refs.maxSpinner.adjustSpinners()},changeSelectionRange:function(e){var t=this.showSeconds?[0,3,6,11,14,17]:[0,3,8,11],i=["hours","minutes"].concat(this.showSeconds?["seconds"]:[]),n=(t.indexOf(this.selectionRange[0])+e+t.length)%t.length,r=t.length/2;n-1}},openDelay:{type:Number,default:0},closeDelay:{type:Number,default:200},title:String,disabled:Boolean,content:String,reference:{},popperClass:String,width:{},visibleArrow:{default:!0},arrowOffset:{type:Number,default:0},transition:{type:String,default:"fade-in-linear"},tabindex:{type:Number,default:0}},computed:{tooltipId:function(){return"el-popover-"+Object(m.generateId)()}},watch:{showPopper:function(e){this.disabled||(e?this.$emit("show"):this.$emit("hide"))}},mounted:function(){var e=this,t=this.referenceElm=this.reference||this.$refs.reference,i=this.popper||this.$refs.popper;!t&&this.$refs.wrapper.children&&(t=this.referenceElm=this.$refs.wrapper.children[0]),t&&(Object(fe.addClass)(t,"el-popover__reference"),t.setAttribute("aria-describedby",this.tooltipId),t.setAttribute("tabindex",this.tabindex),i.setAttribute("tabindex",0),"click"!==this.trigger&&(Object(fe.on)(t,"focusin",(function(){e.handleFocus();var i=t.__vue__;i&&"function"==typeof i.focus&&i.focus()})),Object(fe.on)(i,"focusin",this.handleFocus),Object(fe.on)(t,"focusout",this.handleBlur),Object(fe.on)(i,"focusout",this.handleBlur)),Object(fe.on)(t,"keydown",this.handleKeydown),Object(fe.on)(t,"click",this.handleClick)),"click"===this.trigger?(Object(fe.on)(t,"click",this.doToggle),Object(fe.on)(document,"click",this.handleDocumentClick)):"hover"===this.trigger?(Object(fe.on)(t,"mouseenter",this.handleMouseEnter),Object(fe.on)(i,"mouseenter",this.handleMouseEnter),Object(fe.on)(t,"mouseleave",this.handleMouseLeave),Object(fe.on)(i,"mouseleave",this.handleMouseLeave)):"focus"===this.trigger&&(this.tabindex<0&&console.warn("[Element Warn][Popover]a negative taindex means that the element cannot be focused by tab key"),t.querySelector("input, textarea")?(Object(fe.on)(t,"focusin",this.doShow),Object(fe.on)(t,"focusout",this.doClose)):(Object(fe.on)(t,"mousedown",this.doShow),Object(fe.on)(t,"mouseup",this.doClose)))},beforeDestroy:function(){this.cleanup()},deactivated:function(){this.cleanup()},methods:{doToggle:function(){this.showPopper=!this.showPopper},doShow:function(){this.showPopper=!0},doClose:function(){this.showPopper=!1},handleFocus:function(){Object(fe.addClass)(this.referenceElm,"focusing"),"click"!==this.trigger&&"focus"!==this.trigger||(this.showPopper=!0)},handleClick:function(){Object(fe.removeClass)(this.referenceElm,"focusing")},handleBlur:function(){Object(fe.removeClass)(this.referenceElm,"focusing"),"click"!==this.trigger&&"focus"!==this.trigger||(this.showPopper=!1)},handleMouseEnter:function(){var e=this;clearTimeout(this._timer),this.openDelay?this._timer=setTimeout((function(){e.showPopper=!0}),this.openDelay):this.showPopper=!0},handleKeydown:function(e){27===e.keyCode&&"manual"!==this.trigger&&this.doClose()},handleMouseLeave:function(){var e=this;clearTimeout(this._timer),this.closeDelay?this._timer=setTimeout((function(){e.showPopper=!1}),this.closeDelay):this.showPopper=!1},handleDocumentClick:function(e){var t=this.reference||this.$refs.reference,i=this.popper||this.$refs.popper;!t&&this.$refs.wrapper.children&&(t=this.referenceElm=this.$refs.wrapper.children[0]),this.$el&&t&&!this.$el.contains(e.target)&&!t.contains(e.target)&&i&&!i.contains(e.target)&&(this.showPopper=!1)},handleAfterEnter:function(){this.$emit("after-enter")},handleAfterLeave:function(){this.$emit("after-leave"),this.doDestroy()},cleanup:function(){(this.openDelay||this.closeDelay)&&clearTimeout(this._timer)}},destroyed:function(){var e=this.reference;Object(fe.off)(e,"click",this.doToggle),Object(fe.off)(e,"mouseup",this.doClose),Object(fe.off)(e,"mousedown",this.doShow),Object(fe.off)(e,"focusin",this.doShow),Object(fe.off)(e,"focusout",this.doClose),Object(fe.off)(e,"mousedown",this.doShow),Object(fe.off)(e,"mouseup",this.doClose),Object(fe.off)(e,"mouseleave",this.handleMouseLeave),Object(fe.off)(e,"mouseenter",this.handleMouseEnter),Object(fe.off)(document,"click",this.handleDocumentClick)}},Sr,[],!1,null,null,null);Or.options.__file="packages/popover/src/main.vue";var Dr=Or.exports,Er=function(e,t,i){var n=t.expression?t.value:t.arg,r=i.context.$refs[n];r&&(Array.isArray(r)?r[0].$refs.reference=e:r.$refs.reference=e)},Tr={bind:function(e,t,i){Er(e,t,i)},inserted:function(e,t,i){Er(e,t,i)}};di.a.directive("popover",Tr),Dr.install=function(e){e.directive("popover",Tr),e.component(Dr.name,Dr)},Dr.directive=Tr;var $r=Dr,Pr={name:"ElTooltip",mixins:[A.a],props:{openDelay:{type:Number,default:0},disabled:Boolean,manual:Boolean,effect:{type:String,default:"dark"},arrowOffset:{type:Number,default:0},popperClass:String,content:String,visibleArrow:{default:!0},transition:{type:String,default:"el-fade-in-linear"},popperOptions:{default:function(){return{boundariesPadding:10,gpuAcceleration:!1}}},enterable:{type:Boolean,default:!0},hideAfter:{type:Number,default:0},tabindex:{type:Number,default:0}},data:function(){return{tooltipId:"el-tooltip-"+Object(m.generateId)(),timeoutPending:null,focusing:!1}},beforeCreate:function(){var e=this;this.$isServer||(this.popperVM=new di.a({data:{node:""},render:function(e){return this.node}}).$mount(),this.debounceClose=$()(200,(function(){return e.handleClosePopper()})))},render:function(e){var t=this;this.popperVM&&(this.popperVM.node=e("transition",{attrs:{name:this.transition},on:{afterLeave:this.doDestroy}},[e("div",{on:{mouseleave:function(){t.setExpectedState(!1),t.debounceClose()},mouseenter:function(){t.setExpectedState(!0)}},ref:"popper",attrs:{role:"tooltip",id:this.tooltipId,"aria-hidden":this.disabled||!this.showPopper?"true":"false"},directives:[{name:"show",value:!this.disabled&&this.showPopper}],class:["el-tooltip__popper","is-"+this.effect,this.popperClass]},[this.$slots.content||this.content])]));var i=this.getFirstElement();if(!i)return null;var n=i.data=i.data||{};return n.staticClass=this.addTooltipClass(n.staticClass),i},mounted:function(){var e=this;this.referenceElm=this.$el,1===this.$el.nodeType&&(this.$el.setAttribute("aria-describedby",this.tooltipId),this.$el.setAttribute("tabindex",this.tabindex),Object(fe.on)(this.referenceElm,"mouseenter",this.show),Object(fe.on)(this.referenceElm,"mouseleave",this.hide),Object(fe.on)(this.referenceElm,"focus",(function(){if(e.$slots.default&&e.$slots.default.length){var t=e.$slots.default[0].componentInstance;t&&t.focus?t.focus():e.handleFocus()}else e.handleFocus()})),Object(fe.on)(this.referenceElm,"blur",this.handleBlur),Object(fe.on)(this.referenceElm,"click",this.removeFocusing)),this.value&&this.popperVM&&this.popperVM.$nextTick((function(){e.value&&e.updatePopper()}))},watch:{focusing:function(e){e?Object(fe.addClass)(this.referenceElm,"focusing"):Object(fe.removeClass)(this.referenceElm,"focusing")}},methods:{show:function(){this.setExpectedState(!0),this.handleShowPopper()},hide:function(){this.setExpectedState(!1),this.debounceClose()},handleFocus:function(){this.focusing=!0,this.show()},handleBlur:function(){this.focusing=!1,this.hide()},removeFocusing:function(){this.focusing=!1},addTooltipClass:function(e){return e?"el-tooltip "+e.replace("el-tooltip",""):"el-tooltip"},handleShowPopper:function(){var e=this;this.expectedState&&!this.manual&&(clearTimeout(this.timeout),this.timeout=setTimeout((function(){e.showPopper=!0}),this.openDelay),this.hideAfter>0&&(this.timeoutPending=setTimeout((function(){e.showPopper=!1}),this.hideAfter)))},handleClosePopper:function(){this.enterable&&this.expectedState||this.manual||(clearTimeout(this.timeout),this.timeoutPending&&clearTimeout(this.timeoutPending),this.showPopper=!1,this.disabled&&this.doDestroy())},setExpectedState:function(e){!1===e&&clearTimeout(this.timeoutPending),this.expectedState=e},getFirstElement:function(){var e=this.$slots.default;if(!Array.isArray(e))return null;for(var t=null,i=0;i0){var t=(Ur=Yr.shift()).options;for(var i in t)t.hasOwnProperty(i)&&(Gr[i]=t[i]);void 0===t.callback&&(Gr.callback=Kr);var n=Gr.callback;Gr.callback=function(t,i){n(t,i),e()},Object(Br.isVNode)(Gr.message)?(Gr.$slots.default=[Gr.message],Gr.message=null):delete Gr.$slots.default,["modal","showClose","closeOnClickModal","closeOnPressEscape","closeOnHashChange"].forEach((function(e){void 0===Gr[e]&&(Gr[e]=!0)})),document.body.appendChild(Gr.$el),di.a.nextTick((function(){Gr.visible=!0}))}},Zr=function e(t,i){if(!di.a.prototype.$isServer){if("string"==typeof t||Object(Br.isVNode)(t)?(t={message:t},"string"==typeof arguments[1]&&(t.title=arguments[1])):t.callback&&!i&&(i=t.callback),"undefined"!=typeof Promise)return new Promise((function(n,r){Yr.push({options:Be()({},Wr,e.defaults,t),callback:i,resolve:n,reject:r}),Xr()}));Yr.push({options:Be()({},Wr,e.defaults,t),callback:i}),Xr()}};Zr.setDefaults=function(e){Zr.defaults=e},Zr.alert=function(e,t,i){return"object"===(void 0===t?"undefined":Hr(t))?(i=t,t=""):void 0===t&&(t=""),Zr(Be()({title:t,message:e,$type:"alert",closeOnPressEscape:!1,closeOnClickModal:!1},i))},Zr.confirm=function(e,t,i){return"object"===(void 0===t?"undefined":Hr(t))?(i=t,t=""):void 0===t&&(t=""),Zr(Be()({title:t,message:e,$type:"confirm",showCancelButton:!0},i))},Zr.prompt=function(e,t,i){return"object"===(void 0===t?"undefined":Hr(t))?(i=t,t=""):void 0===t&&(t=""),Zr(Be()({title:t,message:e,showCancelButton:!0,showInput:!0,$type:"prompt"},i))},Zr.close=function(){Gr.doClose(),Gr.visible=!1,Yr=[],Ur=null};var Qr=Zr,Jr=function(){var e=this.$createElement;return(this._self._c||e)("div",{staticClass:"el-breadcrumb",attrs:{"aria-label":"Breadcrumb",role:"navigation"}},[this._t("default")],2)};Jr._withStripped=!0;var es=r({name:"ElBreadcrumb",props:{separator:{type:String,default:"/"},separatorClass:{type:String,default:""}},provide:function(){return{elBreadcrumb:this}},mounted:function(){var e=this.$el.querySelectorAll(".el-breadcrumb__item");e.length&&e[e.length-1].setAttribute("aria-current","page")}},Jr,[],!1,null,null,null);es.options.__file="packages/breadcrumb/src/breadcrumb.vue";var ts=es.exports;ts.install=function(e){e.component(ts.name,ts)};var is=ts,ns=function(){var e=this.$createElement,t=this._self._c||e;return t("span",{staticClass:"el-breadcrumb__item"},[t("span",{ref:"link",class:["el-breadcrumb__inner",this.to?"is-link":""],attrs:{role:"link"}},[this._t("default")],2),this.separatorClass?t("i",{staticClass:"el-breadcrumb__separator",class:this.separatorClass}):t("span",{staticClass:"el-breadcrumb__separator",attrs:{role:"presentation"}},[this._v(this._s(this.separator))])])};ns._withStripped=!0;var rs=r({name:"ElBreadcrumbItem",props:{to:{},replace:Boolean},data:function(){return{separator:"",separatorClass:""}},inject:["elBreadcrumb"],mounted:function(){var e=this;this.separator=this.elBreadcrumb.separator,this.separatorClass=this.elBreadcrumb.separatorClass;var t=this.$refs.link;t.setAttribute("role","link"),t.addEventListener("click",(function(t){var i=e.to,n=e.$router;i&&n&&(e.replace?n.replace(i):n.push(i))}))}},ns,[],!1,null,null,null);rs.options.__file="packages/breadcrumb/src/breadcrumb-item.vue";var ss=rs.exports;ss.install=function(e){e.component(ss.name,ss)};var as=ss,os=function(){var e=this.$createElement;return(this._self._c||e)("form",{staticClass:"el-form",class:[this.labelPosition?"el-form--label-"+this.labelPosition:"",{"el-form--inline":this.inline}]},[this._t("default")],2)};os._withStripped=!0;var ls=r({name:"ElForm",componentName:"ElForm",provide:function(){return{elForm:this}},props:{model:Object,rules:Object,labelPosition:String,labelWidth:String,labelSuffix:{type:String,default:""},inline:Boolean,inlineMessage:Boolean,statusIcon:Boolean,showMessage:{type:Boolean,default:!0},size:String,disabled:Boolean,validateOnRuleChange:{type:Boolean,default:!0},hideRequiredAsterisk:{type:Boolean,default:!1}},watch:{rules:function(){this.fields.forEach((function(e){e.removeValidateEvents(),e.addValidateEvents()})),this.validateOnRuleChange&&this.validate((function(){}))}},computed:{autoLabelWidth:function(){if(!this.potentialLabelWidthArr.length)return 0;var e=Math.max.apply(Math,this.potentialLabelWidthArr);return e?e+"px":""}},data:function(){return{fields:[],potentialLabelWidthArr:[]}},created:function(){var e=this;this.$on("el.form.addField",(function(t){t&&e.fields.push(t)})),this.$on("el.form.removeField",(function(t){t.prop&&e.fields.splice(e.fields.indexOf(t),1)}))},methods:{resetFields:function(){this.model?this.fields.forEach((function(e){e.resetField()})):console.warn("[Element Warn][Form]model is required for resetFields to work.")},clearValidate:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=e.length?"string"==typeof e?this.fields.filter((function(t){return e===t.prop})):this.fields.filter((function(t){return e.indexOf(t.prop)>-1})):this.fields;t.forEach((function(e){e.clearValidate()}))},validate:function(e){var t=this;if(this.model){var i=void 0;"function"!=typeof e&&window.Promise&&(i=new window.Promise((function(t,i){e=function(e){e?t(e):i(e)}})));var n=!0,r=0;0===this.fields.length&&e&&e(!0);var s={};return this.fields.forEach((function(i){i.validate("",(function(i,a){i&&(n=!1),s=Be()({},s,a),"function"==typeof e&&++r===t.fields.length&&e(n,s)}))})),i||void 0}console.warn("[Element Warn][Form]model is required for validate to work!")},validateField:function(e,t){e=[].concat(e);var i=this.fields.filter((function(t){return-1!==e.indexOf(t.prop)}));i.length?i.forEach((function(e){e.validate("",t)})):console.warn("[Element Warn]please pass correct props!")},getLabelWidthIndex:function(e){var t=this.potentialLabelWidthArr.indexOf(e);if(-1===t)throw new Error("[ElementForm]unpected width ",e);return t},registerLabelWidth:function(e,t){if(e&&t){var i=this.getLabelWidthIndex(t);this.potentialLabelWidthArr.splice(i,1,e)}else e&&this.potentialLabelWidthArr.push(e)},deregisterLabelWidth:function(e){var t=this.getLabelWidthIndex(e);this.potentialLabelWidthArr.splice(t,1)}}},os,[],!1,null,null,null);ls.options.__file="packages/form/src/form.vue";var us=ls.exports;us.install=function(e){e.component(us.name,us)};var cs=us,ds=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{staticClass:"el-form-item",class:[{"el-form-item--feedback":e.elForm&&e.elForm.statusIcon,"is-error":"error"===e.validateState,"is-validating":"validating"===e.validateState,"is-success":"success"===e.validateState,"is-required":e.isRequired||e.required,"is-no-asterisk":e.elForm&&e.elForm.hideRequiredAsterisk},e.sizeClass?"el-form-item--"+e.sizeClass:""]},[i("label-wrap",{attrs:{"is-auto-width":e.labelStyle&&"auto"===e.labelStyle.width,"update-all":"auto"===e.form.labelWidth}},[e.label||e.$slots.label?i("label",{staticClass:"el-form-item__label",style:e.labelStyle,attrs:{for:e.labelFor}},[e._t("label",[e._v(e._s(e.label+e.form.labelSuffix))])],2):e._e()]),i("div",{staticClass:"el-form-item__content",style:e.contentStyle},[e._t("default"),i("transition",{attrs:{name:"el-zoom-in-top"}},["error"===e.validateState&&e.showMessage&&e.form.showMessage?e._t("error",[i("div",{staticClass:"el-form-item__error",class:{"el-form-item__error--inline":"boolean"==typeof e.inlineMessage?e.inlineMessage:e.elForm&&e.elForm.inlineMessage||!1}},[e._v("\n "+e._s(e.validateMessage)+"\n ")])],{error:e.validateMessage}):e._e()],2)],2)],1)};ds._withStripped=!0;var hs=i(40),ps=i.n(hs),fs=r({props:{isAutoWidth:Boolean,updateAll:Boolean},inject:["elForm","elFormItem"],render:function(){var e=arguments[0],t=this.$slots.default;if(!t)return null;if(this.isAutoWidth){var i=this.elForm.autoLabelWidth,n={};if(i&&"auto"!==i){var r=parseInt(i,10)-this.computedWidth;r&&(n.marginLeft=r+"px")}return e("div",{class:"el-form-item__label-wrap",style:n},[t])}return t[0]},methods:{getLabelWidth:function(){if(this.$el&&this.$el.firstElementChild){var e=window.getComputedStyle(this.$el.firstElementChild).width;return Math.ceil(parseFloat(e))}return 0},updateLabelWidth:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"update";this.$slots.default&&this.isAutoWidth&&this.$el.firstElementChild&&("update"===e?this.computedWidth=this.getLabelWidth():"remove"===e&&this.elForm.deregisterLabelWidth(this.computedWidth))}},watch:{computedWidth:function(e,t){this.updateAll&&(this.elForm.registerLabelWidth(e,t),this.elFormItem.updateComputedLabelWidth(e))}},data:function(){return{computedWidth:0}},mounted:function(){this.updateLabelWidth("update")},updated:function(){this.updateLabelWidth("update")},beforeDestroy:function(){this.updateLabelWidth("remove")}},void 0,void 0,!1,null,null,null);fs.options.__file="packages/form/src/label-wrap.vue";var ms=fs.exports,vs=r({name:"ElFormItem",componentName:"ElFormItem",mixins:[C.a],provide:function(){return{elFormItem:this}},inject:["elForm"],props:{label:String,labelWidth:String,prop:String,required:{type:Boolean,default:void 0},rules:[Object,Array],error:String,validateStatus:String,for:String,inlineMessage:{type:[String,Boolean],default:""},showMessage:{type:Boolean,default:!0},size:String},components:{LabelWrap:ms},watch:{error:{immediate:!0,handler:function(e){this.validateMessage=e,this.validateState=e?"error":""}},validateStatus:function(e){this.validateState=e}},computed:{labelFor:function(){return this.for||this.prop},labelStyle:function(){var e={};if("top"===this.form.labelPosition)return e;var t=this.labelWidth||this.form.labelWidth;return t&&(e.width=t),e},contentStyle:function(){var e={},t=this.label;if("top"===this.form.labelPosition||this.form.inline)return e;if(!t&&!this.labelWidth&&this.isNested)return e;var i=this.labelWidth||this.form.labelWidth;return"auto"===i?"auto"===this.labelWidth?e.marginLeft=this.computedLabelWidth:"auto"===this.form.labelWidth&&(e.marginLeft=this.elForm.autoLabelWidth):e.marginLeft=i,e},form:function(){for(var e=this.$parent,t=e.$options.componentName;"ElForm"!==t;)"ElFormItem"===t&&(this.isNested=!0),t=(e=e.$parent).$options.componentName;return e},fieldValue:function(){var e=this.form.model;if(e&&this.prop){var t=this.prop;return-1!==t.indexOf(":")&&(t=t.replace(/:/,".")),Object(m.getPropByPath)(e,t,!0).v}},isRequired:function(){var e=this.getRules(),t=!1;return e&&e.length&&e.every((function(e){return!e.required||(t=!0,!1)})),t},_formSize:function(){return this.elForm.size},elFormItemSize:function(){return this.size||this._formSize},sizeClass:function(){return this.elFormItemSize||(this.$ELEMENT||{}).size}},data:function(){return{validateState:"",validateMessage:"",validateDisabled:!1,validator:{},isNested:!1,computedLabelWidth:""}},methods:{validate:function(e){var t=this,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:m.noop;this.validateDisabled=!1;var n=this.getFilteredRule(e);if((!n||0===n.length)&&void 0===this.required)return i(),!0;this.validateState="validating";var r={};n&&n.length>0&&n.forEach((function(e){delete e.trigger})),r[this.prop]=n;var s=new ps.a(r),a={};a[this.prop]=this.fieldValue,s.validate(a,{firstFields:!0},(function(e,n){t.validateState=e?"error":"success",t.validateMessage=e?e[0].message:"",i(t.validateMessage,n),t.elForm&&t.elForm.$emit("validate",t.prop,!e,t.validateMessage||null)}))},clearValidate:function(){this.validateState="",this.validateMessage="",this.validateDisabled=!1},resetField:function(){var e=this;this.validateState="",this.validateMessage="";var t=this.form.model,i=this.fieldValue,n=this.prop;-1!==n.indexOf(":")&&(n=n.replace(/:/,"."));var r=Object(m.getPropByPath)(t,n,!0);this.validateDisabled=!0,Array.isArray(i)?r.o[r.k]=[].concat(this.initialValue):r.o[r.k]=this.initialValue,this.$nextTick((function(){e.validateDisabled=!1})),this.broadcast("ElTimeSelect","fieldReset",this.initialValue)},getRules:function(){var e=this.form.rules,t=this.rules,i=void 0!==this.required?{required:!!this.required}:[],n=Object(m.getPropByPath)(e,this.prop||"");return e=e?n.o[this.prop||""]||n.v:[],[].concat(t||e||[]).concat(i)},getFilteredRule:function(e){return this.getRules().filter((function(t){return!t.trigger||""===e||(Array.isArray(t.trigger)?t.trigger.indexOf(e)>-1:t.trigger===e)})).map((function(e){return Be()({},e)}))},onFieldBlur:function(){this.validate("blur")},onFieldChange:function(){this.validateDisabled?this.validateDisabled=!1:this.validate("change")},updateComputedLabelWidth:function(e){this.computedLabelWidth=e?e+"px":""},addValidateEvents:function(){(this.getRules().length||void 0!==this.required)&&(this.$on("el.form.blur",this.onFieldBlur),this.$on("el.form.change",this.onFieldChange))},removeValidateEvents:function(){this.$off()}},mounted:function(){if(this.prop){this.dispatch("ElForm","el.form.addField",[this]);var e=this.fieldValue;Array.isArray(e)&&(e=[].concat(e)),Object.defineProperty(this,"initialValue",{value:e}),this.addValidateEvents()}},beforeDestroy:function(){this.dispatch("ElForm","el.form.removeField",[this])}},ds,[],!1,null,null,null);vs.options.__file="packages/form/src/form-item.vue";var gs=vs.exports;gs.install=function(e){e.component(gs.name,gs)};var _s=gs,bs=function(){var e=this.$createElement;return(this._self._c||e)("div",{staticClass:"el-tabs__active-bar",class:"is-"+this.rootTabs.tabPosition,style:this.barStyle})};bs._withStripped=!0;var ys=r({name:"TabBar",props:{tabs:Array},inject:["rootTabs"],computed:{barStyle:{get:function(){var e=this,t={},i=0,n=0,r=-1!==["top","bottom"].indexOf(this.rootTabs.tabPosition)?"width":"height",s="width"===r?"x":"y",a=function(e){return e.toLowerCase().replace(/( |^)[a-z]/g,(function(e){return e.toUpperCase()}))};this.tabs.every((function(t,s){var o=Object(m.arrayFind)(e.$parent.$refs.tabs||[],(function(e){return e.id.replace("tab-","")===t.paneName}));if(!o)return!1;if(t.active){n=o["client"+a(r)];var l=window.getComputedStyle(o);return"width"===r&&e.tabs.length>1&&(n-=parseFloat(l.paddingLeft)+parseFloat(l.paddingRight)),"width"===r&&(i+=parseFloat(l.paddingLeft)),!1}return i+=o["client"+a(r)],!0}));var o="translate"+a(s)+"("+i+"px)";return t[r]=n+"px",t.transform=o,t.msTransform=o,t.webkitTransform=o,t}}}},bs,[],!1,null,null,null);ys.options.__file="packages/tabs/src/tab-bar.vue";var xs=ys.exports;function ks(){}var ws=function(e){return e.toLowerCase().replace(/( |^)[a-z]/g,(function(e){return e.toUpperCase()}))},Cs=r({name:"TabNav",components:{TabBar:xs},inject:["rootTabs"],props:{panes:Array,currentName:String,editable:Boolean,onTabClick:{type:Function,default:ks},onTabRemove:{type:Function,default:ks},type:String,stretch:Boolean},data:function(){return{scrollable:!1,navOffset:0,isFocus:!1,focusable:!0}},computed:{navStyle:function(){return{transform:"translate"+(-1!==["top","bottom"].indexOf(this.rootTabs.tabPosition)?"X":"Y")+"(-"+this.navOffset+"px)"}},sizeName:function(){return-1!==["top","bottom"].indexOf(this.rootTabs.tabPosition)?"width":"height"}},methods:{scrollPrev:function(){var e=this.$refs.navScroll["offset"+ws(this.sizeName)],t=this.navOffset;if(t){var i=t>e?t-e:0;this.navOffset=i}},scrollNext:function(){var e=this.$refs.nav["offset"+ws(this.sizeName)],t=this.$refs.navScroll["offset"+ws(this.sizeName)],i=this.navOffset;if(!(e-i<=t)){var n=e-i>2*t?i+t:e-t;this.navOffset=n}},scrollToActiveTab:function(){if(this.scrollable){var e=this.$refs.nav,t=this.$el.querySelector(".is-active");if(t){var i=this.$refs.navScroll,n=-1!==["top","bottom"].indexOf(this.rootTabs.tabPosition),r=t.getBoundingClientRect(),s=i.getBoundingClientRect(),a=n?e.offsetWidth-s.width:e.offsetHeight-s.height,o=this.navOffset,l=o;n?(r.lefts.right&&(l=o+r.right-s.right)):(r.tops.bottom&&(l=o+(r.bottom-s.bottom))),l=Math.max(l,0),this.navOffset=Math.min(l,a)}}},update:function(){if(this.$refs.nav){var e=this.sizeName,t=this.$refs.nav["offset"+ws(e)],i=this.$refs.navScroll["offset"+ws(e)],n=this.navOffset;if(i0&&(this.navOffset=0)}},changeTab:function(e){var t=e.keyCode,i=void 0,n=void 0,r=void 0;-1!==[37,38,39,40].indexOf(t)&&(r=e.currentTarget.querySelectorAll("[role=tab]"),n=Array.prototype.indexOf.call(r,e.target),r[i=37===t||38===t?0===n?r.length-1:n-1:n0&&void 0!==arguments[0]&&arguments[0];if(this.$slots.default){var i=this.$slots.default.filter((function(e){return e.tag&&e.componentOptions&&"ElTabPane"===e.componentOptions.Ctor.options.name})),n=i.map((function(e){return e.componentInstance})),r=!(n.length===this.panes.length&&n.every((function(t,i){return t===e.panes[i]})));(t||r)&&(this.panes=n)}else 0!==this.panes.length&&(this.panes=[])},handleTabClick:function(e,t,i){e.disabled||(this.setCurrentName(t),this.$emit("tab-click",e,i))},handleTabRemove:function(e,t){e.disabled||(t.stopPropagation(),this.$emit("edit",e.name,"remove"),this.$emit("tab-remove",e.name))},handleTabAdd:function(){this.$emit("edit",null,"add"),this.$emit("tab-add")},setCurrentName:function(e){var t=this,i=function(){t.currentName=e,t.$emit("input",e)};if(this.currentName!==e&&this.beforeLeave){var n=this.beforeLeave(e,this.currentName);n&&n.then?n.then((function(){i(),t.$refs.nav&&t.$refs.nav.removeFocus()}),(function(){})):!1!==n&&i()}else i()}},render:function(e){var t,i=this.type,n=this.handleTabClick,r=this.handleTabRemove,s=this.handleTabAdd,a=this.currentName,o=this.panes,l=this.editable,u=this.addable,c=this.tabPosition,d=this.stretch,h=l||u?e("span",{class:"el-tabs__new-tab",on:{click:s,keydown:function(e){13===e.keyCode&&s()}},attrs:{tabindex:"0"}},[e("i",{class:"el-icon-plus"})]):null,p=e("div",{class:["el-tabs__header","is-"+c]},[h,e("tab-nav",{props:{currentName:a,onTabClick:n,onTabRemove:r,editable:l,type:i,panes:o,stretch:d},ref:"nav"})]),f=e("div",{class:"el-tabs__content"},[this.$slots.default]);return e("div",{class:(t={"el-tabs":!0,"el-tabs--card":"card"===i},t["el-tabs--"+c]=!0,t["el-tabs--border-card"]="border-card"===i,t)},["bottom"!==c?[p,f]:[f,p]])},created:function(){this.currentName||this.setCurrentName("0"),this.$on("tab-nav-update",this.calcPaneInstances.bind(null,!0))},mounted:function(){this.calcPaneInstances()},updated:function(){this.calcPaneInstances()}},void 0,void 0,!1,null,null,null);Ss.options.__file="packages/tabs/src/tabs.vue";var Os=Ss.exports;Os.install=function(e){e.component(Os.name,Os)};var Ds=Os,Es=function(){var e=this,t=e.$createElement,i=e._self._c||t;return!e.lazy||e.loaded||e.active?i("div",{directives:[{name:"show",rawName:"v-show",value:e.active,expression:"active"}],staticClass:"el-tab-pane",attrs:{role:"tabpanel","aria-hidden":!e.active,id:"pane-"+e.paneName,"aria-labelledby":"tab-"+e.paneName}},[e._t("default")],2):e._e()};Es._withStripped=!0;var Ts=r({name:"ElTabPane",componentName:"ElTabPane",props:{label:String,labelContent:Function,name:String,closable:Boolean,disabled:Boolean,lazy:Boolean},data:function(){return{index:null,loaded:!1}},computed:{isClosable:function(){return this.closable||this.$parent.closable},active:function(){var e=this.$parent.currentName===(this.name||this.index);return e&&(this.loaded=!0),e},paneName:function(){return this.name||this.index}},updated:function(){this.$parent.$emit("tab-nav-update")}},Es,[],!1,null,null,null);Ts.options.__file="packages/tabs/src/tab-pane.vue";var $s=Ts.exports;$s.install=function(e){e.component($s.name,$s)};var Ps=$s,js=r({name:"ElTag",props:{text:String,closable:Boolean,type:String,hit:Boolean,disableTransitions:Boolean,color:String,size:String,effect:{type:String,default:"light",validator:function(e){return-1!==["dark","light","plain"].indexOf(e)}}},methods:{handleClose:function(e){e.stopPropagation(),this.$emit("close",e)},handleClick:function(e){this.$emit("click",e)}},computed:{tagSize:function(){return this.size||(this.$ELEMENT||{}).size}},render:function(e){var t=this.type,i=this.tagSize,n=this.hit,r=this.effect,s=e("span",{class:["el-tag",t?"el-tag--"+t:"",i?"el-tag--"+i:"",r?"el-tag--"+r:"",n&&"is-hit"],style:{backgroundColor:this.color},on:{click:this.handleClick}},[this.$slots.default,this.closable&&e("i",{class:"el-tag__close el-icon-close",on:{click:this.handleClose}})]);return this.disableTransitions?s:e("transition",{attrs:{name:"el-zoom-in-center"}},[s])}},void 0,void 0,!1,null,null,null);js.options.__file="packages/tag/src/tag.vue";var Ms=js.exports;Ms.install=function(e){e.component(Ms.name,Ms)};var Is=Ms,As=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{staticClass:"el-tree",class:{"el-tree--highlight-current":e.highlightCurrent,"is-dragging":!!e.dragState.draggingNode,"is-drop-not-allow":!e.dragState.allowDrop,"is-drop-inner":"inner"===e.dragState.dropType},attrs:{role:"tree"}},[e._l(e.root.childNodes,(function(t){return i("el-tree-node",{key:e.getNodeKey(t),attrs:{node:t,props:e.props,"render-after-expand":e.renderAfterExpand,"show-checkbox":e.showCheckbox,"render-content":e.renderContent},on:{"node-expand":e.handleNodeExpand}})})),e.isEmpty?i("div",{staticClass:"el-tree__empty-block"},[i("span",{staticClass:"el-tree__empty-text"},[e._v(e._s(e.emptyText))])]):e._e(),i("div",{directives:[{name:"show",rawName:"v-show",value:e.dragState.showDropIndicator,expression:"dragState.showDropIndicator"}],ref:"dropIndicator",staticClass:"el-tree__drop-indicator"})],2)};As._withStripped=!0;var Ns="$treeNodeId",Ls=function(e,t){t&&!t[Ns]&&Object.defineProperty(t,Ns,{value:e.id,enumerable:!1,configurable:!1,writable:!1})},Fs=function(e,t){return e?t[e]:t[Ns]},Vs=function(){function e(e,t){for(var i=0;i0&&n.lazy&&n.defaultExpandAll&&this.expand(),Array.isArray(this.data)||Ls(this,this.data),this.data){var a=n.defaultExpandedKeys,o=n.key;o&&a&&-1!==a.indexOf(this.key)&&this.expand(null,n.autoExpandParent),o&&void 0!==n.currentNodeKey&&this.key===n.currentNodeKey&&(n.currentNode=this,n.currentNode.isCurrent=!0),n.lazy&&n._initDefaultCheckedNode(this),this.updateLeafState()}}return e.prototype.setData=function(e){Array.isArray(e)||Ls(this,e),this.data=e,this.childNodes=[];for(var t=void 0,i=0,n=(t=0===this.level&&this.data instanceof Array?this.data:Bs(this,"children")||[]).length;i1&&void 0!==arguments[1])||arguments[1],i=function i(n){for(var r=n.childNodes||[],s=!1,a=0,o=r.length;a-1&&t.splice(i,1);var n=this.childNodes.indexOf(e);n>-1&&(this.store&&this.store.deregisterNode(e),e.parent=null,this.childNodes.splice(n,1)),this.updateLeafState()},e.prototype.removeChildByData=function(e){for(var t=null,i=0;i0;)n.expanded=!0,n=n.parent;i.expanded=!0,e&&e()};this.shouldLoadData()?this.loadData((function(e){e instanceof Array&&(i.checked?i.setChecked(!0,!0):i.store.checkStrictly||Rs(i),n())})):n()},e.prototype.doCreateChildren=function(e){var t=this,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};e.forEach((function(e){t.insertChild(Be()({data:e},i),void 0,!0)}))},e.prototype.collapse=function(){this.expanded=!1},e.prototype.shouldLoadData=function(){return!0===this.store.lazy&&this.store.load&&!this.loaded},e.prototype.updateLeafState=function(){if(!0!==this.store.lazy||!0===this.loaded||void 0===this.isLeafByUser){var e=this.childNodes;!this.store.lazy||!0===this.store.lazy&&!0===this.loaded?this.isLeaf=!e||0===e.length:this.isLeaf=!1}else this.isLeaf=this.isLeafByUser},e.prototype.setChecked=function(e,t,i,n){var r=this;if(this.indeterminate="half"===e,this.checked=!0===e,!this.store.checkStrictly){if(!this.shouldLoadData()||this.store.checkDescendants){var s=zs(this.childNodes),a=s.all,o=s.allWithoutDisable;this.isLeaf||a||!o||(this.checked=!1,e=!1);var l=function(){if(t){for(var i=r.childNodes,s=0,a=i.length;s0&&void 0!==arguments[0]&&arguments[0];if(0===this.level)return this.data;var t=this.data;if(!t)return null;var i=this.store.props,n="children";return i&&(n=i.children||"children"),void 0===t[n]&&(t[n]=null),e&&!t[n]&&(t[n]=[]),t[n]},e.prototype.updateChildren=function(){var e=this,t=this.getChildren()||[],i=this.childNodes.map((function(e){return e.data})),n={},r=[];t.forEach((function(e,t){var s=e[Ns];!!s&&Object(m.arrayFindIndex)(i,(function(e){return e[Ns]===s}))>=0?n[s]={index:t,data:e}:r.push({index:t,data:e})})),this.store.lazy||i.forEach((function(t){n[t[Ns]]||e.removeChildByData(t)})),r.forEach((function(t){var i=t.index,n=t.data;e.insertChild({data:n},i)})),this.updateLeafState()},e.prototype.loadData=function(e){var t=this,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!0!==this.store.lazy||!this.store.load||this.loaded||this.loading&&!Object.keys(i).length)e&&e.call(this);else{this.loading=!0;var n=function(n){t.loaded=!0,t.loading=!1,t.childNodes=[],t.doCreateChildren(n,i),t.updateLeafState(),e&&e.call(t,n)};this.store.load(this,n)}},Vs(e,[{key:"label",get:function(){return Bs(this,"label")}},{key:"key",get:function(){var e=this.store.key;return this.data?this.data[e]:null}},{key:"disabled",get:function(){return Bs(this,"disabled")}},{key:"nextSibling",get:function(){var e=this.parent;if(e){var t=e.childNodes.indexOf(this);if(t>-1)return e.childNodes[t+1]}return null}},{key:"previousSibling",get:function(){var e=this.parent;if(e){var t=e.childNodes.indexOf(this);if(t>-1)return t>0?e.childNodes[t-1]:null}return null}}]),e}(),qs="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};var Us=function(){function e(t){var i=this;for(var n in function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.currentNode=null,this.currentNodeKey=null,t)t.hasOwnProperty(n)&&(this[n]=t[n]);(this.nodesMap={},this.root=new Ws({data:this.data,store:this}),this.lazy&&this.load)?(0,this.load)(this.root,(function(e){i.root.doCreateChildren(e),i._initDefaultCheckedNodes()})):this._initDefaultCheckedNodes()}return e.prototype.filter=function(e){var t=this.filterNodeMethod,i=this.lazy;!function n(r){var s=r.root?r.root.childNodes:r.childNodes;if(s.forEach((function(i){i.visible=t.call(i,e,i.data,i),n(i)})),!r.visible&&s.length){var a;a=!s.some((function(e){return e.visible})),r.root?r.root.visible=!1===a:r.visible=!1===a}e&&(!r.visible||r.isLeaf||i||r.expand())}(this)},e.prototype.setData=function(e){e!==this.root.data?(this.root.setData(e),this._initDefaultCheckedNodes()):this.root.updateChildren()},e.prototype.getNode=function(e){if(e instanceof Ws)return e;var t="object"!==(void 0===e?"undefined":qs(e))?e:Fs(this.key,e);return this.nodesMap[t]||null},e.prototype.insertBefore=function(e,t){var i=this.getNode(t);i.parent.insertBefore({data:e},i)},e.prototype.insertAfter=function(e,t){var i=this.getNode(t);i.parent.insertAfter({data:e},i)},e.prototype.remove=function(e){var t=this.getNode(e);t&&t.parent&&(t===this.currentNode&&(this.currentNode=null),t.parent.removeChild(t))},e.prototype.append=function(e,t){var i=t?this.getNode(t):this.root;i&&i.insertChild({data:e})},e.prototype._initDefaultCheckedNodes=function(){var e=this,t=this.defaultCheckedKeys||[],i=this.nodesMap;t.forEach((function(t){var n=i[t];n&&n.setChecked(!0,!e.checkStrictly)}))},e.prototype._initDefaultCheckedNode=function(e){-1!==(this.defaultCheckedKeys||[]).indexOf(e.key)&&e.setChecked(!0,!this.checkStrictly)},e.prototype.setDefaultCheckedKey=function(e){e!==this.defaultCheckedKeys&&(this.defaultCheckedKeys=e,this._initDefaultCheckedNodes())},e.prototype.registerNode=function(e){this.key&&e&&e.data&&(void 0!==e.key&&(this.nodesMap[e.key]=e))},e.prototype.deregisterNode=function(e){var t=this;this.key&&e&&e.data&&(e.childNodes.forEach((function(e){t.deregisterNode(e)})),delete this.nodesMap[e.key])},e.prototype.getCheckedNodes=function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=[],n=function n(r){(r.root?r.root.childNodes:r.childNodes).forEach((function(r){(r.checked||t&&r.indeterminate)&&(!e||e&&r.isLeaf)&&i.push(r.data),n(r)}))};return n(this),i},e.prototype.getCheckedKeys=function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return this.getCheckedNodes(t).map((function(t){return(t||{})[e.key]}))},e.prototype.getHalfCheckedNodes=function(){var e=[];return function t(i){(i.root?i.root.childNodes:i.childNodes).forEach((function(i){i.indeterminate&&e.push(i.data),t(i)}))}(this),e},e.prototype.getHalfCheckedKeys=function(){var e=this;return this.getHalfCheckedNodes().map((function(t){return(t||{})[e.key]}))},e.prototype._getAllNodes=function(){var e=[],t=this.nodesMap;for(var i in t)t.hasOwnProperty(i)&&e.push(t[i]);return e},e.prototype.updateChildren=function(e,t){var i=this.nodesMap[e];if(i){for(var n=i.childNodes,r=n.length-1;r>=0;r--){var s=n[r];this.remove(s.data)}for(var a=0,o=t.length;a1&&void 0!==arguments[1]&&arguments[1],i=arguments[2],n=this._getAllNodes().sort((function(e,t){return t.level-e.level})),r=Object.create(null),s=Object.keys(i);n.forEach((function(e){return e.setChecked(!1,!1)}));for(var a=0,o=n.length;a-1;if(c){for(var d=l.parent;d&&d.level>0;)r[d.data[e]]=!0,d=d.parent;l.isLeaf||this.checkStrictly?l.setChecked(!0,!1):(l.setChecked(!0,!0),t&&function(){l.setChecked(!1,!1);!function e(t){t.childNodes.forEach((function(t){t.isLeaf||t.setChecked(!1,!1),e(t)}))}(l)}())}else l.checked&&!r[u]&&l.setChecked(!1,!1)}},e.prototype.setCheckedNodes=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=this.key,n={};e.forEach((function(e){n[(e||{})[i]]=!0})),this._setCheckedKeys(i,t,n)},e.prototype.setCheckedKeys=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];this.defaultCheckedKeys=e;var i=this.key,n={};e.forEach((function(e){n[e]=!0})),this._setCheckedKeys(i,t,n)},e.prototype.setDefaultExpandedKeys=function(e){var t=this;e=e||[],this.defaultExpandedKeys=e,e.forEach((function(e){var i=t.getNode(e);i&&i.expand(null,t.autoExpandParent)}))},e.prototype.setChecked=function(e,t,i){var n=this.getNode(e);n&&n.setChecked(!!t,i)},e.prototype.getCurrentNode=function(){return this.currentNode},e.prototype.setCurrentNode=function(e){var t=this.currentNode;t&&(t.isCurrent=!1),this.currentNode=e,this.currentNode.isCurrent=!0},e.prototype.setUserCurrentNode=function(e){var t=e[this.key],i=this.nodesMap[t];this.setCurrentNode(i)},e.prototype.setCurrentNodeKey=function(e){if(null==e)return this.currentNode&&(this.currentNode.isCurrent=!1),void(this.currentNode=null);var t=this.getNode(e);t&&this.setCurrentNode(t)},e}(),Gs=function(){var e=this,t=this,i=t.$createElement,n=t._self._c||i;return n("div",{directives:[{name:"show",rawName:"v-show",value:t.node.visible,expression:"node.visible"}],ref:"node",staticClass:"el-tree-node",class:{"is-expanded":t.expanded,"is-current":t.node.isCurrent,"is-hidden":!t.node.visible,"is-focusable":!t.node.disabled,"is-checked":!t.node.disabled&&t.node.checked},attrs:{role:"treeitem",tabindex:"-1","aria-expanded":t.expanded,"aria-disabled":t.node.disabled,"aria-checked":t.node.checked,draggable:t.tree.draggable},on:{click:function(e){return e.stopPropagation(),t.handleClick(e)},contextmenu:function(t){return e.handleContextMenu(t)},dragstart:function(e){return e.stopPropagation(),t.handleDragStart(e)},dragover:function(e){return e.stopPropagation(),t.handleDragOver(e)},dragend:function(e){return e.stopPropagation(),t.handleDragEnd(e)},drop:function(e){return e.stopPropagation(),t.handleDrop(e)}}},[n("div",{staticClass:"el-tree-node__content",style:{"padding-left":(t.node.level-1)*t.tree.indent+"px"}},[n("span",{class:[{"is-leaf":t.node.isLeaf,expanded:!t.node.isLeaf&&t.expanded},"el-tree-node__expand-icon",t.tree.iconClass?t.tree.iconClass:"el-icon-caret-right"],on:{click:function(e){return e.stopPropagation(),t.handleExpandIconClick(e)}}}),t.showCheckbox?n("el-checkbox",{attrs:{indeterminate:t.node.indeterminate,disabled:!!t.node.disabled},on:{change:t.handleCheckChange},nativeOn:{click:function(e){e.stopPropagation()}},model:{value:t.node.checked,callback:function(e){t.$set(t.node,"checked",e)},expression:"node.checked"}}):t._e(),t.node.loading?n("span",{staticClass:"el-tree-node__loading-icon el-icon-loading"}):t._e(),n("node-content",{attrs:{node:t.node}})],1),n("el-collapse-transition",[!t.renderAfterExpand||t.childNodeRendered?n("div",{directives:[{name:"show",rawName:"v-show",value:t.expanded,expression:"expanded"}],staticClass:"el-tree-node__children",attrs:{role:"group","aria-expanded":t.expanded}},t._l(t.node.childNodes,(function(e){return n("el-tree-node",{key:t.getNodeKey(e),attrs:{"render-content":t.renderContent,"render-after-expand":t.renderAfterExpand,"show-checkbox":t.showCheckbox,node:e},on:{"node-expand":t.handleChildNodeExpand}})})),1):t._e()])],1)};Gs._withStripped=!0;var Ys=r({name:"ElTreeNode",componentName:"ElTreeNode",mixins:[C.a],props:{node:{default:function(){return{}}},props:{},renderContent:Function,renderAfterExpand:{type:Boolean,default:!0},showCheckbox:{type:Boolean,default:!1}},components:{ElCollapseTransition:be.a,ElCheckbox:ri.a,NodeContent:{props:{node:{required:!0}},render:function(e){var t=this.$parent,i=t.tree,n=this.node,r=n.data,s=n.store;return t.renderContent?t.renderContent.call(t._renderProxy,e,{_self:i.$vnode.context,node:n,data:r,store:s}):i.$scopedSlots.default?i.$scopedSlots.default({node:n,data:r}):e("span",{class:"el-tree-node__label"},[n.label])}}},data:function(){return{tree:null,expanded:!1,childNodeRendered:!1,oldChecked:null,oldIndeterminate:null}},watch:{"node.indeterminate":function(e){this.handleSelectChange(this.node.checked,e)},"node.checked":function(e){this.handleSelectChange(e,this.node.indeterminate)},"node.expanded":function(e){var t=this;this.$nextTick((function(){return t.expanded=e})),e&&(this.childNodeRendered=!0)}},methods:{getNodeKey:function(e){return Fs(this.tree.nodeKey,e.data)},handleSelectChange:function(e,t){this.oldChecked!==e&&this.oldIndeterminate!==t&&this.tree.$emit("check-change",this.node.data,e,t),this.oldChecked=e,this.indeterminate=t},handleClick:function(){var e=this.tree.store;e.setCurrentNode(this.node),this.tree.$emit("current-change",e.currentNode?e.currentNode.data:null,e.currentNode),this.tree.currentNode=this,this.tree.expandOnClickNode&&this.handleExpandIconClick(),this.tree.checkOnClickNode&&!this.node.disabled&&this.handleCheckChange(null,{target:{checked:!this.node.checked}}),this.tree.$emit("node-click",this.node.data,this.node,this)},handleContextMenu:function(e){this.tree._events["node-contextmenu"]&&this.tree._events["node-contextmenu"].length>0&&(e.stopPropagation(),e.preventDefault()),this.tree.$emit("node-contextmenu",e,this.node.data,this.node,this)},handleExpandIconClick:function(){this.node.isLeaf||(this.expanded?(this.tree.$emit("node-collapse",this.node.data,this.node,this),this.node.collapse()):(this.node.expand(),this.$emit("node-expand",this.node.data,this.node,this)))},handleCheckChange:function(e,t){var i=this;this.node.setChecked(t.target.checked,!this.tree.checkStrictly),this.$nextTick((function(){var e=i.tree.store;i.tree.$emit("check",i.node.data,{checkedNodes:e.getCheckedNodes(),checkedKeys:e.getCheckedKeys(),halfCheckedNodes:e.getHalfCheckedNodes(),halfCheckedKeys:e.getHalfCheckedKeys()})}))},handleChildNodeExpand:function(e,t,i){this.broadcast("ElTreeNode","tree-node-expand",t),this.tree.$emit("node-expand",e,t,i)},handleDragStart:function(e){this.tree.draggable&&this.tree.$emit("tree-node-drag-start",e,this)},handleDragOver:function(e){this.tree.draggable&&(this.tree.$emit("tree-node-drag-over",e,this),e.preventDefault())},handleDrop:function(e){e.preventDefault()},handleDragEnd:function(e){this.tree.draggable&&this.tree.$emit("tree-node-drag-end",e,this)}},created:function(){var e=this,t=this.$parent;t.isTree?this.tree=t:this.tree=t.tree;var i=this.tree;i||console.warn("Can not find node's tree.");var n=(i.props||{}).children||"children";this.$watch("node.data."+n,(function(){e.node.updateChildren()})),this.node.expanded&&(this.expanded=!0,this.childNodeRendered=!0),this.tree.accordion&&this.$on("tree-node-expand",(function(t){e.node!==t&&e.node.collapse()}))}},Gs,[],!1,null,null,null);Ys.options.__file="packages/tree/src/tree-node.vue";var Ks=Ys.exports,Xs=r({name:"ElTree",mixins:[C.a],components:{ElTreeNode:Ks},data:function(){return{store:null,root:null,currentNode:null,treeItems:null,checkboxItems:[],dragState:{showDropIndicator:!1,draggingNode:null,dropNode:null,allowDrop:!0}}},props:{data:{type:Array},emptyText:{type:String,default:function(){return Object(Ir.t)("el.tree.emptyText")}},renderAfterExpand:{type:Boolean,default:!0},nodeKey:String,checkStrictly:Boolean,defaultExpandAll:Boolean,expandOnClickNode:{type:Boolean,default:!0},checkOnClickNode:Boolean,checkDescendants:{type:Boolean,default:!1},autoExpandParent:{type:Boolean,default:!0},defaultCheckedKeys:Array,defaultExpandedKeys:Array,currentNodeKey:[String,Number],renderContent:Function,showCheckbox:{type:Boolean,default:!1},draggable:{type:Boolean,default:!1},allowDrag:Function,allowDrop:Function,props:{default:function(){return{children:"children",label:"label",disabled:"disabled"}}},lazy:{type:Boolean,default:!1},highlightCurrent:Boolean,load:Function,filterNodeMethod:Function,accordion:Boolean,indent:{type:Number,default:18},iconClass:String},computed:{children:{set:function(e){this.data=e},get:function(){return this.data}},treeItemArray:function(){return Array.prototype.slice.call(this.treeItems)},isEmpty:function(){var e=this.root.childNodes;return!e||0===e.length||e.every((function(e){return!e.visible}))}},watch:{defaultCheckedKeys:function(e){this.store.setDefaultCheckedKey(e)},defaultExpandedKeys:function(e){this.store.defaultExpandedKeys=e,this.store.setDefaultExpandedKeys(e)},data:function(e){this.store.setData(e)},checkboxItems:function(e){Array.prototype.forEach.call(e,(function(e){e.setAttribute("tabindex",-1)}))},checkStrictly:function(e){this.store.checkStrictly=e}},methods:{filter:function(e){if(!this.filterNodeMethod)throw new Error("[Tree] filterNodeMethod is required when filter");this.store.filter(e)},getNodeKey:function(e){return Fs(this.nodeKey,e.data)},getNodePath:function(e){if(!this.nodeKey)throw new Error("[Tree] nodeKey is required in getNodePath");var t=this.store.getNode(e);if(!t)return[];for(var i=[t.data],n=t.parent;n&&n!==this.root;)i.push(n.data),n=n.parent;return i.reverse()},getCheckedNodes:function(e,t){return this.store.getCheckedNodes(e,t)},getCheckedKeys:function(e){return this.store.getCheckedKeys(e)},getCurrentNode:function(){var e=this.store.getCurrentNode();return e?e.data:null},getCurrentKey:function(){if(!this.nodeKey)throw new Error("[Tree] nodeKey is required in getCurrentKey");var e=this.getCurrentNode();return e?e[this.nodeKey]:null},setCheckedNodes:function(e,t){if(!this.nodeKey)throw new Error("[Tree] nodeKey is required in setCheckedNodes");this.store.setCheckedNodes(e,t)},setCheckedKeys:function(e,t){if(!this.nodeKey)throw new Error("[Tree] nodeKey is required in setCheckedKeys");this.store.setCheckedKeys(e,t)},setChecked:function(e,t,i){this.store.setChecked(e,t,i)},getHalfCheckedNodes:function(){return this.store.getHalfCheckedNodes()},getHalfCheckedKeys:function(){return this.store.getHalfCheckedKeys()},setCurrentNode:function(e){if(!this.nodeKey)throw new Error("[Tree] nodeKey is required in setCurrentNode");this.store.setUserCurrentNode(e)},setCurrentKey:function(e){if(!this.nodeKey)throw new Error("[Tree] nodeKey is required in setCurrentKey");this.store.setCurrentNodeKey(e)},getNode:function(e){return this.store.getNode(e)},remove:function(e){this.store.remove(e)},append:function(e,t){this.store.append(e,t)},insertBefore:function(e,t){this.store.insertBefore(e,t)},insertAfter:function(e,t){this.store.insertAfter(e,t)},handleNodeExpand:function(e,t,i){this.broadcast("ElTreeNode","tree-node-expand",t),this.$emit("node-expand",e,t,i)},updateKeyChildren:function(e,t){if(!this.nodeKey)throw new Error("[Tree] nodeKey is required in updateKeyChild");this.store.updateChildren(e,t)},initTabIndex:function(){this.treeItems=this.$el.querySelectorAll(".is-focusable[role=treeitem]"),this.checkboxItems=this.$el.querySelectorAll("input[type=checkbox]");var e=this.$el.querySelectorAll(".is-checked[role=treeitem]");e.length?e[0].setAttribute("tabindex",0):this.treeItems[0]&&this.treeItems[0].setAttribute("tabindex",0)},handleKeydown:function(e){var t=e.target;if(-1!==t.className.indexOf("el-tree-node")){var i=e.keyCode;this.treeItems=this.$el.querySelectorAll(".is-focusable[role=treeitem]");var n=this.treeItemArray.indexOf(t),r=void 0;[38,40].indexOf(i)>-1&&(e.preventDefault(),r=38===i?0!==n?n-1:0:n-1&&(e.preventDefault(),t.click());var s=t.querySelector('[type="checkbox"]');[13,32].indexOf(i)>-1&&s&&(e.preventDefault(),s.click())}}},created:function(){var e=this;this.isTree=!0,this.store=new Us({key:this.nodeKey,data:this.data,lazy:this.lazy,props:this.props,load:this.load,currentNodeKey:this.currentNodeKey,checkStrictly:this.checkStrictly,checkDescendants:this.checkDescendants,defaultCheckedKeys:this.defaultCheckedKeys,defaultExpandedKeys:this.defaultExpandedKeys,autoExpandParent:this.autoExpandParent,defaultExpandAll:this.defaultExpandAll,filterNodeMethod:this.filterNodeMethod}),this.root=this.store.root;var t=this.dragState;this.$on("tree-node-drag-start",(function(i,n){if("function"==typeof e.allowDrag&&!e.allowDrag(n.node))return i.preventDefault(),!1;i.dataTransfer.effectAllowed="move";try{i.dataTransfer.setData("text/plain","")}catch(e){}t.draggingNode=n,e.$emit("node-drag-start",n.node,i)})),this.$on("tree-node-drag-over",(function(i,n){var r=function(e,t){for(var i=e;i&&"BODY"!==i.tagName;){if(i.__vue__&&i.__vue__.$options.name===t)return i.__vue__;i=i.parentNode}return null}(i.target,"ElTreeNode"),s=t.dropNode;s&&s!==r&&Object(fe.removeClass)(s.$el,"is-drop-inner");var a=t.draggingNode;if(a&&r){var o=!0,l=!0,u=!0,c=!0;"function"==typeof e.allowDrop&&(o=e.allowDrop(a.node,r.node,"prev"),c=l=e.allowDrop(a.node,r.node,"inner"),u=e.allowDrop(a.node,r.node,"next")),i.dataTransfer.dropEffect=l?"move":"none",(o||l||u)&&s!==r&&(s&&e.$emit("node-drag-leave",a.node,s.node,i),e.$emit("node-drag-enter",a.node,r.node,i)),(o||l||u)&&(t.dropNode=r),r.node.nextSibling===a.node&&(u=!1),r.node.previousSibling===a.node&&(o=!1),r.node.contains(a.node,!1)&&(l=!1),(a.node===r.node||a.node.contains(r.node))&&(o=!1,l=!1,u=!1);var d=r.$el.getBoundingClientRect(),h=e.$el.getBoundingClientRect(),p=void 0,f=o?l?.25:u?.45:1:-1,m=u?l?.75:o?.55:0:1,v=-9999,g=i.clientY-d.top;p=gd.height*m?"after":l?"inner":"none";var _=r.$el.querySelector(".el-tree-node__expand-icon").getBoundingClientRect(),b=e.$refs.dropIndicator;"before"===p?v=_.top-h.top:"after"===p&&(v=_.bottom-h.top),b.style.top=v+"px",b.style.left=_.right-h.left+"px","inner"===p?Object(fe.addClass)(r.$el,"is-drop-inner"):Object(fe.removeClass)(r.$el,"is-drop-inner"),t.showDropIndicator="before"===p||"after"===p,t.allowDrop=t.showDropIndicator||c,t.dropType=p,e.$emit("node-drag-over",a.node,r.node,i)}})),this.$on("tree-node-drag-end",(function(i){var n=t.draggingNode,r=t.dropType,s=t.dropNode;if(i.preventDefault(),i.dataTransfer.dropEffect="move",n&&s){var a={data:n.node.data};"none"!==r&&n.node.remove(),"before"===r?s.node.parent.insertBefore(a,s.node):"after"===r?s.node.parent.insertAfter(a,s.node):"inner"===r&&s.node.insertChild(a),"none"!==r&&e.store.registerNode(a),Object(fe.removeClass)(s.$el,"is-drop-inner"),e.$emit("node-drag-end",n.node,s.node,r,i),"none"!==r&&e.$emit("node-drop",n.node,s.node,r,i)}n&&!s&&e.$emit("node-drag-end",n.node,null,r,i),t.showDropIndicator=!1,t.draggingNode=null,t.dropNode=null,t.allowDrop=!0}))},mounted:function(){this.initTabIndex(),this.$el.addEventListener("keydown",this.handleKeydown)},updated:function(){this.treeItems=this.$el.querySelectorAll("[role=treeitem]"),this.checkboxItems=this.$el.querySelectorAll("input[type=checkbox]")}},As,[],!1,null,null,null);Xs.options.__file="packages/tree/src/tree.vue";var Zs=Xs.exports;Zs.install=function(e){e.component(Zs.name,Zs)};var Qs=Zs,Js=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("transition",{attrs:{name:"el-alert-fade"}},[i("div",{directives:[{name:"show",rawName:"v-show",value:e.visible,expression:"visible"}],staticClass:"el-alert",class:[e.typeClass,e.center?"is-center":"","is-"+e.effect],attrs:{role:"alert"}},[e.showIcon?i("i",{staticClass:"el-alert__icon",class:[e.iconClass,e.isBigIcon]}):e._e(),i("div",{staticClass:"el-alert__content"},[e.title||e.$slots.title?i("span",{staticClass:"el-alert__title",class:[e.isBoldTitle]},[e._t("title",[e._v(e._s(e.title))])],2):e._e(),e.$slots.default&&!e.description?i("p",{staticClass:"el-alert__description"},[e._t("default")],2):e._e(),e.description&&!e.$slots.default?i("p",{staticClass:"el-alert__description"},[e._v(e._s(e.description))]):e._e(),i("i",{directives:[{name:"show",rawName:"v-show",value:e.closable,expression:"closable"}],staticClass:"el-alert__closebtn",class:{"is-customed":""!==e.closeText,"el-icon-close":""===e.closeText},on:{click:function(t){e.close()}}},[e._v(e._s(e.closeText))])])])])};Js._withStripped=!0;var ea={success:"el-icon-success",warning:"el-icon-warning",error:"el-icon-error"},ta=r({name:"ElAlert",props:{title:{type:String,default:""},description:{type:String,default:""},type:{type:String,default:"info"},closable:{type:Boolean,default:!0},closeText:{type:String,default:""},showIcon:Boolean,center:Boolean,effect:{type:String,default:"light",validator:function(e){return-1!==["light","dark"].indexOf(e)}}},data:function(){return{visible:!0}},methods:{close:function(){this.visible=!1,this.$emit("close")}},computed:{typeClass:function(){return"el-alert--"+this.type},iconClass:function(){return ea[this.type]||"el-icon-info"},isBigIcon:function(){return this.description||this.$slots.default?"is-big":""},isBoldTitle:function(){return this.description||this.$slots.default?"is-bold":""}}},Js,[],!1,null,null,null);ta.options.__file="packages/alert/src/main.vue";var ia=ta.exports;ia.install=function(e){e.component(ia.name,ia)};var na=ia,ra=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("transition",{attrs:{name:"el-notification-fade"}},[i("div",{directives:[{name:"show",rawName:"v-show",value:e.visible,expression:"visible"}],class:["el-notification",e.customClass,e.horizontalClass],style:e.positionStyle,attrs:{role:"alert"},on:{mouseenter:function(t){e.clearTimer()},mouseleave:function(t){e.startTimer()},click:e.click}},[e.type||e.iconClass?i("i",{staticClass:"el-notification__icon",class:[e.typeClass,e.iconClass]}):e._e(),i("div",{staticClass:"el-notification__group",class:{"is-with-icon":e.typeClass||e.iconClass}},[i("h2",{staticClass:"el-notification__title",domProps:{textContent:e._s(e.title)}}),i("div",{directives:[{name:"show",rawName:"v-show",value:e.message,expression:"message"}],staticClass:"el-notification__content"},[e._t("default",[e.dangerouslyUseHTMLString?i("p",{domProps:{innerHTML:e._s(e.message)}}):i("p",[e._v(e._s(e.message))])])],2),e.showClose?i("div",{staticClass:"el-notification__closeBtn el-icon-close",on:{click:function(t){return t.stopPropagation(),e.close(t)}}}):e._e()])])])};ra._withStripped=!0;var sa={success:"success",info:"info",warning:"warning",error:"error"},aa=r({data:function(){return{visible:!1,title:"",message:"",duration:4500,type:"",showClose:!0,customClass:"",iconClass:"",onClose:null,onClick:null,closed:!1,verticalOffset:0,timer:null,dangerouslyUseHTMLString:!1,position:"top-right"}},computed:{typeClass:function(){return this.type&&sa[this.type]?"el-icon-"+sa[this.type]:""},horizontalClass:function(){return this.position.indexOf("right")>-1?"right":"left"},verticalProperty:function(){return/^top-/.test(this.position)?"top":"bottom"},positionStyle:function(){var e;return(e={})[this.verticalProperty]=this.verticalOffset+"px",e}},watch:{closed:function(e){e&&(this.visible=!1,this.$el.addEventListener("transitionend",this.destroyElement))}},methods:{destroyElement:function(){this.$el.removeEventListener("transitionend",this.destroyElement),this.$destroy(!0),this.$el.parentNode.removeChild(this.$el)},click:function(){"function"==typeof this.onClick&&this.onClick()},close:function(){this.closed=!0,"function"==typeof this.onClose&&this.onClose()},clearTimer:function(){clearTimeout(this.timer)},startTimer:function(){var e=this;this.duration>0&&(this.timer=setTimeout((function(){e.closed||e.close()}),this.duration))},keydown:function(e){46===e.keyCode||8===e.keyCode?this.clearTimer():27===e.keyCode?this.closed||this.close():this.startTimer()}},mounted:function(){var e=this;this.duration>0&&(this.timer=setTimeout((function(){e.closed||e.close()}),this.duration)),document.addEventListener("keydown",this.keydown)},beforeDestroy:function(){document.removeEventListener("keydown",this.keydown)}},ra,[],!1,null,null,null);aa.options.__file="packages/notification/src/main.vue";var oa=aa.exports,la=di.a.extend(oa),ua=void 0,ca=[],da=1,ha=function e(t){if(!di.a.prototype.$isServer){var i=(t=Be()({},t)).onClose,n="notification_"+da++,r=t.position||"top-right";t.onClose=function(){e.close(n,i)},ua=new la({data:t}),Object(Br.isVNode)(t.message)&&(ua.$slots.default=[t.message],t.message="REPLACED_BY_VNODE"),ua.id=n,ua.$mount(),document.body.appendChild(ua.$el),ua.visible=!0,ua.dom=ua.$el,ua.dom.style.zIndex=b.PopupManager.nextZIndex();var s=t.offset||0;return ca.filter((function(e){return e.position===r})).forEach((function(e){s+=e.$el.offsetHeight+16})),s+=16,ua.verticalOffset=s,ca.push(ua),ua}};["success","warning","info","error"].forEach((function(e){ha[e]=function(t){return("string"==typeof t||Object(Br.isVNode)(t))&&(t={message:t}),t.type=e,ha(t)}})),ha.close=function(e,t){var i=-1,n=ca.length,r=ca.filter((function(t,n){return t.id===e&&(i=n,!0)}))[0];if(r&&("function"==typeof t&&t(r),ca.splice(i,1),!(n<=1)))for(var s=r.position,a=r.dom.offsetHeight,o=i;o=0;e--)ca[e].close()};var pa=ha,fa=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{staticClass:"el-slider",class:{"is-vertical":e.vertical,"el-slider--with-input":e.showInput},attrs:{role:"slider","aria-valuemin":e.min,"aria-valuemax":e.max,"aria-orientation":e.vertical?"vertical":"horizontal","aria-disabled":e.sliderDisabled}},[e.showInput&&!e.range?i("el-input-number",{ref:"input",staticClass:"el-slider__input",attrs:{step:e.step,disabled:e.sliderDisabled,controls:e.showInputControls,min:e.min,max:e.max,debounce:e.debounce,size:e.inputSize},on:{change:e.emitChange},model:{value:e.firstValue,callback:function(t){e.firstValue=t},expression:"firstValue"}}):e._e(),i("div",{ref:"slider",staticClass:"el-slider__runway",class:{"show-input":e.showInput,disabled:e.sliderDisabled},style:e.runwayStyle,on:{click:e.onSliderClick}},[i("div",{staticClass:"el-slider__bar",style:e.barStyle}),i("slider-button",{ref:"button1",attrs:{vertical:e.vertical,"tooltip-class":e.tooltipClass},model:{value:e.firstValue,callback:function(t){e.firstValue=t},expression:"firstValue"}}),e.range?i("slider-button",{ref:"button2",attrs:{vertical:e.vertical,"tooltip-class":e.tooltipClass},model:{value:e.secondValue,callback:function(t){e.secondValue=t},expression:"secondValue"}}):e._e(),e._l(e.stops,(function(t,n){return e.showStops?i("div",{key:n,staticClass:"el-slider__stop",style:e.getStopStyle(t)}):e._e()})),e.markList.length>0?[i("div",e._l(e.markList,(function(t,n){return i("div",{key:n,staticClass:"el-slider__stop el-slider__marks-stop",style:e.getStopStyle(t.position)})})),0),i("div",{staticClass:"el-slider__marks"},e._l(e.markList,(function(t,n){return i("slider-marker",{key:n,style:e.getStopStyle(t.position),attrs:{mark:t.mark}})})),1)]:e._e()],2)],1)};fa._withStripped=!0;var ma=i(41),va=i.n(ma),ga=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{ref:"button",staticClass:"el-slider__button-wrapper",class:{hover:e.hovering,dragging:e.dragging},style:e.wrapperStyle,attrs:{tabindex:"0"},on:{mouseenter:e.handleMouseEnter,mouseleave:e.handleMouseLeave,mousedown:e.onButtonDown,touchstart:e.onButtonDown,focus:e.handleMouseEnter,blur:e.handleMouseLeave,keydown:[function(t){return!("button"in t)&&e._k(t.keyCode,"left",37,t.key,["Left","ArrowLeft"])||"button"in t&&0!==t.button?null:e.onLeftKeyDown(t)},function(t){return!("button"in t)&&e._k(t.keyCode,"right",39,t.key,["Right","ArrowRight"])||"button"in t&&2!==t.button?null:e.onRightKeyDown(t)},function(t){return!("button"in t)&&e._k(t.keyCode,"down",40,t.key,["Down","ArrowDown"])?null:(t.preventDefault(),e.onLeftKeyDown(t))},function(t){return!("button"in t)&&e._k(t.keyCode,"up",38,t.key,["Up","ArrowUp"])?null:(t.preventDefault(),e.onRightKeyDown(t))}]}},[i("el-tooltip",{ref:"tooltip",attrs:{placement:"top","popper-class":e.tooltipClass,disabled:!e.showTooltip}},[i("span",{attrs:{slot:"content"},slot:"content"},[e._v(e._s(e.formatValue))]),i("div",{staticClass:"el-slider__button",class:{hover:e.hovering,dragging:e.dragging}})])],1)};ga._withStripped=!0;var _a=r({name:"ElSliderButton",components:{ElTooltip:De.a},props:{value:{type:Number,default:0},vertical:{type:Boolean,default:!1},tooltipClass:String},data:function(){return{hovering:!1,dragging:!1,isClick:!1,startX:0,currentX:0,startY:0,currentY:0,startPosition:0,newPosition:null,oldValue:this.value}},computed:{disabled:function(){return this.$parent.sliderDisabled},max:function(){return this.$parent.max},min:function(){return this.$parent.min},step:function(){return this.$parent.step},showTooltip:function(){return this.$parent.showTooltip},precision:function(){return this.$parent.precision},currentPosition:function(){return(this.value-this.min)/(this.max-this.min)*100+"%"},enableFormat:function(){return this.$parent.formatTooltip instanceof Function},formatValue:function(){return this.enableFormat&&this.$parent.formatTooltip(this.value)||this.value},wrapperStyle:function(){return this.vertical?{bottom:this.currentPosition}:{left:this.currentPosition}}},watch:{dragging:function(e){this.$parent.dragging=e}},methods:{displayTooltip:function(){this.$refs.tooltip&&(this.$refs.tooltip.showPopper=!0)},hideTooltip:function(){this.$refs.tooltip&&(this.$refs.tooltip.showPopper=!1)},handleMouseEnter:function(){this.hovering=!0,this.displayTooltip()},handleMouseLeave:function(){this.hovering=!1,this.hideTooltip()},onButtonDown:function(e){this.disabled||(e.preventDefault(),this.onDragStart(e),window.addEventListener("mousemove",this.onDragging),window.addEventListener("touchmove",this.onDragging),window.addEventListener("mouseup",this.onDragEnd),window.addEventListener("touchend",this.onDragEnd),window.addEventListener("contextmenu",this.onDragEnd))},onLeftKeyDown:function(){this.disabled||(this.newPosition=parseFloat(this.currentPosition)-this.step/(this.max-this.min)*100,this.setPosition(this.newPosition),this.$parent.emitChange())},onRightKeyDown:function(){this.disabled||(this.newPosition=parseFloat(this.currentPosition)+this.step/(this.max-this.min)*100,this.setPosition(this.newPosition),this.$parent.emitChange())},onDragStart:function(e){this.dragging=!0,this.isClick=!0,"touchstart"===e.type&&(e.clientY=e.touches[0].clientY,e.clientX=e.touches[0].clientX),this.vertical?this.startY=e.clientY:this.startX=e.clientX,this.startPosition=parseFloat(this.currentPosition),this.newPosition=this.startPosition},onDragging:function(e){if(this.dragging){this.isClick=!1,this.displayTooltip(),this.$parent.resetSize();var t=0;"touchmove"===e.type&&(e.clientY=e.touches[0].clientY,e.clientX=e.touches[0].clientX),this.vertical?(this.currentY=e.clientY,t=(this.startY-this.currentY)/this.$parent.sliderSize*100):(this.currentX=e.clientX,t=(this.currentX-this.startX)/this.$parent.sliderSize*100),this.newPosition=this.startPosition+t,this.setPosition(this.newPosition)}},onDragEnd:function(){var e=this;this.dragging&&(setTimeout((function(){e.dragging=!1,e.hideTooltip(),e.isClick||(e.setPosition(e.newPosition),e.$parent.emitChange())}),0),window.removeEventListener("mousemove",this.onDragging),window.removeEventListener("touchmove",this.onDragging),window.removeEventListener("mouseup",this.onDragEnd),window.removeEventListener("touchend",this.onDragEnd),window.removeEventListener("contextmenu",this.onDragEnd))},setPosition:function(e){var t=this;if(null!==e&&!isNaN(e)){e<0?e=0:e>100&&(e=100);var i=100/((this.max-this.min)/this.step),n=Math.round(e/i)*i*(this.max-this.min)*.01+this.min;n=parseFloat(n.toFixed(this.precision)),this.$emit("input",n),this.$nextTick((function(){t.displayTooltip(),t.$refs.tooltip&&t.$refs.tooltip.updatePopper()})),this.dragging||this.value===this.oldValue||(this.oldValue=this.value)}}}},ga,[],!1,null,null,null);_a.options.__file="packages/slider/src/button.vue";var ba=_a.exports,ya={name:"ElMarker",props:{mark:{type:[String,Object]}},render:function(){var e=arguments[0],t="string"==typeof this.mark?this.mark:this.mark.label;return e("div",{class:"el-slider__marks-text",style:this.mark.style||{}},[t])}},xa=r({name:"ElSlider",mixins:[C.a],inject:{elForm:{default:""}},props:{min:{type:Number,default:0},max:{type:Number,default:100},step:{type:Number,default:1},value:{type:[Number,Array],default:0},showInput:{type:Boolean,default:!1},showInputControls:{type:Boolean,default:!0},inputSize:{type:String,default:"small"},showStops:{type:Boolean,default:!1},showTooltip:{type:Boolean,default:!0},formatTooltip:Function,disabled:{type:Boolean,default:!1},range:{type:Boolean,default:!1},vertical:{type:Boolean,default:!1},height:{type:String},debounce:{type:Number,default:300},label:{type:String},tooltipClass:String,marks:Object},components:{ElInputNumber:va.a,SliderButton:ba,SliderMarker:ya},data:function(){return{firstValue:null,secondValue:null,oldValue:null,dragging:!1,sliderSize:1}},watch:{value:function(e,t){this.dragging||Array.isArray(e)&&Array.isArray(t)&&e.every((function(e,i){return e===t[i]}))||this.setValues()},dragging:function(e){e||this.setValues()},firstValue:function(e){this.range?this.$emit("input",[this.minValue,this.maxValue]):this.$emit("input",e)},secondValue:function(){this.range&&this.$emit("input",[this.minValue,this.maxValue])},min:function(){this.setValues()},max:function(){this.setValues()}},methods:{valueChanged:function(){var e=this;return this.range?![this.minValue,this.maxValue].every((function(t,i){return t===e.oldValue[i]})):this.value!==this.oldValue},setValues:function(){if(this.min>this.max)console.error("[Element Error][Slider]min should not be greater than max.");else{var e=this.value;this.range&&Array.isArray(e)?e[1]this.max?this.$emit("input",[this.max,this.max]):e[0]this.max?this.$emit("input",[e[0],this.max]):(this.firstValue=e[0],this.secondValue=e[1],this.valueChanged()&&(this.dispatch("ElFormItem","el.form.change",[this.minValue,this.maxValue]),this.oldValue=e.slice())):this.range||"number"!=typeof e||isNaN(e)||(ethis.max?this.$emit("input",this.max):(this.firstValue=e,this.valueChanged()&&(this.dispatch("ElFormItem","el.form.change",e),this.oldValue=e)))}},setPosition:function(e){var t=this.min+e*(this.max-this.min)/100;if(this.range){var i=void 0;i=Math.abs(this.minValue-t)this.secondValue?"button1":"button2",this.$refs[i].setPosition(e)}else this.$refs.button1.setPosition(e)},onSliderClick:function(e){if(!this.sliderDisabled&&!this.dragging){if(this.resetSize(),this.vertical){var t=this.$refs.slider.getBoundingClientRect().bottom;this.setPosition((t-e.clientY)/this.sliderSize*100)}else{var i=this.$refs.slider.getBoundingClientRect().left;this.setPosition((e.clientX-i)/this.sliderSize*100)}this.emitChange()}},resetSize:function(){this.$refs.slider&&(this.sliderSize=this.$refs.slider["client"+(this.vertical?"Height":"Width")])},emitChange:function(){var e=this;this.$nextTick((function(){e.$emit("change",e.range?[e.minValue,e.maxValue]:e.value)}))},getStopStyle:function(e){return this.vertical?{bottom:e+"%"}:{left:e+"%"}}},computed:{stops:function(){var e=this;if(!this.showStops||this.min>this.max)return[];if(0===this.step)return[];for(var t=(this.max-this.min)/this.step,i=100*this.step/(this.max-this.min),n=[],r=1;r100*(e.maxValue-e.min)/(e.max-e.min)})):n.filter((function(t){return t>100*(e.firstValue-e.min)/(e.max-e.min)}))},markList:function(){var e=this;return this.marks?Object.keys(this.marks).map(parseFloat).sort((function(e,t){return e-t})).filter((function(t){return t<=e.max&&t>=e.min})).map((function(t){return{point:t,position:100*(t-e.min)/(e.max-e.min),mark:e.marks[t]}})):[]},minValue:function(){return Math.min(this.firstValue,this.secondValue)},maxValue:function(){return Math.max(this.firstValue,this.secondValue)},barSize:function(){return this.range?100*(this.maxValue-this.minValue)/(this.max-this.min)+"%":100*(this.firstValue-this.min)/(this.max-this.min)+"%"},barStart:function(){return this.range?100*(this.minValue-this.min)/(this.max-this.min)+"%":"0%"},precision:function(){var e=[this.min,this.max,this.step].map((function(e){var t=(""+e).split(".")[1];return t?t.length:0}));return Math.max.apply(null,e)},runwayStyle:function(){return this.vertical?{height:this.height}:{}},barStyle:function(){return this.vertical?{height:this.barSize,bottom:this.barStart}:{width:this.barSize,left:this.barStart}},sliderDisabled:function(){return this.disabled||(this.elForm||{}).disabled}},mounted:function(){var e=void 0;this.range?(Array.isArray(this.value)?(this.firstValue=Math.max(this.min,this.value[0]),this.secondValue=Math.min(this.max,this.value[1])):(this.firstValue=this.min,this.secondValue=this.max),this.oldValue=[this.firstValue,this.secondValue],e=this.firstValue+"-"+this.secondValue):("number"!=typeof this.value||isNaN(this.value)?this.firstValue=this.min:this.firstValue=Math.min(this.max,Math.max(this.min,this.value)),this.oldValue=this.firstValue,e=this.firstValue),this.$el.setAttribute("aria-valuetext",e),this.$el.setAttribute("aria-label",this.label?this.label:"slider between "+this.min+" and "+this.max),this.resetSize(),window.addEventListener("resize",this.resetSize)},beforeDestroy:function(){window.removeEventListener("resize",this.resetSize)}},fa,[],!1,null,null,null);xa.options.__file="packages/slider/src/main.vue";var ka=xa.exports;ka.install=function(e){e.component(ka.name,ka)};var wa=ka,Ca=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("transition",{attrs:{name:"el-loading-fade"},on:{"after-leave":e.handleAfterLeave}},[i("div",{directives:[{name:"show",rawName:"v-show",value:e.visible,expression:"visible"}],staticClass:"el-loading-mask",class:[e.customClass,{"is-fullscreen":e.fullscreen}],style:{backgroundColor:e.background||""}},[i("div",{staticClass:"el-loading-spinner"},[e.spinner?i("i",{class:e.spinner}):i("svg",{staticClass:"circular",attrs:{viewBox:"25 25 50 50"}},[i("circle",{staticClass:"path",attrs:{cx:"50",cy:"50",r:"20",fill:"none"}})]),e.text?i("p",{staticClass:"el-loading-text"},[e._v(e._s(e.text))]):e._e()])])])};Ca._withStripped=!0;var Sa=r({data:function(){return{text:null,spinner:null,background:null,fullscreen:!0,visible:!1,customClass:""}},methods:{handleAfterLeave:function(){this.$emit("after-leave")},setText:function(e){this.text=e}}},Ca,[],!1,null,null,null);Sa.options.__file="packages/loading/src/loading.vue";var Oa=Sa.exports,Da=i(32),Ea=i.n(Da),Ta=di.a.extend(Oa),$a={install:function(e){if(!e.prototype.$isServer){var t=function(t,n){n.value?e.nextTick((function(){n.modifiers.fullscreen?(t.originalPosition=Object(fe.getStyle)(document.body,"position"),t.originalOverflow=Object(fe.getStyle)(document.body,"overflow"),t.maskStyle.zIndex=b.PopupManager.nextZIndex(),Object(fe.addClass)(t.mask,"is-fullscreen"),i(document.body,t,n)):(Object(fe.removeClass)(t.mask,"is-fullscreen"),n.modifiers.body?(t.originalPosition=Object(fe.getStyle)(document.body,"position"),["top","left"].forEach((function(e){var i="top"===e?"scrollTop":"scrollLeft";t.maskStyle[e]=t.getBoundingClientRect()[e]+document.body[i]+document.documentElement[i]-parseInt(Object(fe.getStyle)(document.body,"margin-"+e),10)+"px"})),["height","width"].forEach((function(e){t.maskStyle[e]=t.getBoundingClientRect()[e]+"px"})),i(document.body,t,n)):(t.originalPosition=Object(fe.getStyle)(t,"position"),i(t,t,n)))})):(Ea()(t.instance,(function(e){if(t.instance.hiding){t.domVisible=!1;var i=n.modifiers.fullscreen||n.modifiers.body?document.body:t;Object(fe.removeClass)(i,"el-loading-parent--relative"),Object(fe.removeClass)(i,"el-loading-parent--hidden"),t.instance.hiding=!1}}),300,!0),t.instance.visible=!1,t.instance.hiding=!0)},i=function(t,i,n){i.domVisible||"none"===Object(fe.getStyle)(i,"display")||"hidden"===Object(fe.getStyle)(i,"visibility")?i.domVisible&&!0===i.instance.hiding&&(i.instance.visible=!0,i.instance.hiding=!1):(Object.keys(i.maskStyle).forEach((function(e){i.mask.style[e]=i.maskStyle[e]})),"absolute"!==i.originalPosition&&"fixed"!==i.originalPosition&&Object(fe.addClass)(t,"el-loading-parent--relative"),n.modifiers.fullscreen&&n.modifiers.lock&&Object(fe.addClass)(t,"el-loading-parent--hidden"),i.domVisible=!0,t.appendChild(i.mask),e.nextTick((function(){i.instance.hiding?i.instance.$emit("after-leave"):i.instance.visible=!0})),i.domInserted=!0)};e.directive("loading",{bind:function(e,i,n){var r=e.getAttribute("element-loading-text"),s=e.getAttribute("element-loading-spinner"),a=e.getAttribute("element-loading-background"),o=e.getAttribute("element-loading-custom-class"),l=n.context,u=new Ta({el:document.createElement("div"),data:{text:l&&l[r]||r,spinner:l&&l[s]||s,background:l&&l[a]||a,customClass:l&&l[o]||o,fullscreen:!!i.modifiers.fullscreen}});e.instance=u,e.mask=u.$el,e.maskStyle={},i.value&&t(e,i)},update:function(e,i){e.instance.setText(e.getAttribute("element-loading-text")),i.oldValue!==i.value&&t(e,i)},unbind:function(e,i){e.domInserted&&(e.mask&&e.mask.parentNode&&e.mask.parentNode.removeChild(e.mask),t(e,{value:!1,modifiers:i.modifiers})),e.instance&&e.instance.$destroy()}})}}},Pa=$a,ja=di.a.extend(Oa),Ma={text:null,fullscreen:!0,body:!1,lock:!1,customClass:""},Ia=void 0;ja.prototype.originalPosition="",ja.prototype.originalOverflow="",ja.prototype.close=function(){var e=this;this.fullscreen&&(Ia=void 0),Ea()(this,(function(t){var i=e.fullscreen||e.body?document.body:e.target;Object(fe.removeClass)(i,"el-loading-parent--relative"),Object(fe.removeClass)(i,"el-loading-parent--hidden"),e.$el&&e.$el.parentNode&&e.$el.parentNode.removeChild(e.$el),e.$destroy()}),300),this.visible=!1};var Aa=function(e,t,i){var n={};e.fullscreen?(i.originalPosition=Object(fe.getStyle)(document.body,"position"),i.originalOverflow=Object(fe.getStyle)(document.body,"overflow"),n.zIndex=b.PopupManager.nextZIndex()):e.body?(i.originalPosition=Object(fe.getStyle)(document.body,"position"),["top","left"].forEach((function(t){var i="top"===t?"scrollTop":"scrollLeft";n[t]=e.target.getBoundingClientRect()[t]+document.body[i]+document.documentElement[i]+"px"})),["height","width"].forEach((function(t){n[t]=e.target.getBoundingClientRect()[t]+"px"}))):i.originalPosition=Object(fe.getStyle)(t,"position"),Object.keys(n).forEach((function(e){i.$el.style[e]=n[e]}))},Na=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(!di.a.prototype.$isServer){if("string"==typeof(e=Be()({},Ma,e)).target&&(e.target=document.querySelector(e.target)),e.target=e.target||document.body,e.target!==document.body?e.fullscreen=!1:e.body=!0,e.fullscreen&&Ia)return Ia;var t=e.body?document.body:e.target,i=new ja({el:document.createElement("div"),data:e});return Aa(e,t,i),"absolute"!==i.originalPosition&&"fixed"!==i.originalPosition&&Object(fe.addClass)(t,"el-loading-parent--relative"),e.fullscreen&&e.lock&&Object(fe.addClass)(t,"el-loading-parent--hidden"),t.appendChild(i.$el),di.a.nextTick((function(){i.visible=!0})),e.fullscreen&&(Ia=i),i}},La={install:function(e){e.use(Pa),e.prototype.$loading=Na},directive:Pa,service:Na},Fa=function(){var e=this.$createElement;return(this._self._c||e)("i",{class:"el-icon-"+this.name})};Fa._withStripped=!0;var Va=r({name:"ElIcon",props:{name:String}},Fa,[],!1,null,null,null);Va.options.__file="packages/icon/src/icon.vue";var za=Va.exports;za.install=function(e){e.component(za.name,za)};var Ra=za,Ba={name:"ElRow",componentName:"ElRow",props:{tag:{type:String,default:"div"},gutter:Number,type:String,justify:{type:String,default:"start"},align:String},computed:{style:function(){var e={};return this.gutter&&(e.marginLeft="-"+this.gutter/2+"px",e.marginRight=e.marginLeft),e}},render:function(e){return e(this.tag,{class:["el-row","start"!==this.justify?"is-justify-"+this.justify:"",this.align?"is-align-"+this.align:"",{"el-row--flex":"flex"===this.type}],style:this.style},this.$slots.default)},install:function(e){e.component(Ba.name,Ba)}},Ha=Ba,Wa="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},qa={name:"ElCol",props:{span:{type:Number,default:24},tag:{type:String,default:"div"},offset:Number,pull:Number,push:Number,xs:[Number,Object],sm:[Number,Object],md:[Number,Object],lg:[Number,Object],xl:[Number,Object]},computed:{gutter:function(){for(var e=this.$parent;e&&"ElRow"!==e.$options.componentName;)e=e.$parent;return e?e.gutter:0}},render:function(e){var t=this,i=[],n={};return this.gutter&&(n.paddingLeft=this.gutter/2+"px",n.paddingRight=n.paddingLeft),["span","offset","pull","push"].forEach((function(e){(t[e]||0===t[e])&&i.push("span"!==e?"el-col-"+e+"-"+t[e]:"el-col-"+t[e])})),["xs","sm","md","lg","xl"].forEach((function(e){if("number"==typeof t[e])i.push("el-col-"+e+"-"+t[e]);else if("object"===Wa(t[e])){var n=t[e];Object.keys(n).forEach((function(t){i.push("span"!==t?"el-col-"+e+"-"+t+"-"+n[t]:"el-col-"+e+"-"+n[t])}))}})),e(this.tag,{class:["el-col",i],style:n},this.$slots.default)},install:function(e){e.component(qa.name,qa)}},Ua=qa,Ga=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("transition-group",{class:["el-upload-list","el-upload-list--"+e.listType,{"is-disabled":e.disabled}],attrs:{tag:"ul",name:"el-list"}},e._l(e.files,(function(t){return i("li",{key:t.uid,class:["el-upload-list__item","is-"+t.status,e.focusing?"focusing":""],attrs:{tabindex:"0"},on:{keydown:function(i){if(!("button"in i)&&e._k(i.keyCode,"delete",[8,46],i.key,["Backspace","Delete","Del"]))return null;!e.disabled&&e.$emit("remove",t)},focus:function(t){e.focusing=!0},blur:function(t){e.focusing=!1},click:function(t){e.focusing=!1}}},[e._t("default",["uploading"!==t.status&&["picture-card","picture"].indexOf(e.listType)>-1?i("img",{staticClass:"el-upload-list__item-thumbnail",attrs:{src:t.url,alt:""}}):e._e(),i("a",{staticClass:"el-upload-list__item-name",on:{click:function(i){e.handleClick(t)}}},[i("i",{staticClass:"el-icon-document"}),e._v(e._s(t.name)+"\n ")]),i("label",{staticClass:"el-upload-list__item-status-label"},[i("i",{class:{"el-icon-upload-success":!0,"el-icon-circle-check":"text"===e.listType,"el-icon-check":["picture-card","picture"].indexOf(e.listType)>-1}})]),e.disabled?e._e():i("i",{staticClass:"el-icon-close",on:{click:function(i){e.$emit("remove",t)}}}),e.disabled?e._e():i("i",{staticClass:"el-icon-close-tip"},[e._v(e._s(e.t("el.upload.deleteTip")))]),"uploading"===t.status?i("el-progress",{attrs:{type:"picture-card"===e.listType?"circle":"line","stroke-width":"picture-card"===e.listType?6:2,percentage:e.parsePercentage(t.percentage)}}):e._e(),"picture-card"===e.listType?i("span",{staticClass:"el-upload-list__item-actions"},[e.handlePreview&&"picture-card"===e.listType?i("span",{staticClass:"el-upload-list__item-preview",on:{click:function(i){e.handlePreview(t)}}},[i("i",{staticClass:"el-icon-zoom-in"})]):e._e(),e.disabled?e._e():i("span",{staticClass:"el-upload-list__item-delete",on:{click:function(i){e.$emit("remove",t)}}},[i("i",{staticClass:"el-icon-delete"})])]):e._e()],{file:t})],2)})),0)};Ga._withStripped=!0;var Ya=i(33),Ka=i.n(Ya),Xa=r({name:"ElUploadList",mixins:[f.a],data:function(){return{focusing:!1}},components:{ElProgress:Ka.a},props:{files:{type:Array,default:function(){return[]}},disabled:{type:Boolean,default:!1},handlePreview:Function,listType:String},methods:{parsePercentage:function(e){return parseInt(e,10)},handleClick:function(e){this.handlePreview&&this.handlePreview(e)}}},Ga,[],!1,null,null,null);Xa.options.__file="packages/upload/src/upload-list.vue";var Za=Xa.exports,Qa=i(24),Ja=i.n(Qa);var eo=function(){var e=this,t=e.$createElement;return(e._self._c||t)("div",{staticClass:"el-upload-dragger",class:{"is-dragover":e.dragover},on:{drop:function(t){return t.preventDefault(),e.onDrop(t)},dragover:function(t){return t.preventDefault(),e.onDragover(t)},dragleave:function(t){t.preventDefault(),e.dragover=!1}}},[e._t("default")],2)};eo._withStripped=!0;var to=r({name:"ElUploadDrag",props:{disabled:Boolean},inject:{uploader:{default:""}},data:function(){return{dragover:!1}},methods:{onDragover:function(){this.disabled||(this.dragover=!0)},onDrop:function(e){if(!this.disabled&&this.uploader){var t=this.uploader.accept;this.dragover=!1,t?this.$emit("file",[].slice.call(e.dataTransfer.files).filter((function(e){var i=e.type,n=e.name,r=n.indexOf(".")>-1?"."+n.split(".").pop():"",s=i.replace(/\/.*$/,"");return t.split(",").map((function(e){return e.trim()})).filter((function(e){return e})).some((function(e){return/\..+$/.test(e)?r===e:/\/\*$/.test(e)?s===e.replace(/\/\*$/,""):!!/^[^\/]+\/[^\/]+$/.test(e)&&i===e}))}))):this.$emit("file",e.dataTransfer.files)}}}},eo,[],!1,null,null,null);to.options.__file="packages/upload/src/upload-dragger.vue";var io=r({inject:["uploader"],components:{UploadDragger:to.exports},props:{type:String,action:{type:String,required:!0},name:{type:String,default:"file"},data:Object,headers:Object,withCredentials:Boolean,multiple:Boolean,accept:String,onStart:Function,onProgress:Function,onSuccess:Function,onError:Function,beforeUpload:Function,drag:Boolean,onPreview:{type:Function,default:function(){}},onRemove:{type:Function,default:function(){}},fileList:Array,autoUpload:Boolean,listType:String,httpRequest:{type:Function,default:function(e){if("undefined"!=typeof XMLHttpRequest){var t=new XMLHttpRequest,i=e.action;t.upload&&(t.upload.onprogress=function(t){t.total>0&&(t.percent=t.loaded/t.total*100),e.onProgress(t)});var n=new FormData;e.data&&Object.keys(e.data).forEach((function(t){n.append(t,e.data[t])})),n.append(e.filename,e.file,e.file.name),t.onerror=function(t){e.onError(t)},t.onload=function(){if(t.status<200||t.status>=300)return e.onError(function(e,t,i){var n=void 0;n=i.response?""+(i.response.error||i.response):i.responseText?""+i.responseText:"fail to post "+e+" "+i.status;var r=new Error(n);return r.status=i.status,r.method="post",r.url=e,r}(i,0,t));e.onSuccess(function(e){var t=e.responseText||e.response;if(!t)return t;try{return JSON.parse(t)}catch(e){return t}}(t))},t.open("post",i,!0),e.withCredentials&&"withCredentials"in t&&(t.withCredentials=!0);var r=e.headers||{};for(var s in r)r.hasOwnProperty(s)&&null!==r[s]&&t.setRequestHeader(s,r[s]);return t.send(n),t}}},disabled:Boolean,limit:Number,onExceed:Function},data:function(){return{mouseover:!1,reqs:{}}},methods:{isImage:function(e){return-1!==e.indexOf("image")},handleChange:function(e){var t=e.target.files;t&&this.uploadFiles(t)},uploadFiles:function(e){var t=this;if(this.limit&&this.fileList.length+e.length>this.limit)this.onExceed&&this.onExceed(e,this.fileList);else{var i=Array.prototype.slice.call(e);this.multiple||(i=i.slice(0,1)),0!==i.length&&i.forEach((function(e){t.onStart(e),t.autoUpload&&t.upload(e)}))}},upload:function(e){var t=this;if(this.$refs.input.value=null,!this.beforeUpload)return this.post(e);var i=this.beforeUpload(e);i&&i.then?i.then((function(i){var n=Object.prototype.toString.call(i);if("[object File]"===n||"[object Blob]"===n){for(var r in"[object Blob]"===n&&(i=new File([i],e.name,{type:e.type})),e)e.hasOwnProperty(r)&&(i[r]=e[r]);t.post(i)}else t.post(e)}),(function(){t.onRemove(null,e)})):!1!==i?this.post(e):this.onRemove(null,e)},abort:function(e){var t=this.reqs;if(e){var i=e;e.uid&&(i=e.uid),t[i]&&t[i].abort()}else Object.keys(t).forEach((function(e){t[e]&&t[e].abort(),delete t[e]}))},post:function(e){var t=this,i=e.uid,n={headers:this.headers,withCredentials:this.withCredentials,file:e,data:this.data,filename:this.name,action:this.action,onProgress:function(i){t.onProgress(i,e)},onSuccess:function(n){t.onSuccess(n,e),delete t.reqs[i]},onError:function(n){t.onError(n,e),delete t.reqs[i]}},r=this.httpRequest(n);this.reqs[i]=r,r&&r.then&&r.then(n.onSuccess,n.onError)},handleClick:function(){this.disabled||(this.$refs.input.value=null,this.$refs.input.click())},handleKeydown:function(e){e.target===e.currentTarget&&(13!==e.keyCode&&32!==e.keyCode||this.handleClick())}},render:function(e){var t=this.handleClick,i=this.drag,n=this.name,r=this.handleChange,s=this.multiple,a=this.accept,o=this.listType,l=this.uploadFiles,u=this.disabled,c={class:{"el-upload":!0},on:{click:t,keydown:this.handleKeydown}};return c.class["el-upload--"+o]=!0,e("div",Ja()([c,{attrs:{tabindex:"0"}}]),[i?e("upload-dragger",{attrs:{disabled:u},on:{file:l}},[this.$slots.default]):this.$slots.default,e("input",{class:"el-upload__input",attrs:{type:"file",name:n,multiple:s,accept:a},ref:"input",on:{change:r}})])}},void 0,void 0,!1,null,null,null);io.options.__file="packages/upload/src/upload.vue";var no=io.exports;function ro(){}var so=r({name:"ElUpload",mixins:[k.a],components:{ElProgress:Ka.a,UploadList:Za,Upload:no},provide:function(){return{uploader:this}},inject:{elForm:{default:""}},props:{action:{type:String,required:!0},headers:{type:Object,default:function(){return{}}},data:Object,multiple:Boolean,name:{type:String,default:"file"},drag:Boolean,dragger:Boolean,withCredentials:Boolean,showFileList:{type:Boolean,default:!0},accept:String,type:{type:String,default:"select"},beforeUpload:Function,beforeRemove:Function,onRemove:{type:Function,default:ro},onChange:{type:Function,default:ro},onPreview:{type:Function},onSuccess:{type:Function,default:ro},onProgress:{type:Function,default:ro},onError:{type:Function,default:ro},fileList:{type:Array,default:function(){return[]}},autoUpload:{type:Boolean,default:!0},listType:{type:String,default:"text"},httpRequest:Function,disabled:Boolean,limit:Number,onExceed:{type:Function,default:ro}},data:function(){return{uploadFiles:[],dragOver:!1,draging:!1,tempIndex:1}},computed:{uploadDisabled:function(){return this.disabled||(this.elForm||{}).disabled}},watch:{listType:function(e){"picture-card"!==e&&"picture"!==e||(this.uploadFiles=this.uploadFiles.map((function(e){if(!e.url&&e.raw)try{e.url=URL.createObjectURL(e.raw)}catch(e){console.error("[Element Error][Upload]",e)}return e})))},fileList:{immediate:!0,handler:function(e){var t=this;this.uploadFiles=e.map((function(e){return e.uid=e.uid||Date.now()+t.tempIndex++,e.status=e.status||"success",e}))}}},methods:{handleStart:function(e){e.uid=Date.now()+this.tempIndex++;var t={status:"ready",name:e.name,size:e.size,percentage:0,uid:e.uid,raw:e};if("picture-card"===this.listType||"picture"===this.listType)try{t.url=URL.createObjectURL(e)}catch(e){return void console.error("[Element Error][Upload]",e)}this.uploadFiles.push(t),this.onChange(t,this.uploadFiles)},handleProgress:function(e,t){var i=this.getFile(t);this.onProgress(e,i,this.uploadFiles),i.status="uploading",i.percentage=e.percent||0},handleSuccess:function(e,t){var i=this.getFile(t);i&&(i.status="success",i.response=e,this.onSuccess(e,i,this.uploadFiles),this.onChange(i,this.uploadFiles))},handleError:function(e,t){var i=this.getFile(t),n=this.uploadFiles;i.status="fail",n.splice(n.indexOf(i),1),this.onError(e,i,this.uploadFiles),this.onChange(i,this.uploadFiles)},handleRemove:function(e,t){var i=this;t&&(e=this.getFile(t));var n=function(){i.abort(e);var t=i.uploadFiles;t.splice(t.indexOf(e),1),i.onRemove(e,t)};if(this.beforeRemove){if("function"==typeof this.beforeRemove){var r=this.beforeRemove(e,this.uploadFiles);r&&r.then?r.then((function(){n()}),ro):!1!==r&&n()}}else n()},getFile:function(e){var t=this.uploadFiles,i=void 0;return t.every((function(t){return!(i=e.uid===t.uid?t:null)})),i},abort:function(e){this.$refs["upload-inner"].abort(e)},clearFiles:function(){this.uploadFiles=[]},submit:function(){var e=this;this.uploadFiles.filter((function(e){return"ready"===e.status})).forEach((function(t){e.$refs["upload-inner"].upload(t.raw)}))},getMigratingConfig:function(){return{props:{"default-file-list":"default-file-list is renamed to file-list.","show-upload-list":"show-upload-list is renamed to show-file-list.","thumbnail-mode":"thumbnail-mode has been deprecated, you can implement the same effect according to this case: http://element.eleme.io/#/zh-CN/component/upload#yong-hu-tou-xiang-shang-chuan"}}}},beforeDestroy:function(){this.uploadFiles.forEach((function(e){e.url&&0===e.url.indexOf("blob:")&&URL.revokeObjectURL(e.url)}))},render:function(e){var t=this,i=void 0;this.showFileList&&(i=e(Za,{attrs:{disabled:this.uploadDisabled,listType:this.listType,files:this.uploadFiles,handlePreview:this.onPreview},on:{remove:this.handleRemove}},[function(e){if(t.$scopedSlots.file)return t.$scopedSlots.file({file:e.file})}]));var n=e("upload",{props:{type:this.type,drag:this.drag,action:this.action,multiple:this.multiple,"before-upload":this.beforeUpload,"with-credentials":this.withCredentials,headers:this.headers,name:this.name,data:this.data,accept:this.accept,fileList:this.uploadFiles,autoUpload:this.autoUpload,listType:this.listType,disabled:this.uploadDisabled,limit:this.limit,"on-exceed":this.onExceed,"on-start":this.handleStart,"on-progress":this.handleProgress,"on-success":this.handleSuccess,"on-error":this.handleError,"on-preview":this.onPreview,"on-remove":this.handleRemove,"http-request":this.httpRequest},ref:"upload-inner"},[this.$slots.trigger||this.$slots.default]);return e("div",["picture-card"===this.listType?i:"",this.$slots.trigger?[n,this.$slots.default]:n,this.$slots.tip,"picture-card"!==this.listType?i:""])}},void 0,void 0,!1,null,null,null);so.options.__file="packages/upload/src/index.vue";var ao=so.exports;ao.install=function(e){e.component(ao.name,ao)};var oo=ao,lo=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{staticClass:"el-progress",class:["el-progress--"+e.type,e.status?"is-"+e.status:"",{"el-progress--without-text":!e.showText,"el-progress--text-inside":e.textInside}],attrs:{role:"progressbar","aria-valuenow":e.percentage,"aria-valuemin":"0","aria-valuemax":"100"}},["line"===e.type?i("div",{staticClass:"el-progress-bar"},[i("div",{staticClass:"el-progress-bar__outer",style:{height:e.strokeWidth+"px"}},[i("div",{staticClass:"el-progress-bar__inner",style:e.barStyle},[e.showText&&e.textInside?i("div",{staticClass:"el-progress-bar__innerText"},[e._v(e._s(e.content))]):e._e()])])]):i("div",{staticClass:"el-progress-circle",style:{height:e.width+"px",width:e.width+"px"}},[i("svg",{attrs:{viewBox:"0 0 100 100"}},[i("path",{staticClass:"el-progress-circle__track",style:e.trailPathStyle,attrs:{d:e.trackPath,stroke:"#e5e9f2","stroke-width":e.relativeStrokeWidth,fill:"none"}}),i("path",{staticClass:"el-progress-circle__path",style:e.circlePathStyle,attrs:{d:e.trackPath,stroke:e.stroke,fill:"none","stroke-linecap":e.strokeLinecap,"stroke-width":e.percentage?e.relativeStrokeWidth:0}})])]),e.showText&&!e.textInside?i("div",{staticClass:"el-progress__text",style:{fontSize:e.progressTextSize+"px"}},[e.status?i("i",{class:e.iconClass}):[e._v(e._s(e.content))]],2):e._e()])};lo._withStripped=!0;var uo=r({name:"ElProgress",props:{type:{type:String,default:"line",validator:function(e){return["line","circle","dashboard"].indexOf(e)>-1}},percentage:{type:Number,default:0,required:!0,validator:function(e){return e>=0&&e<=100}},status:{type:String,validator:function(e){return["success","exception","warning"].indexOf(e)>-1}},strokeWidth:{type:Number,default:6},strokeLinecap:{type:String,default:"round"},textInside:{type:Boolean,default:!1},width:{type:Number,default:126},showText:{type:Boolean,default:!0},color:{type:[String,Array,Function],default:""},format:Function},computed:{barStyle:function(){var e={};return e.width=this.percentage+"%",e.backgroundColor=this.getCurrentColor(this.percentage),e},relativeStrokeWidth:function(){return(this.strokeWidth/this.width*100).toFixed(1)},radius:function(){return"circle"===this.type||"dashboard"===this.type?parseInt(50-parseFloat(this.relativeStrokeWidth)/2,10):0},trackPath:function(){var e=this.radius,t="dashboard"===this.type;return"\n M 50 50\n m 0 "+(t?"":"-")+e+"\n a "+e+" "+e+" 0 1 1 0 "+(t?"-":"")+2*e+"\n a "+e+" "+e+" 0 1 1 0 "+(t?"":"-")+2*e+"\n "},perimeter:function(){return 2*Math.PI*this.radius},rate:function(){return"dashboard"===this.type?.75:1},strokeDashoffset:function(){return-1*this.perimeter*(1-this.rate)/2+"px"},trailPathStyle:function(){return{strokeDasharray:this.perimeter*this.rate+"px, "+this.perimeter+"px",strokeDashoffset:this.strokeDashoffset}},circlePathStyle:function(){return{strokeDasharray:this.perimeter*this.rate*(this.percentage/100)+"px, "+this.perimeter+"px",strokeDashoffset:this.strokeDashoffset,transition:"stroke-dasharray 0.6s ease 0s, stroke 0.6s ease"}},stroke:function(){var e=void 0;if(this.color)e=this.getCurrentColor(this.percentage);else switch(this.status){case"success":e="#13ce66";break;case"exception":e="#ff4949";break;case"warning":e="#e6a23c";break;default:e="#20a0ff"}return e},iconClass:function(){return"warning"===this.status?"el-icon-warning":"line"===this.type?"success"===this.status?"el-icon-circle-check":"el-icon-circle-close":"success"===this.status?"el-icon-check":"el-icon-close"},progressTextSize:function(){return"line"===this.type?12+.4*this.strokeWidth:.111111*this.width+2},content:function(){return"function"==typeof this.format?this.format(this.percentage)||"":this.percentage+"%"}},methods:{getCurrentColor:function(e){return"function"==typeof this.color?this.color(e):"string"==typeof this.color?this.color:this.getLevelColor(e)},getLevelColor:function(e){for(var t=this.getColorArray().sort((function(e,t){return e.percentage-t.percentage})),i=0;ie)return t[i].color;return t[t.length-1].color},getColorArray:function(){var e=this.color,t=100/e.length;return e.map((function(e,i){return"string"==typeof e?{color:e,percentage:(i+1)*t}:e}))}}},lo,[],!1,null,null,null);uo.options.__file="packages/progress/src/progress.vue";var co=uo.exports;co.install=function(e){e.component(co.name,co)};var ho=co,po=function(){var e=this.$createElement,t=this._self._c||e;return t("span",{staticClass:"el-spinner"},[t("svg",{staticClass:"el-spinner-inner",style:{width:this.radius/2+"px",height:this.radius/2+"px"},attrs:{viewBox:"0 0 50 50"}},[t("circle",{staticClass:"path",attrs:{cx:"25",cy:"25",r:"20",fill:"none",stroke:this.strokeColor,"stroke-width":this.strokeWidth}})])])};po._withStripped=!0;var fo=r({name:"ElSpinner",props:{type:String,radius:{type:Number,default:100},strokeWidth:{type:Number,default:5},strokeColor:{type:String,default:"#efefef"}}},po,[],!1,null,null,null);fo.options.__file="packages/spinner/src/spinner.vue";var mo=fo.exports;mo.install=function(e){e.component(mo.name,mo)};var vo=mo,go=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("transition",{attrs:{name:"el-message-fade"},on:{"after-leave":e.handleAfterLeave}},[i("div",{directives:[{name:"show",rawName:"v-show",value:e.visible,expression:"visible"}],class:["el-message",e.type&&!e.iconClass?"el-message--"+e.type:"",e.center?"is-center":"",e.showClose?"is-closable":"",e.customClass],style:e.positionStyle,attrs:{role:"alert"},on:{mouseenter:e.clearTimer,mouseleave:e.startTimer}},[e.iconClass?i("i",{class:e.iconClass}):i("i",{class:e.typeClass}),e._t("default",[e.dangerouslyUseHTMLString?i("p",{staticClass:"el-message__content",domProps:{innerHTML:e._s(e.message)}}):i("p",{staticClass:"el-message__content"},[e._v(e._s(e.message))])]),e.showClose?i("i",{staticClass:"el-message__closeBtn el-icon-close",on:{click:e.close}}):e._e()],2)])};go._withStripped=!0;var _o={success:"success",info:"info",warning:"warning",error:"error"},bo=r({data:function(){return{visible:!1,message:"",duration:3e3,type:"info",iconClass:"",customClass:"",onClose:null,showClose:!1,closed:!1,verticalOffset:20,timer:null,dangerouslyUseHTMLString:!1,center:!1}},computed:{typeClass:function(){return this.type&&!this.iconClass?"el-message__icon el-icon-"+_o[this.type]:""},positionStyle:function(){return{top:this.verticalOffset+"px"}}},watch:{closed:function(e){e&&(this.visible=!1)}},methods:{handleAfterLeave:function(){this.$destroy(!0),this.$el.parentNode.removeChild(this.$el)},close:function(){this.closed=!0,"function"==typeof this.onClose&&this.onClose(this)},clearTimer:function(){clearTimeout(this.timer)},startTimer:function(){var e=this;this.duration>0&&(this.timer=setTimeout((function(){e.closed||e.close()}),this.duration))},keydown:function(e){27===e.keyCode&&(this.closed||this.close())}},mounted:function(){this.startTimer(),document.addEventListener("keydown",this.keydown)},beforeDestroy:function(){document.removeEventListener("keydown",this.keydown)}},go,[],!1,null,null,null);bo.options.__file="packages/message/src/main.vue";var yo=bo.exports,xo=i(15),ko=Object.assign||function(e){for(var t=1;tSo.length-1))for(var a=n;a=0;e--)So[e].close()};var Eo=Do,To=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{staticClass:"el-badge"},[e._t("default"),i("transition",{attrs:{name:"el-zoom-in-center"}},[i("sup",{directives:[{name:"show",rawName:"v-show",value:!e.hidden&&(e.content||0===e.content||e.isDot),expression:"!hidden && (content || content === 0 || isDot)"}],staticClass:"el-badge__content",class:["el-badge__content--"+e.type,{"is-fixed":e.$slots.default,"is-dot":e.isDot}],domProps:{textContent:e._s(e.content)}})])],2)};To._withStripped=!0;var $o=r({name:"ElBadge",props:{value:[String,Number],max:Number,isDot:Boolean,hidden:Boolean,type:{type:String,validator:function(e){return["primary","success","warning","info","danger"].indexOf(e)>-1}}},computed:{content:function(){if(!this.isDot){var e=this.value,t=this.max;return"number"==typeof e&&"number"==typeof t&&t0&&e-1this.value,i=this.allowHalf&&this.pointerAtLeftHalf&&e-.5<=this.currentValue&&e>this.currentValue;return t||i},getIconStyle:function(e){var t=this.rateDisabled?this.disabledVoidColor:this.voidColor;return{color:e<=this.currentValue?this.activeColor:t}},selectValue:function(e){this.rateDisabled||(this.allowHalf&&this.pointerAtLeftHalf?(this.$emit("input",this.currentValue),this.$emit("change",this.currentValue)):(this.$emit("input",e),this.$emit("change",e)))},handleKey:function(e){if(!this.rateDisabled){var t=this.currentValue,i=e.keyCode;38===i||39===i?(this.allowHalf?t+=.5:t+=1,e.stopPropagation(),e.preventDefault()):37!==i&&40!==i||(this.allowHalf?t-=.5:t-=1,e.stopPropagation(),e.preventDefault()),t=(t=t<0?0:t)>this.max?this.max:t,this.$emit("input",t),this.$emit("change",t)}},setCurrentValue:function(e,t){if(!this.rateDisabled){if(this.allowHalf){var i=t.target;Object(fe.hasClass)(i,"el-rate__item")&&(i=i.querySelector(".el-rate__icon")),Object(fe.hasClass)(i,"el-rate__decimal")&&(i=i.parentNode),this.pointerAtLeftHalf=2*t.offsetX<=i.clientWidth,this.currentValue=this.pointerAtLeftHalf?e-.5:e}else this.currentValue=e;this.hoverIndex=e}},resetCurrentValue:function(){this.rateDisabled||(this.allowHalf&&(this.pointerAtLeftHalf=this.value!==Math.floor(this.value)),this.currentValue=this.value,this.hoverIndex=-1)}},created:function(){this.value||this.$emit("input",0)}},Lo,[],!1,null,null,null);Fo.options.__file="packages/rate/src/main.vue";var Vo=Fo.exports;Vo.install=function(e){e.component(Vo.name,Vo)};var zo=Vo,Ro=function(){var e=this.$createElement;return(this._self._c||e)("div",{staticClass:"el-steps",class:[!this.simple&&"el-steps--"+this.direction,this.simple&&"el-steps--simple"]},[this._t("default")],2)};Ro._withStripped=!0;var Bo=r({name:"ElSteps",mixins:[k.a],props:{space:[Number,String],active:Number,direction:{type:String,default:"horizontal"},alignCenter:Boolean,simple:Boolean,finishStatus:{type:String,default:"finish"},processStatus:{type:String,default:"process"}},data:function(){return{steps:[],stepOffset:0}},methods:{getMigratingConfig:function(){return{props:{center:"center is removed."}}}},watch:{active:function(e,t){this.$emit("change",e,t)},steps:function(e){e.forEach((function(e,t){e.index=t}))}}},Ro,[],!1,null,null,null);Bo.options.__file="packages/steps/src/steps.vue";var Ho=Bo.exports;Ho.install=function(e){e.component(Ho.name,Ho)};var Wo=Ho,qo=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{staticClass:"el-step",class:[!e.isSimple&&"is-"+e.$parent.direction,e.isSimple&&"is-simple",e.isLast&&!e.space&&!e.isCenter&&"is-flex",e.isCenter&&!e.isVertical&&!e.isSimple&&"is-center"],style:e.style},[i("div",{staticClass:"el-step__head",class:"is-"+e.currentStatus},[i("div",{staticClass:"el-step__line",style:e.isLast?"":{marginRight:e.$parent.stepOffset+"px"}},[i("i",{staticClass:"el-step__line-inner",style:e.lineStyle})]),i("div",{staticClass:"el-step__icon",class:"is-"+(e.icon?"icon":"text")},["success"!==e.currentStatus&&"error"!==e.currentStatus?e._t("icon",[e.icon?i("i",{staticClass:"el-step__icon-inner",class:[e.icon]}):e._e(),e.icon||e.isSimple?e._e():i("div",{staticClass:"el-step__icon-inner"},[e._v(e._s(e.index+1))])]):i("i",{staticClass:"el-step__icon-inner is-status",class:["el-icon-"+("success"===e.currentStatus?"check":"close")]})],2)]),i("div",{staticClass:"el-step__main"},[i("div",{ref:"title",staticClass:"el-step__title",class:["is-"+e.currentStatus]},[e._t("title",[e._v(e._s(e.title))])],2),e.isSimple?i("div",{staticClass:"el-step__arrow"}):i("div",{staticClass:"el-step__description",class:["is-"+e.currentStatus]},[e._t("description",[e._v(e._s(e.description))])],2)])])};qo._withStripped=!0;var Uo=r({name:"ElStep",props:{title:String,icon:String,description:String,status:String},data:function(){return{index:-1,lineStyle:{},internalStatus:""}},beforeCreate:function(){this.$parent.steps.push(this)},beforeDestroy:function(){var e=this.$parent.steps,t=e.indexOf(this);t>=0&&e.splice(t,1)},computed:{currentStatus:function(){return this.status||this.internalStatus},prevStatus:function(){var e=this.$parent.steps[this.index-1];return e?e.currentStatus:"wait"},isCenter:function(){return this.$parent.alignCenter},isVertical:function(){return"vertical"===this.$parent.direction},isSimple:function(){return this.$parent.simple},isLast:function(){var e=this.$parent;return e.steps[e.steps.length-1]===this},stepsCount:function(){return this.$parent.steps.length},space:function(){var e=this.isSimple,t=this.$parent.space;return e?"":t},style:function(){var e={},t=this.$parent.steps.length,i="number"==typeof this.space?this.space+"px":this.space?this.space:100/(t-(this.isCenter?0:1))+"%";return e.flexBasis=i,this.isVertical||(this.isLast?e.maxWidth=100/this.stepsCount+"%":e.marginRight=-this.$parent.stepOffset+"px"),e}},methods:{updateStatus:function(e){var t=this.$parent.$children[this.index-1];e>this.index?this.internalStatus=this.$parent.finishStatus:e===this.index&&"error"!==this.prevStatus?this.internalStatus=this.$parent.processStatus:this.internalStatus="wait",t&&t.calcProgress(this.internalStatus)},calcProgress:function(e){var t=100,i={};i.transitionDelay=150*this.index+"ms",e===this.$parent.processStatus?(this.currentStatus,t=0):"wait"===e&&(t=0,i.transitionDelay=-150*this.index+"ms"),i.borderWidth=t&&!this.isSimple?"1px":0,"vertical"===this.$parent.direction?i.height=t+"%":i.width=t+"%",this.lineStyle=i}},mounted:function(){var e=this,t=this.$watch("index",(function(i){e.$watch("$parent.active",e.updateStatus,{immediate:!0}),e.$watch("$parent.processStatus",(function(){var t=e.$parent.active;e.updateStatus(t)}),{immediate:!0}),t()}))}},qo,[],!1,null,null,null);Uo.options.__file="packages/steps/src/step.vue";var Go=Uo.exports;Go.install=function(e){e.component(Go.name,Go)};var Yo=Go,Ko=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{class:e.carouselClasses,on:{mouseenter:function(t){return t.stopPropagation(),e.handleMouseEnter(t)},mouseleave:function(t){return t.stopPropagation(),e.handleMouseLeave(t)}}},[i("div",{staticClass:"el-carousel__container",style:{height:e.height}},[e.arrowDisplay?i("transition",{attrs:{name:"carousel-arrow-left"}},[i("button",{directives:[{name:"show",rawName:"v-show",value:("always"===e.arrow||e.hover)&&(e.loop||e.activeIndex>0),expression:"(arrow === 'always' || hover) && (loop || activeIndex > 0)"}],staticClass:"el-carousel__arrow el-carousel__arrow--left",attrs:{type:"button"},on:{mouseenter:function(t){e.handleButtonEnter("left")},mouseleave:e.handleButtonLeave,click:function(t){t.stopPropagation(),e.throttledArrowClick(e.activeIndex-1)}}},[i("i",{staticClass:"el-icon-arrow-left"})])]):e._e(),e.arrowDisplay?i("transition",{attrs:{name:"carousel-arrow-right"}},[i("button",{directives:[{name:"show",rawName:"v-show",value:("always"===e.arrow||e.hover)&&(e.loop||e.activeIndex0}))},carouselClasses:function(){var e=["el-carousel","el-carousel--"+this.direction];return"card"===this.type&&e.push("el-carousel--card"),e},indicatorsClasses:function(){var e=["el-carousel__indicators","el-carousel__indicators--"+this.direction];return this.hasLabel&&e.push("el-carousel__indicators--labels"),"outside"!==this.indicatorPosition&&"card"!==this.type||e.push("el-carousel__indicators--outside"),e}},watch:{items:function(e){e.length>0&&this.setActiveItem(this.initialIndex)},activeIndex:function(e,t){this.resetItemPosition(t),t>-1&&this.$emit("change",e,t)},autoplay:function(e){e?this.startTimer():this.pauseTimer()},loop:function(){this.setActiveItem(this.activeIndex)},interval:function(){this.pauseTimer(),this.startTimer()}},methods:{handleMouseEnter:function(){this.hover=!0,this.pauseTimer()},handleMouseLeave:function(){this.hover=!1,this.startTimer()},itemInStage:function(e,t){var i=this.items.length;return t===i-1&&e.inStage&&this.items[0].active||e.inStage&&this.items[t+1]&&this.items[t+1].active?"left":!!(0===t&&e.inStage&&this.items[i-1].active||e.inStage&&this.items[t-1]&&this.items[t-1].active)&&"right"},handleButtonEnter:function(e){var t=this;"vertical"!==this.direction&&this.items.forEach((function(i,n){e===t.itemInStage(i,n)&&(i.hover=!0)}))},handleButtonLeave:function(){"vertical"!==this.direction&&this.items.forEach((function(e){e.hover=!1}))},updateItems:function(){this.items=this.$children.filter((function(e){return"ElCarouselItem"===e.$options.name}))},resetItemPosition:function(e){var t=this;this.items.forEach((function(i,n){i.translateItem(n,t.activeIndex,e)}))},playSlides:function(){this.activeIndex0&&(e=this.items.indexOf(t[0]))}if(e=Number(e),isNaN(e)||e!==Math.floor(e))console.warn("[Element Warn][Carousel]index must be an integer.");else{var i=this.items.length,n=this.activeIndex;this.activeIndex=e<0?this.loop?i-1:0:e>=i?this.loop?0:i-1:e,n===this.activeIndex&&this.resetItemPosition(n),this.resetTimer()}},prev:function(){this.setActiveItem(this.activeIndex-1)},next:function(){this.setActiveItem(this.activeIndex+1)},handleIndicatorClick:function(e){this.activeIndex=e},handleIndicatorHover:function(e){"hover"===this.trigger&&e!==this.activeIndex&&(this.activeIndex=e)}},created:function(){var e=this;this.throttledArrowClick=Zo()(300,!0,(function(t){e.setActiveItem(t)})),this.throttledIndicatorHover=Zo()(300,(function(t){e.handleIndicatorHover(t)}))},mounted:function(){var e=this;this.updateItems(),this.$nextTick((function(){Object(Lt.addResizeListener)(e.$el,e.resetItemPosition),e.initialIndex=0&&(e.activeIndex=e.initialIndex),e.startTimer()}))},beforeDestroy:function(){this.$el&&Object(Lt.removeResizeListener)(this.$el,this.resetItemPosition),this.pauseTimer()}},Ko,[],!1,null,null,null);Qo.options.__file="packages/carousel/src/main.vue";var Jo=Qo.exports;Jo.install=function(e){e.component(Jo.name,Jo)};var el=Jo,tl={vertical:{offset:"offsetHeight",scroll:"scrollTop",scrollSize:"scrollHeight",size:"height",key:"vertical",axis:"Y",client:"clientY",direction:"top"},horizontal:{offset:"offsetWidth",scroll:"scrollLeft",scrollSize:"scrollWidth",size:"width",key:"horizontal",axis:"X",client:"clientX",direction:"left"}};function il(e){var t=e.move,i=e.size,n=e.bar,r={},s="translate"+n.axis+"("+t+"%)";return r[n.size]=i,r.transform=s,r.msTransform=s,r.webkitTransform=s,r}var nl={name:"Bar",props:{vertical:Boolean,size:String,move:Number},computed:{bar:function(){return tl[this.vertical?"vertical":"horizontal"]},wrap:function(){return this.$parent.wrap}},render:function(e){var t=this.size,i=this.move,n=this.bar;return e("div",{class:["el-scrollbar__bar","is-"+n.key],on:{mousedown:this.clickTrackHandler}},[e("div",{ref:"thumb",class:"el-scrollbar__thumb",on:{mousedown:this.clickThumbHandler},style:il({size:t,move:i,bar:n})})])},methods:{clickThumbHandler:function(e){e.ctrlKey||2===e.button||(this.startDrag(e),this[this.bar.axis]=e.currentTarget[this.bar.offset]-(e[this.bar.client]-e.currentTarget.getBoundingClientRect()[this.bar.direction]))},clickTrackHandler:function(e){var t=100*(Math.abs(e.target.getBoundingClientRect()[this.bar.direction]-e[this.bar.client])-this.$refs.thumb[this.bar.offset]/2)/this.$el[this.bar.offset];this.wrap[this.bar.scroll]=t*this.wrap[this.bar.scrollSize]/100},startDrag:function(e){e.stopImmediatePropagation(),this.cursorDown=!0,Object(fe.on)(document,"mousemove",this.mouseMoveDocumentHandler),Object(fe.on)(document,"mouseup",this.mouseUpDocumentHandler),document.onselectstart=function(){return!1}},mouseMoveDocumentHandler:function(e){if(!1!==this.cursorDown){var t=this[this.bar.axis];if(t){var i=100*(-1*(this.$el.getBoundingClientRect()[this.bar.direction]-e[this.bar.client])-(this.$refs.thumb[this.bar.offset]-t))/this.$el[this.bar.offset];this.wrap[this.bar.scroll]=i*this.wrap[this.bar.scrollSize]/100}}},mouseUpDocumentHandler:function(e){this.cursorDown=!1,this[this.bar.axis]=0,Object(fe.off)(document,"mousemove",this.mouseMoveDocumentHandler),document.onselectstart=null}},destroyed:function(){Object(fe.off)(document,"mouseup",this.mouseUpDocumentHandler)}},rl={name:"ElScrollbar",components:{Bar:nl},props:{native:Boolean,wrapStyle:{},wrapClass:{},viewClass:{},viewStyle:{},noresize:Boolean,tag:{type:String,default:"div"}},data:function(){return{sizeWidth:"0",sizeHeight:"0",moveX:0,moveY:0}},computed:{wrap:function(){return this.$refs.wrap}},render:function(e){var t=Mi()(),i=this.wrapStyle;if(t){var n="-"+t+"px",r="margin-bottom: "+n+"; margin-right: "+n+";";Array.isArray(this.wrapStyle)?(i=Object(m.toObject)(this.wrapStyle)).marginRight=i.marginBottom=n:"string"==typeof this.wrapStyle?i+=r:i=r}var s=e(this.tag,{class:["el-scrollbar__view",this.viewClass],style:this.viewStyle,ref:"resize"},this.$slots.default),a=e("div",{ref:"wrap",style:i,on:{scroll:this.handleScroll},class:[this.wrapClass,"el-scrollbar__wrap",t?"":"el-scrollbar__wrap--hidden-default"]},[[s]]),o=void 0;return o=this.native?[e("div",{ref:"wrap",class:[this.wrapClass,"el-scrollbar__wrap"],style:i},[[s]])]:[a,e(nl,{attrs:{move:this.moveX,size:this.sizeWidth}}),e(nl,{attrs:{vertical:!0,move:this.moveY,size:this.sizeHeight}})],e("div",{class:"el-scrollbar"},o)},methods:{handleScroll:function(){var e=this.wrap;this.moveY=100*e.scrollTop/e.clientHeight,this.moveX=100*e.scrollLeft/e.clientWidth},update:function(){var e,t,i=this.wrap;i&&(e=100*i.clientHeight/i.scrollHeight,t=100*i.clientWidth/i.scrollWidth,this.sizeHeight=e<100?e+"%":"",this.sizeWidth=t<100?t+"%":"")}},mounted:function(){this.native||(this.$nextTick(this.update),!this.noresize&&Object(Lt.addResizeListener)(this.$refs.resize,this.update))},beforeDestroy:function(){this.native||!this.noresize&&Object(Lt.removeResizeListener)(this.$refs.resize,this.update)},install:function(e){e.component(rl.name,rl)}},sl=rl,al=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{directives:[{name:"show",rawName:"v-show",value:e.ready,expression:"ready"}],staticClass:"el-carousel__item",class:{"is-active":e.active,"el-carousel__item--card":"card"===e.$parent.type,"is-in-stage":e.inStage,"is-hover":e.hover,"is-animating":e.animating},style:e.itemStyle,on:{click:e.handleItemClick}},["card"===e.$parent.type?i("div",{directives:[{name:"show",rawName:"v-show",value:!e.active,expression:"!active"}],staticClass:"el-carousel__mask"}):e._e(),e._t("default")],2)};al._withStripped=!0;var ol=r({name:"ElCarouselItem",props:{name:String,label:{type:[String,Number],default:""}},data:function(){return{hover:!1,translate:0,scale:1,active:!1,ready:!1,inStage:!1,animating:!1}},methods:{processIndex:function(e,t,i){return 0===t&&e===i-1?-1:t===i-1&&0===e?i:e=i/2?i+1:e>t+1&&e-t>=i/2?-2:e},calcCardTranslate:function(e,t){var i=this.$parent.$el.offsetWidth;return this.inStage?i*(1.17*(e-t)+1)/4:e2&&this.$parent.loop&&(e=this.processIndex(e,t,s)),"card"===n)"vertical"===r&&console.warn("[Element Warn][Carousel]vertical direction is not supported in card mode"),this.inStage=Math.round(Math.abs(e-t))<=1,this.active=e===t,this.translate=this.calcCardTranslate(e,t),this.scale=this.active?1:.83;else{this.active=e===t;var a="vertical"===r;this.translate=this.calcTranslate(e,t,a),this.scale=1}this.ready=!0},handleItemClick:function(){var e=this.$parent;if(e&&"card"===e.type){var t=e.items.indexOf(this);e.setActiveItem(t)}}},computed:{parentDirection:function(){return this.$parent.direction},itemStyle:function(){var e={transform:("vertical"===this.parentDirection?"translateY":"translateX")+"("+this.translate+"px) scale("+this.scale+")"};return Object(m.autoprefixer)(e)}},created:function(){this.$parent&&this.$parent.updateItems()},destroyed:function(){this.$parent&&this.$parent.updateItems()}},al,[],!1,null,null,null);ol.options.__file="packages/carousel/src/item.vue";var ll=ol.exports;ll.install=function(e){e.component(ll.name,ll)};var ul=ll,cl=function(){var e=this.$createElement;return(this._self._c||e)("div",{staticClass:"el-collapse",attrs:{role:"tablist","aria-multiselectable":"true"}},[this._t("default")],2)};cl._withStripped=!0;var dl=r({name:"ElCollapse",componentName:"ElCollapse",props:{accordion:Boolean,value:{type:[Array,String,Number],default:function(){return[]}}},data:function(){return{activeNames:[].concat(this.value)}},provide:function(){return{collapse:this}},watch:{value:function(e){this.activeNames=[].concat(e)}},methods:{setActiveNames:function(e){e=[].concat(e);var t=this.accordion?e[0]:e;this.activeNames=e,this.$emit("input",t),this.$emit("change",t)},handleItemClick:function(e){if(this.accordion)this.setActiveNames(!this.activeNames[0]&&0!==this.activeNames[0]||this.activeNames[0]!==e.name?e.name:"");else{var t=this.activeNames.slice(0),i=t.indexOf(e.name);i>-1?t.splice(i,1):t.push(e.name),this.setActiveNames(t)}}},created:function(){this.$on("item-click",this.handleItemClick)}},cl,[],!1,null,null,null);dl.options.__file="packages/collapse/src/collapse.vue";var hl=dl.exports;hl.install=function(e){e.component(hl.name,hl)};var pl=hl,fl=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{staticClass:"el-collapse-item",class:{"is-active":e.isActive,"is-disabled":e.disabled}},[i("div",{attrs:{role:"tab","aria-expanded":e.isActive,"aria-controls":"el-collapse-content-"+e.id,"aria-describedby":"el-collapse-content-"+e.id}},[i("div",{staticClass:"el-collapse-item__header",class:{focusing:e.focusing,"is-active":e.isActive},attrs:{role:"button",id:"el-collapse-head-"+e.id,tabindex:e.disabled?void 0:0},on:{click:e.handleHeaderClick,keyup:function(t){return!("button"in t)&&e._k(t.keyCode,"space",32,t.key,[" ","Spacebar"])&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:(t.stopPropagation(),e.handleEnterClick(t))},focus:e.handleFocus,blur:function(t){e.focusing=!1}}},[e._t("title",[e._v(e._s(e.title))]),i("i",{staticClass:"el-collapse-item__arrow el-icon-arrow-right",class:{"is-active":e.isActive}})],2)]),i("el-collapse-transition",[i("div",{directives:[{name:"show",rawName:"v-show",value:e.isActive,expression:"isActive"}],staticClass:"el-collapse-item__wrap",attrs:{role:"tabpanel","aria-hidden":!e.isActive,"aria-labelledby":"el-collapse-head-"+e.id,id:"el-collapse-content-"+e.id}},[i("div",{staticClass:"el-collapse-item__content"},[e._t("default")],2)])])],1)};fl._withStripped=!0;var ml=r({name:"ElCollapseItem",componentName:"ElCollapseItem",mixins:[C.a],components:{ElCollapseTransition:be.a},data:function(){return{contentWrapStyle:{height:"auto",display:"block"},contentHeight:0,focusing:!1,isClick:!1,id:Object(m.generateId)()}},inject:["collapse"],props:{title:String,name:{type:[String,Number],default:function(){return this._uid}},disabled:Boolean},computed:{isActive:function(){return this.collapse.activeNames.indexOf(this.name)>-1}},methods:{handleFocus:function(){var e=this;setTimeout((function(){e.isClick?e.isClick=!1:e.focusing=!0}),50)},handleHeaderClick:function(){this.disabled||(this.dispatch("ElCollapse","item-click",this),this.focusing=!1,this.isClick=!0)},handleEnterClick:function(){this.dispatch("ElCollapse","item-click",this)}}},fl,[],!1,null,null,null);ml.options.__file="packages/collapse/src/collapse-item.vue";var vl=ml.exports;vl.install=function(e){e.component(vl.name,vl)};var gl=vl,_l=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{directives:[{name:"clickoutside",rawName:"v-clickoutside",value:function(){return e.toggleDropDownVisible(!1)},expression:"() => toggleDropDownVisible(false)"}],ref:"reference",class:["el-cascader",e.realSize&&"el-cascader--"+e.realSize,{"is-disabled":e.isDisabled}],on:{mouseenter:function(t){e.inputHover=!0},mouseleave:function(t){e.inputHover=!1},click:function(){return e.toggleDropDownVisible(!e.readonly||void 0)},keydown:e.handleKeyDown}},[i("el-input",{ref:"input",class:{"is-focus":e.dropDownVisible},attrs:{size:e.realSize,placeholder:e.placeholder,readonly:e.readonly,disabled:e.isDisabled,"validate-event":!1},on:{focus:e.handleFocus,blur:e.handleBlur,input:e.handleInput},model:{value:e.multiple?e.presentText:e.inputValue,callback:function(t){e.multiple?e.presentText:e.inputValue=t},expression:"multiple ? presentText : inputValue"}},[i("template",{slot:"suffix"},[e.clearBtnVisible?i("i",{key:"clear",staticClass:"el-input__icon el-icon-circle-close",on:{click:function(t){return t.stopPropagation(),e.handleClear(t)}}}):i("i",{key:"arrow-down",class:["el-input__icon","el-icon-arrow-down",e.dropDownVisible&&"is-reverse"],on:{click:function(t){t.stopPropagation(),e.toggleDropDownVisible()}}})])],2),e.multiple?i("div",{staticClass:"el-cascader__tags"},[e._l(e.presentTags,(function(t){return i("el-tag",{key:t.key,attrs:{type:"info",size:e.tagSize,hit:t.hitState,closable:t.closable,"disable-transitions":""},on:{close:function(i){e.deleteTag(t)}}},[i("span",[e._v(e._s(t.text))])])})),e.filterable&&!e.isDisabled?i("input",{directives:[{name:"model",rawName:"v-model.trim",value:e.inputValue,expression:"inputValue",modifiers:{trim:!0}}],staticClass:"el-cascader__search-input",attrs:{type:"text",placeholder:e.presentTags.length?"":e.placeholder},domProps:{value:e.inputValue},on:{input:[function(t){t.target.composing||(e.inputValue=t.target.value.trim())},function(t){return e.handleInput(e.inputValue,t)}],click:function(t){t.stopPropagation(),e.toggleDropDownVisible(!0)},keydown:function(t){return!("button"in t)&&e._k(t.keyCode,"delete",[8,46],t.key,["Backspace","Delete","Del"])?null:e.handleDelete(t)},blur:function(t){e.$forceUpdate()}}}):e._e()],2):e._e(),i("transition",{attrs:{name:"el-zoom-in-top"},on:{"after-leave":e.handleDropdownLeave}},[i("div",{directives:[{name:"show",rawName:"v-show",value:e.dropDownVisible,expression:"dropDownVisible"}],ref:"popper",class:["el-popper","el-cascader__dropdown",e.popperClass]},[i("el-cascader-panel",{directives:[{name:"show",rawName:"v-show",value:!e.filtering,expression:"!filtering"}],ref:"panel",attrs:{options:e.options,props:e.config,border:!1,"render-label":e.$scopedSlots.default},on:{"expand-change":e.handleExpandChange,close:function(t){e.toggleDropDownVisible(!1)}},model:{value:e.checkedValue,callback:function(t){e.checkedValue=t},expression:"checkedValue"}}),e.filterable?i("el-scrollbar",{directives:[{name:"show",rawName:"v-show",value:e.filtering,expression:"filtering"}],ref:"suggestionPanel",staticClass:"el-cascader__suggestion-panel",attrs:{tag:"ul","view-class":"el-cascader__suggestion-list"},nativeOn:{keydown:function(t){return e.handleSuggestionKeyDown(t)}}},[e.suggestions.length?e._l(e.suggestions,(function(t,n){return i("li",{key:t.uid,class:["el-cascader__suggestion-item",t.checked&&"is-checked"],attrs:{tabindex:-1},on:{click:function(t){e.handleSuggestionClick(n)}}},[i("span",[e._v(e._s(t.text))]),t.checked?i("i",{staticClass:"el-icon-check"}):e._e()])})):e._t("empty",[i("li",{staticClass:"el-cascader__empty-text"},[e._v(e._s(e.t("el.cascader.noMatch")))])])],2):e._e()],1)])],1)};_l._withStripped=!0;var bl=i(42),yl=i.n(bl),xl=i(34),kl=i.n(xl),wl=kl.a.keys,Cl={expandTrigger:{newProp:"expandTrigger",type:String},changeOnSelect:{newProp:"checkStrictly",type:Boolean},hoverThreshold:{newProp:"hoverThreshold",type:Number}},Sl={props:{placement:{type:String,default:"bottom-start"},appendToBody:A.a.props.appendToBody,visibleArrow:{type:Boolean,default:!0},arrowOffset:A.a.props.arrowOffset,offset:A.a.props.offset,boundariesPadding:A.a.props.boundariesPadding,popperOptions:A.a.props.popperOptions},methods:A.a.methods,data:A.a.data,beforeDestroy:A.a.beforeDestroy},Ol={medium:36,small:32,mini:28},Dl=r({name:"ElCascader",directives:{Clickoutside:j.a},mixins:[Sl,C.a,f.a,k.a],inject:{elForm:{default:""},elFormItem:{default:""}},components:{ElInput:h.a,ElTag:Nt.a,ElScrollbar:L.a,ElCascaderPanel:yl.a},props:{value:{},options:Array,props:Object,size:String,placeholder:{type:String,default:function(){return Object(Ir.t)("el.cascader.placeholder")}},disabled:Boolean,clearable:Boolean,filterable:Boolean,filterMethod:Function,separator:{type:String,default:" / "},showAllLevels:{type:Boolean,default:!0},collapseTags:Boolean,debounce:{type:Number,default:300},beforeFilter:{type:Function,default:function(){return function(){}}},popperClass:String},data:function(){return{dropDownVisible:!1,checkedValue:this.value,inputHover:!1,inputValue:null,presentText:null,presentTags:[],checkedNodes:[],filtering:!1,suggestions:[],inputInitialHeight:0,pressDeleteCount:0}},computed:{realSize:function(){var e=(this.elFormItem||{}).elFormItemSize;return this.size||e||(this.$ELEMENT||{}).size},tagSize:function(){return["small","mini"].indexOf(this.realSize)>-1?"mini":"small"},isDisabled:function(){return this.disabled||(this.elForm||{}).disabled},config:function(){var e=this.props||{},t=this.$attrs;return Object.keys(Cl).forEach((function(i){var n=Cl[i],r=n.newProp,s=n.type,a=t[i]||t[Object(m.kebabCase)(i)];Object(He.isDef)(i)&&!Object(He.isDef)(e[r])&&(s===Boolean&&""===a&&(a=!0),e[r]=a)})),e},multiple:function(){return this.config.multiple},leafOnly:function(){return!this.config.checkStrictly},readonly:function(){return!this.filterable||this.multiple},clearBtnVisible:function(){return!(!this.clearable||this.isDisabled||this.filtering||!this.inputHover)&&(this.multiple?!!this.checkedNodes.filter((function(e){return!e.isDisabled})).length:!!this.presentText)},panel:function(){return this.$refs.panel}},watch:{disabled:function(){this.computePresentContent()},value:function(e){Object(m.isEqual)(e,this.checkedValue)||(this.checkedValue=e,this.computePresentContent())},checkedValue:function(e){var t=this.value,i=this.dropDownVisible,n=this.config,r=n.checkStrictly,s=n.multiple;Object(m.isEqual)(e,t)&&!Object(xo.isUndefined)(t)||(this.computePresentContent(),s||r||!i||this.toggleDropDownVisible(!1),this.$emit("input",e),this.$emit("change",e),this.dispatch("ElFormItem","el.form.change",[e]))},options:{handler:function(){this.$nextTick(this.computePresentContent)},deep:!0},presentText:function(e){this.inputValue=e},presentTags:function(e,t){this.multiple&&(e.length||t.length)&&this.$nextTick(this.updateStyle)},filtering:function(e){this.$nextTick(this.updatePopper)}},mounted:function(){var e=this,t=this.$refs.input;t&&t.$el&&(this.inputInitialHeight=t.$el.offsetHeight||Ol[this.realSize]||40),this.isEmptyValue(this.value)||this.computePresentContent(),this.filterHandler=$()(this.debounce,(function(){var t=e.inputValue;if(t){var i=e.beforeFilter(t);i&&i.then?i.then(e.getSuggestions):!1!==i?e.getSuggestions():e.filtering=!1}else e.filtering=!1})),Object(Lt.addResizeListener)(this.$el,this.updateStyle)},beforeDestroy:function(){Object(Lt.removeResizeListener)(this.$el,this.updateStyle)},methods:{getMigratingConfig:function(){return{props:{"expand-trigger":"expand-trigger is removed, use `props.expandTrigger` instead.","change-on-select":"change-on-select is removed, use `props.checkStrictly` instead.","hover-threshold":"hover-threshold is removed, use `props.hoverThreshold` instead"},events:{"active-item-change":"active-item-change is renamed to expand-change"}}},toggleDropDownVisible:function(e){var t=this;if(!this.isDisabled){var i=this.dropDownVisible,n=this.$refs.input;(e=Object(He.isDef)(e)?e:!i)!==i&&(this.dropDownVisible=e,e&&this.$nextTick((function(){t.updatePopper(),t.panel.scrollIntoView()})),n.$refs.input.setAttribute("aria-expanded",e),this.$emit("visible-change",e))}},handleDropdownLeave:function(){this.filtering=!1,this.inputValue=this.presentText,this.doDestroy()},handleKeyDown:function(e){switch(e.keyCode){case wl.enter:this.toggleDropDownVisible();break;case wl.down:this.toggleDropDownVisible(!0),this.focusFirstNode(),e.preventDefault();break;case wl.esc:case wl.tab:this.toggleDropDownVisible(!1)}},handleFocus:function(e){this.$emit("focus",e)},handleBlur:function(e){this.$emit("blur",e)},handleInput:function(e,t){!this.dropDownVisible&&this.toggleDropDownVisible(!0),t&&t.isComposing||(e?this.filterHandler():this.filtering=!1)},handleClear:function(){this.presentText="",this.panel.clearCheckedNodes()},handleExpandChange:function(e){this.$nextTick(this.updatePopper.bind(this)),this.$emit("expand-change",e),this.$emit("active-item-change",e)},focusFirstNode:function(){var e=this;this.$nextTick((function(){var t=e.filtering,i=e.$refs,n=i.popper,r=i.suggestionPanel,s=null;t&&r?s=r.$el.querySelector(".el-cascader__suggestion-item"):s=n.querySelector(".el-cascader-menu").querySelector('.el-cascader-node[tabindex="-1"]');s&&(s.focus(),!t&&s.click())}))},computePresentContent:function(){var e=this;this.$nextTick((function(){e.config.multiple?(e.computePresentTags(),e.presentText=e.presentTags.length?" ":null):e.computePresentText()}))},isEmptyValue:function(e){var t=this.multiple,i=this.panel.config.emitPath;return!(!t&&!i)&&Object(m.isEmpty)(e)},computePresentText:function(){var e=this.checkedValue,t=this.config;if(!this.isEmptyValue(e)){var i=this.panel.getNodeByValue(e);if(i&&(t.checkStrictly||i.isLeaf))return void(this.presentText=i.getText(this.showAllLevels,this.separator))}this.presentText=null},computePresentTags:function(){var e=this.isDisabled,t=this.leafOnly,i=this.showAllLevels,n=this.separator,r=this.collapseTags,s=this.getCheckedNodes(t),a=[],o=function(t){return{node:t,key:t.uid,text:t.getText(i,n),hitState:!1,closable:!e&&!t.isDisabled}};if(s.length){var l=s[0],u=s.slice(1),c=u.length;a.push(o(l)),c&&(r?a.push({key:-1,text:"+ "+c,closable:!1}):u.forEach((function(e){return a.push(o(e))})))}this.checkedNodes=s,this.presentTags=a},getSuggestions:function(){var e=this,t=this.filterMethod;Object(xo.isFunction)(t)||(t=function(e,t){return e.text.includes(t)});var i=this.panel.getFlattedNodes(this.leafOnly).filter((function(i){return!i.isDisabled&&(i.text=i.getText(e.showAllLevels,e.separator)||"",t(i,e.inputValue))}));this.multiple?this.presentTags.forEach((function(e){e.hitState=!1})):i.forEach((function(t){t.checked=Object(m.isEqual)(e.checkedValue,t.getValueByOption())})),this.filtering=!0,this.suggestions=i,this.$nextTick(this.updatePopper)},handleSuggestionKeyDown:function(e){var t=e.keyCode,i=e.target;switch(t){case wl.enter:i.click();break;case wl.up:var n=i.previousElementSibling;n&&n.focus();break;case wl.down:var r=i.nextElementSibling;r&&r.focus();break;case wl.esc:case wl.tab:this.toggleDropDownVisible(!1)}},handleDelete:function(){var e=this.inputValue,t=this.pressDeleteCount,i=this.presentTags,n=i[i.length-1];this.pressDeleteCount=e?0:t+1,n&&this.pressDeleteCount&&(n.hitState?this.deleteTag(n):n.hitState=!0)},handleSuggestionClick:function(e){var t=this.multiple,i=this.suggestions[e];if(t){var n=i.checked;i.doCheck(!n),this.panel.calculateMultiCheckedValue()}else this.checkedValue=i.getValueByOption(),this.toggleDropDownVisible(!1)},deleteTag:function(e){var t=this.checkedValue,i=e.node.getValueByOption(),n=t.find((function(e){return Object(m.isEqual)(e,i)}));this.checkedValue=t.filter((function(e){return!Object(m.isEqual)(e,i)})),this.$emit("remove-tag",n)},updateStyle:function(){var e=this.$el,t=this.inputInitialHeight;if(!this.$isServer&&e){var i=this.$refs.suggestionPanel,n=e.querySelector(".el-input__inner");if(n){var r=e.querySelector(".el-cascader__tags"),s=null;if(i&&(s=i.$el))s.querySelector(".el-cascader__suggestion-list").style.minWidth=n.offsetWidth+"px";if(r){var a=Math.round(r.getBoundingClientRect().height),o=Math.max(a+6,t)+"px";n.style.height=o,this.dropDownVisible&&this.updatePopper()}}}},getCheckedNodes:function(e){return this.panel.getCheckedNodes(e)}}},_l,[],!1,null,null,null);Dl.options.__file="packages/cascader/src/cascader.vue";var El=Dl.exports;El.install=function(e){e.component(El.name,El)};var Tl=El,$l=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{directives:[{name:"clickoutside",rawName:"v-clickoutside",value:e.hide,expression:"hide"}],class:["el-color-picker",e.colorDisabled?"is-disabled":"",e.colorSize?"el-color-picker--"+e.colorSize:""]},[e.colorDisabled?i("div",{staticClass:"el-color-picker__mask"}):e._e(),i("div",{staticClass:"el-color-picker__trigger",on:{click:e.handleTrigger}},[i("span",{staticClass:"el-color-picker__color",class:{"is-alpha":e.showAlpha}},[i("span",{staticClass:"el-color-picker__color-inner",style:{backgroundColor:e.displayedColor}}),e.value||e.showPanelColor?e._e():i("span",{staticClass:"el-color-picker__empty el-icon-close"})]),i("span",{directives:[{name:"show",rawName:"v-show",value:e.value||e.showPanelColor,expression:"value || showPanelColor"}],staticClass:"el-color-picker__icon el-icon-arrow-down"})]),i("picker-dropdown",{ref:"dropdown",class:["el-color-picker__panel",e.popperClass||""],attrs:{color:e.color,"show-alpha":e.showAlpha,predefine:e.predefine},on:{pick:e.confirmValue,clear:e.clearValue},model:{value:e.showPicker,callback:function(t){e.showPicker=t},expression:"showPicker"}})],1)};$l._withStripped=!0;var Pl="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};var jl=function(e,t,i){return[e,t*i/((e=(2-t)*i)<1?e:2-e)||0,e/2]},Ml=function(e,t){var i;"string"==typeof(i=e)&&-1!==i.indexOf(".")&&1===parseFloat(i)&&(e="100%");var n=function(e){return"string"==typeof e&&-1!==e.indexOf("%")}(e);return e=Math.min(t,Math.max(0,parseFloat(e))),n&&(e=parseInt(e*t,10)/100),Math.abs(e-t)<1e-6?1:e%t/parseFloat(t)},Il={10:"A",11:"B",12:"C",13:"D",14:"E",15:"F"},Al={A:10,B:11,C:12,D:13,E:14,F:15},Nl=function(e){return 2===e.length?16*(Al[e[0].toUpperCase()]||+e[0])+(Al[e[1].toUpperCase()]||+e[1]):Al[e[1].toUpperCase()]||+e[1]},Ll=function(e,t,i){e=Ml(e,255),t=Ml(t,255),i=Ml(i,255);var n,r=Math.max(e,t,i),s=Math.min(e,t,i),a=void 0,o=r,l=r-s;if(n=0===r?0:l/r,r===s)a=0;else{switch(r){case e:a=(t-i)/l+(t2?parseFloat(e):parseInt(e,10)}));if(4===n.length?this._alpha=Math.floor(100*parseFloat(n[3])):3===n.length&&(this._alpha=100),n.length>=3){var r=function(e,t,i){i/=100;var n=t/=100,r=Math.max(i,.01);return t*=(i*=2)<=1?i:2-i,n*=r<=1?r:2-r,{h:e,s:100*(0===i?2*n/(r+n):2*t/(i+t)),v:100*((i+t)/2)}}(n[0],n[1],n[2]);i(r.h,r.s,r.v)}}else if(-1!==e.indexOf("hsv")){var s=e.replace(/hsva|hsv|\(|\)/gm,"").split(/\s|,/g).filter((function(e){return""!==e})).map((function(e,t){return t>2?parseFloat(e):parseInt(e,10)}));4===s.length?this._alpha=Math.floor(100*parseFloat(s[3])):3===s.length&&(this._alpha=100),s.length>=3&&i(s[0],s[1],s[2])}else if(-1!==e.indexOf("rgb")){var a=e.replace(/rgba|rgb|\(|\)/gm,"").split(/\s|,/g).filter((function(e){return""!==e})).map((function(e,t){return t>2?parseFloat(e):parseInt(e,10)}));if(4===a.length?this._alpha=Math.floor(100*parseFloat(a[3])):3===a.length&&(this._alpha=100),a.length>=3){var o=Ll(a[0],a[1],a[2]);i(o.h,o.s,o.v)}}else if(-1!==e.indexOf("#")){var l=e.replace("#","").trim();if(!/^(?:[0-9a-fA-F]{3}){1,2}|[0-9a-fA-F]{8}$/.test(l))return;var u=void 0,c=void 0,d=void 0;3===l.length?(u=Nl(l[0]+l[0]),c=Nl(l[1]+l[1]),d=Nl(l[2]+l[2])):6!==l.length&&8!==l.length||(u=Nl(l.substring(0,2)),c=Nl(l.substring(2,4)),d=Nl(l.substring(4,6))),8===l.length?this._alpha=Math.floor(Nl(l.substring(6))/255*100):3!==l.length&&6!==l.length||(this._alpha=100);var h=Ll(u,c,d);i(h.h,h.s,h.v)}},e.prototype.compare=function(e){return Math.abs(e._hue-this._hue)<2&&Math.abs(e._saturation-this._saturation)<1&&Math.abs(e._value-this._value)<1&&Math.abs(e._alpha-this._alpha)<1},e.prototype.doOnChange=function(){var e=this._hue,t=this._saturation,i=this._value,n=this._alpha,r=this.format;if(this.enableAlpha)switch(r){case"hsl":var s=jl(e,t/100,i/100);this.value="hsla("+e+", "+Math.round(100*s[1])+"%, "+Math.round(100*s[2])+"%, "+n/100+")";break;case"hsv":this.value="hsva("+e+", "+Math.round(t)+"%, "+Math.round(i)+"%, "+n/100+")";break;default:var a=Fl(e,t,i),o=a.r,l=a.g,u=a.b;this.value="rgba("+o+", "+l+", "+u+", "+n/100+")"}else switch(r){case"hsl":var c=jl(e,t/100,i/100);this.value="hsl("+e+", "+Math.round(100*c[1])+"%, "+Math.round(100*c[2])+"%)";break;case"hsv":this.value="hsv("+e+", "+Math.round(t)+"%, "+Math.round(i)+"%)";break;case"rgb":var d=Fl(e,t,i),h=d.r,p=d.g,f=d.b;this.value="rgb("+h+", "+p+", "+f+")";break;default:this.value=function(e){var t=e.r,i=e.g,n=e.b,r=function(e){e=Math.min(Math.round(e),255);var t=Math.floor(e/16),i=e%16;return""+(Il[t]||t)+(Il[i]||i)};return isNaN(t)||isNaN(i)||isNaN(n)?"":"#"+r(t)+r(i)+r(n)}(Fl(e,t,i))}},e}(),zl=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("transition",{attrs:{name:"el-zoom-in-top"},on:{"after-leave":e.doDestroy}},[i("div",{directives:[{name:"show",rawName:"v-show",value:e.showPopper,expression:"showPopper"}],staticClass:"el-color-dropdown"},[i("div",{staticClass:"el-color-dropdown__main-wrapper"},[i("hue-slider",{ref:"hue",staticStyle:{float:"right"},attrs:{color:e.color,vertical:""}}),i("sv-panel",{ref:"sl",attrs:{color:e.color}})],1),e.showAlpha?i("alpha-slider",{ref:"alpha",attrs:{color:e.color}}):e._e(),e.predefine?i("predefine",{attrs:{color:e.color,colors:e.predefine}}):e._e(),i("div",{staticClass:"el-color-dropdown__btns"},[i("span",{staticClass:"el-color-dropdown__value"},[i("el-input",{attrs:{"validate-event":!1,size:"mini"},on:{blur:e.handleConfirm},nativeOn:{keyup:function(t){return!("button"in t)&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:e.handleConfirm(t)}},model:{value:e.customInput,callback:function(t){e.customInput=t},expression:"customInput"}})],1),i("el-button",{staticClass:"el-color-dropdown__link-btn",attrs:{size:"mini",type:"text"},on:{click:function(t){e.$emit("clear")}}},[e._v("\n "+e._s(e.t("el.colorpicker.clear"))+"\n ")]),i("el-button",{staticClass:"el-color-dropdown__btn",attrs:{plain:"",size:"mini"},on:{click:e.confirmValue}},[e._v("\n "+e._s(e.t("el.colorpicker.confirm"))+"\n ")])],1)],1)])};zl._withStripped=!0;var Rl=function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"el-color-svpanel",style:{backgroundColor:this.background}},[t("div",{staticClass:"el-color-svpanel__white"}),t("div",{staticClass:"el-color-svpanel__black"}),t("div",{staticClass:"el-color-svpanel__cursor",style:{top:this.cursorTop+"px",left:this.cursorLeft+"px"}},[t("div")])])};Rl._withStripped=!0;var Bl=!1,Hl=function(e,t){if(!di.a.prototype.$isServer){var i=function(e){t.drag&&t.drag(e)},n=function e(n){document.removeEventListener("mousemove",i),document.removeEventListener("mouseup",e),document.onselectstart=null,document.ondragstart=null,Bl=!1,t.end&&t.end(n)};e.addEventListener("mousedown",(function(e){Bl||(document.onselectstart=function(){return!1},document.ondragstart=function(){return!1},document.addEventListener("mousemove",i),document.addEventListener("mouseup",n),Bl=!0,t.start&&t.start(e))}))}},Wl=r({name:"el-sl-panel",props:{color:{required:!0}},computed:{colorValue:function(){return{hue:this.color.get("hue"),value:this.color.get("value")}}},watch:{colorValue:function(){this.update()}},methods:{update:function(){var e=this.color.get("saturation"),t=this.color.get("value"),i=this.$el,n=i.clientWidth,r=i.clientHeight;this.cursorLeft=e*n/100,this.cursorTop=(100-t)*r/100,this.background="hsl("+this.color.get("hue")+", 100%, 50%)"},handleDrag:function(e){var t=this.$el.getBoundingClientRect(),i=e.clientX-t.left,n=e.clientY-t.top;i=Math.max(0,i),i=Math.min(i,t.width),n=Math.max(0,n),n=Math.min(n,t.height),this.cursorLeft=i,this.cursorTop=n,this.color.set({saturation:i/t.width*100,value:100-n/t.height*100})}},mounted:function(){var e=this;Hl(this.$el,{drag:function(t){e.handleDrag(t)},end:function(t){e.handleDrag(t)}}),this.update()},data:function(){return{cursorTop:0,cursorLeft:0,background:"hsl(0, 100%, 50%)"}}},Rl,[],!1,null,null,null);Wl.options.__file="packages/color-picker/src/components/sv-panel.vue";var ql=Wl.exports,Ul=function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"el-color-hue-slider",class:{"is-vertical":this.vertical}},[t("div",{ref:"bar",staticClass:"el-color-hue-slider__bar",on:{click:this.handleClick}}),t("div",{ref:"thumb",staticClass:"el-color-hue-slider__thumb",style:{left:this.thumbLeft+"px",top:this.thumbTop+"px"}})])};Ul._withStripped=!0;var Gl=r({name:"el-color-hue-slider",props:{color:{required:!0},vertical:Boolean},data:function(){return{thumbLeft:0,thumbTop:0}},computed:{hueValue:function(){return this.color.get("hue")}},watch:{hueValue:function(){this.update()}},methods:{handleClick:function(e){var t=this.$refs.thumb;e.target!==t&&this.handleDrag(e)},handleDrag:function(e){var t=this.$el.getBoundingClientRect(),i=this.$refs.thumb,n=void 0;if(this.vertical){var r=e.clientY-t.top;r=Math.min(r,t.height-i.offsetHeight/2),r=Math.max(i.offsetHeight/2,r),n=Math.round((r-i.offsetHeight/2)/(t.height-i.offsetHeight)*360)}else{var s=e.clientX-t.left;s=Math.min(s,t.width-i.offsetWidth/2),s=Math.max(i.offsetWidth/2,s),n=Math.round((s-i.offsetWidth/2)/(t.width-i.offsetWidth)*360)}this.color.set("hue",n)},getThumbLeft:function(){if(this.vertical)return 0;var e=this.$el,t=this.color.get("hue");if(!e)return 0;var i=this.$refs.thumb;return Math.round(t*(e.offsetWidth-i.offsetWidth/2)/360)},getThumbTop:function(){if(!this.vertical)return 0;var e=this.$el,t=this.color.get("hue");if(!e)return 0;var i=this.$refs.thumb;return Math.round(t*(e.offsetHeight-i.offsetHeight/2)/360)},update:function(){this.thumbLeft=this.getThumbLeft(),this.thumbTop=this.getThumbTop()}},mounted:function(){var e=this,t=this.$refs,i=t.bar,n=t.thumb,r={drag:function(t){e.handleDrag(t)},end:function(t){e.handleDrag(t)}};Hl(i,r),Hl(n,r),this.update()}},Ul,[],!1,null,null,null);Gl.options.__file="packages/color-picker/src/components/hue-slider.vue";var Yl=Gl.exports,Kl=function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"el-color-alpha-slider",class:{"is-vertical":this.vertical}},[t("div",{ref:"bar",staticClass:"el-color-alpha-slider__bar",style:{background:this.background},on:{click:this.handleClick}}),t("div",{ref:"thumb",staticClass:"el-color-alpha-slider__thumb",style:{left:this.thumbLeft+"px",top:this.thumbTop+"px"}})])};Kl._withStripped=!0;var Xl=r({name:"el-color-alpha-slider",props:{color:{required:!0},vertical:Boolean},watch:{"color._alpha":function(){this.update()},"color.value":function(){this.update()}},methods:{handleClick:function(e){var t=this.$refs.thumb;e.target!==t&&this.handleDrag(e)},handleDrag:function(e){var t=this.$el.getBoundingClientRect(),i=this.$refs.thumb;if(this.vertical){var n=e.clientY-t.top;n=Math.max(i.offsetHeight/2,n),n=Math.min(n,t.height-i.offsetHeight/2),this.color.set("alpha",Math.round((n-i.offsetHeight/2)/(t.height-i.offsetHeight)*100))}else{var r=e.clientX-t.left;r=Math.max(i.offsetWidth/2,r),r=Math.min(r,t.width-i.offsetWidth/2),this.color.set("alpha",Math.round((r-i.offsetWidth/2)/(t.width-i.offsetWidth)*100))}},getThumbLeft:function(){if(this.vertical)return 0;var e=this.$el,t=this.color._alpha;if(!e)return 0;var i=this.$refs.thumb;return Math.round(t*(e.offsetWidth-i.offsetWidth/2)/100)},getThumbTop:function(){if(!this.vertical)return 0;var e=this.$el,t=this.color._alpha;if(!e)return 0;var i=this.$refs.thumb;return Math.round(t*(e.offsetHeight-i.offsetHeight/2)/100)},getBackground:function(){if(this.color&&this.color.value){var e=this.color.toRgb(),t=e.r,i=e.g,n=e.b;return"linear-gradient(to right, rgba("+t+", "+i+", "+n+", 0) 0%, rgba("+t+", "+i+", "+n+", 1) 100%)"}return null},update:function(){this.thumbLeft=this.getThumbLeft(),this.thumbTop=this.getThumbTop(),this.background=this.getBackground()}},data:function(){return{thumbLeft:0,thumbTop:0,background:null}},mounted:function(){var e=this,t=this.$refs,i=t.bar,n=t.thumb,r={drag:function(t){e.handleDrag(t)},end:function(t){e.handleDrag(t)}};Hl(i,r),Hl(n,r),this.update()}},Kl,[],!1,null,null,null);Xl.options.__file="packages/color-picker/src/components/alpha-slider.vue";var Zl=Xl.exports,Ql=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{staticClass:"el-color-predefine"},[i("div",{staticClass:"el-color-predefine__colors"},e._l(e.rgbaColors,(function(t,n){return i("div",{key:e.colors[n],staticClass:"el-color-predefine__color-selector",class:{selected:t.selected,"is-alpha":t._alpha<100},on:{click:function(t){e.handleSelect(n)}}},[i("div",{style:{"background-color":t.value}})])})),0)])};Ql._withStripped=!0;var Jl=r({props:{colors:{type:Array,required:!0},color:{required:!0}},data:function(){return{rgbaColors:this.parseColors(this.colors,this.color)}},methods:{handleSelect:function(e){this.color.fromString(this.colors[e])},parseColors:function(e,t){return e.map((function(e){var i=new Vl;return i.enableAlpha=!0,i.format="rgba",i.fromString(e),i.selected=i.value===t.value,i}))}},watch:{"$parent.currentColor":function(e){var t=new Vl;t.fromString(e),this.rgbaColors.forEach((function(e){e.selected=t.compare(e)}))},colors:function(e){this.rgbaColors=this.parseColors(e,this.color)},color:function(e){this.rgbaColors=this.parseColors(this.colors,e)}}},Ql,[],!1,null,null,null);Jl.options.__file="packages/color-picker/src/components/predefine.vue";var eu=Jl.exports,tu=r({name:"el-color-picker-dropdown",mixins:[A.a,f.a],components:{SvPanel:ql,HueSlider:Yl,AlphaSlider:Zl,ElInput:h.a,ElButton:U.a,Predefine:eu},props:{color:{required:!0},showAlpha:Boolean,predefine:Array},data:function(){return{customInput:""}},computed:{currentColor:function(){var e=this.$parent;return e.value||e.showPanelColor?e.color.value:""}},methods:{confirmValue:function(){this.$emit("pick")},handleConfirm:function(){this.color.fromString(this.customInput)}},mounted:function(){this.$parent.popperElm=this.popperElm=this.$el,this.referenceElm=this.$parent.$el},watch:{showPopper:function(e){var t=this;!0===e&&this.$nextTick((function(){var e=t.$refs,i=e.sl,n=e.hue,r=e.alpha;i&&i.update(),n&&n.update(),r&&r.update()}))},currentColor:{immediate:!0,handler:function(e){this.customInput=e}}}},zl,[],!1,null,null,null);tu.options.__file="packages/color-picker/src/components/picker-dropdown.vue";var iu=tu.exports,nu=r({name:"ElColorPicker",mixins:[C.a],props:{value:String,showAlpha:Boolean,colorFormat:String,disabled:Boolean,size:String,popperClass:String,predefine:Array},inject:{elForm:{default:""},elFormItem:{default:""}},directives:{Clickoutside:j.a},computed:{displayedColor:function(){return this.value||this.showPanelColor?this.displayedRgb(this.color,this.showAlpha):"transparent"},_elFormItemSize:function(){return(this.elFormItem||{}).elFormItemSize},colorSize:function(){return this.size||this._elFormItemSize||(this.$ELEMENT||{}).size},colorDisabled:function(){return this.disabled||(this.elForm||{}).disabled}},watch:{value:function(e){e?e&&e!==this.color.value&&this.color.fromString(e):this.showPanelColor=!1},color:{deep:!0,handler:function(){this.showPanelColor=!0}},displayedColor:function(e){if(this.showPicker){var t=new Vl({enableAlpha:this.showAlpha,format:this.colorFormat});t.fromString(this.value),e!==this.displayedRgb(t,this.showAlpha)&&this.$emit("active-change",e)}}},methods:{handleTrigger:function(){this.colorDisabled||(this.showPicker=!this.showPicker)},confirmValue:function(){var e=this.color.value;this.$emit("input",e),this.$emit("change",e),this.dispatch("ElFormItem","el.form.change",e),this.showPicker=!1},clearValue:function(){this.$emit("input",null),this.$emit("change",null),null!==this.value&&this.dispatch("ElFormItem","el.form.change",null),this.showPanelColor=!1,this.showPicker=!1,this.resetColor()},hide:function(){this.showPicker=!1,this.resetColor()},resetColor:function(){var e=this;this.$nextTick((function(t){e.value?e.color.fromString(e.value):e.showPanelColor=!1}))},displayedRgb:function(e,t){if(!(e instanceof Vl))throw Error("color should be instance of Color Class");var i=e.toRgb(),n=i.r,r=i.g,s=i.b;return t?"rgba("+n+", "+r+", "+s+", "+e.get("alpha")/100+")":"rgb("+n+", "+r+", "+s+")"}},mounted:function(){var e=this.value;e&&this.color.fromString(e),this.popperElm=this.$refs.dropdown.$el},data:function(){return{color:new Vl({enableAlpha:this.showAlpha,format:this.colorFormat}),showPicker:!1,showPanelColor:!1}},components:{PickerDropdown:iu}},$l,[],!1,null,null,null);nu.options.__file="packages/color-picker/src/main.vue";var ru=nu.exports;ru.install=function(e){e.component(ru.name,ru)};var su=ru,au=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{staticClass:"el-transfer"},[i("transfer-panel",e._b({ref:"leftPanel",attrs:{data:e.sourceData,title:e.titles[0]||e.t("el.transfer.titles.0"),"default-checked":e.leftDefaultChecked,placeholder:e.filterPlaceholder||e.t("el.transfer.filterPlaceholder")},on:{"checked-change":e.onSourceCheckedChange}},"transfer-panel",e.$props,!1),[e._t("left-footer")],2),i("div",{staticClass:"el-transfer__buttons"},[i("el-button",{class:["el-transfer__button",e.hasButtonTexts?"is-with-texts":""],attrs:{type:"primary",disabled:0===e.rightChecked.length},nativeOn:{click:function(t){return e.addToLeft(t)}}},[i("i",{staticClass:"el-icon-arrow-left"}),void 0!==e.buttonTexts[0]?i("span",[e._v(e._s(e.buttonTexts[0]))]):e._e()]),i("el-button",{class:["el-transfer__button",e.hasButtonTexts?"is-with-texts":""],attrs:{type:"primary",disabled:0===e.leftChecked.length},nativeOn:{click:function(t){return e.addToRight(t)}}},[void 0!==e.buttonTexts[1]?i("span",[e._v(e._s(e.buttonTexts[1]))]):e._e(),i("i",{staticClass:"el-icon-arrow-right"})])],1),i("transfer-panel",e._b({ref:"rightPanel",attrs:{data:e.targetData,title:e.titles[1]||e.t("el.transfer.titles.1"),"default-checked":e.rightDefaultChecked,placeholder:e.filterPlaceholder||e.t("el.transfer.filterPlaceholder")},on:{"checked-change":e.onTargetCheckedChange}},"transfer-panel",e.$props,!1),[e._t("right-footer")],2)],1)};au._withStripped=!0;var ou=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{staticClass:"el-transfer-panel"},[i("p",{staticClass:"el-transfer-panel__header"},[i("el-checkbox",{attrs:{indeterminate:e.isIndeterminate},on:{change:e.handleAllCheckedChange},model:{value:e.allChecked,callback:function(t){e.allChecked=t},expression:"allChecked"}},[e._v("\n "+e._s(e.title)+"\n "),i("span",[e._v(e._s(e.checkedSummary))])])],1),i("div",{class:["el-transfer-panel__body",e.hasFooter?"is-with-footer":""]},[e.filterable?i("el-input",{staticClass:"el-transfer-panel__filter",attrs:{size:"small",placeholder:e.placeholder},nativeOn:{mouseenter:function(t){e.inputHover=!0},mouseleave:function(t){e.inputHover=!1}},model:{value:e.query,callback:function(t){e.query=t},expression:"query"}},[i("i",{class:["el-input__icon","el-icon-"+e.inputIcon],attrs:{slot:"prefix"},on:{click:e.clearQuery},slot:"prefix"})]):e._e(),i("el-checkbox-group",{directives:[{name:"show",rawName:"v-show",value:!e.hasNoMatch&&e.data.length>0,expression:"!hasNoMatch && data.length > 0"}],staticClass:"el-transfer-panel__list",class:{"is-filterable":e.filterable},model:{value:e.checked,callback:function(t){e.checked=t},expression:"checked"}},e._l(e.filteredData,(function(t){return i("el-checkbox",{key:t[e.keyProp],staticClass:"el-transfer-panel__item",attrs:{label:t[e.keyProp],disabled:t[e.disabledProp]}},[i("option-content",{attrs:{option:t}})],1)})),1),i("p",{directives:[{name:"show",rawName:"v-show",value:e.hasNoMatch,expression:"hasNoMatch"}],staticClass:"el-transfer-panel__empty"},[e._v(e._s(e.t("el.transfer.noMatch")))]),i("p",{directives:[{name:"show",rawName:"v-show",value:0===e.data.length&&!e.hasNoMatch,expression:"data.length === 0 && !hasNoMatch"}],staticClass:"el-transfer-panel__empty"},[e._v(e._s(e.t("el.transfer.noData")))])],1),e.hasFooter?i("p",{staticClass:"el-transfer-panel__footer"},[e._t("default")],2):e._e()])};ou._withStripped=!0;var lu=r({mixins:[f.a],name:"ElTransferPanel",componentName:"ElTransferPanel",components:{ElCheckboxGroup:Wi.a,ElCheckbox:ri.a,ElInput:h.a,OptionContent:{props:{option:Object},render:function(e){var t=function e(t){return"ElTransferPanel"===t.$options.componentName?t:t.$parent?e(t.$parent):t}(this),i=t.$parent||t;return t.renderContent?t.renderContent(e,this.option):i.$scopedSlots.default?i.$scopedSlots.default({option:this.option}):e("span",[this.option[t.labelProp]||this.option[t.keyProp]])}}},props:{data:{type:Array,default:function(){return[]}},renderContent:Function,placeholder:String,title:String,filterable:Boolean,format:Object,filterMethod:Function,defaultChecked:Array,props:Object},data:function(){return{checked:[],allChecked:!1,query:"",inputHover:!1,checkChangeByUser:!0}},watch:{checked:function(e,t){if(this.updateAllChecked(),this.checkChangeByUser){var i=e.concat(t).filter((function(i){return-1===e.indexOf(i)||-1===t.indexOf(i)}));this.$emit("checked-change",e,i)}else this.$emit("checked-change",e),this.checkChangeByUser=!0},data:function(){var e=this,t=[],i=this.filteredData.map((function(t){return t[e.keyProp]}));this.checked.forEach((function(e){i.indexOf(e)>-1&&t.push(e)})),this.checkChangeByUser=!1,this.checked=t},checkableData:function(){this.updateAllChecked()},defaultChecked:{immediate:!0,handler:function(e,t){var i=this;if(!t||e.length!==t.length||!e.every((function(e){return t.indexOf(e)>-1}))){var n=[],r=this.checkableData.map((function(e){return e[i.keyProp]}));e.forEach((function(e){r.indexOf(e)>-1&&n.push(e)})),this.checkChangeByUser=!1,this.checked=n}}}},computed:{filteredData:function(){var e=this;return this.data.filter((function(t){return"function"==typeof e.filterMethod?e.filterMethod(e.query,t):(t[e.labelProp]||t[e.keyProp].toString()).toLowerCase().indexOf(e.query.toLowerCase())>-1}))},checkableData:function(){var e=this;return this.filteredData.filter((function(t){return!t[e.disabledProp]}))},checkedSummary:function(){var e=this.checked.length,t=this.data.length,i=this.format,n=i.noChecked,r=i.hasChecked;return n&&r?e>0?r.replace(/\${checked}/g,e).replace(/\${total}/g,t):n.replace(/\${total}/g,t):e+"/"+t},isIndeterminate:function(){var e=this.checked.length;return e>0&&e0&&0===this.filteredData.length},inputIcon:function(){return this.query.length>0&&this.inputHover?"circle-close":"search"},labelProp:function(){return this.props.label||"label"},keyProp:function(){return this.props.key||"key"},disabledProp:function(){return this.props.disabled||"disabled"},hasFooter:function(){return!!this.$slots.default}},methods:{updateAllChecked:function(){var e=this,t=this.checkableData.map((function(t){return t[e.keyProp]}));this.allChecked=t.length>0&&t.every((function(t){return e.checked.indexOf(t)>-1}))},handleAllCheckedChange:function(e){var t=this;this.checked=e?this.checkableData.map((function(e){return e[t.keyProp]})):[]},clearQuery:function(){"circle-close"===this.inputIcon&&(this.query="")}}},ou,[],!1,null,null,null);lu.options.__file="packages/transfer/src/transfer-panel.vue";var uu=lu.exports,cu=r({name:"ElTransfer",mixins:[C.a,f.a,k.a],components:{TransferPanel:uu,ElButton:U.a},props:{data:{type:Array,default:function(){return[]}},titles:{type:Array,default:function(){return[]}},buttonTexts:{type:Array,default:function(){return[]}},filterPlaceholder:{type:String,default:""},filterMethod:Function,leftDefaultChecked:{type:Array,default:function(){return[]}},rightDefaultChecked:{type:Array,default:function(){return[]}},renderContent:Function,value:{type:Array,default:function(){return[]}},format:{type:Object,default:function(){return{}}},filterable:Boolean,props:{type:Object,default:function(){return{label:"label",key:"key",disabled:"disabled"}}},targetOrder:{type:String,default:"original"}},data:function(){return{leftChecked:[],rightChecked:[]}},computed:{dataObj:function(){var e=this.props.key;return this.data.reduce((function(t,i){return(t[i[e]]=i)&&t}),{})},sourceData:function(){var e=this;return this.data.filter((function(t){return-1===e.value.indexOf(t[e.props.key])}))},targetData:function(){var e=this;return"original"===this.targetOrder?this.data.filter((function(t){return e.value.indexOf(t[e.props.key])>-1})):this.value.reduce((function(t,i){var n=e.dataObj[i];return n&&t.push(n),t}),[])},hasButtonTexts:function(){return 2===this.buttonTexts.length}},watch:{value:function(e){this.dispatch("ElFormItem","el.form.change",e)}},methods:{getMigratingConfig:function(){return{props:{"footer-format":"footer-format is renamed to format."}}},onSourceCheckedChange:function(e,t){this.leftChecked=e,void 0!==t&&this.$emit("left-check-change",e,t)},onTargetCheckedChange:function(e,t){this.rightChecked=e,void 0!==t&&this.$emit("right-check-change",e,t)},addToLeft:function(){var e=this.value.slice();this.rightChecked.forEach((function(t){var i=e.indexOf(t);i>-1&&e.splice(i,1)})),this.$emit("input",e),this.$emit("change",e,"left",this.rightChecked)},addToRight:function(){var e=this,t=this.value.slice(),i=[],n=this.props.key;this.data.forEach((function(t){var r=t[n];e.leftChecked.indexOf(r)>-1&&-1===e.value.indexOf(r)&&i.push(r)})),t="unshift"===this.targetOrder?i.concat(t):t.concat(i),this.$emit("input",t),this.$emit("change",t,"right",this.leftChecked)},clearQuery:function(e){"left"===e?this.$refs.leftPanel.query="":"right"===e&&(this.$refs.rightPanel.query="")}}},au,[],!1,null,null,null);cu.options.__file="packages/transfer/src/main.vue";var du=cu.exports;du.install=function(e){e.component(du.name,du)};var hu=du,pu=function(){var e=this.$createElement;return(this._self._c||e)("section",{staticClass:"el-container",class:{"is-vertical":this.isVertical}},[this._t("default")],2)};pu._withStripped=!0;var fu=r({name:"ElContainer",componentName:"ElContainer",props:{direction:String},computed:{isVertical:function(){return"vertical"===this.direction||"horizontal"!==this.direction&&(!(!this.$slots||!this.$slots.default)&&this.$slots.default.some((function(e){var t=e.componentOptions&&e.componentOptions.tag;return"el-header"===t||"el-footer"===t})))}}},pu,[],!1,null,null,null);fu.options.__file="packages/container/src/main.vue";var mu=fu.exports;mu.install=function(e){e.component(mu.name,mu)};var vu=mu,gu=function(){var e=this.$createElement;return(this._self._c||e)("header",{staticClass:"el-header",style:{height:this.height}},[this._t("default")],2)};gu._withStripped=!0;var _u=r({name:"ElHeader",componentName:"ElHeader",props:{height:{type:String,default:"60px"}}},gu,[],!1,null,null,null);_u.options.__file="packages/header/src/main.vue";var bu=_u.exports;bu.install=function(e){e.component(bu.name,bu)};var yu=bu,xu=function(){var e=this.$createElement;return(this._self._c||e)("aside",{staticClass:"el-aside",style:{width:this.width}},[this._t("default")],2)};xu._withStripped=!0;var ku=r({name:"ElAside",componentName:"ElAside",props:{width:{type:String,default:"300px"}}},xu,[],!1,null,null,null);ku.options.__file="packages/aside/src/main.vue";var wu=ku.exports;wu.install=function(e){e.component(wu.name,wu)};var Cu=wu,Su=function(){var e=this.$createElement;return(this._self._c||e)("main",{staticClass:"el-main"},[this._t("default")],2)};Su._withStripped=!0;var Ou=r({name:"ElMain",componentName:"ElMain"},Su,[],!1,null,null,null);Ou.options.__file="packages/main/src/main.vue";var Du=Ou.exports;Du.install=function(e){e.component(Du.name,Du)};var Eu=Du,Tu=function(){var e=this.$createElement;return(this._self._c||e)("footer",{staticClass:"el-footer",style:{height:this.height}},[this._t("default")],2)};Tu._withStripped=!0;var $u=r({name:"ElFooter",componentName:"ElFooter",props:{height:{type:String,default:"60px"}}},Tu,[],!1,null,null,null);$u.options.__file="packages/footer/src/main.vue";var Pu=$u.exports;Pu.install=function(e){e.component(Pu.name,Pu)};var ju=Pu,Mu=r({name:"ElTimeline",props:{reverse:{type:Boolean,default:!1}},provide:function(){return{timeline:this}},render:function(){var e=arguments[0],t=this.reverse,i={"el-timeline":!0,"is-reverse":t},n=this.$slots.default||[];return t&&(n=n.reverse()),e("ul",{class:i},[n])}},void 0,void 0,!1,null,null,null);Mu.options.__file="packages/timeline/src/main.vue";var Iu=Mu.exports;Iu.install=function(e){e.component(Iu.name,Iu)};var Au=Iu,Nu=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("li",{staticClass:"el-timeline-item"},[i("div",{staticClass:"el-timeline-item__tail"}),e.$slots.dot?e._e():i("div",{staticClass:"el-timeline-item__node",class:["el-timeline-item__node--"+(e.size||""),"el-timeline-item__node--"+(e.type||"")],style:{backgroundColor:e.color}},[e.icon?i("i",{staticClass:"el-timeline-item__icon",class:e.icon}):e._e()]),e.$slots.dot?i("div",{staticClass:"el-timeline-item__dot"},[e._t("dot")],2):e._e(),i("div",{staticClass:"el-timeline-item__wrapper"},[e.hideTimestamp||"top"!==e.placement?e._e():i("div",{staticClass:"el-timeline-item__timestamp is-top"},[e._v("\n "+e._s(e.timestamp)+"\n ")]),i("div",{staticClass:"el-timeline-item__content"},[e._t("default")],2),e.hideTimestamp||"bottom"!==e.placement?e._e():i("div",{staticClass:"el-timeline-item__timestamp is-bottom"},[e._v("\n "+e._s(e.timestamp)+"\n ")])])])};Nu._withStripped=!0;var Lu=r({name:"ElTimelineItem",inject:["timeline"],props:{timestamp:String,hideTimestamp:{type:Boolean,default:!1},placement:{type:String,default:"bottom"},type:String,color:String,size:{type:String,default:"normal"},icon:String}},Nu,[],!1,null,null,null);Lu.options.__file="packages/timeline/src/item.vue";var Fu=Lu.exports;Fu.install=function(e){e.component(Fu.name,Fu)};var Vu=Fu,zu=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("a",e._b({class:["el-link",e.type?"el-link--"+e.type:"",e.disabled&&"is-disabled",e.underline&&!e.disabled&&"is-underline"],attrs:{href:e.disabled?null:e.href},on:{click:e.handleClick}},"a",e.$attrs,!1),[e.icon?i("i",{class:e.icon}):e._e(),e.$slots.default?i("span",{staticClass:"el-link--inner"},[e._t("default")],2):e._e(),e.$slots.icon?[e.$slots.icon?e._t("icon"):e._e()]:e._e()],2)};zu._withStripped=!0;var Ru=r({name:"ElLink",props:{type:{type:String,default:"default"},underline:{type:Boolean,default:!0},disabled:Boolean,href:String,icon:String},methods:{handleClick:function(e){this.disabled||this.href||this.$emit("click",e)}}},zu,[],!1,null,null,null);Ru.options.__file="packages/link/src/main.vue";var Bu=Ru.exports;Bu.install=function(e){e.component(Bu.name,Bu)};var Hu=Bu,Wu=function(e,t){var i=t._c;return i("div",t._g(t._b({class:[t.data.staticClass,"el-divider","el-divider--"+t.props.direction]},"div",t.data.attrs,!1),t.listeners),[t.slots().default&&"vertical"!==t.props.direction?i("div",{class:["el-divider__text","is-"+t.props.contentPosition]},[t._t("default")],2):t._e()])};Wu._withStripped=!0;var qu=r({name:"ElDivider",props:{direction:{type:String,default:"horizontal",validator:function(e){return-1!==["horizontal","vertical"].indexOf(e)}},contentPosition:{type:String,default:"center",validator:function(e){return-1!==["left","center","right"].indexOf(e)}}}},Wu,[],!0,null,null,null);qu.options.__file="packages/divider/src/main.vue";var Uu=qu.exports;Uu.install=function(e){e.component(Uu.name,Uu)};var Gu=Uu,Yu=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{staticClass:"el-image"},[e.loading?e._t("placeholder",[i("div",{staticClass:"el-image__placeholder"})]):e.error?e._t("error",[i("div",{staticClass:"el-image__error"},[e._v(e._s(e.t("el.image.error")))])]):i("img",e._g(e._b({staticClass:"el-image__inner",class:{"el-image__inner--center":e.alignCenter,"el-image__preview":e.preview},style:e.imageStyle,attrs:{src:e.src},on:{click:e.clickHandler}},"img",e.$attrs,!1),e.$listeners)),e.preview?[e.showViewer?i("image-viewer",{attrs:{"z-index":e.zIndex,"initial-index":e.imageIndex,"on-close":e.closeViewer,"url-list":e.previewSrcList}}):e._e()]:e._e()],2)};Yu._withStripped=!0;var Ku=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("transition",{attrs:{name:"viewer-fade"}},[i("div",{ref:"el-image-viewer__wrapper",staticClass:"el-image-viewer__wrapper",style:{"z-index":e.viewerZIndex},attrs:{tabindex:"-1"}},[i("div",{staticClass:"el-image-viewer__mask",on:{click:function(t){return t.target!==t.currentTarget?null:e.handleMaskClick(t)}}}),i("span",{staticClass:"el-image-viewer__btn el-image-viewer__close",on:{click:e.hide}},[i("i",{staticClass:"el-icon-close"})]),e.isSingle?e._e():[i("span",{staticClass:"el-image-viewer__btn el-image-viewer__prev",class:{"is-disabled":!e.infinite&&e.isFirst},on:{click:e.prev}},[i("i",{staticClass:"el-icon-arrow-left"})]),i("span",{staticClass:"el-image-viewer__btn el-image-viewer__next",class:{"is-disabled":!e.infinite&&e.isLast},on:{click:e.next}},[i("i",{staticClass:"el-icon-arrow-right"})])],i("div",{staticClass:"el-image-viewer__btn el-image-viewer__actions"},[i("div",{staticClass:"el-image-viewer__actions__inner"},[i("i",{staticClass:"el-icon-zoom-out",on:{click:function(t){e.handleActions("zoomOut")}}}),i("i",{staticClass:"el-icon-zoom-in",on:{click:function(t){e.handleActions("zoomIn")}}}),i("i",{staticClass:"el-image-viewer__actions__divider"}),i("i",{class:e.mode.icon,on:{click:e.toggleMode}}),i("i",{staticClass:"el-image-viewer__actions__divider"}),i("i",{staticClass:"el-icon-refresh-left",on:{click:function(t){e.handleActions("anticlocelise")}}}),i("i",{staticClass:"el-icon-refresh-right",on:{click:function(t){e.handleActions("clocelise")}}})])]),i("div",{staticClass:"el-image-viewer__canvas"},e._l(e.urlList,(function(t,n){return n===e.index?i("img",{key:t,ref:"img",refInFor:!0,staticClass:"el-image-viewer__img",style:e.imgStyle,attrs:{src:e.currentImg},on:{load:e.handleImgLoad,error:e.handleImgError,mousedown:e.handleMouseDown}}):e._e()})),0)],2)])};Ku._withStripped=!0;var Xu=Object.assign||function(e){for(var t=1;te?this.zIndex:e}},watch:{index:{handler:function(e){this.reset(),this.onSwitch(e)}},currentImg:function(e){var t=this;this.$nextTick((function(e){t.$refs.img[0].complete||(t.loading=!0)}))}},methods:{hide:function(){this.deviceSupportUninstall(),this.onClose()},deviceSupportInstall:function(){var e=this;this._keyDownHandler=function(t){switch(t.stopPropagation(),t.keyCode){case 27:e.hide();break;case 32:e.toggleMode();break;case 37:e.prev();break;case 38:e.handleActions("zoomIn");break;case 39:e.next();break;case 40:e.handleActions("zoomOut")}},this._mouseWheelHandler=Object(m.rafThrottle)((function(t){(t.wheelDelta?t.wheelDelta:-t.detail)>0?e.handleActions("zoomIn",{zoomRate:.015,enableTransition:!1}):e.handleActions("zoomOut",{zoomRate:.015,enableTransition:!1})})),Object(fe.on)(document,"keydown",this._keyDownHandler),Object(fe.on)(document,Qu,this._mouseWheelHandler)},deviceSupportUninstall:function(){Object(fe.off)(document,"keydown",this._keyDownHandler),Object(fe.off)(document,Qu,this._mouseWheelHandler),this._keyDownHandler=null,this._mouseWheelHandler=null},handleImgLoad:function(e){this.loading=!1},handleImgError:function(e){this.loading=!1,e.target.alt="加载失败"},handleMouseDown:function(e){var t=this;if(!this.loading&&0===e.button){var i=this.transform,n=i.offsetX,r=i.offsetY,s=e.pageX,a=e.pageY;this._dragHandler=Object(m.rafThrottle)((function(e){t.transform.offsetX=n+e.pageX-s,t.transform.offsetY=r+e.pageY-a})),Object(fe.on)(document,"mousemove",this._dragHandler),Object(fe.on)(document,"mouseup",(function(e){Object(fe.off)(document,"mousemove",t._dragHandler)})),e.preventDefault()}},handleMaskClick:function(){this.maskClosable&&this.hide()},reset:function(){this.transform={scale:1,deg:0,offsetX:0,offsetY:0,enableTransition:!1}},toggleMode:function(){if(!this.loading){var e=Object.keys(Zu),t=(Object.values(Zu).indexOf(this.mode)+1)%e.length;this.mode=Zu[e[t]],this.reset()}},prev:function(){if(!this.isFirst||this.infinite){var e=this.urlList.length;this.index=(this.index-1+e)%e}},next:function(){if(!this.isLast||this.infinite){var e=this.urlList.length;this.index=(this.index+1)%e}},handleActions:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!this.loading){var i=Xu({zoomRate:.2,rotateDeg:90,enableTransition:!0},t),n=i.zoomRate,r=i.rotateDeg,s=i.enableTransition,a=this.transform;switch(e){case"zoomOut":a.scale>.2&&(a.scale=parseFloat((a.scale-n).toFixed(3)));break;case"zoomIn":a.scale=parseFloat((a.scale+n).toFixed(3));break;case"clocelise":a.deg+=r;break;case"anticlocelise":a.deg-=r}a.enableTransition=s}}},mounted:function(){this.deviceSupportInstall(),this.appendToBody&&document.body.appendChild(this.$el),this.$refs["el-image-viewer__wrapper"].focus()},destroyed:function(){this.appendToBody&&this.$el&&this.$el.parentNode&&this.$el.parentNode.removeChild(this.$el)}},Ku,[],!1,null,null,null);Ju.options.__file="packages/image/src/image-viewer.vue";var ec=Ju.exports,tc=function(){return void 0!==document.documentElement.style.objectFit},ic="none",nc="contain",rc="cover",sc="fill",ac="scale-down",oc="",lc=r({name:"ElImage",mixins:[f.a],inheritAttrs:!1,components:{ImageViewer:ec},props:{src:String,fit:String,lazy:Boolean,scrollContainer:{},previewSrcList:{type:Array,default:function(){return[]}},zIndex:{type:Number,default:2e3}},data:function(){return{loading:!0,error:!1,show:!this.lazy,imageWidth:0,imageHeight:0,showViewer:!1}},computed:{imageStyle:function(){var e=this.fit;return!this.$isServer&&e?tc()?{"object-fit":e}:this.getImageStyle(e):{}},alignCenter:function(){return!this.$isServer&&!tc()&&this.fit!==sc},preview:function(){var e=this.previewSrcList;return Array.isArray(e)&&e.length>0},imageIndex:function(){var e=0,t=this.previewSrcList.indexOf(this.src);return t>=0&&(e=t),e}},watch:{src:function(e){this.show&&this.loadImage()},show:function(e){e&&this.loadImage()}},mounted:function(){this.lazy?this.addLazyLoadListener():this.loadImage()},beforeDestroy:function(){this.lazy&&this.removeLazyLoadListener()},methods:{loadImage:function(){var e=this;if(!this.$isServer){this.loading=!0,this.error=!1;var t=new Image;t.onload=function(i){return e.handleLoad(i,t)},t.onerror=this.handleError.bind(this),Object.keys(this.$attrs).forEach((function(i){var n=e.$attrs[i];t.setAttribute(i,n)})),t.src=this.src}},handleLoad:function(e,t){this.imageWidth=t.width,this.imageHeight=t.height,this.loading=!1,this.error=!1},handleError:function(e){this.loading=!1,this.error=!0,this.$emit("error",e)},handleLazyLoad:function(){Object(fe.isInContainer)(this.$el,this._scrollContainer)&&(this.show=!0,this.removeLazyLoadListener())},addLazyLoadListener:function(){if(!this.$isServer){var e=this.scrollContainer,t=null;(t=Object(xo.isHtmlElement)(e)?e:Object(xo.isString)(e)?document.querySelector(e):Object(fe.getScrollContainer)(this.$el))&&(this._scrollContainer=t,this._lazyLoadHandler=Zo()(200,this.handleLazyLoad),Object(fe.on)(t,"scroll",this._lazyLoadHandler),this.handleLazyLoad())}},removeLazyLoadListener:function(){var e=this._scrollContainer,t=this._lazyLoadHandler;!this.$isServer&&e&&t&&(Object(fe.off)(e,"scroll",t),this._scrollContainer=null,this._lazyLoadHandler=null)},getImageStyle:function(e){var t=this.imageWidth,i=this.imageHeight,n=this.$el,r=n.clientWidth,s=n.clientHeight;if(!(t&&i&&r&&s))return{};var a=t/i,o=r/s;e===ac&&(e=tr)return console.warn("[ElementCalendar]end time should be greater than start time"),[];if(Object(hn.validateRangeInOneMonth)(n,r))return[[n,r]];var s=[],a=new Date(n.getFullYear(),n.getMonth()+1,1),o=this.toDate(a.getTime()-864e5);if(!Object(hn.validateRangeInOneMonth)(a,r))return console.warn("[ElementCalendar]start time and end time interval must not exceed two months"),[];s.push([n,o]);var l=this.realFirstDayOfWeek,u=a.getDay(),c=0;return u!==l&&(c=0===l?7-u:(c=l-u)>0?c:7+c),(a=this.toDate(a.getTime()+864e5*c)).getDate()6?0:Math.floor(this.firstDayOfWeek)}},data:function(){return{selectedDay:"",now:new Date}}},dc,[],!1,null,null,null);_c.options.__file="packages/calendar/src/main.vue";var bc=_c.exports;bc.install=function(e){e.component(bc.name,bc)};var yc=bc,xc=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("transition",{attrs:{name:"el-fade-in"}},[e.visible?i("div",{staticClass:"el-backtop",style:{right:e.styleRight,bottom:e.styleBottom},on:{click:function(t){return t.stopPropagation(),e.handleClick(t)}}},[e._t("default",[i("el-icon",{attrs:{name:"caret-top"}})])],2):e._e()])};xc._withStripped=!0;var kc=function(e){return Math.pow(e,3)},wc=r({name:"ElBacktop",props:{visibilityHeight:{type:Number,default:200},target:[String],right:{type:Number,default:40},bottom:{type:Number,default:40}},data:function(){return{el:null,container:null,visible:!1}},computed:{styleBottom:function(){return this.bottom+"px"},styleRight:function(){return this.right+"px"}},mounted:function(){this.init(),this.throttledScrollHandler=Zo()(300,this.onScroll),this.container.addEventListener("scroll",this.throttledScrollHandler)},methods:{init:function(){if(this.container=document,this.el=document.documentElement,this.target){if(this.el=document.querySelector(this.target),!this.el)throw new Error("target is not existed: "+this.target);this.container=this.el}},onScroll:function(){var e=this.el.scrollTop;this.visible=e>=this.visibilityHeight},handleClick:function(e){this.scrollToTop(),this.$emit("click",e)},scrollToTop:function(){var e=this.el,t=Date.now(),i=e.scrollTop,n=window.requestAnimationFrame||function(e){return setTimeout(e,16)};n((function r(){var s,a=(Date.now()-t)/500;a<1?(e.scrollTop=i*(1-((s=a)<.5?kc(2*s)/2:1-kc(2*(1-s))/2)),n(r)):e.scrollTop=0}))}},beforeDestroy:function(){this.container.removeEventListener("scroll",this.throttledScrollHandler)}},xc,[],!1,null,null,null);wc.options.__file="packages/backtop/src/main.vue";var Cc=wc.exports;Cc.install=function(e){e.component(Cc.name,Cc)};var Sc=Cc,Oc=function(e,t){return e===window||e===document?document.documentElement[t]:e[t]},Dc=function(e){return Oc(e,"offsetHeight")},Ec="ElInfiniteScroll",Tc={delay:{type:Number,default:200},distance:{type:Number,default:0},disabled:{type:Boolean,default:!1},immediate:{type:Boolean,default:!0}},$c=function(e,t){return Object(xo.isHtmlElement)(e)?(i=Tc,Object.keys(i||{}).map((function(e){return[e,i[e]]}))).reduce((function(i,n){var r=n[0],s=n[1],a=s.type,o=s.default,l=e.getAttribute("infinite-scroll-"+r);switch(l=Object(xo.isUndefined)(t[l])?l:t[l],a){case Number:l=Number(l),l=Number.isNaN(l)?o:l;break;case Boolean:l=Object(xo.isDefined)(l)?"false"!==l&&Boolean(l):o;break;default:l=a(l)}return i[r]=l,i}),{}):{};var i},Pc=function(e){return e.getBoundingClientRect().top},jc=function(e){var t=this[Ec],i=t.el,n=t.vm,r=t.container,s=t.observer,a=$c(i,n),o=a.distance;if(!a.disabled){var l=r.getBoundingClientRect();if(l.width||l.height){var u=!1;if(r===i){var c=r.scrollTop+function(e){return Oc(e,"clientHeight")}(r);u=r.scrollHeight-c<=o}else{u=Dc(i)+Pc(i)-Pc(r)-Dc(r)+Number.parseFloat(function(e,t){if(e===window&&(e=document.documentElement),1!==e.nodeType)return[];var i=window.getComputedStyle(e,null);return t?i[t]:i}(r,"borderBottomWidth"))<=o}u&&Object(xo.isFunction)(e)?e.call(n):s&&(s.disconnect(),this[Ec].observer=null)}}},Mc={name:"InfiniteScroll",inserted:function(e,t,i){var n=t.value,r=i.context,s=Object(fe.getScrollContainer)(e,!0),a=$c(e,r),o=a.delay,l=a.immediate,u=$()(o,jc.bind(e,n));(e[Ec]={el:e,vm:r,container:s,onScroll:u},s)&&(s.addEventListener("scroll",u),l&&((e[Ec].observer=new MutationObserver(u)).observe(s,{childList:!0,subtree:!0}),u()))},unbind:function(e){var t=e[Ec],i=t.container,n=t.onScroll;i&&i.removeEventListener("scroll",n)},install:function(e){e.directive(Mc.name,Mc)}},Ic=Mc,Ac=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{staticClass:"el-page-header"},[i("div",{staticClass:"el-page-header__left",on:{click:function(t){e.$emit("back")}}},[i("i",{staticClass:"el-icon-back"}),i("div",{staticClass:"el-page-header__title"},[e._t("title",[e._v(e._s(e.title))])],2)]),i("div",{staticClass:"el-page-header__content"},[e._t("content",[e._v(e._s(e.content))])],2)])};Ac._withStripped=!0;var Nc=r({name:"ElPageHeader",props:{title:{type:String,default:function(){return Object(Ir.t)("el.pageHeader.title")}},content:String}},Ac,[],!1,null,null,null);Nc.options.__file="packages/page-header/src/main.vue";var Lc=Nc.exports;Lc.install=function(e){e.component(Lc.name,Lc)};var Fc=Lc,Vc=function(){var e=this.$createElement,t=this._self._c||e;return t("div",{class:["el-cascader-panel",this.border&&"is-bordered"],on:{keydown:this.handleKeyDown}},this._l(this.menus,(function(e,i){return t("cascader-menu",{key:i,ref:"menu",refInFor:!0,attrs:{index:i,nodes:e}})})),1)};Vc._withStripped=!0;var zc=i(43),Rc=i.n(zc),Bc=function(e){return e.stopPropagation()},Hc=r({inject:["panel"],components:{ElCheckbox:ri.a,ElRadio:Rc.a},props:{node:{required:!0},nodeId:String},computed:{config:function(){return this.panel.config},isLeaf:function(){return this.node.isLeaf},isDisabled:function(){return this.node.isDisabled},checkedValue:function(){return this.panel.checkedValue},isChecked:function(){return this.node.isSameNode(this.checkedValue)},inActivePath:function(){return this.isInPath(this.panel.activePath)},inCheckedPath:function(){var e=this;return!!this.config.checkStrictly&&this.panel.checkedNodePaths.some((function(t){return e.isInPath(t)}))},value:function(){return this.node.getValueByOption()}},methods:{handleExpand:function(){var e=this,t=this.panel,i=this.node,n=this.isDisabled,r=this.config,s=r.multiple;!r.checkStrictly&&n||i.loading||(r.lazy&&!i.loaded?t.lazyLoad(i,(function(){var t=e.isLeaf;if(t||e.handleExpand(),s){var n=!!t&&i.checked;e.handleMultiCheckChange(n)}})):t.handleExpand(i))},handleCheckChange:function(){var e=this.panel,t=this.value,i=this.node;e.handleCheckChange(t),e.handleExpand(i)},handleMultiCheckChange:function(e){this.node.doCheck(e),this.panel.calculateMultiCheckedValue()},isInPath:function(e){var t=this.node;return(e[t.level-1]||{}).uid===t.uid},renderPrefix:function(e){var t=this.isLeaf,i=this.isChecked,n=this.config,r=n.checkStrictly;return n.multiple?this.renderCheckbox(e):r?this.renderRadio(e):t&&i?this.renderCheckIcon(e):null},renderPostfix:function(e){var t=this.node,i=this.isLeaf;return t.loading?this.renderLoadingIcon(e):i?null:this.renderExpandIcon(e)},renderCheckbox:function(e){var t=this.node,i=this.config,n=this.isDisabled,r={on:{change:this.handleMultiCheckChange},nativeOn:{}};return i.checkStrictly&&(r.nativeOn.click=Bc),e("el-checkbox",Ja()([{attrs:{value:t.checked,indeterminate:t.indeterminate,disabled:n}},r]))},renderRadio:function(e){var t=this.checkedValue,i=this.value,n=this.isDisabled;return Object(m.isEqual)(i,t)&&(i=t),e("el-radio",{attrs:{value:t,label:i,disabled:n},on:{change:this.handleCheckChange},nativeOn:{click:Bc}},[e("span")])},renderCheckIcon:function(e){return e("i",{class:"el-icon-check el-cascader-node__prefix"})},renderLoadingIcon:function(e){return e("i",{class:"el-icon-loading el-cascader-node__postfix"})},renderExpandIcon:function(e){return e("i",{class:"el-icon-arrow-right el-cascader-node__postfix"})},renderContent:function(e){var t=this.panel,i=this.node,n=t.renderLabelFn;return e("span",{class:"el-cascader-node__label"},[(n?n({node:i,data:i.data}):null)||i.label])}},render:function(e){var t=this,i=this.inActivePath,n=this.inCheckedPath,r=this.isChecked,s=this.isLeaf,a=this.isDisabled,o=this.config,l=this.nodeId,u=o.expandTrigger,c=o.checkStrictly,d=o.multiple,h=!c&&a,p={on:{}};return"click"===u?p.on.click=this.handleExpand:(p.on.mouseenter=function(e){t.handleExpand(),t.$emit("expand",e)},p.on.focus=function(e){t.handleExpand(),t.$emit("expand",e)}),!s||a||c||d||(p.on.click=this.handleCheckChange),e("li",Ja()([{attrs:{role:"menuitem",id:l,"aria-expanded":i,tabindex:h?null:-1},class:{"el-cascader-node":!0,"is-selectable":c,"in-active-path":i,"in-checked-path":n,"is-active":r,"is-disabled":h}},p]),[this.renderPrefix(e),this.renderContent(e),this.renderPostfix(e)])}},void 0,void 0,!1,null,null,null);Hc.options.__file="packages/cascader-panel/src/cascader-node.vue";var Wc=Hc.exports,qc=r({name:"ElCascaderMenu",mixins:[f.a],inject:["panel"],components:{ElScrollbar:L.a,CascaderNode:Wc},props:{nodes:{type:Array,required:!0},index:Number},data:function(){return{activeNode:null,hoverTimer:null,id:Object(m.generateId)()}},computed:{isEmpty:function(){return!this.nodes.length},menuId:function(){return"cascader-menu-"+this.id+"-"+this.index}},methods:{handleExpand:function(e){this.activeNode=e.target},handleMouseMove:function(e){var t=this.activeNode,i=this.hoverTimer,n=this.$refs.hoverZone;if(t&&n)if(t.contains(e.target)){clearTimeout(i);var r=this.$el.getBoundingClientRect().left,s=e.clientX-r,a=this.$el,o=a.offsetWidth,l=a.offsetHeight,u=t.offsetTop,c=u+t.offsetHeight;n.innerHTML='\n \n \n '}else i||(this.hoverTimer=setTimeout(this.clearHoverZone,this.panel.config.hoverThreshold))},clearHoverZone:function(){var e=this.$refs.hoverZone;e&&(e.innerHTML="")},renderEmptyText:function(e){return e("div",{class:"el-cascader-menu__empty-text"},[this.t("el.cascader.noData")])},renderNodeList:function(e){var t=this.menuId,i=this.panel.isHoverMenu,n={on:{}};i&&(n.on.expand=this.handleExpand);var r=this.nodes.map((function(i,r){var s=i.hasChildren;return e("cascader-node",Ja()([{key:i.uid,attrs:{node:i,"node-id":t+"-"+r,"aria-haspopup":s,"aria-owns":s?t:null}},n]))}));return[].concat(r,[i?e("svg",{ref:"hoverZone",class:"el-cascader-menu__hover-zone"}):null])}},render:function(e){var t=this.isEmpty,i=this.menuId,n={nativeOn:{}};return this.panel.isHoverMenu&&(n.nativeOn.mousemove=this.handleMouseMove),e("el-scrollbar",Ja()([{attrs:{tag:"ul",role:"menu",id:i,"wrap-class":"el-cascader-menu__wrap","view-class":{"el-cascader-menu__list":!0,"is-empty":t}},class:"el-cascader-menu"},n]),[t?this.renderEmptyText(e):this.renderNodeList(e)])}},void 0,void 0,!1,null,null,null);qc.options.__file="packages/cascader-panel/src/cascader-menu.vue";var Uc=qc.exports,Gc=function(){function e(e,t){for(var i=0;i1?t-1:0),n=1;n1?n-1:0),s=1;s0},e.prototype.syncCheckState=function(e){var t=this.getValueByOption(),i=this.isSameNode(e,t);this.doCheck(i)},e.prototype.doCheck=function(e){this.checked!==e&&(this.config.checkStrictly?this.checked=e:(this.broadcast("check",e),this.setCheckState(e),this.emit("check")))},Gc(e,[{key:"isDisabled",get:function(){var e=this.data,t=this.parent,i=this.config,n=i.disabled,r=i.checkStrictly;return e[n]||!r&&t&&t.isDisabled}},{key:"isLeaf",get:function(){var e=this.data,t=this.loaded,i=this.hasChildren,n=this.children,r=this.config,s=r.lazy,a=r.leaf;if(s){var o=Object(He.isDef)(e[a])?e[a]:!!t&&!n.length;return this.hasChildren=!o,o}return!i}}]),e}();var Xc=function e(t,i){return t.reduce((function(t,n){return n.isLeaf?t.push(n):(!i&&t.push(n),t=t.concat(e(n.children,i))),t}),[])},Zc=function(){function e(t,i){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.config=i,this.initNodes(t)}return e.prototype.initNodes=function(e){var t=this;e=Object(m.coerceTruthyValueToArray)(e),this.nodes=e.map((function(e){return new Kc(e,t.config)})),this.flattedNodes=this.getFlattedNodes(!1,!1),this.leafNodes=this.getFlattedNodes(!0,!1)},e.prototype.appendNode=function(e,t){var i=new Kc(e,this.config,t);(t?t.children:this.nodes).push(i)},e.prototype.appendNodes=function(e,t){var i=this;(e=Object(m.coerceTruthyValueToArray)(e)).forEach((function(e){return i.appendNode(e,t)}))},e.prototype.getNodes=function(){return this.nodes},e.prototype.getFlattedNodes=function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=e?this.leafNodes:this.flattedNodes;return t?i:Xc(this.nodes,e)},e.prototype.getNodeByValue=function(e){var t=this.getFlattedNodes(!1,!this.config.lazy).filter((function(t){return Object(m.valueEquals)(t.path,e)||t.value===e}));return t&&t.length?t[0]:null},e}(),Qc=Object.assign||function(e){for(var t=1;t0){var l=i.store.getNodeByValue(s);l.data[o]||i.lazyLoad(l,(function(){i.handleExpand(l)})),i.loadCount===i.checkedValue.length&&i.$parent.computePresentText()}}t&&t(n)}))},calculateMultiCheckedValue:function(){this.checkedValue=this.getCheckedNodes(this.leafOnly).map((function(e){return e.getValueByOption()}))},scrollIntoView:function(){this.$isServer||(this.$refs.menu||[]).forEach((function(e){var t=e.$el;if(t){var i=t.querySelector(".el-scrollbar__wrap"),n=t.querySelector(".el-cascader-node.is-active")||t.querySelector(".el-cascader-node.in-active-path");Vt()(i,n)}}))},getNodeByValue:function(e){return this.store.getNodeByValue(e)},getFlattedNodes:function(e){var t=!this.config.lazy;return this.store.getFlattedNodes(e,t)},getCheckedNodes:function(e){var t=this.checkedValue;return this.multiple?this.getFlattedNodes(e).filter((function(e){return e.checked})):this.isEmptyValue(t)?[]:[this.getNodeByValue(t)]},clearCheckedNodes:function(){var e=this.config,t=this.leafOnly,i=e.multiple,n=e.emitPath;i?(this.getCheckedNodes(t).filter((function(e){return!e.isDisabled})).forEach((function(e){return e.doCheck(!1)})),this.calculateMultiCheckedValue()):this.checkedValue=n?[]:null}}},Vc,[],!1,null,null,null);sd.options.__file="packages/cascader-panel/src/cascader-panel.vue";var ad=sd.exports;ad.install=function(e){e.component(ad.name,ad)};var od=ad,ld=r({name:"ElAvatar",props:{size:{type:[Number,String],validator:function(e){return"string"==typeof e?["large","medium","small"].includes(e):"number"==typeof e}},shape:{type:String,default:"circle",validator:function(e){return["circle","square"].includes(e)}},icon:String,src:String,alt:String,srcSet:String,error:Function,fit:{type:String,default:"cover"}},data:function(){return{isImageExist:!0}},computed:{avatarClass:function(){var e=this.size,t=this.icon,i=this.shape,n=["el-avatar"];return e&&"string"==typeof e&&n.push("el-avatar--"+e),t&&n.push("el-avatar--icon"),i&&n.push("el-avatar--"+i),n.join(" ")}},methods:{handleError:function(){var e=this.error;!1!==(e?e():void 0)&&(this.isImageExist=!1)},renderAvatar:function(){var e=this.$createElement,t=this.icon,i=this.src,n=this.alt,r=this.isImageExist,s=this.srcSet,a=this.fit;return r&&i?e("img",{attrs:{src:i,alt:n,srcSet:s},on:{error:this.handleError},style:{"object-fit":a}}):t?e("i",{class:t}):this.$slots.default}},render:function(){var e=arguments[0],t=this.avatarClass,i=this.size,n="number"==typeof i?{height:i+"px",width:i+"px",lineHeight:i+"px"}:{};return e("span",{class:t,style:n},[this.renderAvatar()])}},void 0,void 0,!1,null,null,null);ld.options.__file="packages/avatar/src/main.vue";var ud=ld.exports;ud.install=function(e){e.component(ud.name,ud)};var cd=ud,dd=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("transition",{attrs:{name:"el-drawer-fade"},on:{"after-enter":e.afterEnter,"after-leave":e.afterLeave}},[i("div",{directives:[{name:"show",rawName:"v-show",value:e.visible,expression:"visible"}],staticClass:"el-drawer__wrapper",attrs:{tabindex:"-1"}},[i("div",{staticClass:"el-drawer__container",class:e.visible&&"el-drawer__open",attrs:{role:"document",tabindex:"-1"},on:{click:function(t){return t.target!==t.currentTarget?null:e.handleWrapperClick(t)}}},[i("div",{ref:"drawer",staticClass:"el-drawer",class:[e.direction,e.customClass],style:e.isHorizontal?"width: "+e.drawerSize:"height: "+e.drawerSize,attrs:{"aria-modal":"true","aria-labelledby":"el-drawer__title","aria-label":e.title,role:"dialog",tabindex:"-1"}},[e.withHeader?i("header",{staticClass:"el-drawer__header",attrs:{id:"el-drawer__title"}},[e._t("title",[i("span",{attrs:{role:"heading",title:e.title}},[e._v(e._s(e.title))])]),e.showClose?i("button",{staticClass:"el-drawer__close-btn",attrs:{"aria-label":"close "+(e.title||"drawer"),type:"button"},on:{click:e.closeDrawer}},[i("i",{staticClass:"el-dialog__close el-icon el-icon-close"})]):e._e()],2):e._e(),e.rendered?i("section",{staticClass:"el-drawer__body"},[e._t("default")],2):e._e()])])])])};dd._withStripped=!0;var hd=r({name:"ElDrawer",mixins:[y.a,C.a],props:{appendToBody:{type:Boolean,default:!1},beforeClose:{type:Function},customClass:{type:String,default:""},closeOnPressEscape:{type:Boolean,default:!0},destroyOnClose:{type:Boolean,default:!1},modal:{type:Boolean,default:!0},direction:{type:String,default:"rtl",validator:function(e){return-1!==["ltr","rtl","ttb","btt"].indexOf(e)}},modalAppendToBody:{type:Boolean,default:!0},showClose:{type:Boolean,default:!0},size:{type:[Number,String],default:"30%"},title:{type:String,default:""},visible:{type:Boolean},wrapperClosable:{type:Boolean,default:!0},withHeader:{type:Boolean,default:!0}},computed:{isHorizontal:function(){return"rtl"===this.direction||"ltr"===this.direction},drawerSize:function(){return"number"==typeof this.size?this.size+"px":this.size}},data:function(){return{closed:!1,prevActiveElement:null}},watch:{visible:function(e){var t=this;e?(this.closed=!1,this.$emit("open"),this.appendToBody&&document.body.appendChild(this.$el),this.prevActiveElement=document.activeElement):(this.closed||(this.$emit("close"),!0===this.destroyOnClose&&(this.rendered=!1)),this.$nextTick((function(){t.prevActiveElement&&t.prevActiveElement.focus()})))}},methods:{afterEnter:function(){this.$emit("opened")},afterLeave:function(){this.$emit("closed")},hide:function(e){!1!==e&&(this.$emit("update:visible",!1),this.$emit("close"),!0===this.destroyOnClose&&(this.rendered=!1),this.closed=!0)},handleWrapperClick:function(){this.wrapperClosable&&this.closeDrawer()},closeDrawer:function(){"function"==typeof this.beforeClose?this.beforeClose(this.hide):this.hide()},handleClose:function(){this.closeDrawer()}},mounted:function(){this.visible&&(this.rendered=!0,this.open(),this.appendToBody&&document.body.appendChild(this.$el))},destroyed:function(){this.appendToBody&&this.$el&&this.$el.parentNode&&this.$el.parentNode.removeChild(this.$el)}},dd,[],!1,null,null,null);hd.options.__file="packages/drawer/src/main.vue";var pd=hd.exports;pd.install=function(e){e.component(pd.name,pd)};var fd=pd,md=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("el-popover",e._b({attrs:{trigger:"click"},model:{value:e.visible,callback:function(t){e.visible=t},expression:"visible"}},"el-popover",e.$attrs,!1),[i("div",{staticClass:"el-popconfirm"},[i("p",{staticClass:"el-popconfirm__main"},[e.hideIcon?e._e():i("i",{staticClass:"el-popconfirm__icon",class:e.icon,style:{color:e.iconColor}}),e._v("\n "+e._s(e.title)+"\n ")]),i("div",{staticClass:"el-popconfirm__action"},[i("el-button",{attrs:{size:"mini",type:e.cancelButtonType},on:{click:e.cancel}},[e._v("\n "+e._s(e.displayCancelButtonText)+"\n ")]),i("el-button",{attrs:{size:"mini",type:e.confirmButtonType},on:{click:e.confirm}},[e._v("\n "+e._s(e.displayConfirmButtonText)+"\n ")])],1)]),e._t("reference",null,{slot:"reference"})],2)};md._withStripped=!0;var vd=i(44),gd=r({name:"ElPopconfirm",props:{title:{type:String},confirmButtonText:{type:String},cancelButtonText:{type:String},confirmButtonType:{type:String,default:"primary"},cancelButtonType:{type:String,default:"text"},icon:{type:String,default:"el-icon-question"},iconColor:{type:String,default:"#f90"},hideIcon:{type:Boolean,default:!1}},components:{ElPopover:i.n(vd).a,ElButton:U.a},data:function(){return{visible:!1}},computed:{displayConfirmButtonText:function(){return this.confirmButtonText||Object(Ir.t)("el.popconfirm.confirmButtonText")},displayCancelButtonText:function(){return this.cancelButtonText||Object(Ir.t)("el.popconfirm.cancelButtonText")}},methods:{confirm:function(){this.visible=!1,this.$emit("confirm")},cancel:function(){this.visible=!1,this.$emit("cancel")}}},md,[],!1,null,null,null);gd.options.__file="packages/popconfirm/src/main.vue";var _d=gd.exports;_d.install=function(e){e.component(_d.name,_d)};var bd=_d,yd=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",[e.uiLoading?[i("div",e._b({class:["el-skeleton",e.animated?"is-animated":""]},"div",e.$attrs,!1),[e._l(e.count,(function(t){return[e.loading?e._t("template",e._l(e.rows,(function(n){return i("el-skeleton-item",{key:t+"-"+n,class:{"el-skeleton__paragraph":1!==n,"is-first":1===n,"is-last":n===e.rows&&e.rows>1},attrs:{variant:"p"}})}))):e._e()]}))],2)]:[e._t("default",null,null,e.$attrs)]],2)};yd._withStripped=!0;var xd=r({name:"ElSkeleton",props:{animated:{type:Boolean,default:!1},count:{type:Number,default:1},rows:{type:Number,default:4},loading:{type:Boolean,default:!0},throttle:{type:Number,default:0}},watch:{loading:{handler:function(e){var t=this;this.throttle<=0?this.uiLoading=e:e?(clearTimeout(this.timeoutHandle),this.timeoutHandle=setTimeout((function(){t.uiLoading=t.loading}),this.throttle)):this.uiLoading=e},immediate:!0}},data:function(){return{uiLoading:this.throttle<=0&&this.loading}}},yd,[],!1,null,null,null);xd.options.__file="packages/skeleton/src/index.vue";var kd=xd.exports;kd.install=function(e){e.component(kd.name,kd)};var wd=kd,Cd=function(){var e=this.$createElement,t=this._self._c||e;return t("div",{class:["el-skeleton__item","el-skeleton__"+this.variant]},["image"===this.variant?t("img-placeholder"):this._e()],1)};Cd._withStripped=!0;var Sd=function(){var e=this.$createElement,t=this._self._c||e;return t("svg",{attrs:{viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"}},[t("path",{attrs:{d:"M64 896V128h896v768H64z m64-128l192-192 116.352 116.352L640 448l256 307.2V192H128v576z m224-480a96 96 0 1 1-0.064 192.064A96 96 0 0 1 352 288z"}})])};Sd._withStripped=!0;var Od=r({name:"ImgPlaceholder"},Sd,[],!1,null,null,null);Od.options.__file="packages/skeleton/src/img-placeholder.vue";var Dd,Ed=Od.exports,Td=r({name:"ElSkeletonItem",props:{variant:{type:String,default:"text"}},components:(Dd={},Dd[Ed.name]=Ed,Dd)},Cd,[],!1,null,null,null);Td.options.__file="packages/skeleton/src/item.vue";var $d=Td.exports;$d.install=function(e){e.component($d.name,$d)};var Pd=$d,jd=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{staticClass:"el-empty"},[i("div",{staticClass:"el-empty__image",style:e.imageStyle},[e.image?i("img",{attrs:{src:e.image,ondragstart:"return false"}}):e._t("image",[i("img-empty")])],2),i("div",{staticClass:"el-empty__description"},[e.$slots.description?e._t("description"):i("p",[e._v(e._s(e.emptyDescription))])],2),e.$slots.default?i("div",{staticClass:"el-empty__bottom"},[e._t("default")],2):e._e()])};jd._withStripped=!0;var Md=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("svg",{attrs:{viewBox:"0 0 79 86",version:"1.1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink"}},[i("defs",[i("linearGradient",{attrs:{id:"linearGradient-1-"+e.id,x1:"38.8503086%",y1:"0%",x2:"61.1496914%",y2:"100%"}},[i("stop",{attrs:{"stop-color":"#FCFCFD",offset:"0%"}}),i("stop",{attrs:{"stop-color":"#EEEFF3",offset:"100%"}})],1),i("linearGradient",{attrs:{id:"linearGradient-2-"+e.id,x1:"0%",y1:"9.5%",x2:"100%",y2:"90.5%"}},[i("stop",{attrs:{"stop-color":"#FCFCFD",offset:"0%"}}),i("stop",{attrs:{"stop-color":"#E9EBEF",offset:"100%"}})],1),i("rect",{attrs:{id:"path-3-"+e.id,x:"0",y:"0",width:"17",height:"36"}})],1),i("g",{attrs:{id:"Illustrations",stroke:"none","stroke-width":"1",fill:"none","fill-rule":"evenodd"}},[i("g",{attrs:{id:"B-type",transform:"translate(-1268.000000, -535.000000)"}},[i("g",{attrs:{id:"Group-2",transform:"translate(1268.000000, 535.000000)"}},[i("path",{attrs:{id:"Oval-Copy-2",d:"M39.5,86 C61.3152476,86 79,83.9106622 79,81.3333333 C79,78.7560045 57.3152476,78 35.5,78 C13.6847524,78 0,78.7560045 0,81.3333333 C0,83.9106622 17.6847524,86 39.5,86 Z",fill:"#F7F8FC"}}),i("polygon",{attrs:{id:"Rectangle-Copy-14",fill:"#E5E7E9",transform:"translate(27.500000, 51.500000) scale(1, -1) translate(-27.500000, -51.500000) ",points:"13 58 53 58 42 45 2 45"}}),i("g",{attrs:{id:"Group-Copy",transform:"translate(34.500000, 31.500000) scale(-1, 1) rotate(-25.000000) translate(-34.500000, -31.500000) translate(7.000000, 10.000000)"}},[i("polygon",{attrs:{id:"Rectangle-Copy-10",fill:"#E5E7E9",transform:"translate(11.500000, 5.000000) scale(1, -1) translate(-11.500000, -5.000000) ",points:"2.84078316e-14 3 18 3 23 7 5 7"}}),i("polygon",{attrs:{id:"Rectangle-Copy-11",fill:"#EDEEF2",points:"-3.69149156e-15 7 38 7 38 43 -3.69149156e-15 43"}}),i("rect",{attrs:{id:"Rectangle-Copy-12",fill:"url(#linearGradient-1-"+e.id+")",transform:"translate(46.500000, 25.000000) scale(-1, 1) translate(-46.500000, -25.000000) ",x:"38",y:"7",width:"17",height:"36"}}),i("polygon",{attrs:{id:"Rectangle-Copy-13",fill:"#F8F9FB",transform:"translate(39.500000, 3.500000) scale(-1, 1) translate(-39.500000, -3.500000) ",points:"24 7 41 7 55 -3.63806207e-12 38 -3.63806207e-12"}})]),i("rect",{attrs:{id:"Rectangle-Copy-15",fill:"url(#linearGradient-2-"+e.id+")",x:"13",y:"45",width:"40",height:"36"}}),i("g",{attrs:{id:"Rectangle-Copy-17",transform:"translate(53.000000, 45.000000)"}},[i("mask",{attrs:{id:"mask-4-"+e.id,fill:"white"}},[i("use",{attrs:{"xlink:href":"#path-3-"+e.id}})]),i("use",{attrs:{id:"Mask",fill:"#E0E3E9",transform:"translate(8.500000, 18.000000) scale(-1, 1) translate(-8.500000, -18.000000) ","xlink:href":"#path-3-"+e.id}}),i("polygon",{attrs:{id:"Rectangle-Copy",fill:"#D5D7DE",mask:"url(#mask-4-"+e.id+")",transform:"translate(12.000000, 9.000000) scale(-1, 1) translate(-12.000000, -9.000000) ",points:"7 0 24 0 20 18 -1.70530257e-13 16"}})]),i("polygon",{attrs:{id:"Rectangle-Copy-18",fill:"#F8F9FB",transform:"translate(66.000000, 51.500000) scale(-1, 1) translate(-66.000000, -51.500000) ",points:"62 45 79 45 70 58 53 58"}})])])])])};Md._withStripped=!0;var Id=0,Ad=r({name:"ImgEmpty",data:function(){return{id:++Id}}},Md,[],!1,null,null,null);Ad.options.__file="packages/empty/src/img-empty.vue";var Nd,Ld=Ad.exports,Fd=r({name:"ElEmpty",components:(Nd={},Nd[Ld.name]=Ld,Nd),props:{image:{type:String,default:""},imageSize:Number,description:{type:String,default:""}},computed:{emptyDescription:function(){return this.description||Object(Ir.t)("el.empty.description")},imageStyle:function(){return{width:this.imageSize?this.imageSize+"px":""}}}},jd,[],!1,null,null,null);Fd.options.__file="packages/empty/src/index.vue";var Vd=Fd.exports;Vd.install=function(e){e.component(Vd.name,Vd)};var zd,Rd=Vd,Bd=Object.assign||function(e){for(var t=1;t3&&void 0!==arguments[3]&&arguments[3];return e.props||(e.props={}),t>i&&(e.props.span=i),n&&(e.props.span=i),e},getRows:function(){var e=this,t=(this.$slots.default||[]).filter((function(e){return e.tag&&e.componentOptions&&"ElDescriptionsItem"===e.componentOptions.Ctor.options.name})),i=t.map((function(t){return{props:e.getOptionProps(t),slots:e.getSlots(t),vnode:t}})),n=[],r=[],s=this.column;return i.forEach((function(i,a){var o=i.props.span||1;if(a===t.length-1)return r.push(e.filledNode(i,o,s,!0)),void n.push(r);o1&&void 0!==arguments[1]?arguments[1]:{};Ar.a.use(t.locale),Ar.a.i18n(t.i18n),ph.forEach((function(t){e.component(t.name,t)})),e.use(Ic),e.use(La.directive),e.prototype.$ELEMENT={size:t.size||"",zIndex:t.zIndex||2e3},e.prototype.$loading=La.service,e.prototype.$msgbox=Qr,e.prototype.$alert=Qr.alert,e.prototype.$confirm=Qr.confirm,e.prototype.$prompt=Qr.prompt,e.prototype.$notify=pa,e.prototype.$message=Eo};"undefined"!=typeof window&&window.Vue&&fh(window.Vue);t.default={version:"2.15.6",locale:Ar.a.use,i18n:Ar.a.i18n,install:fh,CollapseTransition:be.a,Loading:La,Pagination:g,Dialog:D,Autocomplete:W,Dropdown:Z,DropdownMenu:te,DropdownItem:se,Menu:ge,Submenu:Ce,MenuItem:$e,MenuItemGroup:Ie,Input:Ue,InputNumber:Ze,Radio:tt,RadioGroup:at,RadioButton:ct,Checkbox:ft,CheckboxButton:_t,CheckboxGroup:kt,Switch:Ot,Select:Bt,Option:Ht,OptionGroup:Gt,Button:Zt,ButtonGroup:ti,Table:nn,TableColumn:cn,DatePicker:or,TimeSelect:mr,TimePicker:Cr,Popover:$r,Tooltip:jr,MessageBox:Qr,Breadcrumb:is,BreadcrumbItem:as,Form:cs,FormItem:_s,Tabs:Ds,TabPane:Ps,Tag:Is,Tree:Qs,Alert:na,Notification:pa,Slider:wa,Icon:Ra,Row:Ha,Col:Ua,Upload:oo,Progress:ho,Spinner:vo,Message:Eo,Badge:jo,Card:No,Rate:zo,Steps:Wo,Step:Yo,Carousel:el,Scrollbar:sl,CarouselItem:ul,Collapse:pl,CollapseItem:gl,Cascader:Tl,ColorPicker:su,Transfer:hu,Container:vu,Header:yu,Aside:Cu,Main:Eu,Footer:ju,Timeline:Au,TimelineItem:Vu,Link:Hu,Divider:Gu,Image:cc,Calendar:yc,Backtop:Sc,InfiniteScroll:Ic,PageHeader:Fc,CascaderPanel:od,Avatar:cd,Drawer:fd,Popconfirm:bd,Skeleton:wd,SkeletonItem:Pd,Empty:Rd,Descriptions:Ud,DescriptionsItem:Yd,Result:hh}}]).default},function(e){e.exports=JSON.parse('{"selection":{"domain":{"template":"Domain","characteristics":{"Agent":"MultiAgent","Concurrency":"Parallel","Constraints":"(none)","Dynamics":"Environment","Events":"Events","Goals":"(none)","Initialization":"(none)","Memory":"History","Observability":"PartiallyObservable","Renderability":"(none)","Value":"Rewards"},"showFinetunedOnly":true,"simplifySignatures":true},"solver":{"template":"Solver","characteristics":{"Assessability":"(none)","Parallelability":"(none)","Policy":"(none)","Restorability":"(none)"},"showFinetunedOnly":true}},"templates":{"domain":[{"name":"Domain","characteristics":{"Agent":"MultiAgent","Concurrency":"Parallel","Constraints":"(none)","Dynamics":"Environment","Events":"Events","Goals":"(none)","Initialization":"(none)","Memory":"History","Observability":"PartiallyObservable","Renderability":"(none)","Value":"Rewards"}},{"name":"RLDomain","characteristics":{"Agent":"SingleAgent","Concurrency":"Sequential","Constraints":"(none)","Dynamics":"Environment","Events":"Actions","Goals":"(none)","Initialization":"Initializable","Memory":"Markovian","Observability":"TransformedObservable","Renderability":"(none)","Value":"Rewards"}},{"name":"MultiAgentRLDomain","characteristics":{"Agent":"MultiAgent","Concurrency":"Sequential","Constraints":"(none)","Dynamics":"Environment","Events":"Actions","Goals":"(none)","Initialization":"Initializable","Memory":"Markovian","Observability":"TransformedObservable","Renderability":"(none)","Value":"Rewards"}},{"name":"StatelessSimulatorDomain","characteristics":{"Agent":"SingleAgent","Concurrency":"Sequential","Constraints":"(none)","Dynamics":"Simulation","Events":"Actions","Goals":"(none)","Initialization":"(none)","Memory":"Markovian","Observability":"TransformedObservable","Renderability":"(none)","Value":"Rewards"}},{"name":"MDPDomain","characteristics":{"Agent":"SingleAgent","Concurrency":"Sequential","Constraints":"(none)","Dynamics":"EnumerableTransitions","Events":"Actions","Goals":"(none)","Initialization":"DeterministicInitialized","Memory":"Markovian","Observability":"FullyObservable","Renderability":"(none)","Value":"Rewards"}},{"name":"POMDPDomain","characteristics":{"Agent":"SingleAgent","Concurrency":"Sequential","Constraints":"(none)","Dynamics":"EnumerableTransitions","Events":"Actions","Goals":"(none)","Initialization":"UncertainInitialized","Memory":"Markovian","Observability":"PartiallyObservable","Renderability":"(none)","Value":"Rewards"}},{"name":"GoalMDPDomain","characteristics":{"Agent":"SingleAgent","Concurrency":"Sequential","Constraints":"(none)","Dynamics":"EnumerableTransitions","Events":"Actions","Goals":"Goals","Initialization":"DeterministicInitialized","Memory":"Markovian","Observability":"FullyObservable","Renderability":"(none)","Value":"PositiveCosts"}},{"name":"GoalPOMDPDomain","characteristics":{"Agent":"SingleAgent","Concurrency":"Sequential","Constraints":"(none)","Dynamics":"EnumerableTransitions","Events":"Actions","Goals":"Goals","Initialization":"UncertainInitialized","Memory":"Markovian","Observability":"PartiallyObservable","Renderability":"(none)","Value":"PositiveCosts"}},{"name":"DeterministicPlanningDomain","characteristics":{"Agent":"SingleAgent","Concurrency":"Sequential","Constraints":"(none)","Dynamics":"DeterministicTransitions","Events":"Actions","Goals":"Goals","Initialization":"DeterministicInitialized","Memory":"Markovian","Observability":"FullyObservable","Renderability":"(none)","Value":"PositiveCosts"}}],"solver":[{"name":"Solver","characteristics":{"Assessability":"(none)","Parallelability":"(none)","Policy":"(none)","Restorability":"(none)"}},{"name":"DeterministicPolicySolver","characteristics":{"Assessability":"(none)","Parallelability":"(none)","Policy":"DeterministicPolicies","Restorability":"(none)"}}]},"characteristics":{"domain":[{"name":"Agent","levels":["MultiAgent","SingleAgent"]},{"name":"Concurrency","levels":["Parallel","Sequential"]},{"name":"Constraints","levels":["(none)","Constrained"]},{"name":"Dynamics","levels":["Environment","Simulation","UncertainTransitions","EnumerableTransitions","DeterministicTransitions"]},{"name":"Events","levels":["Events","Actions","UnrestrictedActions"]},{"name":"Goals","levels":["(none)","Goals"]},{"name":"Initialization","levels":["(none)","Initializable","UncertainInitialized","DeterministicInitialized"]},{"name":"Memory","levels":["History","FiniteHistory","Markovian","Memoryless"]},{"name":"Observability","levels":["PartiallyObservable","TransformedObservable","FullyObservable"]},{"name":"Renderability","levels":["(none)","Renderable"]},{"name":"Value","levels":["Rewards","PositiveCosts"]}],"solver":[{"name":"Assessability","levels":["(none)","Utilities","QValues"]},{"name":"Parallelability","levels":["(none)","ParallelSolver"]},{"name":"Policy","levels":["(none)","Policies","UncertainPolicies","DeterministicPolicies"]},{"name":"Restorability","levels":["(none)","Restorable"]}]},"methods":{"domain":{"MultiAgent":[],"SingleAgent":[],"Parallel":[],"Sequential":[],"Constrained":["_get_constraints_"],"Environment":["_state_step"],"Simulation":["_state_sample"],"UncertainTransitions":["_is_terminal","_get_transition_value","_get_next_state_distribution"],"EnumerableTransitions":["_is_terminal","_get_transition_value","_get_next_state_distribution"],"DeterministicTransitions":["_get_transition_value","_is_terminal","_get_next_state"],"Events":["_get_enabled_events_from","_get_applicable_actions_from","_get_action_space_"],"Actions":["_get_applicable_actions_from","_get_action_space_"],"UnrestrictedActions":["_get_action_space_"],"Goals":["_get_goals_"],"Initializable":["_state_reset"],"UncertainInitialized":["_get_initial_state_distribution_"],"DeterministicInitialized":["_get_initial_state_"],"History":[],"FiniteHistory":["_get_memory_maxlen_"],"Markovian":[],"Memoryless":[],"PartiallyObservable":["_get_observation_space_","_get_observation_distribution"],"TransformedObservable":["_get_observation_space_","_get_observation"],"FullyObservable":["_get_observation_space_"],"Renderable":["_render_from"],"Rewards":[],"PositiveCosts":[],"domain":[]},"solver":{"Utilities":["_get_utility"],"QValues":["_get_q_value","_get_utility"],"ParallelSolver":[],"Policies":["_is_policy_defined_for","_sample_action"],"UncertainPolicies":["_get_next_action_distribution","_is_policy_defined_for"],"DeterministicPolicies":["_get_next_action","_is_policy_defined_for"],"Restorable":["_save","_load"],"solver":["_solve_domain"]}},"types":{"domain":{"MultiAgent":{"T_agent":"skdecide.core.StrDict"},"SingleAgent":{"T_agent":"typing.Union"},"Parallel":{"T_concurrency":"typing.List"},"Sequential":{"T_concurrency":"typing.Union"},"Constrained":{},"Environment":{},"Simulation":{},"UncertainTransitions":{},"EnumerableTransitions":{},"DeterministicTransitions":{},"Events":{},"Actions":{},"UnrestrictedActions":{},"Goals":{},"Initializable":{},"UncertainInitialized":{},"DeterministicInitialized":{},"History":{"T_memory":"skdecide.core.Memory"},"FiniteHistory":{"T_memory":"skdecide.core.Memory"},"Markovian":{"T_memory":"typing.Union"},"Memoryless":{"T_memory":"typing.Union"},"PartiallyObservable":{},"TransformedObservable":{},"FullyObservable":{},"Renderable":{},"Rewards":{},"PositiveCosts":{}},"solver":{"Utilities":{},"QValues":{},"ParallelSolver":{},"Policies":{},"UncertainPolicies":{},"DeterministicPolicies":{},"Restorable":{}}},"signatures":{"domain":{"get_constraints":{"params":[{"name":"self"}],"return":"List[Constraint[D.T_memory[D.T_state], D.T_agent[D.T_concurrency[D.T_event]], D.T_state]]"},"_get_constraints":{"params":[{"name":"self"}],"return":"List[Constraint[D.T_memory[D.T_state], D.T_agent[D.T_concurrency[D.T_event]], D.T_state]]"},"_get_constraints_":{"params":[{"name":"self"}],"return":"List[Constraint[D.T_memory[D.T_state], D.T_agent[D.T_concurrency[D.T_event]], D.T_state]]"},"step":{"params":[{"name":"self"},{"name":"action","annotation":"D.T_agent[D.T_concurrency[D.T_event]]"}],"return":"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"},"_step":{"params":[{"name":"self"},{"name":"action","annotation":"D.T_agent[D.T_concurrency[D.T_event]]"}],"return":"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"},"_state_step":{"params":[{"name":"self"},{"name":"action","annotation":"D.T_agent[D.T_concurrency[D.T_event]]"}],"return":"TransitionOutcome[D.T_state, D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"},"set_memory":{"params":[{"name":"self"},{"name":"memory","annotation":"D.T_memory[D.T_state]"}],"return":"None"},"_set_memory":{"params":[{"name":"self"},{"name":"memory","annotation":"D.T_memory[D.T_state]"}],"return":"None"},"sample":{"params":[{"name":"self"},{"name":"memory","annotation":"D.T_memory[D.T_state]"},{"name":"action","annotation":"D.T_agent[D.T_concurrency[D.T_event]]"}],"return":"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"},"_sample":{"params":[{"name":"self"},{"name":"memory","annotation":"D.T_memory[D.T_state]"},{"name":"action","annotation":"D.T_agent[D.T_concurrency[D.T_event]]"}],"return":"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"},"_state_sample":{"params":[{"name":"self"},{"name":"memory","annotation":"D.T_memory[D.T_state]"},{"name":"action","annotation":"D.T_agent[D.T_concurrency[D.T_event]]"}],"return":"TransitionOutcome[D.T_state, D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"},"get_next_state_distribution":{"params":[{"name":"self"},{"name":"memory","annotation":"D.T_memory[D.T_state]"},{"name":"action","annotation":"D.T_agent[D.T_concurrency[D.T_event]]"}],"return":"DiscreteDistribution[D.T_state]"},"_get_next_state_distribution":{"params":[{"name":"self"},{"name":"memory","annotation":"D.T_memory[D.T_state]"},{"name":"action","annotation":"D.T_agent[D.T_concurrency[D.T_event]]"}],"return":"SingleValueDistribution[D.T_state]"},"get_transition_value":{"params":[{"name":"self"},{"name":"memory","annotation":"D.T_memory[D.T_state]"},{"name":"action","annotation":"D.T_agent[D.T_concurrency[D.T_event]]"},{"name":"next_state","default":"None","annotation":"Optional[D.T_state]"}],"return":"D.T_agent[Value[D.T_value]]"},"_get_transition_value":{"params":[{"name":"self"},{"name":"memory","annotation":"D.T_memory[D.T_state]"},{"name":"action","annotation":"D.T_agent[D.T_concurrency[D.T_event]]"},{"name":"next_state","default":"None","annotation":"Optional[D.T_state]"}],"return":"D.T_agent[Value[D.T_value]]"},"is_transition_value_dependent_on_next_state":{"params":[{"name":"self"}],"return":"bool"},"_is_transition_value_dependent_on_next_state":{"params":[{"name":"self"}],"return":"bool"},"_is_transition_value_dependent_on_next_state_":{"params":[{"name":"self"}],"return":"bool"},"is_terminal":{"params":[{"name":"self"},{"name":"state","annotation":"D.T_state"}],"return":"D.T_agent[D.T_predicate]"},"_is_terminal":{"params":[{"name":"self"},{"name":"state","annotation":"D.T_state"}],"return":"D.T_agent[D.T_predicate]"},"get_next_state":{"params":[{"name":"self"},{"name":"memory","annotation":"D.T_memory[D.T_state]"},{"name":"action","annotation":"D.T_agent[D.T_concurrency[D.T_event]]"}],"return":"D.T_state"},"_get_next_state":{"params":[{"name":"self"},{"name":"memory","annotation":"D.T_memory[D.T_state]"},{"name":"action","annotation":"D.T_agent[D.T_concurrency[D.T_event]]"}],"return":"D.T_state"},"get_enabled_events":{"params":[{"name":"self"},{"name":"memory","default":"None","annotation":"Optional[D.T_memory[D.T_state]]"}],"return":"Space[D.T_event]"},"_get_enabled_events":{"params":[{"name":"self"},{"name":"memory","default":"None","annotation":"Optional[D.T_memory[D.T_state]]"}],"return":"Space[D.T_event]"},"_get_enabled_events_from":{"params":[{"name":"self"},{"name":"memory","annotation":"D.T_memory[D.T_state]"}],"return":"Space[D.T_event]"},"is_enabled_event":{"params":[{"name":"self"},{"name":"event","annotation":"D.T_event"},{"name":"memory","default":"None","annotation":"Optional[D.T_memory[D.T_state]]"}],"return":"bool"},"_is_enabled_event":{"params":[{"name":"self"},{"name":"event","annotation":"D.T_event"},{"name":"memory","default":"None","annotation":"Optional[D.T_memory[D.T_state]]"}],"return":"bool"},"_is_enabled_event_from":{"params":[{"name":"self"},{"name":"event","annotation":"D.T_event"},{"name":"memory","annotation":"D.T_memory[D.T_state]"}],"return":"bool"},"get_action_space":{"params":[{"name":"self"}],"return":"D.T_agent[Space[D.T_event]]"},"_get_action_space":{"params":[{"name":"self"}],"return":"D.T_agent[Space[D.T_event]]"},"_get_action_space_":{"params":[{"name":"self"}],"return":"D.T_agent[Space[D.T_event]]"},"is_action":{"params":[{"name":"self"},{"name":"event","annotation":"D.T_event"}],"return":"bool"},"_is_action":{"params":[{"name":"self"},{"name":"event","annotation":"D.T_event"}],"return":"bool"},"get_applicable_actions":{"params":[{"name":"self"},{"name":"memory","default":"None","annotation":"Optional[D.T_memory[D.T_state]]"}],"return":"D.T_agent[Space[D.T_event]]"},"_get_applicable_actions":{"params":[{"name":"self"},{"name":"memory","default":"None","annotation":"Optional[D.T_memory[D.T_state]]"}],"return":"D.T_agent[Space[D.T_event]]"},"_get_applicable_actions_from":{"params":[{"name":"self"},{"name":"memory","annotation":"D.T_memory[D.T_state]"}],"return":"D.T_agent[Space[D.T_event]]"},"is_applicable_action":{"params":[{"name":"self"},{"name":"action","annotation":"D.T_agent[D.T_event]"},{"name":"memory","default":"None","annotation":"Optional[D.T_memory[D.T_state]]"}],"return":"bool"},"_is_applicable_action":{"params":[{"name":"self"},{"name":"action","annotation":"D.T_agent[D.T_event]"},{"name":"memory","default":"None","annotation":"Optional[D.T_memory[D.T_state]]"}],"return":"bool"},"_is_applicable_action_from":{"params":[{"name":"self"},{"name":"action","annotation":"D.T_agent[D.T_event]"},{"name":"memory","annotation":"D.T_memory[D.T_state]"}],"return":"bool"},"get_goals":{"params":[{"name":"self"}],"return":"D.T_agent[Space[D.T_observation]]"},"_get_goals":{"params":[{"name":"self"}],"return":"D.T_agent[Space[D.T_observation]]"},"_get_goals_":{"params":[{"name":"self"}],"return":"D.T_agent[Space[D.T_observation]]"},"is_goal":{"params":[{"name":"self"},{"name":"observation","annotation":"D.T_agent[D.T_observation]"}],"return":"D.T_agent[D.T_predicate]"},"_is_goal":{"params":[{"name":"self"},{"name":"observation","annotation":"D.T_agent[D.T_observation]"}],"return":"D.T_agent[D.T_predicate]"},"reset":{"params":[{"name":"self"}],"return":"D.T_agent[D.T_observation]"},"_reset":{"params":[{"name":"self"}],"return":"D.T_agent[D.T_observation]"},"_state_reset":{"params":[{"name":"self"}],"return":"D.T_state"},"get_initial_state_distribution":{"params":[{"name":"self"}],"return":"Distribution[D.T_state]"},"_get_initial_state_distribution":{"params":[{"name":"self"}],"return":"Distribution[D.T_state]"},"_get_initial_state_distribution_":{"params":[{"name":"self"}],"return":"Distribution[D.T_state]"},"get_initial_state":{"params":[{"name":"self"}],"return":"D.T_state"},"_get_initial_state":{"params":[{"name":"self"}],"return":"D.T_state"},"_get_initial_state_":{"params":[{"name":"self"}],"return":"D.T_state"},"_init_memory":{"params":[{"name":"self"},{"name":"state","default":"None","annotation":"Optional[D.T_state]"}],"return":"D.T_memory[D.T_state]"},"_get_memory_maxlen":{"params":[{"name":"self"}],"return":"int"},"_get_memory_maxlen_":{"params":[{"name":"self"}],"return":"int"},"get_observation_space":{"params":[{"name":"self"}],"return":"D.T_agent[Space[D.T_observation]]"},"_get_observation_space":{"params":[{"name":"self"}],"return":"D.T_agent[Space[D.T_observation]]"},"_get_observation_space_":{"params":[{"name":"self"}],"return":"D.T_agent[Space[D.T_observation]]"},"is_observation":{"params":[{"name":"self"},{"name":"observation","annotation":"D.T_agent[D.T_observation]"}],"return":"bool"},"_is_observation":{"params":[{"name":"self"},{"name":"observation","annotation":"D.T_agent[D.T_observation]"}],"return":"bool"},"get_observation_distribution":{"params":[{"name":"self"},{"name":"state","annotation":"D.T_state"},{"name":"action","default":"None","annotation":"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],"return":"Distribution[D.T_agent[D.T_observation]]"},"_get_observation_distribution":{"params":[{"name":"self"},{"name":"state","annotation":"D.T_state"},{"name":"action","default":"None","annotation":"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],"return":"Distribution[D.T_agent[D.T_observation]]"},"get_observation":{"params":[{"name":"self"},{"name":"state","annotation":"D.T_state"},{"name":"action","default":"None","annotation":"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],"return":"D.T_agent[D.T_observation]"},"_get_observation":{"params":[{"name":"self"},{"name":"state","annotation":"D.T_state"},{"name":"action","default":"None","annotation":"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],"return":"D.T_agent[D.T_observation]"},"render":{"params":[{"name":"self"},{"name":"memory","default":"None","annotation":"Optional[D.T_memory[D.T_state]]"},{"name":"**kwargs","annotation":"Any"}],"return":"Any"},"_render":{"params":[{"name":"self"},{"name":"memory","default":"None","annotation":"Optional[D.T_memory[D.T_state]]"},{"name":"**kwargs","annotation":"Any"}],"return":"Any"},"_render_from":{"params":[{"name":"self"},{"name":"memory","annotation":"D.T_memory[D.T_state]"},{"name":"**kwargs","annotation":"Any"}],"return":"Any"},"check_value":{"params":[{"name":"self"},{"name":"value","annotation":"Value[D.T_value]"}],"return":"bool"},"_check_value":{"params":[{"name":"self"},{"name":"value","annotation":"Value[D.T_value]"}],"return":"bool"},"_is_positive":{"params":[{"name":"self"},{"name":"cost","annotation":"D.T_value"}],"return":"bool"}},"solver":{"get_utility":{"params":[{"name":"self"},{"name":"observation","annotation":"D.T_agent[D.T_observation]"}],"return":"D.T_value"},"_get_utility":{"params":[{"name":"self"},{"name":"observation","annotation":"D.T_agent[D.T_observation]"}],"return":"D.T_value"},"get_q_value":{"params":[{"name":"self"},{"name":"observation","annotation":"D.T_agent[D.T_observation]"},{"name":"action","annotation":"D.T_agent[D.T_concurrency[D.T_event]]"}],"return":"D.T_value"},"_get_q_value":{"params":[{"name":"self"},{"name":"observation","annotation":"D.T_agent[D.T_observation]"},{"name":"action","annotation":"D.T_agent[D.T_concurrency[D.T_event]]"}],"return":"D.T_value"},"ParallelSolver":{"params":[{"name":"domain_factory","annotation":"Callable[[], Domain]"},{"name":"parallel","default":"False","annotation":"bool"},{"name":"shared_memory_proxy","default":"None"}]},"_initialize":{"params":[{"name":"self"}]},"close":{"params":[{"name":"self"}]},"get_domain":{"params":[{"name":"self"}]},"call_domain_method":{"params":[{"name":"self"},{"name":"name"},{"name":"*args"}]},"sample_action":{"params":[{"name":"self"},{"name":"observation","annotation":"D.T_agent[D.T_observation]"}],"return":"D.T_agent[D.T_concurrency[D.T_event]]"},"_sample_action":{"params":[{"name":"self"},{"name":"observation","annotation":"D.T_agent[D.T_observation]"}],"return":"D.T_agent[D.T_concurrency[D.T_event]]"},"is_policy_defined_for":{"params":[{"name":"self"},{"name":"observation","annotation":"D.T_agent[D.T_observation]"}],"return":"bool"},"_is_policy_defined_for":{"params":[{"name":"self"},{"name":"observation","annotation":"D.T_agent[D.T_observation]"}],"return":"bool"},"get_next_action_distribution":{"params":[{"name":"self"},{"name":"observation","annotation":"D.T_agent[D.T_observation]"}],"return":"Distribution[D.T_agent[D.T_concurrency[D.T_event]]]"},"_get_next_action_distribution":{"params":[{"name":"self"},{"name":"observation","annotation":"D.T_agent[D.T_observation]"}],"return":"Distribution[D.T_agent[D.T_concurrency[D.T_event]]]"},"get_next_action":{"params":[{"name":"self"},{"name":"observation","annotation":"D.T_agent[D.T_observation]"}],"return":"D.T_agent[D.T_concurrency[D.T_event]]"},"_get_next_action":{"params":[{"name":"self"},{"name":"observation","annotation":"D.T_agent[D.T_observation]"}],"return":"D.T_agent[D.T_concurrency[D.T_event]]"},"save":{"params":[{"name":"self"},{"name":"path","annotation":"str"}],"return":"None"},"_save":{"params":[{"name":"self"},{"name":"path","annotation":"str"}],"return":"None"},"load":{"params":[{"name":"self"},{"name":"path","annotation":"str"},{"name":"domain_factory","annotation":"Callable[[], D]"}],"return":"None"},"_load":{"params":[{"name":"self"},{"name":"path","annotation":"str"},{"name":"domain_factory","annotation":"Callable[[], D]"}],"return":"None"},"_solve_domain":{"params":[{"name":"self"},{"name":"domain_factory","annotation":"Callable[[], D]"}],"return":"None"}}},"objects":{"Space":"/reference/_skdecide.core.html#space","ImplicitSpace":"/reference/_skdecide.core.html#implicitspace","EnumerableSpace":"/reference/_skdecide.core.html#enumerablespace","EmptySpace":"/reference/_skdecide.core.html#emptyspace","SamplableSpace":"/reference/_skdecide.core.html#samplablespace","SerializableSpace":"/reference/_skdecide.core.html#serializablespace","Distribution":"/reference/_skdecide.core.html#distribution","ImplicitDistribution":"/reference/_skdecide.core.html#implicitdistribution","DiscreteDistribution":"/reference/_skdecide.core.html#discretedistribution","SingleValueDistribution":"/reference/_skdecide.core.html#singlevaluedistribution","Value":"/reference/_skdecide.core.html#value","EnvironmentOutcome":"/reference/_skdecide.core.html#environmentoutcome","TransitionOutcome":"/reference/_skdecide.core.html#transitionoutcome","StrDict":"/reference/_skdecide.core.html#strdict","Constraint":"/reference/_skdecide.core.html#constraint","ImplicitConstraint":"/reference/_skdecide.core.html#implicitconstraint","BoundConstraint":"/reference/_skdecide.core.html#boundconstraint"}}')},function(e,t,i){function n(t){return"function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?(e.exports=n=function(e){return typeof e},e.exports.default=e.exports,e.exports.__esModule=!0):(e.exports=n=function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e.exports.default=e.exports,e.exports.__esModule=!0),n(t)}i(42),i(52),i(14),i(82),i(18),i(23),e.exports=n,e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t,i){"use strict";var n=i(1),r=i(104).indexOf,s=i(40),a=[].indexOf,o=!!a&&1/[1].indexOf(1,-0)<0,l=s("indexOf");n({target:"Array",proto:!0,forced:o||!l},{indexOf:function(e){return o?a.apply(this,arguments)||0:r(this,e,arguments.length>1?arguments[1]:void 0)}})},function(e,t,i){var n=i(8),r=i(34),s=i(4)("match");e.exports=function(e){var t;return n(e)&&(void 0!==(t=e[s])?!!t:"RegExp"==r(e))}},function(e,t,i){var n=i(2),r=i(3).RegExp;t.UNSUPPORTED_Y=n((function(){var e=r("a","y");return e.lastIndex=2,null!=e.exec("abcd")})),t.BROKEN_CARET=n((function(){var e=r("^r","gy");return e.lastIndex=2,null!=e.exec("str")}))},function(e,t,i){"use strict";i(56);var n=i(13),r=i(97),s=i(2),a=i(4),o=i(32),l=a("species"),u=RegExp.prototype;e.exports=function(e,t,i,c){var d=a(e),h=!s((function(){var t={};return t[d]=function(){return 7},7!=""[e](t)})),p=h&&!s((function(){var t=!1,i=/a/;return"split"===e&&((i={}).constructor={},i.constructor[l]=function(){return i},i.flags="",i[d]=/./[d]),i.exec=function(){return t=!0,null},i[d](""),!t}));if(!h||!p||i){var f=/./[d],m=t(d,""[e],(function(e,t,i,n,s){var a=t.exec;return a===r||a===u.exec?h&&!s?{done:!0,value:f.call(t,i,n)}:{done:!0,value:e.call(i,t,n)}:{done:!1}}));n(String.prototype,e,m[0]),n(u,d,m[1])}c&&o(u[d],"sham",!0)}},function(e,t,i){"use strict";var n=i(162).charAt;e.exports=function(e,t,i){return t+(i?n(e,t).length:1)}},function(e,t,i){var n=i(9),r=i(5),s=i(34),a=i(97);e.exports=function(e,t){var i=e.exec;if(r(i)){var o=i.call(e,t);return null!==o&&n(o),o}if("RegExp"===s(e))return a.call(e,t);throw TypeError("RegExp#exec called on incompatible receiver")}},function(e,t,i){"use strict";var n=i(1),r=i(47),s=i(16),a=i(40),o=[].join,l=r!=Object,u=a("join",",");n({target:"Array",proto:!0,forced:l||!u},{join:function(e){return o.call(s(this),void 0===e?",":e)}})},function(e,t,i){"use strict";var n,r=i(1),s=i(26).f,a=i(21),o=i(20),l=i(135),u=i(28),c=i(136),d=i(30),h="".startsWith,p=Math.min,f=c("startsWith");r({target:"String",proto:!0,forced:!!(d||f||(n=s(String.prototype,"startsWith"),!n||n.writable))&&!f},{startsWith:function(e){var t=o(u(this));l(e);var i=a(p(arguments.length>1?arguments[1]:void 0,t.length)),n=o(e);return h?h.call(t,n,i):t.slice(i,i+n.length)===n}})},function(e,t,i){var n=i(28),r=i(20),s="["+i(224)+"]",a=RegExp("^"+s+s+"*"),o=RegExp(s+s+"*$"),l=function(e){return function(t){var i=r(n(t));return 1&e&&(i=i.replace(a,"")),2&e&&(i=i.replace(o,"")),i}};e.exports={start:l(1),end:l(2),trim:l(3)}},function(e,t){e.exports="\t\n\v\f\r                 \u2028\u2029\ufeff"},function(e,t,i){"use strict";var n=i(62).PROPER,r=i(13),s=i(9),a=i(20),o=i(2),l=i(137),u=RegExp.prototype,c=u.toString,d=o((function(){return"/a/b"!=c.call({source:"a",flags:"b"})})),h=n&&"toString"!=c.name;(d||h)&&r(RegExp.prototype,"toString",(function(){var e=s(this),t=a(e.source),i=e.flags;return"/"+t+"/"+a(void 0===i&&e instanceof RegExp&&!("flags"in u)?l.call(e):i)}),{unsafe:!0})},function(e,t,i){"use strict";var n=i(17),r=i(11),s=i(4),a=i(7),o=s("species");e.exports=function(e){var t=n(e),i=r.f;a&&t&&!t[o]&&i(t,o,{configurable:!0,get:function(){return this}})}},function(e,t,i){var n=i(2),r=i(3).RegExp;e.exports=n((function(){var e=r(".","s");return!(e.dotAll&&e.exec("\n")&&"s"===e.flags)}))},function(e,t,i){var n=i(2),r=i(3).RegExp;e.exports=n((function(){var e=r("(?b)","g");return"b"!==e.exec("b").groups.a||"bc"!=="b".replace(e,"$c")}))},function(e,t,i){"use strict";var n=i(1),r=i(104).includes,s=i(99);n({target:"Array",proto:!0},{includes:function(e){return r(this,e,arguments.length>1?arguments[1]:void 0)}}),s("includes")},function(e,t,i){"use strict";var n=i(1),r=i(135),s=i(28),a=i(20);n({target:"String",proto:!0,forced:!i(136)("includes")},{includes:function(e){return!!~a(s(this)).indexOf(a(r(e)),arguments.length>1?arguments[1]:void 0)}})},function(e,t,i){var n=i(194);e.exports=function(e,t,i){var r=null==e?void 0:n(e,t);return void 0===r?i:r}},function(e,t){e.exports=function(e){var t=null==e?0:e.length;return t?e[t-1]:void 0}},function(e,t,i){var n=i(7),r=i(48),s=i(16),a=i(72).f,o=function(e){return function(t){for(var i,o=s(t),l=r(o),u=l.length,c=0,d=[];u>c;)i=l[c++],n&&!a.call(o,i)||d.push(e?[i,o[i]]:o[i]);return d}};e.exports={entries:o(!0),values:o(!1)}},function(e,t,i){var n=i(5),r=i(8),s=i(74);e.exports=function(e,t,i){var a,o;return s&&n(a=t.constructor)&&a!==i&&r(o=a.prototype)&&o!==i.prototype&&s(e,o),e}},function(e,t,i){e.exports=i(421)},function(e,t,i){var n=i(5),r=i(8);e.exports=function(e,t){var i,s;if("string"===t&&n(i=e.toString)&&!r(s=i.call(e)))return s;if(n(i=e.valueOf)&&!r(s=i.call(e)))return s;if("string"!==t&&n(i=e.toString)&&!r(s=i.call(e)))return s;throw TypeError("Can't convert object to primitive value")}},function(e,t,i){var n=i(3),r=i(5),s=i(71),a=n.WeakMap;e.exports=r(a)&&/native code/.test(s(a))},function(e,t,i){"use strict";var n=i(150).IteratorPrototype,r=i(27),s=i(51),a=i(73),o=i(50),l=function(){return this};e.exports=function(e,t,i){var u=t+" Iterator";return e.prototype=r(n,{next:s(1,i)}),a(e,u,!1,!0),o[u]=l,e}},function(e,t,i){var n=i(5);e.exports=function(e){if("object"==typeof e||n(e))return e;throw TypeError("Can't set "+String(e)+" as a prototype")}},function(e,t,i){"use strict";var n,r,s,a,o=i(1),l=i(30),u=i(3),c=i(17),d=i(152),h=i(13),p=i(241),f=i(74),m=i(73),v=i(226),g=i(31),_=i(5),b=i(8),y=i(242),x=i(71),k=i(243),w=i(156),C=i(131),S=i(158).set,O=i(244),D=i(160),E=i(247),T=i(161),$=i(248),P=i(39),j=i(100),M=i(4),I=i(249),A=i(78),N=i(44),L=M("species"),F="Promise",V=P.get,z=P.set,R=P.getterFor(F),B=d&&d.prototype,H=d,W=B,q=u.TypeError,U=u.document,G=u.process,Y=T.f,K=Y,X=!!(U&&U.createEvent&&u.dispatchEvent),Z=_(u.PromiseRejectionEvent),Q=!1,J=j(F,(function(){var e=x(H),t=e!==String(H);if(!t&&66===N)return!0;if(l&&!W.finally)return!0;if(N>=51&&/native code/.test(e))return!1;var i=new H((function(e){e(1)})),n=function(e){e((function(){}),(function(){}))};return(i.constructor={})[L]=n,!(Q=i.then((function(){}))instanceof n)||!t&&I&&!Z})),ee=J||!w((function(e){H.all(e).catch((function(){}))})),te=function(e){var t;return!(!b(e)||!_(t=e.then))&&t},ie=function(e,t){if(!e.notified){e.notified=!0;var i=e.reactions;O((function(){for(var n=e.value,r=1==e.state,s=0;i.length>s;){var a,o,l,u=i[s++],c=r?u.ok:u.fail,d=u.resolve,h=u.reject,p=u.domain;try{c?(r||(2===e.rejection&&ae(e),e.rejection=1),!0===c?a=n:(p&&p.enter(),a=c(n),p&&(p.exit(),l=!0)),a===u.promise?h(q("Promise-chain cycle")):(o=te(a))?o.call(a,d,h):d(a)):h(n)}catch(e){p&&!l&&p.exit(),h(e)}}e.reactions=[],e.notified=!1,t&&!e.rejection&&re(e)}))}},ne=function(e,t,i){var n,r;X?((n=U.createEvent("Event")).promise=t,n.reason=i,n.initEvent(e,!1,!0),u.dispatchEvent(n)):n={promise:t,reason:i},!Z&&(r=u["on"+e])?r(n):"unhandledrejection"===e&&E("Unhandled promise rejection",i)},re=function(e){S.call(u,(function(){var t,i=e.facade,n=e.value;if(se(e)&&(t=$((function(){A?G.emit("unhandledRejection",n,i):ne("unhandledrejection",i,n)})),e.rejection=A||se(e)?2:1,t.error))throw t.value}))},se=function(e){return 1!==e.rejection&&!e.parent},ae=function(e){S.call(u,(function(){var t=e.facade;A?G.emit("rejectionHandled",t):ne("rejectionhandled",t,e.value)}))},oe=function(e,t,i){return function(n){e(t,n,i)}},le=function(e,t,i){e.done||(e.done=!0,i&&(e=i),e.value=t,e.state=2,ie(e,!0))},ue=function(e,t,i){if(!e.done){e.done=!0,i&&(e=i);try{if(e.facade===t)throw q("Promise can't be resolved itself");var n=te(t);n?O((function(){var i={done:!1};try{n.call(t,oe(ue,i,e),oe(le,i,e))}catch(t){le(i,t,e)}})):(e.value=t,e.state=1,ie(e,!1))}catch(t){le({done:!1},t,e)}}};if(J&&(W=(H=function(e){y(this,H,F),g(e),n.call(this);var t=V(this);try{e(oe(ue,t),oe(le,t))}catch(e){le(t,e)}}).prototype,(n=function(e){z(this,{type:F,done:!1,notified:!1,parent:!1,reactions:[],rejection:!1,state:0,value:void 0})}).prototype=p(W,{then:function(e,t){var i=R(this),n=Y(C(this,H));return n.ok=!_(e)||e,n.fail=_(t)&&t,n.domain=A?G.domain:void 0,i.parent=!0,i.reactions.push(n),0!=i.state&&ie(i,!1),n.promise},catch:function(e){return this.then(void 0,e)}}),r=function(){var e=new n,t=V(e);this.promise=e,this.resolve=oe(ue,t),this.reject=oe(le,t)},T.f=Y=function(e){return e===H||e===s?new r(e):K(e)},!l&&_(d)&&B!==Object.prototype)){a=B.then,Q||(h(B,"then",(function(e,t){var i=this;return new H((function(e,t){a.call(i,e,t)})).then(e,t)}),{unsafe:!0}),h(B,"catch",W.catch,{unsafe:!0}));try{delete B.constructor}catch(e){}f&&f(B,W)}o({global:!0,wrap:!0,forced:J},{Promise:H}),m(H,F,!1,!0),v(F),s=c(F),o({target:F,stat:!0,forced:J},{reject:function(e){var t=Y(this);return t.reject.call(void 0,e),t.promise}}),o({target:F,stat:!0,forced:l||J},{resolve:function(e){return D(l&&this===s?H:this,e)}}),o({target:F,stat:!0,forced:ee},{all:function(e){var t=this,i=Y(t),n=i.resolve,r=i.reject,s=$((function(){var i=g(t.resolve),s=[],a=0,o=1;k(e,(function(e){var l=a++,u=!1;s.push(void 0),o++,i.call(t,e).then((function(e){u||(u=!0,s[l]=e,--o||n(s))}),r)})),--o||n(s)}));return s.error&&r(s.value),i.promise},race:function(e){var t=this,i=Y(t),n=i.reject,r=$((function(){var r=g(t.resolve);k(e,(function(e){r.call(t,e).then(i.resolve,n)}))}));return r.error&&n(r.value),i.promise}})},function(e,t,i){var n=i(13);e.exports=function(e,t,i){for(var r in t)n(e,r,t[r],i);return e}},function(e,t){e.exports=function(e,t,i){if(e instanceof t)return e;throw TypeError("Incorrect "+(i?i+" ":"")+"invocation")}},function(e,t,i){var n=i(9),r=i(153),s=i(21),a=i(75),o=i(154),l=i(108),u=i(155),c=function(e,t){this.stopped=e,this.result=t};e.exports=function(e,t,i){var d,h,p,f,m,v,g,_=i&&i.that,b=!(!i||!i.AS_ENTRIES),y=!(!i||!i.IS_ITERATOR),x=!(!i||!i.INTERRUPTED),k=a(t,_,1+b+x),w=function(e){return d&&u(d,"normal",e),new c(!0,e)},C=function(e){return b?(n(e),x?k(e[0],e[1],w):k(e[0],e[1])):x?k(e,w):k(e)};if(y)d=e;else{if(!(h=l(e)))throw TypeError(String(e)+" is not iterable");if(r(h)){for(p=0,f=s(e.length);f>p;p++)if((m=C(e[p]))&&m instanceof c)return m;return new c(!1)}d=o(e,h)}for(v=d.next;!(g=v.call(d)).done;){try{m=C(g.value)}catch(e){u(d,"throw",e)}if("object"==typeof m&&m&&m instanceof c)return m}return new c(!1)}},function(e,t,i){var n,r,s,a,o,l,u,c,d=i(3),h=i(26).f,p=i(158).set,f=i(159),m=i(245),v=i(246),g=i(78),_=d.MutationObserver||d.WebKitMutationObserver,b=d.document,y=d.process,x=d.Promise,k=h(d,"queueMicrotask"),w=k&&k.value;w||(n=function(){var e,t;for(g&&(e=y.domain)&&e.exit();r;){t=r.fn,r=r.next;try{t()}catch(e){throw r?a():s=void 0,e}}s=void 0,e&&e.enter()},f||g||v||!_||!b?!m&&x&&x.resolve?((u=x.resolve(void 0)).constructor=x,c=u.then,a=function(){c.call(u,n)}):a=g?function(){y.nextTick(n)}:function(){p.call(d,n)}:(o=!0,l=b.createTextNode(""),new _(n).observe(l,{characterData:!0}),a=function(){l.data=o=!o})),e.exports=w||function(e){var t={fn:e,next:void 0};s&&(s.next=t),r||(r=t,a()),s=t}},function(e,t,i){var n=i(60),r=i(3);e.exports=/ipad|iphone|ipod/i.test(n)&&void 0!==r.Pebble},function(e,t,i){var n=i(60);e.exports=/web0s(?!.*chrome)/i.test(n)},function(e,t,i){var n=i(3);e.exports=function(e,t){var i=n.console;i&&i.error&&(1===arguments.length?i.error(e):i.error(e,t))}},function(e,t){e.exports=function(e){try{return{error:!1,value:e()}}catch(e){return{error:!0,value:e}}}},function(e,t){e.exports="object"==typeof window},function(e,t,i){var n=i(1),r=i(251);n({target:"Object",stat:!0,forced:Object.assign!==r},{assign:r})},function(e,t,i){"use strict";var n=i(7),r=i(2),s=i(48),a=i(106),o=i(72),l=i(15),u=i(47),c=Object.assign,d=Object.defineProperty;e.exports=!c||r((function(){if(n&&1!==c({b:1},c(d({},"a",{enumerable:!0,get:function(){d(this,"b",{value:3,enumerable:!1})}}),{b:2})).b)return!0;var e={},t={},i=Symbol();return e[i]=7,"abcdefghijklmnopqrst".split("").forEach((function(e){t[e]=e})),7!=c({},e)[i]||"abcdefghijklmnopqrst"!=s(c({},t)).join("")}))?function(e,t){for(var i=l(e),r=arguments.length,c=1,d=a.f,h=o.f;r>c;)for(var p,f=u(arguments[c++]),m=d?s(f).concat(d(f)):s(f),v=m.length,g=0;v>g;)p=m[g++],n&&!h.call(f,p)||(i[p]=f[p]);return i}:c},function(e,t,i){"use strict";var n=i(1),r=i(30),s=i(152),a=i(2),o=i(17),l=i(5),u=i(131),c=i(160),d=i(13);if(n({target:"Promise",proto:!0,real:!0,forced:!!s&&a((function(){s.prototype.finally.call({then:function(){}},(function(){}))}))},{finally:function(e){var t=u(this,o("Promise")),i=l(e);return this.then(i?function(i){return c(t,e()).then((function(){return i}))}:e,i?function(i){return c(t,e()).then((function(){throw i}))}:e)}}),!r&&l(s)){var h=o("Promise").prototype.finally;s.prototype.finally!==h&&d(s.prototype,"finally",h,{unsafe:!0})}},function(e,t,i){"use strict";var n=i(109),r=i(76);e.exports=n?{}.toString:function(){return"[object "+r(this)+"]"}},function(e,t,i){var n=i(43),r=i(77),s=i(8),a=i(4)("species");e.exports=function(e){var t;return n(e)&&(t=e.constructor,(r(t)&&(t===Array||n(t.prototype))||s(t)&&null===(t=t[a]))&&(t=void 0)),void 0===t?Array:t}},function(e,t,i){"use strict";var n=i(1),r=i(256).left,s=i(40),a=i(44),o=i(78);n({target:"Array",proto:!0,forced:!s("reduce")||!o&&a>79&&a<83},{reduce:function(e){return r(this,e,arguments.length,arguments.length>1?arguments[1]:void 0)}})},function(e,t,i){var n=i(31),r=i(15),s=i(47),a=i(21),o=function(e){return function(t,i,o,l){n(i);var u=r(t),c=s(u),d=a(u.length),h=e?d-1:0,p=e?-1:1;if(o<2)for(;;){if(h in c){l=c[h],h+=p;break}if(h+=p,e?h<0:d<=h)throw TypeError("Reduce of empty array with no initial value")}for(;e?h>=0:d>h;h+=p)h in c&&(l=i(l,c[h],h,u));return l}};e.exports={left:o(!1),right:o(!0)}},function(e,t,i){var n=i(1),r=i(169),s=i(2),a=i(8),o=i(258).onFreeze,l=Object.freeze;n({target:"Object",stat:!0,forced:s((function(){l(1)})),sham:!r},{freeze:function(e){return l&&a(e)?l(o(e)):e}})},function(e,t,i){var n=i(1),r=i(49),s=i(8),a=i(10),o=i(11).f,l=i(45),u=i(170),c=i(65),d=i(169),h=!1,p=c("meta"),f=0,m=Object.isExtensible||function(){return!0},v=function(e){o(e,p,{value:{objectID:"O"+f++,weakData:{}}})},g=e.exports={enable:function(){g.enable=function(){},h=!0;var e=l.f,t=[].splice,i={};i[p]=1,e(i).length&&(l.f=function(i){for(var n=e(i),r=0,s=n.length;r1?arguments[1]:void 0,f=void 0!==p;f&&(p=n(p,h>2?arguments[2]:void 0,2));var m,v,g,_,b,y,x=d(t),k=0;if(!x||this==Array&&a(x))for(m=l(t.length),v=i?new this(m):Array(m);m>k;k++)y=f?p(t[k],k):t[k],u(v,k,y);else for(b=(_=c(t,x)).next,v=i?new this:[];!(g=b.call(_)).done;k++)y=f?s(_,p,[g.value,k],!0):g.value,u(v,k,y);return v.length=k,v}},function(e,t,i){var n=i(9),r=i(155);e.exports=function(e,t,i,s){try{return s?t(n(i)[0],i[1]):t(i)}catch(t){r(e,"throw",t)}}},function(e,t,i){var n=i(15),r=Math.floor,s="".replace,a=/\$([$&'`]|\d{1,2}|<[^>]*>)/g,o=/\$([$&'`]|\d{1,2})/g;e.exports=function(e,t,i,l,u,c){var d=i+e.length,h=l.length,p=o;return void 0!==u&&(u=n(u),p=a),s.call(c,p,(function(n,s){var a;switch(s.charAt(0)){case"$":return"$";case"&":return e;case"`":return t.slice(0,i);case"'":return t.slice(d);case"<":a=u[s.slice(1,-1)];break;default:var o=+s;if(0===o)return n;if(o>h){var c=r(o/10);return 0===c?n:c<=h?void 0===l[c-1]?s.charAt(1):l[c-1]+s.charAt(1):n}a=l[o-1]}return void 0===a?"":a}))}},function(e,t,i){var n=i(175),r=i(264);e.exports=function e(t,i,s,a,o){var l=-1,u=t.length;for(s||(s=r),o||(o=[]);++l0&&s(c)?i>1?e(c,i-1,s,a,o):n(o,c):a||(o[o.length]=c)}return o}},function(e,t,i){var n=i(53),r=i(110),s=i(22),a=n?n.isConcatSpreadable:void 0;e.exports=function(e){return s(e)||r(e)||!!(a&&e&&e[a])}},function(e,t,i){var n=i(46),r=i(41);e.exports=function(e){return r(e)&&"[object Arguments]"==n(e)}},function(e,t,i){var n=i(53),r=Object.prototype,s=r.hasOwnProperty,a=r.toString,o=n?n.toStringTag:void 0;e.exports=function(e){var t=s.call(e,o),i=e[o];try{e[o]=void 0;var n=!0}catch(e){}var r=a.call(e);return n&&(t?e[o]=i:delete e[o]),r}},function(e,t){var i=Object.prototype.toString;e.exports=function(e){return i.call(e)}},function(e,t,i){var n=i(269),r=i(325),s=i(118),a=i(22),o=i(335);e.exports=function(e){return"function"==typeof e?e:null==e?s:"object"==typeof e?a(e)?r(e[0],e[1]):n(e):o(e)}},function(e,t,i){var n=i(270),r=i(324),s=i(193);e.exports=function(e){var t=r(e);return 1==t.length&&t[0][2]?s(t[0][0],t[0][1]):function(i){return i===e||n(i,e,t)}}},function(e,t,i){var n=i(177),r=i(181);e.exports=function(e,t,i,s){var a=i.length,o=a,l=!s;if(null==e)return!o;for(e=Object(e);a--;){var u=i[a];if(l&&u[2]?u[1]!==e[u[0]]:!(u[0]in e))return!1}for(;++a-1}},function(e,t,i){var n=i(84);e.exports=function(e,t){var i=this.__data__,r=n(i,e);return r<0?(++this.size,i.push([e,t])):i[r][1]=t,this}},function(e,t,i){var n=i(83);e.exports=function(){this.__data__=new n,this.size=0}},function(e,t){e.exports=function(e){var t=this.__data__,i=t.delete(e);return this.size=t.size,i}},function(e,t){e.exports=function(e){return this.__data__.get(e)}},function(e,t){e.exports=function(e){return this.__data__.has(e)}},function(e,t,i){var n=i(83),r=i(111),s=i(113);e.exports=function(e,t){var i=this.__data__;if(i instanceof n){var a=i.__data__;if(!r||a.length<199)return a.push([e,t]),this.size=++i.size,this;i=this.__data__=new s(a)}return i.set(e,t),this.size=i.size,this}},function(e,t,i){var n=i(179),r=i(282),s=i(112),a=i(180),o=/^\[object .+?Constructor\]$/,l=Function.prototype,u=Object.prototype,c=l.toString,d=u.hasOwnProperty,h=RegExp("^"+c.call(d).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");e.exports=function(e){return!(!s(e)||r(e))&&(n(e)?h:o).test(a(e))}},function(e,t,i){var n,r=i(283),s=(n=/[^.]+$/.exec(r&&r.keys&&r.keys.IE_PROTO||""))?"Symbol(src)_1."+n:"";e.exports=function(e){return!!s&&s in e}},function(e,t,i){var n=i(24)["__core-js_shared__"];e.exports=n},function(e,t){e.exports=function(e,t){return null==e?void 0:e[t]}},function(e,t,i){var n=i(286),r=i(83),s=i(111);e.exports=function(){this.size=0,this.__data__={hash:new n,map:new(s||r),string:new n}}},function(e,t,i){var n=i(287),r=i(288),s=i(289),a=i(290),o=i(291);function l(e){var t=-1,i=null==e?0:e.length;for(this.clear();++t0){if(++t>=800)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}},function(e,t,i){var n=i(183),r=i(347),s=i(352),a=i(184),o=i(353),l=i(114);e.exports=function(e,t,i){var u=-1,c=r,d=e.length,h=!0,p=[],f=p;if(i)h=!1,c=s;else if(d>=200){var m=t?null:o(e);if(m)return l(m);h=!1,c=a,f=new n}else f=t?[]:p;e:for(;++u-1}},function(e,t,i){var n=i(349),r=i(350),s=i(351);e.exports=function(e,t,i){return t==t?s(e,t,i):n(e,r,i)}},function(e,t){e.exports=function(e,t,i,n){for(var r=e.length,s=i+(n?1:-1);n?s--:++s1?arguments[1]:void 0)}}),s("findIndex")},function(e,t,i){var n=i(1),r=i(233).values;n({target:"Object",stat:!0},{values:function(e){return r(e)}})},function(e,t,i){"use strict";t.__esModule=!0,t.validateRangeInOneMonth=t.extractTimeFormat=t.extractDateFormat=t.nextYear=t.prevYear=t.nextMonth=t.prevMonth=t.changeYearMonthAndClampDate=t.timeWithinRange=t.limitTimeRange=t.clearMilliseconds=t.clearTime=t.modifyWithTimeString=t.modifyTime=t.modifyDate=t.range=t.getRangeMinutes=t.getMonthDays=t.getPrevMonthLastDays=t.getRangeHours=t.getWeekNumber=t.getStartDateOfMonth=t.nextDate=t.prevDate=t.getFirstDayOfMonth=t.getDayCountOfYear=t.getDayCountOfMonth=t.parseDate=t.formatDate=t.isDateObject=t.isDate=t.toDate=t.getI18nSettings=void 0;var n,r=i(196),s=(n=r)&&n.__esModule?n:{default:n},a=i(120);var o=["sun","mon","tue","wed","thu","fri","sat"],l=["jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec"],u=t.getI18nSettings=function(){return{dayNamesShort:o.map((function(e){return(0,a.t)("el.datepicker.weeks."+e)})),dayNames:o.map((function(e){return(0,a.t)("el.datepicker.weeks."+e)})),monthNamesShort:l.map((function(e){return(0,a.t)("el.datepicker.months."+e)})),monthNames:l.map((function(e,t){return(0,a.t)("el.datepicker.month"+(t+1))})),amPm:["am","pm"]}},c=t.toDate=function(e){return d(e)?new Date(e):null},d=t.isDate=function(e){return null!=e&&(!isNaN(new Date(e).getTime())&&!Array.isArray(e))},h=(t.isDateObject=function(e){return e instanceof Date},t.formatDate=function(e,t){return(e=c(e))?s.default.format(e,t||"yyyy-MM-dd",u()):""},t.parseDate=function(e,t){return s.default.parse(e,t||"yyyy-MM-dd",u())}),p=t.getDayCountOfMonth=function(e,t){return 3===t||5===t||8===t||10===t?30:1===t?e%4==0&&e%100!=0||e%400==0?29:28:31},f=(t.getDayCountOfYear=function(e){return e%400==0||e%100!=0&&e%4==0?366:365},t.getFirstDayOfMonth=function(e){var t=new Date(e.getTime());return t.setDate(1),t.getDay()},t.prevDate=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;return new Date(e.getFullYear(),e.getMonth(),e.getDate()-t)});t.nextDate=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;return new Date(e.getFullYear(),e.getMonth(),e.getDate()+t)},t.getStartDateOfMonth=function(e,t){var i=new Date(e,t,1),n=i.getDay();return f(i,0===n?7:n)},t.getWeekNumber=function(e){if(!d(e))return null;var t=new Date(e.getTime());t.setHours(0,0,0,0),t.setDate(t.getDate()+3-(t.getDay()+6)%7);var i=new Date(t.getFullYear(),0,4);return 1+Math.round(((t.getTime()-i.getTime())/864e5-3+(i.getDay()+6)%7)/7)},t.getRangeHours=function(e){var t=[],i=[];if((e||[]).forEach((function(e){var t=e.map((function(e){return e.getHours()}));i=i.concat(function(e,t){for(var i=[],n=e;n<=t;n++)i.push(n);return i}(t[0],t[1]))})),i.length)for(var n=0;n<24;n++)t[n]=-1===i.indexOf(n);else for(var r=0;r<24;r++)t[r]=!1;return t},t.getPrevMonthLastDays=function(e,t){if(t<=0)return[];var i=new Date(e.getTime());i.setDate(0);var n=i.getDate();return v(t).map((function(e,i){return n-(t-i-1)}))},t.getMonthDays=function(e){var t=new Date(e.getFullYear(),e.getMonth()+1,0).getDate();return v(t).map((function(e,t){return t+1}))};function m(e,t,i,n){for(var r=t;r0?e.forEach((function(e){var n=e[0],r=e[1],s=n.getHours(),a=n.getMinutes(),o=r.getHours(),l=r.getMinutes();s===t&&o!==t?m(i,a,60,!0):s===t&&o===t?m(i,a,l+1,!0):s!==t&&o===t?m(i,0,l+1,!0):st&&m(i,0,60,!0)})):m(i,0,60,!0),i};var v=t.range=function(e){return Array.apply(null,{length:e}).map((function(e,t){return t}))},g=t.modifyDate=function(e,t,i,n){return new Date(t,i,n,e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds())},_=t.modifyTime=function(e,t,i,n){return new Date(e.getFullYear(),e.getMonth(),e.getDate(),t,i,n,e.getMilliseconds())},b=(t.modifyWithTimeString=function(e,t){return null!=e&&t?(t=h(t,"HH:mm:ss"),_(e,t.getHours(),t.getMinutes(),t.getSeconds())):e},t.clearTime=function(e){return new Date(e.getFullYear(),e.getMonth(),e.getDate())},t.clearMilliseconds=function(e){return new Date(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours(),e.getMinutes(),e.getSeconds(),0)},t.limitTimeRange=function(e,t){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"HH:mm:ss";if(0===t.length)return e;var n=function(e){return s.default.parse(s.default.format(e,i),i)},r=n(e),a=t.map((function(e){return e.map(n)}));if(a.some((function(e){return r>=e[0]&&r<=e[1]})))return e;var o=a[0][0],l=a[0][0];a.forEach((function(e){o=new Date(Math.min(e[0],o)),l=new Date(Math.max(e[1],o))}));var u=r1&&void 0!==arguments[1]?arguments[1]:1,i=e.getFullYear(),n=e.getMonth();return y(e,i-t,n)},t.nextYear=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,i=e.getFullYear(),n=e.getMonth();return y(e,i+t,n)},t.extractDateFormat=function(e){return e.replace(/\W?m{1,2}|\W?ZZ/g,"").replace(/\W?h{1,2}|\W?s{1,3}|\W?a/gi,"").trim()},t.extractTimeFormat=function(e){return e.replace(/\W?D{1,2}|\W?Do|\W?d{1,4}|\W?M{1,4}|\W?y{2,4}/g,"").trim()},t.validateRangeInOneMonth=function(e,t){return e.getMonth()===t.getMonth()&&e.getFullYear()===t.getFullYear()}},function(e,t,i){"use strict";t.__esModule=!0,t.default={el:{colorpicker:{confirm:"确定",clear:"清空"},datepicker:{now:"此刻",today:"今天",cancel:"取消",clear:"清空",confirm:"确定",selectDate:"选择日期",selectTime:"选择时间",startDate:"开始日期",startTime:"开始时间",endDate:"结束日期",endTime:"结束时间",prevYear:"前一年",nextYear:"后一年",prevMonth:"上个月",nextMonth:"下个月",year:"年",month1:"1 月",month2:"2 月",month3:"3 月",month4:"4 月",month5:"5 月",month6:"6 月",month7:"7 月",month8:"8 月",month9:"9 月",month10:"10 月",month11:"11 月",month12:"12 月",weeks:{sun:"日",mon:"一",tue:"二",wed:"三",thu:"四",fri:"五",sat:"六"},months:{jan:"一月",feb:"二月",mar:"三月",apr:"四月",may:"五月",jun:"六月",jul:"七月",aug:"八月",sep:"九月",oct:"十月",nov:"十一月",dec:"十二月"}},select:{loading:"加载中",noMatch:"无匹配数据",noData:"无数据",placeholder:"请选择"},cascader:{noMatch:"无匹配数据",loading:"加载中",placeholder:"请选择",noData:"暂无数据"},pagination:{goto:"前往",pagesize:"条/页",total:"共 {total} 条",pageClassifier:"页"},messagebox:{title:"提示",confirm:"确定",cancel:"取消",error:"输入的数据不合法!"},upload:{deleteTip:"按 delete 键可删除",delete:"删除",preview:"查看图片",continue:"继续上传"},table:{emptyText:"暂无数据",confirmFilter:"筛选",resetFilter:"重置",clearFilter:"全部",sumText:"合计"},tree:{emptyText:"暂无数据"},transfer:{noMatch:"无匹配数据",noData:"无数据",titles:["列表 1","列表 2"],filterPlaceholder:"请输入搜索内容",noCheckedFormat:"共 {total} 项",hasCheckedFormat:"已选 {checked}/{total} 项"},image:{error:"加载失败"},pageHeader:{title:"返回"},popconfirm:{confirmButtonText:"确定",cancelButtonText:"取消"},empty:{description:"暂无数据"}}}},function(e,t,i){"use strict";var n=function(e){return function(e){return!!e&&"object"==typeof e}(e)&&!function(e){var t=Object.prototype.toString.call(e);return"[object RegExp]"===t||"[object Date]"===t||function(e){return e.$$typeof===r}(e)}(e)};var r="function"==typeof Symbol&&Symbol.for?Symbol.for("react.element"):60103;function s(e,t){var i;return t&&!0===t.clone&&n(e)?o((i=e,Array.isArray(i)?[]:{}),e,t):e}function a(e,t,i){var r=e.slice();return t.forEach((function(t,a){void 0===r[a]?r[a]=s(t,i):n(t)?r[a]=o(e[a],t,i):-1===e.indexOf(t)&&r.push(s(t,i))})),r}function o(e,t,i){var r=Array.isArray(t);return r===Array.isArray(e)?r?((i||{arrayMerge:a}).arrayMerge||a)(e,t,i):function(e,t,i){var r={};return n(e)&&Object.keys(e).forEach((function(t){r[t]=s(e[t],i)})),Object.keys(t).forEach((function(a){n(t[a])&&e[a]?r[a]=o(e[a],t[a],i):r[a]=s(t[a],i)})),r}(e,t,i):s(t,i)}o.all=function(e,t){if(!Array.isArray(e)||e.length<2)throw new Error("first argument should be an array with at least two elements");return e.reduce((function(e,i){return o(e,i,t)}))};var l=o;e.exports=l},function(e,t,i){"use strict";t.__esModule=!0;var n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};t.default=function(e){return function(e){for(var t=arguments.length,i=Array(t>1?t-1:0),a=1;a0){var n=t[t.length-1];if(n.id===e){if(n.modalClass)n.modalClass.trim().split(/\s+/).forEach((function(e){return(0,a.removeClass)(i,e)}));t.pop(),t.length>0&&(i.style.zIndex=t[t.length-1].zIndex)}else for(var r=t.length-1;r>=0;r--)if(t[r].id===e){t.splice(r,1);break}}0===t.length&&(this.modalFade&&(0,a.addClass)(i,"v-modal-leave"),setTimeout((function(){0===t.length&&(i.parentNode&&i.parentNode.removeChild(i),i.style.display="none",h.modalDom=void 0),(0,a.removeClass)(i,"v-modal-leave")}),200))}};Object.defineProperty(h,"zIndex",{configurable:!0,get:function(){return l||(u=u||(s.default.prototype.$ELEMENT||{}).zIndex||2e3,l=!0),u},set:function(e){u=e}});s.default.prototype.$isServer||window.addEventListener("keydown",(function(e){if(27===e.keyCode){var t=function(){if(!s.default.prototype.$isServer&&h.modalStack.length>0){var e=h.modalStack[h.modalStack.length-1];if(!e)return;return h.getInstance(e.id)}}();t&&t.closeOnPressEscape&&(t.handleClose?t.handleClose():t.handleAction?t.handleAction("cancel"):t.close())}})),t.default=h},function(e,t,i){"use strict";var n,r;"function"==typeof Symbol&&Symbol.iterator;void 0===(r="function"==typeof(n=function(){var e=window,t={placement:"bottom",gpuAcceleration:!0,offset:0,boundariesElement:"viewport",boundariesPadding:5,preventOverflowOrder:["left","right","top","bottom"],flipBehavior:"flip",arrowElement:"[x-arrow]",arrowOffset:0,modifiers:["shift","offset","preventOverflow","keepTogether","arrow","flip","applyStyle"],modifiersIgnored:[],forceAbsolute:!1};function i(e,i,n){this._reference=e.jquery?e[0]:e,this.state={};var r=null==i,s=i&&"[object Object]"===Object.prototype.toString.call(i);return this._popper=r||s?this.parse(s?i:{}):i.jquery?i[0]:i,this._options=Object.assign({},t,n),this._options.modifiers=this._options.modifiers.map(function(e){if(-1===this._options.modifiersIgnored.indexOf(e))return"applyStyle"===e&&this._popper.setAttribute("x-placement",this._options.placement),this.modifiers[e]||e}.bind(this)),this.state.position=this._getPosition(this._popper,this._reference),c(this._popper,{position:this.state.position,top:0}),this.update(),this._setupEventListeners(),this}function n(t){var i=t.style.display,n=t.style.visibility;t.style.display="block",t.style.visibility="hidden",t.offsetWidth;var r=e.getComputedStyle(t),s=parseFloat(r.marginTop)+parseFloat(r.marginBottom),a=parseFloat(r.marginLeft)+parseFloat(r.marginRight),o={width:t.offsetWidth+a,height:t.offsetHeight+s};return t.style.display=i,t.style.visibility=n,o}function r(e){var t={left:"right",right:"left",bottom:"top",top:"bottom"};return e.replace(/left|right|bottom|top/g,(function(e){return t[e]}))}function s(e){var t=Object.assign({},e);return t.right=t.left+t.width,t.bottom=t.top+t.height,t}function a(e,t){var i,n=0;for(i in e){if(e[i]===t)return n;n++}return null}function o(t,i){return e.getComputedStyle(t,null)[i]}function l(t){var i=t.offsetParent;return i!==e.document.body&&i?i:e.document.documentElement}function u(t){var i=t.parentNode;return i?i===e.document?e.document.body.scrollTop||e.document.body.scrollLeft?e.document.body:e.document.documentElement:-1!==["scroll","auto"].indexOf(o(i,"overflow"))||-1!==["scroll","auto"].indexOf(o(i,"overflow-x"))||-1!==["scroll","auto"].indexOf(o(i,"overflow-y"))?i:u(t.parentNode):t}function c(e,t){Object.keys(t).forEach((function(i){var n,r="";-1!==["width","height","top","right","bottom","left"].indexOf(i)&&""!==(n=t[i])&&!isNaN(parseFloat(n))&&isFinite(n)&&(r="px"),e.style[i]=t[i]+r}))}function d(e){var t={width:e.offsetWidth,height:e.offsetHeight,left:e.offsetLeft,top:e.offsetTop};return t.right=t.left+t.width,t.bottom=t.top+t.height,t}function h(e){var t=e.getBoundingClientRect(),i=-1!=navigator.userAgent.indexOf("MSIE")&&"HTML"===e.tagName?-e.scrollTop:t.top;return{left:t.left,top:i,right:t.right,bottom:t.bottom,width:t.right-t.left,height:t.bottom-i}}function p(t){for(var i=["","ms","webkit","moz","o"],n=0;n1&&console.warn("WARNING: the given `parent` query("+t.parent+") matched more than one element, the first one will be used"),0===a.length)throw"ERROR: the given `parent` doesn't exists!";a=a[0]}return a.length>1&&a instanceof Element==0&&(console.warn("WARNING: you have passed as parent a list of elements, the first one will be used"),a=a[0]),a.appendChild(r),r;function o(e,t){t.forEach((function(t){e.classList.add(t)}))}function l(e,t){t.forEach((function(t){e.setAttribute(t.split(":")[0],t.split(":")[1]||"")}))}},i.prototype._getPosition=function(t,i){return l(i),this._options.forceAbsolute?"absolute":function t(i){return i!==e.document.body&&("fixed"===o(i,"position")||(i.parentNode?t(i.parentNode):i))}(i)?"fixed":"absolute"},i.prototype._getOffsets=function(e,t,i){i=i.split("-")[0];var r={};r.position=this.state.position;var s="fixed"===r.position,a=function(e,t,i){var n=h(e),r=h(t);if(i){var s=u(t);r.top+=s.scrollTop,r.bottom+=s.scrollTop,r.left+=s.scrollLeft,r.right+=s.scrollLeft}return{top:n.top-r.top,left:n.left-r.left,bottom:n.top-r.top+n.height,right:n.left-r.left+n.width,width:n.width,height:n.height}}(t,l(e),s),o=n(e);return-1!==["right","left"].indexOf(i)?(r.top=a.top+a.height/2-o.height/2,r.left="left"===i?a.left-o.width:a.right):(r.left=a.left+a.width/2-o.width/2,r.top="top"===i?a.top-o.height:a.bottom),r.width=o.width,r.height=o.height,{popper:r,reference:a}},i.prototype._setupEventListeners=function(){if(this.state.updateBound=this.update.bind(this),e.addEventListener("resize",this.state.updateBound),"window"!==this._options.boundariesElement){var t=u(this._reference);t!==e.document.body&&t!==e.document.documentElement||(t=e),t.addEventListener("scroll",this.state.updateBound),this.state.scrollTarget=t}},i.prototype._removeEventListeners=function(){e.removeEventListener("resize",this.state.updateBound),"window"!==this._options.boundariesElement&&this.state.scrollTarget&&(this.state.scrollTarget.removeEventListener("scroll",this.state.updateBound),this.state.scrollTarget=null),this.state.updateBound=null},i.prototype._getBoundaries=function(t,i,n){var r,s,a={};if("window"===n){var o=e.document.body,c=e.document.documentElement;r=Math.max(o.scrollHeight,o.offsetHeight,c.clientHeight,c.scrollHeight,c.offsetHeight),a={top:0,right:Math.max(o.scrollWidth,o.offsetWidth,c.clientWidth,c.scrollWidth,c.offsetWidth),bottom:r,left:0}}else if("viewport"===n){var h=l(this._popper),p=u(this._popper),f=d(h),m="fixed"===t.offsets.popper.position?0:(s=p)==document.body?Math.max(document.documentElement.scrollTop,document.body.scrollTop):s.scrollTop,v="fixed"===t.offsets.popper.position?0:function(e){return e==document.body?Math.max(document.documentElement.scrollLeft,document.body.scrollLeft):e.scrollLeft}(p);a={top:0-(f.top-m),right:e.document.documentElement.clientWidth-(f.left-v),bottom:e.document.documentElement.clientHeight-(f.top-m),left:0-(f.left-v)}}else a=l(this._popper)===n?{top:0,left:0,right:n.clientWidth,bottom:n.clientHeight}:d(n);return a.left+=i,a.right-=i,a.top=a.top+i,a.bottom=a.bottom-i,a},i.prototype.runModifiers=function(e,t,i){var n=t.slice();return void 0!==i&&(n=this._options.modifiers.slice(0,a(this._options.modifiers,i))),n.forEach(function(t){var i;(i=t)&&"[object Function]"==={}.toString.call(i)&&(e=t.call(this,e))}.bind(this)),e},i.prototype.isModifierRequired=function(e,t){var i=a(this._options.modifiers,e);return!!this._options.modifiers.slice(0,i).filter((function(e){return e===t})).length},i.prototype.modifiers={},i.prototype.modifiers.applyStyle=function(e){var t,i={position:e.offsets.popper.position},n=Math.round(e.offsets.popper.left),r=Math.round(e.offsets.popper.top);return this._options.gpuAcceleration&&(t=p("transform"))?(i[t]="translate3d("+n+"px, "+r+"px, 0)",i.top=0,i.left=0):(i.left=n,i.top=r),Object.assign(i,e.styles),c(this._popper,i),this._popper.setAttribute("x-placement",e.placement),this.isModifierRequired(this.modifiers.applyStyle,this.modifiers.arrow)&&e.offsets.arrow&&c(e.arrowElement,e.offsets.arrow),e},i.prototype.modifiers.shift=function(e){var t=e.placement,i=t.split("-")[0],n=t.split("-")[1];if(n){var r=e.offsets.reference,a=s(e.offsets.popper),o={y:{start:{top:r.top},end:{top:r.top+r.height-a.height}},x:{start:{left:r.left},end:{left:r.left+r.width-a.width}}},l=-1!==["bottom","top"].indexOf(i)?"x":"y";e.offsets.popper=Object.assign(a,o[l][n])}return e},i.prototype.modifiers.preventOverflow=function(e){var t=this._options.preventOverflowOrder,i=s(e.offsets.popper),n={left:function(){var t=i.left;return i.lefte.boundaries.right&&(t=Math.min(i.left,e.boundaries.right-i.width)),{left:t}},top:function(){var t=i.top;return i.tope.boundaries.bottom&&(t=Math.min(i.top,e.boundaries.bottom-i.height)),{top:t}}};return t.forEach((function(t){e.offsets.popper=Object.assign(i,n[t]())})),e},i.prototype.modifiers.keepTogether=function(e){var t=s(e.offsets.popper),i=e.offsets.reference,n=Math.floor;return t.rightn(i.right)&&(e.offsets.popper.left=n(i.right)),t.bottomn(i.bottom)&&(e.offsets.popper.top=n(i.bottom)),e},i.prototype.modifiers.flip=function(e){if(!this.isModifierRequired(this.modifiers.flip,this.modifiers.preventOverflow))return console.warn("WARNING: preventOverflow modifier is required by flip modifier in order to work, be sure to include it before flip!"),e;if(e.flipped&&e.placement===e._originalPlacement)return e;var t=e.placement.split("-")[0],i=r(t),n=e.placement.split("-")[1]||"",a=[];return(a="flip"===this._options.flipBehavior?[t,i]:this._options.flipBehavior).forEach(function(o,l){if(t===o&&a.length!==l+1){t=e.placement.split("-")[0],i=r(t);var u=s(e.offsets.popper),c=-1!==["right","bottom"].indexOf(t);(c&&Math.floor(e.offsets.reference[t])>Math.floor(u[i])||!c&&Math.floor(e.offsets.reference[t])o[p]&&(e.offsets.popper[d]+=l[d]+f-o[p]);var m=l[d]+(i||l[c]/2-f/2)-o[d];return m=Math.max(Math.min(o[c]-f-8,m),8),r[d]=m,r[h]="",e.offsets.arrow=r,e.arrowElement=t,e},Object.assign||Object.defineProperty(Object,"assign",{enumerable:!1,configurable:!0,writable:!0,value:function(e){if(null==e)throw new TypeError("Cannot convert first argument to object");for(var t=Object(e),i=1;i0},e.prototype.connect_=function(){r&&!this.connected_&&(document.addEventListener("transitionend",this.onTransitionEnd_),window.addEventListener("resize",this.refresh),l?(this.mutationsObserver_=new MutationObserver(this.refresh),this.mutationsObserver_.observe(document,{attributes:!0,childList:!0,characterData:!0,subtree:!0})):(document.addEventListener("DOMSubtreeModified",this.refresh),this.mutationEventsAdded_=!0),this.connected_=!0)},e.prototype.disconnect_=function(){r&&this.connected_&&(document.removeEventListener("transitionend",this.onTransitionEnd_),window.removeEventListener("resize",this.refresh),this.mutationsObserver_&&this.mutationsObserver_.disconnect(),this.mutationEventsAdded_&&document.removeEventListener("DOMSubtreeModified",this.refresh),this.mutationsObserver_=null,this.mutationEventsAdded_=!1,this.connected_=!1)},e.prototype.onTransitionEnd_=function(e){var t=e.propertyName,i=void 0===t?"":t;o.some((function(e){return!!~i.indexOf(e)}))&&this.refresh()},e.getInstance=function(){return this.instance_||(this.instance_=new e),this.instance_},e.instance_=null,e}(),c=function(e,t){for(var i=0,n=Object.keys(t);i0},e}(),k="undefined"!=typeof WeakMap?new WeakMap:new n,w=function e(t){if(!(this instanceof e))throw new TypeError("Cannot call a class as a function.");if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");var i=u.getInstance(),n=new x(t,i,this);k.set(this,n)};["observe","unobserve","disconnect"].forEach((function(e){w.prototype[e]=function(){var t;return(t=k.get(this))[e].apply(t,arguments)}}));var C=void 0!==s.ResizeObserver?s.ResizeObserver:w;t.default=C},function(e,t,i){"use strict";t.__esModule=!0;var n=i(25);var r=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e)}return e.prototype.beforeEnter=function(e){(0,n.addClass)(e,"collapse-transition"),e.dataset||(e.dataset={}),e.dataset.oldPaddingTop=e.style.paddingTop,e.dataset.oldPaddingBottom=e.style.paddingBottom,e.style.height="0",e.style.paddingTop=0,e.style.paddingBottom=0},e.prototype.enter=function(e){e.dataset.oldOverflow=e.style.overflow,0!==e.scrollHeight?(e.style.height=e.scrollHeight+"px",e.style.paddingTop=e.dataset.oldPaddingTop,e.style.paddingBottom=e.dataset.oldPaddingBottom):(e.style.height="",e.style.paddingTop=e.dataset.oldPaddingTop,e.style.paddingBottom=e.dataset.oldPaddingBottom),e.style.overflow="hidden"},e.prototype.afterEnter=function(e){(0,n.removeClass)(e,"collapse-transition"),e.style.height="",e.style.overflow=e.dataset.oldOverflow},e.prototype.beforeLeave=function(e){e.dataset||(e.dataset={}),e.dataset.oldPaddingTop=e.style.paddingTop,e.dataset.oldPaddingBottom=e.style.paddingBottom,e.dataset.oldOverflow=e.style.overflow,e.style.height=e.scrollHeight+"px",e.style.overflow="hidden"},e.prototype.leave=function(e){0!==e.scrollHeight&&((0,n.addClass)(e,"collapse-transition"),e.style.height=0,e.style.paddingTop=0,e.style.paddingBottom=0)},e.prototype.afterLeave=function(e){(0,n.removeClass)(e,"collapse-transition"),e.style.height="",e.style.overflow=e.dataset.oldOverflow,e.style.paddingTop=e.dataset.oldPaddingTop,e.style.paddingBottom=e.dataset.oldPaddingBottom},e}();t.default={name:"ElCollapseTransition",functional:!0,render:function(e,t){var i=t.children;return e("transition",{on:new r},i)}}},function(e,t,i){"use strict";t.__esModule=!0;var n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};t.isVNode=function(e){return null!==e&&"object"===(void 0===e?"undefined":n(e))&&(0,r.hasOwn)(e,"componentOptions")};var r=i(19)},function(e,t,i){e.exports=function(e){var t={};function i(n){if(t[n])return t[n].exports;var r=t[n]={i:n,l:!1,exports:{}};return e[n].call(r.exports,r,r.exports,i),r.l=!0,r.exports}return i.m=e,i.c=t,i.d=function(e,t,n){i.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},i.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.t=function(e,t){if(1&t&&(e=i(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(i.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)i.d(n,r,function(t){return e[t]}.bind(null,r));return n},i.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(t,"a",t),t},i.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},i.p="/dist/",i(i.s=140)}({140:function(e,t,i){"use strict";i.r(t);var n=i(5),r=i.n(n),s=i(18),a=i.n(s),o=i(2),l=i(3),u=i(7),c=i.n(u),d={name:"ElTooltip",mixins:[r.a],props:{openDelay:{type:Number,default:0},disabled:Boolean,manual:Boolean,effect:{type:String,default:"dark"},arrowOffset:{type:Number,default:0},popperClass:String,content:String,visibleArrow:{default:!0},transition:{type:String,default:"el-fade-in-linear"},popperOptions:{default:function(){return{boundariesPadding:10,gpuAcceleration:!1}}},enterable:{type:Boolean,default:!0},hideAfter:{type:Number,default:0},tabindex:{type:Number,default:0}},data:function(){return{tooltipId:"el-tooltip-"+Object(l.generateId)(),timeoutPending:null,focusing:!1}},beforeCreate:function(){var e=this;this.$isServer||(this.popperVM=new c.a({data:{node:""},render:function(e){return this.node}}).$mount(),this.debounceClose=a()(200,(function(){return e.handleClosePopper()})))},render:function(e){var t=this;this.popperVM&&(this.popperVM.node=e("transition",{attrs:{name:this.transition},on:{afterLeave:this.doDestroy}},[e("div",{on:{mouseleave:function(){t.setExpectedState(!1),t.debounceClose()},mouseenter:function(){t.setExpectedState(!0)}},ref:"popper",attrs:{role:"tooltip",id:this.tooltipId,"aria-hidden":this.disabled||!this.showPopper?"true":"false"},directives:[{name:"show",value:!this.disabled&&this.showPopper}],class:["el-tooltip__popper","is-"+this.effect,this.popperClass]},[this.$slots.content||this.content])]));var i=this.getFirstElement();if(!i)return null;var n=i.data=i.data||{};return n.staticClass=this.addTooltipClass(n.staticClass),i},mounted:function(){var e=this;this.referenceElm=this.$el,1===this.$el.nodeType&&(this.$el.setAttribute("aria-describedby",this.tooltipId),this.$el.setAttribute("tabindex",this.tabindex),Object(o.on)(this.referenceElm,"mouseenter",this.show),Object(o.on)(this.referenceElm,"mouseleave",this.hide),Object(o.on)(this.referenceElm,"focus",(function(){if(e.$slots.default&&e.$slots.default.length){var t=e.$slots.default[0].componentInstance;t&&t.focus?t.focus():e.handleFocus()}else e.handleFocus()})),Object(o.on)(this.referenceElm,"blur",this.handleBlur),Object(o.on)(this.referenceElm,"click",this.removeFocusing)),this.value&&this.popperVM&&this.popperVM.$nextTick((function(){e.value&&e.updatePopper()}))},watch:{focusing:function(e){e?Object(o.addClass)(this.referenceElm,"focusing"):Object(o.removeClass)(this.referenceElm,"focusing")}},methods:{show:function(){this.setExpectedState(!0),this.handleShowPopper()},hide:function(){this.setExpectedState(!1),this.debounceClose()},handleFocus:function(){this.focusing=!0,this.show()},handleBlur:function(){this.focusing=!1,this.hide()},removeFocusing:function(){this.focusing=!1},addTooltipClass:function(e){return e?"el-tooltip "+e.replace("el-tooltip",""):"el-tooltip"},handleShowPopper:function(){var e=this;this.expectedState&&!this.manual&&(clearTimeout(this.timeout),this.timeout=setTimeout((function(){e.showPopper=!0}),this.openDelay),this.hideAfter>0&&(this.timeoutPending=setTimeout((function(){e.showPopper=!1}),this.hideAfter)))},handleClosePopper:function(){this.enterable&&this.expectedState||this.manual||(clearTimeout(this.timeout),this.timeoutPending&&clearTimeout(this.timeoutPending),this.showPopper=!1,this.disabled&&this.doDestroy())},setExpectedState:function(e){!1===e&&clearTimeout(this.timeoutPending),this.expectedState=e},getFirstElement:function(){var e=this.$slots.default;if(!Array.isArray(e))return null;for(var t=null,i=0;i2&&void 0!==arguments[2]?arguments[2]:300,n=arguments.length>3&&void 0!==arguments[3]&&arguments[3];if(!e||!t)throw new Error("instance & callback is required");var r=!1,s=function(){r||(r=!0,t&&t.apply(null,arguments))};n?e.$once("after-leave",s):e.$on("after-leave",s),setTimeout((function(){s()}),i+100)}},function(e,t,i){e.exports=function(e){var t={};function i(n){if(t[n])return t[n].exports;var r=t[n]={i:n,l:!1,exports:{}};return e[n].call(r.exports,r,r.exports,i),r.l=!0,r.exports}return i.m=e,i.c=t,i.d=function(e,t,n){i.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},i.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.t=function(e,t){if(1&t&&(e=i(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(i.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)i.d(n,r,function(t){return e[t]}.bind(null,r));return n},i.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(t,"a",t),t},i.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},i.p="/dist/",i(i.s=90)}({0:function(e,t,i){"use strict";function n(e,t,i,n,r,s,a,o){var l,u="function"==typeof e?e.options:e;if(t&&(u.render=t,u.staticRenderFns=i,u._compiled=!0),n&&(u.functional=!0),s&&(u._scopeId="data-v-"+s),a?(l=function(e){(e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),r&&r.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(a)},u._ssrRegister=l):r&&(l=o?function(){r.call(this,this.$root.$options.shadowRoot)}:r),l)if(u.functional){u._injectStyles=l;var c=u.render;u.render=function(e,t){return l.call(t),c(e,t)}}else{var d=u.beforeCreate;u.beforeCreate=d?[].concat(d,l):[l]}return{exports:e,options:u}}i.d(t,"a",(function(){return n}))},90:function(e,t,i){"use strict";i.r(t);var n=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{staticClass:"el-progress",class:["el-progress--"+e.type,e.status?"is-"+e.status:"",{"el-progress--without-text":!e.showText,"el-progress--text-inside":e.textInside}],attrs:{role:"progressbar","aria-valuenow":e.percentage,"aria-valuemin":"0","aria-valuemax":"100"}},["line"===e.type?i("div",{staticClass:"el-progress-bar"},[i("div",{staticClass:"el-progress-bar__outer",style:{height:e.strokeWidth+"px"}},[i("div",{staticClass:"el-progress-bar__inner",style:e.barStyle},[e.showText&&e.textInside?i("div",{staticClass:"el-progress-bar__innerText"},[e._v(e._s(e.content))]):e._e()])])]):i("div",{staticClass:"el-progress-circle",style:{height:e.width+"px",width:e.width+"px"}},[i("svg",{attrs:{viewBox:"0 0 100 100"}},[i("path",{staticClass:"el-progress-circle__track",style:e.trailPathStyle,attrs:{d:e.trackPath,stroke:"#e5e9f2","stroke-width":e.relativeStrokeWidth,fill:"none"}}),i("path",{staticClass:"el-progress-circle__path",style:e.circlePathStyle,attrs:{d:e.trackPath,stroke:e.stroke,fill:"none","stroke-linecap":e.strokeLinecap,"stroke-width":e.percentage?e.relativeStrokeWidth:0}})])]),e.showText&&!e.textInside?i("div",{staticClass:"el-progress__text",style:{fontSize:e.progressTextSize+"px"}},[e.status?i("i",{class:e.iconClass}):[e._v(e._s(e.content))]],2):e._e()])};n._withStripped=!0;var r={name:"ElProgress",props:{type:{type:String,default:"line",validator:function(e){return["line","circle","dashboard"].indexOf(e)>-1}},percentage:{type:Number,default:0,required:!0,validator:function(e){return e>=0&&e<=100}},status:{type:String,validator:function(e){return["success","exception","warning"].indexOf(e)>-1}},strokeWidth:{type:Number,default:6},strokeLinecap:{type:String,default:"round"},textInside:{type:Boolean,default:!1},width:{type:Number,default:126},showText:{type:Boolean,default:!0},color:{type:[String,Array,Function],default:""},format:Function},computed:{barStyle:function(){var e={};return e.width=this.percentage+"%",e.backgroundColor=this.getCurrentColor(this.percentage),e},relativeStrokeWidth:function(){return(this.strokeWidth/this.width*100).toFixed(1)},radius:function(){return"circle"===this.type||"dashboard"===this.type?parseInt(50-parseFloat(this.relativeStrokeWidth)/2,10):0},trackPath:function(){var e=this.radius,t="dashboard"===this.type;return"\n M 50 50\n m 0 "+(t?"":"-")+e+"\n a "+e+" "+e+" 0 1 1 0 "+(t?"-":"")+2*e+"\n a "+e+" "+e+" 0 1 1 0 "+(t?"":"-")+2*e+"\n "},perimeter:function(){return 2*Math.PI*this.radius},rate:function(){return"dashboard"===this.type?.75:1},strokeDashoffset:function(){return-1*this.perimeter*(1-this.rate)/2+"px"},trailPathStyle:function(){return{strokeDasharray:this.perimeter*this.rate+"px, "+this.perimeter+"px",strokeDashoffset:this.strokeDashoffset}},circlePathStyle:function(){return{strokeDasharray:this.perimeter*this.rate*(this.percentage/100)+"px, "+this.perimeter+"px",strokeDashoffset:this.strokeDashoffset,transition:"stroke-dasharray 0.6s ease 0s, stroke 0.6s ease"}},stroke:function(){var e=void 0;if(this.color)e=this.getCurrentColor(this.percentage);else switch(this.status){case"success":e="#13ce66";break;case"exception":e="#ff4949";break;case"warning":e="#e6a23c";break;default:e="#20a0ff"}return e},iconClass:function(){return"warning"===this.status?"el-icon-warning":"line"===this.type?"success"===this.status?"el-icon-circle-check":"el-icon-circle-close":"success"===this.status?"el-icon-check":"el-icon-close"},progressTextSize:function(){return"line"===this.type?12+.4*this.strokeWidth:.111111*this.width+2},content:function(){return"function"==typeof this.format?this.format(this.percentage)||"":this.percentage+"%"}},methods:{getCurrentColor:function(e){return"function"==typeof this.color?this.color(e):"string"==typeof this.color?this.color:this.getLevelColor(e)},getLevelColor:function(e){for(var t=this.getColorArray().sort((function(e,t){return e.percentage-t.percentage})),i=0;ie)return t[i].color;return t[t.length-1].color},getColorArray:function(){var e=this.color,t=100/e.length;return e.map((function(e,i){return"string"==typeof e?{color:e,percentage:(i+1)*t}:e}))}}},s=i(0),a=Object(s.a)(r,n,[],!1,null,null,null);a.options.__file="packages/progress/src/progress.vue";var o=a.exports;o.install=function(e){e.component(o.name,o)};t.default=o}})},function(e,t,i){var n=i(125),r=i(91);e.exports={throttle:n,debounce:r}},function(e,t,i){e.exports=function(e){var t={};function i(n){if(t[n])return t[n].exports;var r=t[n]={i:n,l:!1,exports:{}};return e[n].call(r.exports,r,r.exports,i),r.l=!0,r.exports}return i.m=e,i.c=t,i.d=function(e,t,n){i.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},i.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.t=function(e,t){if(1&t&&(e=i(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(i.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)i.d(n,r,function(t){return e[t]}.bind(null,r));return n},i.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(t,"a",t),t},i.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},i.p="/dist/",i(i.s=61)}({0:function(e,t,i){"use strict";function n(e,t,i,n,r,s,a,o){var l,u="function"==typeof e?e.options:e;if(t&&(u.render=t,u.staticRenderFns=i,u._compiled=!0),n&&(u.functional=!0),s&&(u._scopeId="data-v-"+s),a?(l=function(e){(e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),r&&r.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(a)},u._ssrRegister=l):r&&(l=o?function(){r.call(this,this.$root.$options.shadowRoot)}:r),l)if(u.functional){u._injectStyles=l;var c=u.render;u.render=function(e,t){return l.call(t),c(e,t)}}else{var d=u.beforeCreate;u.beforeCreate=d?[].concat(d,l):[l]}return{exports:e,options:u}}i.d(t,"a",(function(){return n}))},10:function(e,t){e.exports=i(123)},12:function(e,t){e.exports=i(200)},15:function(e,t){e.exports=i(126)},16:function(e,t){e.exports=i(124)},18:function(e,t){e.exports=i(91)},21:function(e,t){e.exports=i(90)},22:function(e,t){e.exports=i(127)},3:function(e,t){e.exports=i(19)},31:function(e,t){e.exports=i(128)},33:function(e,t,i){"use strict";var n=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("li",{directives:[{name:"show",rawName:"v-show",value:e.visible,expression:"visible"}],staticClass:"el-select-dropdown__item",class:{selected:e.itemSelected,"is-disabled":e.disabled||e.groupDisabled||e.limitReached,hover:e.hover},on:{mouseenter:e.hoverItem,click:function(t){return t.stopPropagation(),e.selectOptionClick(t)}}},[e._t("default",[i("span",[e._v(e._s(e.currentLabel))])])],2)};n._withStripped=!0;var r=i(4),s=i.n(r),a=i(3),o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},l={mixins:[s.a],name:"ElOption",componentName:"ElOption",inject:["select"],props:{value:{required:!0},label:[String,Number],created:Boolean,disabled:{type:Boolean,default:!1}},data:function(){return{index:-1,groupDisabled:!1,visible:!0,hitState:!1,hover:!1}},computed:{isObject:function(){return"[object object]"===Object.prototype.toString.call(this.value).toLowerCase()},currentLabel:function(){return this.label||(this.isObject?"":this.value)},currentValue:function(){return this.value||this.label||""},itemSelected:function(){return this.select.multiple?this.contains(this.select.value,this.value):this.isEqual(this.value,this.select.value)},limitReached:function(){return!!this.select.multiple&&(!this.itemSelected&&(this.select.value||[]).length>=this.select.multipleLimit&&this.select.multipleLimit>0)}},watch:{currentLabel:function(){this.created||this.select.remote||this.dispatch("ElSelect","setSelected")},value:function(e,t){var i=this.select,n=i.remote,r=i.valueKey;if(!this.created&&!n){if(r&&"object"===(void 0===e?"undefined":o(e))&&"object"===(void 0===t?"undefined":o(t))&&e[r]===t[r])return;this.dispatch("ElSelect","setSelected")}}},methods:{isEqual:function(e,t){if(this.isObject){var i=this.select.valueKey;return Object(a.getValueByPath)(e,i)===Object(a.getValueByPath)(t,i)}return e===t},contains:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments[1];if(this.isObject){var i=this.select.valueKey;return e&&e.some((function(e){return Object(a.getValueByPath)(e,i)===Object(a.getValueByPath)(t,i)}))}return e&&e.indexOf(t)>-1},handleGroupDisabled:function(e){this.groupDisabled=e},hoverItem:function(){this.disabled||this.groupDisabled||(this.select.hoverIndex=this.select.options.indexOf(this))},selectOptionClick:function(){!0!==this.disabled&&!0!==this.groupDisabled&&this.dispatch("ElSelect","handleOptionClick",[this,!0])},queryChange:function(e){this.visible=new RegExp(Object(a.escapeRegexpString)(e),"i").test(this.currentLabel)||this.created,this.visible||this.select.filteredOptionsCount--}},created:function(){this.select.options.push(this),this.select.cachedOptions.push(this),this.select.optionsCount++,this.select.filteredOptionsCount++,this.$on("queryChange",this.queryChange),this.$on("handleGroupDisabled",this.handleGroupDisabled)},beforeDestroy:function(){var e=this.select,t=e.selected,i=e.multiple?t:[t],n=this.select.cachedOptions.indexOf(this),r=i.indexOf(this);n>-1&&r<0&&this.select.cachedOptions.splice(n,1),this.select.onOptionDestroy(this.select.options.indexOf(this))}},u=i(0),c=Object(u.a)(l,n,[],!1,null,null,null);c.options.__file="packages/select/src/option.vue";t.a=c.exports},37:function(e,t){e.exports=i(203)},4:function(e,t){e.exports=i(36)},5:function(e,t){e.exports=i(88)},6:function(e,t){e.exports=i(121)},61:function(e,t,i){"use strict";i.r(t);var n=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{directives:[{name:"clickoutside",rawName:"v-clickoutside",value:e.handleClose,expression:"handleClose"}],staticClass:"el-select",class:[e.selectSize?"el-select--"+e.selectSize:""],on:{click:function(t){return t.stopPropagation(),e.toggleMenu(t)}}},[e.multiple?i("div",{ref:"tags",staticClass:"el-select__tags",style:{"max-width":e.inputWidth-32+"px",width:"100%"}},[e.collapseTags&&e.selected.length?i("span",[i("el-tag",{attrs:{closable:!e.selectDisabled,size:e.collapseTagSize,hit:e.selected[0].hitState,type:"info","disable-transitions":""},on:{close:function(t){e.deleteTag(t,e.selected[0])}}},[i("span",{staticClass:"el-select__tags-text"},[e._v(e._s(e.selected[0].currentLabel))])]),e.selected.length>1?i("el-tag",{attrs:{closable:!1,size:e.collapseTagSize,type:"info","disable-transitions":""}},[i("span",{staticClass:"el-select__tags-text"},[e._v("+ "+e._s(e.selected.length-1))])]):e._e()],1):e._e(),e.collapseTags?e._e():i("transition-group",{on:{"after-leave":e.resetInputHeight}},e._l(e.selected,(function(t){return i("el-tag",{key:e.getValueKey(t),attrs:{closable:!e.selectDisabled,size:e.collapseTagSize,hit:t.hitState,type:"info","disable-transitions":""},on:{close:function(i){e.deleteTag(i,t)}}},[i("span",{staticClass:"el-select__tags-text"},[e._v(e._s(t.currentLabel))])])})),1),e.filterable?i("input",{directives:[{name:"model",rawName:"v-model",value:e.query,expression:"query"}],ref:"input",staticClass:"el-select__input",class:[e.selectSize?"is-"+e.selectSize:""],style:{"flex-grow":"1",width:e.inputLength/(e.inputWidth-32)+"%","max-width":e.inputWidth-42+"px"},attrs:{type:"text",disabled:e.selectDisabled,autocomplete:e.autoComplete||e.autocomplete},domProps:{value:e.query},on:{focus:e.handleFocus,blur:function(t){e.softFocus=!1},keyup:e.managePlaceholder,keydown:[e.resetInputState,function(t){if(!("button"in t)&&e._k(t.keyCode,"down",40,t.key,["Down","ArrowDown"]))return null;t.preventDefault(),e.navigateOptions("next")},function(t){if(!("button"in t)&&e._k(t.keyCode,"up",38,t.key,["Up","ArrowUp"]))return null;t.preventDefault(),e.navigateOptions("prev")},function(t){return!("button"in t)&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:(t.preventDefault(),e.selectOption(t))},function(t){if(!("button"in t)&&e._k(t.keyCode,"esc",27,t.key,["Esc","Escape"]))return null;t.stopPropagation(),t.preventDefault(),e.visible=!1},function(t){return!("button"in t)&&e._k(t.keyCode,"delete",[8,46],t.key,["Backspace","Delete","Del"])?null:e.deletePrevTag(t)},function(t){if(!("button"in t)&&e._k(t.keyCode,"tab",9,t.key,"Tab"))return null;e.visible=!1}],compositionstart:e.handleComposition,compositionupdate:e.handleComposition,compositionend:e.handleComposition,input:[function(t){t.target.composing||(e.query=t.target.value)},e.debouncedQueryChange]}}):e._e()],1):e._e(),i("el-input",{ref:"reference",class:{"is-focus":e.visible},attrs:{type:"text",placeholder:e.currentPlaceholder,name:e.name,id:e.id,autocomplete:e.autoComplete||e.autocomplete,size:e.selectSize,disabled:e.selectDisabled,readonly:e.readonly,"validate-event":!1,tabindex:e.multiple&&e.filterable?"-1":null},on:{focus:e.handleFocus,blur:e.handleBlur,input:e.debouncedOnInputChange},nativeOn:{keydown:[function(t){if(!("button"in t)&&e._k(t.keyCode,"down",40,t.key,["Down","ArrowDown"]))return null;t.stopPropagation(),t.preventDefault(),e.navigateOptions("next")},function(t){if(!("button"in t)&&e._k(t.keyCode,"up",38,t.key,["Up","ArrowUp"]))return null;t.stopPropagation(),t.preventDefault(),e.navigateOptions("prev")},function(t){return!("button"in t)&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:(t.preventDefault(),e.selectOption(t))},function(t){if(!("button"in t)&&e._k(t.keyCode,"esc",27,t.key,["Esc","Escape"]))return null;t.stopPropagation(),t.preventDefault(),e.visible=!1},function(t){if(!("button"in t)&&e._k(t.keyCode,"tab",9,t.key,"Tab"))return null;e.visible=!1}],mouseenter:function(t){e.inputHovering=!0},mouseleave:function(t){e.inputHovering=!1}},model:{value:e.selectedLabel,callback:function(t){e.selectedLabel=t},expression:"selectedLabel"}},[e.$slots.prefix?i("template",{slot:"prefix"},[e._t("prefix")],2):e._e(),i("template",{slot:"suffix"},[i("i",{directives:[{name:"show",rawName:"v-show",value:!e.showClose,expression:"!showClose"}],class:["el-select__caret","el-input__icon","el-icon-"+e.iconClass]}),e.showClose?i("i",{staticClass:"el-select__caret el-input__icon el-icon-circle-close",on:{click:e.handleClearClick}}):e._e()])],2),i("transition",{attrs:{name:"el-zoom-in-top"},on:{"before-enter":e.handleMenuEnter,"after-leave":e.doDestroy}},[i("el-select-menu",{directives:[{name:"show",rawName:"v-show",value:e.visible&&!1!==e.emptyText,expression:"visible && emptyText !== false"}],ref:"popper",attrs:{"append-to-body":e.popperAppendToBody}},[i("el-scrollbar",{directives:[{name:"show",rawName:"v-show",value:e.options.length>0&&!e.loading,expression:"options.length > 0 && !loading"}],ref:"scrollbar",class:{"is-empty":!e.allowCreate&&e.query&&0===e.filteredOptionsCount},attrs:{tag:"ul","wrap-class":"el-select-dropdown__wrap","view-class":"el-select-dropdown__list"}},[e.showNewOption?i("el-option",{attrs:{value:e.query,created:""}}):e._e(),e._t("default")],2),e.emptyText&&(!e.allowCreate||e.loading||e.allowCreate&&0===e.options.length)?[e.$slots.empty?e._t("empty"):i("p",{staticClass:"el-select-dropdown__empty"},[e._v("\n "+e._s(e.emptyText)+"\n ")])]:e._e()],2)],1)],1)};n._withStripped=!0;var r=i(4),s=i.n(r),a=i(22),o=i.n(a),l=i(6),u=i.n(l),c=i(10),d=i.n(c),h=function(){var e=this.$createElement;return(this._self._c||e)("div",{staticClass:"el-select-dropdown el-popper",class:[{"is-multiple":this.$parent.multiple},this.popperClass],style:{minWidth:this.minWidth}},[this._t("default")],2)};h._withStripped=!0;var p=i(5),f={name:"ElSelectDropdown",componentName:"ElSelectDropdown",mixins:[i.n(p).a],props:{placement:{default:"bottom-start"},boundariesPadding:{default:0},popperOptions:{default:function(){return{gpuAcceleration:!1}}},visibleArrow:{default:!0},appendToBody:{type:Boolean,default:!0}},data:function(){return{minWidth:""}},computed:{popperClass:function(){return this.$parent.popperClass}},watch:{"$parent.inputWidth":function(){this.minWidth=this.$parent.$el.getBoundingClientRect().width+"px"}},mounted:function(){var e=this;this.referenceElm=this.$parent.$refs.reference.$el,this.$parent.popperElm=this.popperElm=this.$el,this.$on("updatePopper",(function(){e.$parent.visible&&e.updatePopper()})),this.$on("destroyPopper",this.destroyPopper)}},m=i(0),v=Object(m.a)(f,h,[],!1,null,null,null);v.options.__file="packages/select/src/select-dropdown.vue";var g=v.exports,_=i(33),b=i(37),y=i.n(b),x=i(15),k=i.n(x),w=i(18),C=i.n(w),S=i(12),O=i.n(S),D=i(16),E=i(31),T=i.n(E),$=i(3),P=i(21),j={mixins:[s.a,u.a,o()("reference"),{data:function(){return{hoverOption:-1}},computed:{optionsAllDisabled:function(){return this.options.filter((function(e){return e.visible})).every((function(e){return e.disabled}))}},watch:{hoverIndex:function(e){var t=this;"number"==typeof e&&e>-1&&(this.hoverOption=this.options[e]||{}),this.options.forEach((function(e){e.hover=t.hoverOption===e}))}},methods:{navigateOptions:function(e){var t=this;if(this.visible){if(0!==this.options.length&&0!==this.filteredOptionsCount&&!this.optionsAllDisabled){"next"===e?(this.hoverIndex++,this.hoverIndex===this.options.length&&(this.hoverIndex=0)):"prev"===e&&(this.hoverIndex--,this.hoverIndex<0&&(this.hoverIndex=this.options.length-1));var i=this.options[this.hoverIndex];!0!==i.disabled&&!0!==i.groupDisabled&&i.visible||this.navigateOptions(e),this.$nextTick((function(){return t.scrollToOption(t.hoverOption)}))}}else this.visible=!0}}}],name:"ElSelect",componentName:"ElSelect",inject:{elForm:{default:""},elFormItem:{default:""}},provide:function(){return{select:this}},computed:{_elFormItemSize:function(){return(this.elFormItem||{}).elFormItemSize},readonly:function(){return!this.filterable||this.multiple||!Object($.isIE)()&&!Object($.isEdge)()&&!this.visible},showClose:function(){var e=this.multiple?Array.isArray(this.value)&&this.value.length>0:void 0!==this.value&&null!==this.value&&""!==this.value;return this.clearable&&!this.selectDisabled&&this.inputHovering&&e},iconClass:function(){return this.remote&&this.filterable?"":this.visible?"arrow-up is-reverse":"arrow-up"},debounce:function(){return this.remote?300:0},emptyText:function(){return this.loading?this.loadingText||this.t("el.select.loading"):(!this.remote||""!==this.query||0!==this.options.length)&&(this.filterable&&this.query&&this.options.length>0&&0===this.filteredOptionsCount?this.noMatchText||this.t("el.select.noMatch"):0===this.options.length?this.noDataText||this.t("el.select.noData"):null)},showNewOption:function(){var e=this,t=this.options.filter((function(e){return!e.created})).some((function(t){return t.currentLabel===e.query}));return this.filterable&&this.allowCreate&&""!==this.query&&!t},selectSize:function(){return this.size||this._elFormItemSize||(this.$ELEMENT||{}).size},selectDisabled:function(){return this.disabled||(this.elForm||{}).disabled},collapseTagSize:function(){return["small","mini"].indexOf(this.selectSize)>-1?"mini":"small"},propPlaceholder:function(){return void 0!==this.placeholder?this.placeholder:this.t("el.select.placeholder")}},components:{ElInput:d.a,ElSelectMenu:g,ElOption:_.a,ElTag:y.a,ElScrollbar:k.a},directives:{Clickoutside:O.a},props:{name:String,id:String,value:{required:!0},autocomplete:{type:String,default:"off"},autoComplete:{type:String,validator:function(e){return!0}},automaticDropdown:Boolean,size:String,disabled:Boolean,clearable:Boolean,filterable:Boolean,allowCreate:Boolean,loading:Boolean,popperClass:String,remote:Boolean,loadingText:String,noMatchText:String,noDataText:String,remoteMethod:Function,filterMethod:Function,multiple:Boolean,multipleLimit:{type:Number,default:0},placeholder:{type:String,required:!1},defaultFirstOption:Boolean,reserveKeyword:Boolean,valueKey:{type:String,default:"value"},collapseTags:Boolean,popperAppendToBody:{type:Boolean,default:!0}},data:function(){return{options:[],cachedOptions:[],createdLabel:null,createdSelected:!1,selected:this.multiple?[]:{},inputLength:20,inputWidth:0,initialInputHeight:0,cachedPlaceHolder:"",optionsCount:0,filteredOptionsCount:0,visible:!1,softFocus:!1,selectedLabel:"",hoverIndex:-1,query:"",previousQuery:null,inputHovering:!1,currentPlaceholder:"",menuVisibleOnFocus:!1,isOnComposition:!1,isSilentBlur:!1}},watch:{selectDisabled:function(){var e=this;this.$nextTick((function(){e.resetInputHeight()}))},propPlaceholder:function(e){this.cachedPlaceHolder=this.currentPlaceholder=e},value:function(e,t){this.multiple&&(this.resetInputHeight(),e&&e.length>0||this.$refs.input&&""!==this.query?this.currentPlaceholder="":this.currentPlaceholder=this.cachedPlaceHolder,this.filterable&&!this.reserveKeyword&&(this.query="",this.handleQueryChange(this.query))),this.setSelected(),this.filterable&&!this.multiple&&(this.inputLength=20),Object($.valueEquals)(e,t)||this.dispatch("ElFormItem","el.form.change",e)},visible:function(e){var t=this;e?(this.broadcast("ElSelectDropdown","updatePopper"),this.filterable&&(this.query=this.remote?"":this.selectedLabel,this.handleQueryChange(this.query),this.multiple?this.$refs.input.focus():(this.remote||(this.broadcast("ElOption","queryChange",""),this.broadcast("ElOptionGroup","queryChange")),this.selectedLabel&&(this.currentPlaceholder=this.selectedLabel,this.selectedLabel="")))):(this.broadcast("ElSelectDropdown","destroyPopper"),this.$refs.input&&this.$refs.input.blur(),this.query="",this.previousQuery=null,this.selectedLabel="",this.inputLength=20,this.menuVisibleOnFocus=!1,this.resetHoverIndex(),this.$nextTick((function(){t.$refs.input&&""===t.$refs.input.value&&0===t.selected.length&&(t.currentPlaceholder=t.cachedPlaceHolder)})),this.multiple||(this.selected&&(this.filterable&&this.allowCreate&&this.createdSelected&&this.createdLabel?this.selectedLabel=this.createdLabel:this.selectedLabel=this.selected.currentLabel,this.filterable&&(this.query=this.selectedLabel)),this.filterable&&(this.currentPlaceholder=this.cachedPlaceHolder))),this.$emit("visible-change",e)},options:function(){var e=this;if(!this.$isServer){this.$nextTick((function(){e.broadcast("ElSelectDropdown","updatePopper")})),this.multiple&&this.resetInputHeight();var t=this.$el.querySelectorAll("input");-1===[].indexOf.call(t,document.activeElement)&&this.setSelected(),this.defaultFirstOption&&(this.filterable||this.remote)&&this.filteredOptionsCount&&this.checkDefaultFirstOption()}}},methods:{handleComposition:function(e){var t=this,i=e.target.value;if("compositionend"===e.type)this.isOnComposition=!1,this.$nextTick((function(e){return t.handleQueryChange(i)}));else{var n=i[i.length-1]||"";this.isOnComposition=!Object(P.isKorean)(n)}},handleQueryChange:function(e){var t=this;this.previousQuery===e||this.isOnComposition||(null!==this.previousQuery||"function"!=typeof this.filterMethod&&"function"!=typeof this.remoteMethod?(this.previousQuery=e,this.$nextTick((function(){t.visible&&t.broadcast("ElSelectDropdown","updatePopper")})),this.hoverIndex=-1,this.multiple&&this.filterable&&this.$nextTick((function(){var e=15*t.$refs.input.value.length+20;t.inputLength=t.collapseTags?Math.min(50,e):e,t.managePlaceholder(),t.resetInputHeight()})),this.remote&&"function"==typeof this.remoteMethod?(this.hoverIndex=-1,this.remoteMethod(e)):"function"==typeof this.filterMethod?(this.filterMethod(e),this.broadcast("ElOptionGroup","queryChange")):(this.filteredOptionsCount=this.optionsCount,this.broadcast("ElOption","queryChange",e),this.broadcast("ElOptionGroup","queryChange")),this.defaultFirstOption&&(this.filterable||this.remote)&&this.filteredOptionsCount&&this.checkDefaultFirstOption()):this.previousQuery=e)},scrollToOption:function(e){var t=Array.isArray(e)&&e[0]?e[0].$el:e.$el;if(this.$refs.popper&&t){var i=this.$refs.popper.$el.querySelector(".el-select-dropdown__wrap");T()(i,t)}this.$refs.scrollbar&&this.$refs.scrollbar.handleScroll()},handleMenuEnter:function(){var e=this;this.$nextTick((function(){return e.scrollToOption(e.selected)}))},emitChange:function(e){Object($.valueEquals)(this.value,e)||this.$emit("change",e)},getOption:function(e){for(var t=void 0,i="[object object]"===Object.prototype.toString.call(e).toLowerCase(),n="[object null]"===Object.prototype.toString.call(e).toLowerCase(),r="[object undefined]"===Object.prototype.toString.call(e).toLowerCase(),s=this.cachedOptions.length-1;s>=0;s--){var a=this.cachedOptions[s];if(i?Object($.getValueByPath)(a.value,this.valueKey)===Object($.getValueByPath)(e,this.valueKey):a.value===e){t=a;break}}if(t)return t;var o={value:e,currentLabel:i||n||r?"":String(e)};return this.multiple&&(o.hitState=!1),o},setSelected:function(){var e=this;if(!this.multiple){var t=this.getOption(this.value);return t.created?(this.createdLabel=t.currentLabel,this.createdSelected=!0):this.createdSelected=!1,this.selectedLabel=t.currentLabel,this.selected=t,void(this.filterable&&(this.query=this.selectedLabel))}var i=[];Array.isArray(this.value)&&this.value.forEach((function(t){i.push(e.getOption(t))})),this.selected=i,this.$nextTick((function(){e.resetInputHeight()}))},handleFocus:function(e){this.softFocus?this.softFocus=!1:((this.automaticDropdown||this.filterable)&&(this.visible=!0,this.filterable&&(this.menuVisibleOnFocus=!0)),this.$emit("focus",e))},blur:function(){this.visible=!1,this.$refs.reference.blur()},handleBlur:function(e){var t=this;setTimeout((function(){t.isSilentBlur?t.isSilentBlur=!1:t.$emit("blur",e)}),50),this.softFocus=!1},handleClearClick:function(e){this.deleteSelected(e)},doDestroy:function(){this.$refs.popper&&this.$refs.popper.doDestroy()},handleClose:function(){this.visible=!1},toggleLastOptionHitState:function(e){if(Array.isArray(this.selected)){var t=this.selected[this.selected.length-1];if(t)return!0===e||!1===e?(t.hitState=e,e):(t.hitState=!t.hitState,t.hitState)}},deletePrevTag:function(e){if(e.target.value.length<=0&&!this.toggleLastOptionHitState()){var t=this.value.slice();t.pop(),this.$emit("input",t),this.emitChange(t)}},managePlaceholder:function(){""!==this.currentPlaceholder&&(this.currentPlaceholder=this.$refs.input.value?"":this.cachedPlaceHolder)},resetInputState:function(e){8!==e.keyCode&&this.toggleLastOptionHitState(!1),this.inputLength=15*this.$refs.input.value.length+20,this.resetInputHeight()},resetInputHeight:function(){var e=this;this.collapseTags&&!this.filterable||this.$nextTick((function(){if(e.$refs.reference){var t=e.$refs.reference.$el.childNodes,i=[].filter.call(t,(function(e){return"INPUT"===e.tagName}))[0],n=e.$refs.tags,r=n?Math.round(n.getBoundingClientRect().height):0,s=e.initialInputHeight||40;i.style.height=0===e.selected.length?s+"px":Math.max(n?r+(r>s?6:0):0,s)+"px",e.visible&&!1!==e.emptyText&&e.broadcast("ElSelectDropdown","updatePopper")}}))},resetHoverIndex:function(){var e=this;setTimeout((function(){e.multiple?e.selected.length>0?e.hoverIndex=Math.min.apply(null,e.selected.map((function(t){return e.options.indexOf(t)}))):e.hoverIndex=-1:e.hoverIndex=e.options.indexOf(e.selected)}),300)},handleOptionSelect:function(e,t){var i=this;if(this.multiple){var n=(this.value||[]).slice(),r=this.getValueIndex(n,e.value);r>-1?n.splice(r,1):(this.multipleLimit<=0||n.length0&&void 0!==arguments[0]?arguments[0]:[],t=arguments[1],i="[object object]"===Object.prototype.toString.call(t).toLowerCase();if(i){var n=this.valueKey,r=-1;return e.some((function(e,i){return Object($.getValueByPath)(e,n)===Object($.getValueByPath)(t,n)&&(r=i,!0)})),r}return e.indexOf(t)},toggleMenu:function(){this.selectDisabled||(this.menuVisibleOnFocus?this.menuVisibleOnFocus=!1:this.visible=!this.visible,this.visible&&(this.$refs.input||this.$refs.reference).focus())},selectOption:function(){this.visible?this.options[this.hoverIndex]&&this.handleOptionSelect(this.options[this.hoverIndex]):this.toggleMenu()},deleteSelected:function(e){e.stopPropagation();var t=this.multiple?[]:"";this.$emit("input",t),this.emitChange(t),this.visible=!1,this.$emit("clear")},deleteTag:function(e,t){var i=this.selected.indexOf(t);if(i>-1&&!this.selectDisabled){var n=this.value.slice();n.splice(i,1),this.$emit("input",n),this.emitChange(n),this.$emit("remove-tag",t.value)}e.stopPropagation()},onInputChange:function(){this.filterable&&this.query!==this.selectedLabel&&(this.query=this.selectedLabel,this.handleQueryChange(this.query))},onOptionDestroy:function(e){e>-1&&(this.optionsCount--,this.filteredOptionsCount--,this.options.splice(e,1))},resetInputWidth:function(){this.inputWidth=this.$refs.reference.$el.getBoundingClientRect().width},handleResize:function(){this.resetInputWidth(),this.multiple&&this.resetInputHeight()},checkDefaultFirstOption:function(){this.hoverIndex=-1;for(var e=!1,t=this.options.length-1;t>=0;t--)if(this.options[t].created){e=!0,this.hoverIndex=t;break}if(!e)for(var i=0;i!==this.options.length;++i){var n=this.options[i];if(this.query){if(!n.disabled&&!n.groupDisabled&&n.visible){this.hoverIndex=i;break}}else if(n.itemSelected){this.hoverIndex=i;break}}},getValueKey:function(e){return"[object object]"!==Object.prototype.toString.call(e.value).toLowerCase()?e.value:Object($.getValueByPath)(e.value,this.valueKey)}},created:function(){var e=this;this.cachedPlaceHolder=this.currentPlaceholder=this.propPlaceholder,this.multiple&&!Array.isArray(this.value)&&this.$emit("input",[]),!this.multiple&&Array.isArray(this.value)&&this.$emit("input",""),this.debouncedOnInputChange=C()(this.debounce,(function(){e.onInputChange()})),this.debouncedQueryChange=C()(this.debounce,(function(t){e.handleQueryChange(t.target.value)})),this.$on("handleOptionClick",this.handleOptionSelect),this.$on("setSelected",this.setSelected)},mounted:function(){var e=this;this.multiple&&Array.isArray(this.value)&&this.value.length>0&&(this.currentPlaceholder=""),Object(D.addResizeListener)(this.$el,this.handleResize);var t=this.$refs.reference;if(t&&t.$el){var i=t.$el.querySelector("input");this.initialInputHeight=i.getBoundingClientRect().height||{medium:36,small:32,mini:28}[this.selectSize]}this.remote&&this.multiple&&this.resetInputHeight(),this.$nextTick((function(){t&&t.$el&&(e.inputWidth=t.$el.getBoundingClientRect().width)})),this.setSelected()},beforeDestroy:function(){this.$el&&this.handleResize&&Object(D.removeResizeListener)(this.$el,this.handleResize)}},M=Object(m.a)(j,n,[],!1,null,null,null);M.options.__file="packages/select/src/select.vue";var I=M.exports;I.install=function(e){e.component(I.name,I)};t.default=I}})},function(e,t,i){e.exports=function(e){var t={};function i(n){if(t[n])return t[n].exports;var r=t[n]={i:n,l:!1,exports:{}};return e[n].call(r.exports,r,r.exports,i),r.l=!0,r.exports}return i.m=e,i.c=t,i.d=function(e,t,n){i.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},i.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.t=function(e,t){if(1&t&&(e=i(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(i.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)i.d(n,r,function(t){return e[t]}.bind(null,r));return n},i.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(t,"a",t),t},i.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},i.p="/dist/",i(i.s=53)}({0:function(e,t,i){"use strict";function n(e,t,i,n,r,s,a,o){var l,u="function"==typeof e?e.options:e;if(t&&(u.render=t,u.staticRenderFns=i,u._compiled=!0),n&&(u.functional=!0),s&&(u._scopeId="data-v-"+s),a?(l=function(e){(e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),r&&r.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(a)},u._ssrRegister=l):r&&(l=o?function(){r.call(this,this.$root.$options.shadowRoot)}:r),l)if(u.functional){u._injectStyles=l;var c=u.render;u.render=function(e,t){return l.call(t),c(e,t)}}else{var d=u.beforeCreate;u.beforeCreate=d?[].concat(d,l):[l]}return{exports:e,options:u}}i.d(t,"a",(function(){return n}))},3:function(e,t){e.exports=i(19)},33:function(e,t,i){"use strict";var n=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("li",{directives:[{name:"show",rawName:"v-show",value:e.visible,expression:"visible"}],staticClass:"el-select-dropdown__item",class:{selected:e.itemSelected,"is-disabled":e.disabled||e.groupDisabled||e.limitReached,hover:e.hover},on:{mouseenter:e.hoverItem,click:function(t){return t.stopPropagation(),e.selectOptionClick(t)}}},[e._t("default",[i("span",[e._v(e._s(e.currentLabel))])])],2)};n._withStripped=!0;var r=i(4),s=i.n(r),a=i(3),o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},l={mixins:[s.a],name:"ElOption",componentName:"ElOption",inject:["select"],props:{value:{required:!0},label:[String,Number],created:Boolean,disabled:{type:Boolean,default:!1}},data:function(){return{index:-1,groupDisabled:!1,visible:!0,hitState:!1,hover:!1}},computed:{isObject:function(){return"[object object]"===Object.prototype.toString.call(this.value).toLowerCase()},currentLabel:function(){return this.label||(this.isObject?"":this.value)},currentValue:function(){return this.value||this.label||""},itemSelected:function(){return this.select.multiple?this.contains(this.select.value,this.value):this.isEqual(this.value,this.select.value)},limitReached:function(){return!!this.select.multiple&&(!this.itemSelected&&(this.select.value||[]).length>=this.select.multipleLimit&&this.select.multipleLimit>0)}},watch:{currentLabel:function(){this.created||this.select.remote||this.dispatch("ElSelect","setSelected")},value:function(e,t){var i=this.select,n=i.remote,r=i.valueKey;if(!this.created&&!n){if(r&&"object"===(void 0===e?"undefined":o(e))&&"object"===(void 0===t?"undefined":o(t))&&e[r]===t[r])return;this.dispatch("ElSelect","setSelected")}}},methods:{isEqual:function(e,t){if(this.isObject){var i=this.select.valueKey;return Object(a.getValueByPath)(e,i)===Object(a.getValueByPath)(t,i)}return e===t},contains:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments[1];if(this.isObject){var i=this.select.valueKey;return e&&e.some((function(e){return Object(a.getValueByPath)(e,i)===Object(a.getValueByPath)(t,i)}))}return e&&e.indexOf(t)>-1},handleGroupDisabled:function(e){this.groupDisabled=e},hoverItem:function(){this.disabled||this.groupDisabled||(this.select.hoverIndex=this.select.options.indexOf(this))},selectOptionClick:function(){!0!==this.disabled&&!0!==this.groupDisabled&&this.dispatch("ElSelect","handleOptionClick",[this,!0])},queryChange:function(e){this.visible=new RegExp(Object(a.escapeRegexpString)(e),"i").test(this.currentLabel)||this.created,this.visible||this.select.filteredOptionsCount--}},created:function(){this.select.options.push(this),this.select.cachedOptions.push(this),this.select.optionsCount++,this.select.filteredOptionsCount++,this.$on("queryChange",this.queryChange),this.$on("handleGroupDisabled",this.handleGroupDisabled)},beforeDestroy:function(){var e=this.select,t=e.selected,i=e.multiple?t:[t],n=this.select.cachedOptions.indexOf(this),r=i.indexOf(this);n>-1&&r<0&&this.select.cachedOptions.splice(n,1),this.select.onOptionDestroy(this.select.options.indexOf(this))}},u=i(0),c=Object(u.a)(l,n,[],!1,null,null,null);c.options.__file="packages/select/src/option.vue";t.a=c.exports},4:function(e,t){e.exports=i(36)},53:function(e,t,i){"use strict";i.r(t);var n=i(33);n.a.install=function(e){e.component(n.a.name,n.a)},t.default=n.a}})},function(e,t,i){e.exports=i(379)},function(e,t,i){"use strict";var n=i(380),r=i(381);function s(e){var t=0,i=0,n=0,r=0;return"detail"in e&&(i=e.detail),"wheelDelta"in e&&(i=-e.wheelDelta/120),"wheelDeltaY"in e&&(i=-e.wheelDeltaY/120),"wheelDeltaX"in e&&(t=-e.wheelDeltaX/120),"axis"in e&&e.axis===e.HORIZONTAL_AXIS&&(t=i,i=0),n=10*t,r=10*i,"deltaY"in e&&(r=e.deltaY),"deltaX"in e&&(n=e.deltaX),(n||r)&&e.deltaMode&&(1==e.deltaMode?(n*=40,r*=40):(n*=800,r*=800)),n&&!t&&(t=n<1?-1:1),r&&!i&&(i=r<1?-1:1),{spinX:t,spinY:i,pixelX:n,pixelY:r}}s.getEventType=function(){return n.firefox()?"DOMMouseScroll":r("wheel")?"wheel":"mousewheel"},e.exports=s},function(e,t){var i,n,r,s,a,o,l,u,c,d,h,p,f,m,v,g=!1;function _(){if(!g){g=!0;var e=navigator.userAgent,t=/(?:MSIE.(\d+\.\d+))|(?:(?:Firefox|GranParadiso|Iceweasel).(\d+\.\d+))|(?:Opera(?:.+Version.|.)(\d+\.\d+))|(?:AppleWebKit.(\d+(?:\.\d+)?))|(?:Trident\/\d+\.\d+.*rv:(\d+\.\d+))/.exec(e),_=/(Mac OS X)|(Windows)|(Linux)/.exec(e);if(p=/\b(iPhone|iP[ao]d)/.exec(e),f=/\b(iP[ao]d)/.exec(e),d=/Android/i.exec(e),m=/FBAN\/\w+;/i.exec(e),v=/Mobile/i.exec(e),h=!!/Win64/.exec(e),t){(i=t[1]?parseFloat(t[1]):t[5]?parseFloat(t[5]):NaN)&&document&&document.documentMode&&(i=document.documentMode);var b=/(?:Trident\/(\d+.\d+))/.exec(e);o=b?parseFloat(b[1])+4:i,n=t[2]?parseFloat(t[2]):NaN,r=t[3]?parseFloat(t[3]):NaN,(s=t[4]?parseFloat(t[4]):NaN)?(t=/(?:Chrome\/(\d+\.\d+))/.exec(e),a=t&&t[1]?parseFloat(t[1]):NaN):a=NaN}else i=n=r=a=s=NaN;if(_){if(_[1]){var y=/(?:Mac OS X (\d+(?:[._]\d+)?))/.exec(e);l=!y||parseFloat(y[1].replace("_","."))}else l=!1;u=!!_[2],c=!!_[3]}else l=u=c=!1}}var b={ie:function(){return _()||i},ieCompatibilityMode:function(){return _()||o>i},ie64:function(){return b.ie()&&h},firefox:function(){return _()||n},opera:function(){return _()||r},webkit:function(){return _()||s},safari:function(){return b.webkit()},chrome:function(){return _()||a},windows:function(){return _()||u},osx:function(){return _()||l},linux:function(){return _()||c},iphone:function(){return _()||p},mobile:function(){return _()||p||f||d||v},nativeApp:function(){return _()||m},android:function(){return _()||d},ipad:function(){return _()||f}};e.exports=b},function(e,t,i){"use strict";var n,r=i(382);r.canUseDOM&&(n=document.implementation&&document.implementation.hasFeature&&!0!==document.implementation.hasFeature("","")) + * @license MIT */void 0===(r="function"==typeof(n=function(){var e,t,i={version:"0.2.0"},n=i.settings={minimum:.08,easing:"ease",positionUsing:"",speed:200,trickle:!0,trickleRate:.02,trickleSpeed:800,showSpinner:!0,barSelector:'[role="bar"]',spinnerSelector:'[role="spinner"]',parent:"body",template:'
'};function r(e,t,i){return ei?i:e}function s(e){return 100*(-1+e)}i.configure=function(e){var t,i;for(t in e)void 0!==(i=e[t])&&e.hasOwnProperty(t)&&(n[t]=i);return this},i.status=null,i.set=function(e){var t=i.isStarted();e=r(e,n.minimum,1),i.status=1===e?null:e;var l=i.render(!t),u=l.querySelector(n.barSelector),c=n.speed,d=n.easing;return l.offsetWidth,a((function(t){""===n.positionUsing&&(n.positionUsing=i.getPositioningCSS()),o(u,function(e,t,i){var r;return(r="translate3d"===n.positionUsing?{transform:"translate3d("+s(e)+"%,0,0)"}:"translate"===n.positionUsing?{transform:"translate("+s(e)+"%,0)"}:{"margin-left":s(e)+"%"}).transition="all "+t+"ms "+i,r}(e,c,d)),1===e?(o(l,{transition:"none",opacity:1}),l.offsetWidth,setTimeout((function(){o(l,{transition:"all "+c+"ms linear",opacity:0}),setTimeout((function(){i.remove(),t()}),c)}),c)):setTimeout(t,c)})),this},i.isStarted=function(){return"number"==typeof i.status},i.start=function(){i.status||i.set(0);var e=function(){setTimeout((function(){i.status&&(i.trickle(),e())}),n.trickleSpeed)};return n.trickle&&e(),this},i.done=function(e){return e||i.status?i.inc(.3+.5*Math.random()).set(1):this},i.inc=function(e){var t=i.status;return t?("number"!=typeof e&&(e=(1-t)*r(Math.random()*t,.1,.95)),t=r(t+e,0,.994),i.set(t)):i.start()},i.trickle=function(){return i.inc(Math.random()*n.trickleRate)},e=0,t=0,i.promise=function(n){return n&&"resolved"!==n.state()?(0===t&&i.start(),e++,t++,n.always((function(){0==--t?(e=0,i.done()):i.set((e-t)/e)})),this):this},i.render=function(e){if(i.isRendered())return document.getElementById("nprogress");u(document.documentElement,"nprogress-busy");var t=document.createElement("div");t.id="nprogress",t.innerHTML=n.template;var r,a=t.querySelector(n.barSelector),l=e?"-100":s(i.status||0),c=document.querySelector(n.parent);return o(a,{transition:"all 0 linear",transform:"translate3d("+l+"%,0,0)"}),n.showSpinner||(r=t.querySelector(n.spinnerSelector))&&h(r),c!=document.body&&u(c,"nprogress-custom-parent"),c.appendChild(t),t},i.remove=function(){c(document.documentElement,"nprogress-busy"),c(document.querySelector(n.parent),"nprogress-custom-parent");var e=document.getElementById("nprogress");e&&h(e)},i.isRendered=function(){return!!document.getElementById("nprogress")},i.getPositioningCSS=function(){var e=document.body.style,t="WebkitTransform"in e?"Webkit":"MozTransform"in e?"Moz":"msTransform"in e?"ms":"OTransform"in e?"O":"";return t+"Perspective"in e?"translate3d":t+"Transform"in e?"translate":"margin"};var a=function(){var e=[];function t(){var i=e.shift();i&&i(t)}return function(i){e.push(i),1==e.length&&t()}}(),o=function(){var e=["Webkit","O","Moz","ms"],t={};function i(i){return i=i.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,(function(e,t){return t.toUpperCase()})),t[i]||(t[i]=function(t){var i=document.body.style;if(t in i)return t;for(var n,r=e.length,s=t.charAt(0).toUpperCase()+t.slice(1);r--;)if((n=e[r]+s)in i)return n;return t}(i))}function n(e,t,n){t=i(t),e.style[t]=n}return function(e,t){var i,r,s=arguments;if(2==s.length)for(i in t)void 0!==(r=t[i])&&t.hasOwnProperty(i)&&n(e,i,r);else n(e,s[1],s[2])}}();function l(e,t){return("string"==typeof e?e:d(e)).indexOf(" "+t+" ")>=0}function u(e,t){var i=d(e),n=i+t;l(i,t)||(e.className=n.substring(1))}function c(e,t){var i,n=d(e);l(e,t)&&(i=n.replace(" "+t+" "," "),e.className=i.substring(1,i.length-1))}function d(e){return(" "+(e.className||"")+" ").replace(/\s+/gi," ")}function h(e){e&&e.parentNode&&e.parentNode.removeChild(e)}return i})?n.call(t,i,t,e):n)||(e.exports=r)},function(e,t,i){"use strict";var n=i(218),r=i(2),s=i(9),a=i(5),o=i(69),l=i(21),u=i(20),c=i(28),d=i(219),h=i(58),p=i(262),f=i(220),m=i(4)("replace"),v=Math.max,g=Math.min,_="$0"==="a".replace(/./,"$0"),b=!!/./[m]&&""===/./[m]("a","$0");n("replace",(function(e,t,i){var n=b?"$":"$0";return[function(e,i){var n=c(this),r=null==e?void 0:h(e,m);return r?r.call(e,n,i):t.call(u(n),e,i)},function(e,r){var c=s(this),h=u(e);if("string"==typeof r&&-1===r.indexOf(n)&&-1===r.indexOf("$<")){var m=i(t,c,h,r);if(m.done)return m.value}var _=a(r);_||(r=u(r));var b=c.global;if(b){var y=c.unicode;c.lastIndex=0}for(var x=[];;){var k=f(c,h);if(null===k)break;if(x.push(k),!b)break;""===u(k[0])&&(c.lastIndex=d(h,l(c.lastIndex),y))}for(var w,C="",S=0,O=0;O=S&&(C+=h.slice(S,E)+M,S=E+D.length)}return C+h.slice(S)}]}),!!r((function(){var e=/./;return e.exec=function(){var e=[];return e.groups={a:"7"},e},"7"!=="".replace(e,"$
")}))||!_||b)},function(e,t,i){var n=i(3),r=i(163),s=i(164),a=i(168),o=i(32),l=function(e){if(e&&e.forEach!==a)try{o(e,"forEach",a)}catch(t){e.forEach=a}};for(var u in r)r[u]&&l(n[u]&&n[u].prototype);l(s)},function(e,t,i){"use strict";var n,r,s=i(20),a=i(137),o=i(217),l=i(64),u=i(27),c=i(39).get,d=i(227),h=i(228),p=RegExp.prototype.exec,f=l("native-string-replace",String.prototype.replace),m=p,v=(n=/a/,r=/b*/g,p.call(n,"a"),p.call(r,"a"),0!==n.lastIndex||0!==r.lastIndex),g=o.UNSUPPORTED_Y||o.BROKEN_CARET,_=void 0!==/()??/.exec("")[1];(v||_||g||d||h)&&(m=function(e){var t,i,n,r,o,l,d,h=this,b=c(h),y=s(e),x=b.raw;if(x)return x.lastIndex=h.lastIndex,t=m.call(x,y),h.lastIndex=x.lastIndex,t;var k=b.groups,w=g&&h.sticky,C=a.call(h),S=h.source,O=0,D=y;if(w&&(-1===(C=C.replace("y","")).indexOf("g")&&(C+="g"),D=y.slice(h.lastIndex),h.lastIndex>0&&(!h.multiline||h.multiline&&"\n"!==y.charAt(h.lastIndex-1))&&(S="(?: "+S+")",D=" "+D,O++),i=new RegExp("^(?:"+S+")",C)),_&&(i=new RegExp("^"+S+"$(?!\\s)",C)),v&&(n=h.lastIndex),r=p.call(w?i:h,D),w?r?(r.input=r.input.slice(O),r[0]=r[0].slice(O),r.index=h.lastIndex,h.lastIndex+=r[0].length):h.lastIndex=0:v&&r&&(h.lastIndex=h.global?r.index+r[0].length:n),_&&r&&r.length>1&&f.call(r[0],i,(function(){for(o=1;oc;)if((o=l[c++])!=o)return!0}else for(;u>c;c++)if((e||c in l)&&l[c]===i)return e||c||0;return!e&&-1}};e.exports={includes:a(!0),indexOf:a(!1)}},function(e,t){e.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},function(e,t){t.f=Object.getOwnPropertySymbols},function(e,t,i){var n=i(10),r=i(5),s=i(15),a=i(70),o=i(151),l=a("IE_PROTO"),u=Object.prototype;e.exports=o?Object.getPrototypeOf:function(e){var t=s(e);if(n(t,l))return t[l];var i=t.constructor;return r(i)&&t instanceof i?i.prototype:t instanceof Object?u:null}},function(e,t,i){var n=i(76),r=i(58),s=i(50),a=i(4)("iterator");e.exports=function(e){if(null!=e)return r(e,a)||r(e,"@@iterator")||s[n(e)]}},function(e,t,i){var n={};n[i(4)("toStringTag")]="z",e.exports="[object z]"===String(n)},function(e,t,i){var n=i(265),r=i(41),s=Object.prototype,a=s.hasOwnProperty,o=s.propertyIsEnumerable,l=n(function(){return arguments}())?n:function(e){return r(e)&&a.call(e,"callee")&&!o.call(e,"callee")};e.exports=l},function(e,t,i){var n=i(35)(i(24),"Map");e.exports=n},function(e,t){e.exports=function(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}},function(e,t,i){var n=i(285),r=i(292),s=i(294),a=i(295),o=i(296);function l(e){var t=-1,i=null==e?0:e.length;for(this.clear();++t-1&&e%1==0&&e<=9007199254740991}},function(e,t,i){var n=i(22),r=i(117),s=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,a=/^\w*$/;e.exports=function(e,t){if(n(e))return!1;var i=typeof e;return!("number"!=i&&"symbol"!=i&&"boolean"!=i&&null!=e&&!r(e))||(a.test(e)||!s.test(e)||null!=t&&e in Object(t))}},function(e,t,i){var n=i(46),r=i(41);e.exports=function(e){return"symbol"==typeof e||r(e)&&"[object Symbol]"==n(e)}},function(e,t){e.exports=function(e){return e}},function(e,t,i){var n=i(1),r=i(7);n({target:"Object",stat:!0,forced:!r,sham:!r},{defineProperty:i(11).f})},function(e,t,i){"use strict";t.__esModule=!0,t.i18n=t.use=t.t=void 0;var n=a(i(361)),r=a(i(0)),s=a(i(362));function a(e){return e&&e.__esModule?e:{default:e}}var o=(0,a(i(363)).default)(r.default),l=n.default,u=!1,c=function(){var e=Object.getPrototypeOf(this||r.default).$t;if("function"==typeof e&&r.default.locale)return u||(u=!0,r.default.locale(r.default.config.lang,(0,s.default)(l,r.default.locale(r.default.config.lang)||{},{clone:!0}))),e.apply(this,arguments)},d=t.t=function(e,t){var i=c.apply(this,arguments);if(null!=i)return i;for(var n=e.split("."),r=l,s=0,a=n.length;s1&&void 0!==arguments[1]?arguments[1]:1,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;l||(l=document.createElement("textarea"),document.body.appendChild(l));var n=d(e),r=n.paddingSize,s=n.borderSize,a=n.boxSizing,o=n.contextStyle;l.setAttribute("style",o+";"+u),l.value=e.value||e.placeholder||"";var c=l.scrollHeight,h={};"border-box"===a?c+=s:"content-box"===a&&(c-=r),l.value="";var p=l.scrollHeight-r;if(null!==t){var f=p*t;"border-box"===a&&(f=f+r+s),c=Math.max(f,c),h.minHeight=f+"px"}if(null!==i){var m=p*i;"border-box"===a&&(m=m+r+s),c=Math.min(m,c)}return h.height=c+"px",l.parentNode&&l.parentNode.removeChild(l),l=null,h}var p=i(9),f=i.n(p),m=i(21),v={name:"ElInput",componentName:"ElInput",mixins:[s.a,o.a],inheritAttrs:!1,inject:{elForm:{default:""},elFormItem:{default:""}},data:function(){return{textareaCalcStyle:{},hovering:!1,focused:!1,isComposing:!1,passwordVisible:!1}},props:{value:[String,Number],size:String,resize:String,form:String,disabled:Boolean,readonly:Boolean,type:{type:String,default:"text"},autosize:{type:[Boolean,Object],default:!1},autocomplete:{type:String,default:"off"},autoComplete:{type:String,validator:function(e){return!0}},validateEvent:{type:Boolean,default:!0},suffixIcon:String,prefixIcon:String,label:String,clearable:{type:Boolean,default:!1},showPassword:{type:Boolean,default:!1},showWordLimit:{type:Boolean,default:!1},tabindex:String},computed:{_elFormItemSize:function(){return(this.elFormItem||{}).elFormItemSize},validateState:function(){return this.elFormItem?this.elFormItem.validateState:""},needStatusIcon:function(){return!!this.elForm&&this.elForm.statusIcon},validateIcon:function(){return{validating:"el-icon-loading",success:"el-icon-circle-check",error:"el-icon-circle-close"}[this.validateState]},textareaStyle:function(){return f()({},this.textareaCalcStyle,{resize:this.resize})},inputSize:function(){return this.size||this._elFormItemSize||(this.$ELEMENT||{}).size},inputDisabled:function(){return this.disabled||(this.elForm||{}).disabled},nativeInputValue:function(){return null===this.value||void 0===this.value?"":String(this.value)},showClear:function(){return this.clearable&&!this.inputDisabled&&!this.readonly&&this.nativeInputValue&&(this.focused||this.hovering)},showPwdVisible:function(){return this.showPassword&&!this.inputDisabled&&!this.readonly&&(!!this.nativeInputValue||this.focused)},isWordLimitVisible:function(){return this.showWordLimit&&this.$attrs.maxlength&&("text"===this.type||"textarea"===this.type)&&!this.inputDisabled&&!this.readonly&&!this.showPassword},upperLimit:function(){return this.$attrs.maxlength},textLength:function(){return"number"==typeof this.value?String(this.value).length:(this.value||"").length},inputExceed:function(){return this.isWordLimitVisible&&this.textLength>this.upperLimit}},watch:{value:function(e){this.$nextTick(this.resizeTextarea),this.validateEvent&&this.dispatch("ElFormItem","el.form.change",[e])},nativeInputValue:function(){this.setNativeInputValue()},type:function(){var e=this;this.$nextTick((function(){e.setNativeInputValue(),e.resizeTextarea(),e.updateIconOffset()}))}},methods:{focus:function(){this.getInput().focus()},blur:function(){this.getInput().blur()},getMigratingConfig:function(){return{props:{icon:"icon is removed, use suffix-icon / prefix-icon instead.","on-icon-click":"on-icon-click is removed."},events:{click:"click is removed."}}},handleBlur:function(e){this.focused=!1,this.$emit("blur",e),this.validateEvent&&this.dispatch("ElFormItem","el.form.blur",[this.value])},select:function(){this.getInput().select()},resizeTextarea:function(){if(!this.$isServer){var e=this.autosize;if("textarea"===this.type)if(e){var t=e.minRows,i=e.maxRows;this.textareaCalcStyle=h(this.$refs.textarea,t,i)}else this.textareaCalcStyle={minHeight:h(this.$refs.textarea).minHeight}}},setNativeInputValue:function(){var e=this.getInput();e&&e.value!==this.nativeInputValue&&(e.value=this.nativeInputValue)},handleFocus:function(e){this.focused=!0,this.$emit("focus",e)},handleCompositionStart:function(){this.isComposing=!0},handleCompositionUpdate:function(e){var t=e.target.value,i=t[t.length-1]||"";this.isComposing=!Object(m.isKorean)(i)},handleCompositionEnd:function(e){this.isComposing&&(this.isComposing=!1,this.handleInput(e))},handleInput:function(e){this.isComposing||e.target.value!==this.nativeInputValue&&(this.$emit("input",e.target.value),this.$nextTick(this.setNativeInputValue))},handleChange:function(e){this.$emit("change",e.target.value)},calcIconOffset:function(e){var t=[].slice.call(this.$el.querySelectorAll(".el-input__"+e)||[]);if(t.length){for(var i=null,n=0;n=t.length)break;r=t[n++]}else{if((n=t.next()).done)break;r=n.value}var s=r.target.__resizeListeners__||[];s.length&&s.forEach((function(e){e()}))}};t.addResizeListener=function(e,t){a||(e.__resizeListeners__||(e.__resizeListeners__=[],e.__ro__=new s.default(o),e.__ro__.observe(e)),e.__resizeListeners__.push(t))},t.removeResizeListener=function(e,t){e&&e.__resizeListeners__&&(e.__resizeListeners__.splice(e.__resizeListeners__.indexOf(t),1),e.__resizeListeners__.length||e.__ro__.disconnect())}},function(e,t){e.exports=function(e,t,i,n){var r,s=0;return"boolean"!=typeof t&&(n=i,i=t,t=void 0),function(){var a=this,o=Number(new Date)-s,l=arguments;function u(){s=Number(new Date),i.apply(a,l)}function c(){r=void 0}n&&!r&&u(),r&&clearTimeout(r),void 0===n&&o>e?u():!0!==t&&(r=setTimeout(n?c:u,void 0===n?e-o:e))}}},function(e,t,i){e.exports=function(e){var t={};function i(n){if(t[n])return t[n].exports;var r=t[n]={i:n,l:!1,exports:{}};return e[n].call(r.exports,r,r.exports,i),r.l=!0,r.exports}return i.m=e,i.c=t,i.d=function(e,t,n){i.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},i.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.t=function(e,t){if(1&t&&(e=i(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(i.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)i.d(n,r,function(t){return e[t]}.bind(null,r));return n},i.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(t,"a",t),t},i.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},i.p="/dist/",i(i.s=132)}({132:function(e,t,i){"use strict";i.r(t);var n=i(16),r=i(38),s=i.n(r),a=i(3),o=i(2),l={vertical:{offset:"offsetHeight",scroll:"scrollTop",scrollSize:"scrollHeight",size:"height",key:"vertical",axis:"Y",client:"clientY",direction:"top"},horizontal:{offset:"offsetWidth",scroll:"scrollLeft",scrollSize:"scrollWidth",size:"width",key:"horizontal",axis:"X",client:"clientX",direction:"left"}};function u(e){var t=e.move,i=e.size,n=e.bar,r={},s="translate"+n.axis+"("+t+"%)";return r[n.size]=i,r.transform=s,r.msTransform=s,r.webkitTransform=s,r}var c={name:"Bar",props:{vertical:Boolean,size:String,move:Number},computed:{bar:function(){return l[this.vertical?"vertical":"horizontal"]},wrap:function(){return this.$parent.wrap}},render:function(e){var t=this.size,i=this.move,n=this.bar;return e("div",{class:["el-scrollbar__bar","is-"+n.key],on:{mousedown:this.clickTrackHandler}},[e("div",{ref:"thumb",class:"el-scrollbar__thumb",on:{mousedown:this.clickThumbHandler},style:u({size:t,move:i,bar:n})})])},methods:{clickThumbHandler:function(e){e.ctrlKey||2===e.button||(this.startDrag(e),this[this.bar.axis]=e.currentTarget[this.bar.offset]-(e[this.bar.client]-e.currentTarget.getBoundingClientRect()[this.bar.direction]))},clickTrackHandler:function(e){var t=100*(Math.abs(e.target.getBoundingClientRect()[this.bar.direction]-e[this.bar.client])-this.$refs.thumb[this.bar.offset]/2)/this.$el[this.bar.offset];this.wrap[this.bar.scroll]=t*this.wrap[this.bar.scrollSize]/100},startDrag:function(e){e.stopImmediatePropagation(),this.cursorDown=!0,Object(o.on)(document,"mousemove",this.mouseMoveDocumentHandler),Object(o.on)(document,"mouseup",this.mouseUpDocumentHandler),document.onselectstart=function(){return!1}},mouseMoveDocumentHandler:function(e){if(!1!==this.cursorDown){var t=this[this.bar.axis];if(t){var i=100*(-1*(this.$el.getBoundingClientRect()[this.bar.direction]-e[this.bar.client])-(this.$refs.thumb[this.bar.offset]-t))/this.$el[this.bar.offset];this.wrap[this.bar.scroll]=i*this.wrap[this.bar.scrollSize]/100}}},mouseUpDocumentHandler:function(e){this.cursorDown=!1,this[this.bar.axis]=0,Object(o.off)(document,"mousemove",this.mouseMoveDocumentHandler),document.onselectstart=null}},destroyed:function(){Object(o.off)(document,"mouseup",this.mouseUpDocumentHandler)}},d={name:"ElScrollbar",components:{Bar:c},props:{native:Boolean,wrapStyle:{},wrapClass:{},viewClass:{},viewStyle:{},noresize:Boolean,tag:{type:String,default:"div"}},data:function(){return{sizeWidth:"0",sizeHeight:"0",moveX:0,moveY:0}},computed:{wrap:function(){return this.$refs.wrap}},render:function(e){var t=s()(),i=this.wrapStyle;if(t){var n="-"+t+"px",r="margin-bottom: "+n+"; margin-right: "+n+";";Array.isArray(this.wrapStyle)?(i=Object(a.toObject)(this.wrapStyle)).marginRight=i.marginBottom=n:"string"==typeof this.wrapStyle?i+=r:i=r}var o=e(this.tag,{class:["el-scrollbar__view",this.viewClass],style:this.viewStyle,ref:"resize"},this.$slots.default),l=e("div",{ref:"wrap",style:i,on:{scroll:this.handleScroll},class:[this.wrapClass,"el-scrollbar__wrap",t?"":"el-scrollbar__wrap--hidden-default"]},[[o]]),u=void 0;return u=this.native?[e("div",{ref:"wrap",class:[this.wrapClass,"el-scrollbar__wrap"],style:i},[[o]])]:[l,e(c,{attrs:{move:this.moveX,size:this.sizeWidth}}),e(c,{attrs:{vertical:!0,move:this.moveY,size:this.sizeHeight}})],e("div",{class:"el-scrollbar"},u)},methods:{handleScroll:function(){var e=this.wrap;this.moveY=100*e.scrollTop/e.clientHeight,this.moveX=100*e.scrollLeft/e.clientWidth},update:function(){var e,t,i=this.wrap;i&&(e=100*i.clientHeight/i.scrollHeight,t=100*i.clientWidth/i.scrollWidth,this.sizeHeight=e<100?e+"%":"",this.sizeWidth=t<100?t+"%":"")}},mounted:function(){this.native||(this.$nextTick(this.update),!this.noresize&&Object(n.addResizeListener)(this.$refs.resize,this.update))},beforeDestroy:function(){this.native||!this.noresize&&Object(n.removeResizeListener)(this.$refs.resize,this.update)},install:function(e){e.component(d.name,d)}};t.default=d},16:function(e,t){e.exports=i(124)},2:function(e,t){e.exports=i(25)},3:function(e,t){e.exports=i(19)},38:function(e,t){e.exports=i(122)}})},function(e,t,i){"use strict";t.__esModule=!0,t.default=function(e){return{methods:{focus:function(){this.$refs[e].focus()}}}}},function(e,t,i){"use strict";t.__esModule=!0,t.default=function(e,t){if(s.default.prototype.$isServer)return;if(!t)return void(e.scrollTop=0);var i=[],n=t.offsetParent;for(;n&&e!==n&&e.contains(n);)i.push(n),n=n.offsetParent;var r=t.offsetTop+i.reduce((function(e,t){return e+t.offsetTop}),0),a=r+t.offsetHeight,o=e.scrollTop,l=o+e.clientHeight;rl&&(e.scrollTop=a-e.clientHeight)};var n,r=i(0),s=(n=r)&&n.__esModule?n:{default:n}},function(e,t,i){"use strict";t.__esModule=!0;var n=n||{};n.Utils=n.Utils||{},n.Utils.focusFirstDescendant=function(e){for(var t=0;t=0;t--){var i=e.childNodes[t];if(n.Utils.attemptFocus(i)||n.Utils.focusLastDescendant(i))return!0}return!1},n.Utils.attemptFocus=function(e){if(!n.Utils.isFocusable(e))return!1;n.Utils.IgnoreUtilFocusChanges=!0;try{e.focus()}catch(e){}return n.Utils.IgnoreUtilFocusChanges=!1,document.activeElement===e},n.Utils.isFocusable=function(e){if(e.tabIndex>0||0===e.tabIndex&&null!==e.getAttribute("tabIndex"))return!0;if(e.disabled)return!1;switch(e.nodeName){case"A":return!!e.href&&"ignore"!==e.rel;case"INPUT":return"hidden"!==e.type&&"file"!==e.type;case"BUTTON":case"SELECT":case"TEXTAREA":return!0;default:return!1}},n.Utils.triggerEvent=function(e,t){var i=void 0;i=/^mouse|click/.test(t)?"MouseEvents":/^key/.test(t)?"KeyboardEvent":"HTMLEvents";for(var n=document.createEvent(i),r=arguments.length,s=Array(r>2?r-2:0),a=2;a1?arguments[1]:void 0)}})},function(e,t,i){var n=i(9),r=i(157),s=i(4)("species");e.exports=function(e,t){var i,a=n(e).constructor;return void 0===a||null==(i=n(a)[s])?t:r(i)}},function(e,t){!function(t){"use strict";var i=Object.prototype,n=i.hasOwnProperty,r="function"==typeof Symbol?Symbol:{},s=r.iterator||"@@iterator",a=r.asyncIterator||"@@asyncIterator",o=r.toStringTag||"@@toStringTag",l="object"==typeof e,u=t.regeneratorRuntime;if(u)l&&(e.exports=u);else{(u=t.regeneratorRuntime=l?e.exports:{}).wrap=m;var c={},d={};d[s]=function(){return this};var h=Object.getPrototypeOf,p=h&&h(h(O([])));p&&p!==i&&n.call(p,s)&&(d=p);var f=b.prototype=g.prototype=Object.create(d);_.prototype=f.constructor=b,b.constructor=_,b[o]=_.displayName="GeneratorFunction",u.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===_||"GeneratorFunction"===(t.displayName||t.name))},u.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,b):(e.__proto__=b,o in e||(e[o]="GeneratorFunction")),e.prototype=Object.create(f),e},u.awrap=function(e){return{__await:e}},y(x.prototype),x.prototype[a]=function(){return this},u.AsyncIterator=x,u.async=function(e,t,i,n){var r=new x(m(e,t,i,n));return u.isGeneratorFunction(t)?r:r.next().then((function(e){return e.done?e.value:r.next()}))},y(f),f[o]="Generator",f[s]=function(){return this},f.toString=function(){return"[object Generator]"},u.keys=function(e){var t=[];for(var i in e)t.push(i);return t.reverse(),function i(){for(;t.length;){var n=t.pop();if(n in e)return i.value=n,i.done=!1,i}return i.done=!0,i}},u.values=O,S.prototype={constructor:S,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(C),!e)for(var t in this)"t"===t.charAt(0)&&n.call(this,t)&&!isNaN(+t.slice(1))&&(this[t]=void 0)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var t=this;function i(i,n){return a.type="throw",a.arg=e,t.next=i,n&&(t.method="next",t.arg=void 0),!!n}for(var r=this.tryEntries.length-1;r>=0;--r){var s=this.tryEntries[r],a=s.completion;if("root"===s.tryLoc)return i("end");if(s.tryLoc<=this.prev){var o=n.call(s,"catchLoc"),l=n.call(s,"finallyLoc");if(o&&l){if(this.prev=0;--i){var r=this.tryEntries[i];if(r.tryLoc<=this.prev&&n.call(r,"finallyLoc")&&this.prev=0;--t){var i=this.tryEntries[t];if(i.finallyLoc===e)return this.complete(i.completion,i.afterLoc),C(i),c}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var i=this.tryEntries[t];if(i.tryLoc===e){var n=i.completion;if("throw"===n.type){var r=n.arg;C(i)}return r}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,i){return this.delegate={iterator:O(e),resultName:t,nextLoc:i},"next"===this.method&&(this.arg=void 0),c}}}function m(e,t,i,n){var r=t&&t.prototype instanceof g?t:g,s=Object.create(r.prototype),a=new S(n||[]);return s._invoke=function(e,t,i){var n="suspendedStart";return function(r,s){if("executing"===n)throw new Error("Generator is already running");if("completed"===n){if("throw"===r)throw s;return D()}for(i.method=r,i.arg=s;;){var a=i.delegate;if(a){var o=k(a,i);if(o){if(o===c)continue;return o}}if("next"===i.method)i.sent=i._sent=i.arg;else if("throw"===i.method){if("suspendedStart"===n)throw n="completed",i.arg;i.dispatchException(i.arg)}else"return"===i.method&&i.abrupt("return",i.arg);n="executing";var l=v(e,t,i);if("normal"===l.type){if(n=i.done?"completed":"suspendedYield",l.arg===c)continue;return{value:l.arg,done:i.done}}"throw"===l.type&&(n="completed",i.method="throw",i.arg=l.arg)}}}(e,i,a),s}function v(e,t,i){try{return{type:"normal",arg:e.call(t,i)}}catch(e){return{type:"throw",arg:e}}}function g(){}function _(){}function b(){}function y(e){["next","throw","return"].forEach((function(t){e[t]=function(e){return this._invoke(t,e)}}))}function x(e){var t;this._invoke=function(i,r){function s(){return new Promise((function(t,s){!function t(i,r,s,a){var o=v(e[i],e,r);if("throw"!==o.type){var l=o.arg,u=l.value;return u&&"object"==typeof u&&n.call(u,"__await")?Promise.resolve(u.__await).then((function(e){t("next",e,s,a)}),(function(e){t("throw",e,s,a)})):Promise.resolve(u).then((function(e){l.value=e,s(l)}),a)}a(o.arg)}(i,r,t,s)}))}return t=t?t.then(s,s):s()}}function k(e,t){var i=e.iterator[t.method];if(void 0===i){if(t.delegate=null,"throw"===t.method){if(e.iterator.return&&(t.method="return",t.arg=void 0,k(e,t),"throw"===t.method))return c;t.method="throw",t.arg=new TypeError("The iterator does not provide a 'throw' method")}return c}var n=v(i,e.iterator,t.arg);if("throw"===n.type)return t.method="throw",t.arg=n.arg,t.delegate=null,c;var r=n.arg;return r?r.done?(t[e.resultName]=r.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,c):r:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,c)}function w(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function C(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function S(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(w,this),this.reset(!0)}function O(e){if(e){var t=e[s];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var i=-1,r=function t(){for(;++i=51||!r((function(){var e=[];return e[f]=!1,e.concat()[0]!==e})),v=d("concat"),g=function(e){if(!a(e))return!1;var t=e[f];return void 0!==t?!!t:s(e)};n({target:"Array",proto:!0,forced:!m||!v},{concat:function(e){var t,i,n,r,s,a=o(this),d=c(a,0),h=0;for(t=-1,n=arguments.length;t9007199254740991)throw TypeError("Maximum allowed index exceeded");for(i=0;i=9007199254740991)throw TypeError("Maximum allowed index exceeded");u(d,h++,s)}return d.length=h,d}})},function(e,t,i){var n=i(216);e.exports=function(e){if(n(e))throw TypeError("The method doesn't accept regular expressions");return e}},function(e,t,i){var n=i(4)("match");e.exports=function(e){var t=/./;try{"/./"[e](t)}catch(i){try{return t[n]=!1,"/./"[e](t)}catch(e){}}return!1}},function(e,t,i){"use strict";var n=i(9);e.exports=function(){var e=n(this),t="";return e.global&&(t+="g"),e.ignoreCase&&(t+="i"),e.multiline&&(t+="m"),e.dotAll&&(t+="s"),e.unicode&&(t+="u"),e.sticky&&(t+="y"),t}},function(e,t,i){"use strict";var n=i(16),r=i(99),s=i(50),a=i(39),o=i(147),l=a.set,u=a.getterFor("Array Iterator");e.exports=o(Array,"Array",(function(e,t){l(this,{type:"Array Iterator",target:n(e),index:0,kind:t})}),(function(){var e=u(this),t=e.target,i=e.kind,n=e.index++;return!t||n>=t.length?(e.target=void 0,{value:void 0,done:!0}):"keys"==i?{value:n,done:!1}:"values"==i?{value:t[n],done:!1}:{value:[n,t[n]],done:!1}}),"values"),s.Arguments=s.Array,r("keys"),r("values"),r("entries")},function(e,t,i){var n=i(103);e.exports=n&&!Symbol.sham&&"symbol"==typeof Symbol.iterator},function(e,t,i){var n=i(7),r=i(11),s=i(9),a=i(48);e.exports=n?Object.defineProperties:function(e,t){s(e);for(var i,n=a(t),o=n.length,l=0;o>l;)r.f(e,i=n[l++],t[i]);return e}},function(e,t,i){var n=i(7),r=i(2),s=i(66);e.exports=!n&&!r((function(){return 7!=Object.defineProperty(s("div"),"a",{get:function(){return 7}}).a}))},function(e,t,i){var n=i(8),r=i(68),s=i(58),a=i(236),o=i(4)("toPrimitive");e.exports=function(e,t){if(!n(e)||r(e))return e;var i,l=s(e,o);if(l){if(void 0===t&&(t="default"),i=l.call(e,t),!n(i)||r(i))return i;throw TypeError("Can't convert object to primitive value")}return void 0===t&&(t="number"),a(e,t)}},function(e,t){e.exports=function(e){try{return String(e)}catch(e){return"Object"}}},function(e,t,i){var n=i(10),r=i(16),s=i(104).indexOf,a=i(49);e.exports=function(e,t){var i,o=r(e),l=0,u=[];for(i in o)!n(a,i)&&n(o,i)&&u.push(i);for(;t.length>l;)n(o,i=t[l++])&&(~s(u,i)||u.push(i));return u}},function(e,t,i){var n=i(69),r=Math.max,s=Math.min;e.exports=function(e,t){var i=n(e);return i<0?r(i+t,0):s(i,t)}},function(e,t,i){var n=i(17);e.exports=n("document","documentElement")},function(e,t,i){"use strict";var n=i(1),r=i(30),s=i(62),a=i(5),o=i(238),l=i(107),u=i(74),c=i(73),d=i(32),h=i(13),p=i(4),f=i(50),m=i(150),v=s.PROPER,g=s.CONFIGURABLE,_=m.IteratorPrototype,b=m.BUGGY_SAFARI_ITERATORS,y=p("iterator"),x=function(){return this};e.exports=function(e,t,i,s,p,m,k){o(i,t,s);var w,C,S,O=function(e){if(e===p&&P)return P;if(!b&&e in T)return T[e];switch(e){case"keys":case"values":case"entries":return function(){return new i(this,e)}}return function(){return new i(this)}},D=t+" Iterator",E=!1,T=e.prototype,$=T[y]||T["@@iterator"]||p&&T[p],P=!b&&$||O(p),j="Array"==t&&T.entries||$;if(j&&(w=l(j.call(new e)))!==Object.prototype&&w.next&&(r||l(w)===_||(u?u(w,_):a(w[y])||h(w,y,x)),c(w,D,!0,!0),r&&(f[D]=x)),v&&"values"==p&&$&&"values"!==$.name&&(!r&&g?d(T,"name","values"):(E=!0,P=function(){return $.call(this)})),p)if(C={values:O("values"),keys:m?P:O("keys"),entries:O("entries")},k)for(S in C)(b||E||!(S in T))&&h(T,S,C[S]);else n({target:t,proto:!0,forced:b||E},C);return r&&!k||T[y]===P||h(T,y,P,{name:p}),f[t]=P,C}},function(e,t,i){var n=i(10),r=i(149),s=i(26),a=i(11);e.exports=function(e,t){for(var i=r(t),o=a.f,l=s.f,u=0;un;)t.push(arguments[n++]);return x[++y]=function(){(l(e)?e:Function(e)).apply(void 0,t)},r(y),y},v=function(e){delete x[e]},f?r=function(e){g.nextTick(w(e))}:b&&b.now?r=function(e){b.now(w(e))}:_&&!p?(a=(s=new _).port2,s.port1.onmessage=C,r=c(a.postMessage,a,1)):o.addEventListener&&l(o.postMessage)&&!o.importScripts&&n&&"file:"!==n.protocol&&!u(S)?(r=S,o.addEventListener("message",C,!1)):r="onreadystatechange"in h("script")?function(e){d.appendChild(h("script")).onreadystatechange=function(){d.removeChild(this),k(e)}}:function(e){setTimeout(w(e),0)}),e.exports={set:m,clear:v}},function(e,t,i){var n=i(60);e.exports=/(?:ipad|iphone|ipod).*applewebkit/i.test(n)},function(e,t,i){var n=i(9),r=i(8),s=i(161);e.exports=function(e,t){if(n(e),r(t)&&t.constructor===e)return t;var i=s.f(e);return(0,i.resolve)(t),i.promise}},function(e,t,i){"use strict";var n=i(31),r=function(e){var t,i;this.promise=new e((function(e,n){if(void 0!==t||void 0!==i)throw TypeError("Bad Promise constructor");t=e,i=n})),this.resolve=n(t),this.reject=n(i)};e.exports.f=function(e){return new r(e)}},function(e,t,i){var n=i(69),r=i(20),s=i(28),a=function(e){return function(t,i){var a,o,l=r(s(t)),u=n(i),c=l.length;return u<0||u>=c?e?"":void 0:(a=l.charCodeAt(u))<55296||a>56319||u+1===c||(o=l.charCodeAt(u+1))<56320||o>57343?e?l.charAt(u):a:e?l.slice(u,u+2):o-56320+(a-55296<<10)+65536}};e.exports={codeAt:a(!1),charAt:a(!0)}},function(e,t){e.exports={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0}},function(e,t,i){var n=i(66)("span").classList,r=n&&n.constructor&&n.constructor.prototype;e.exports=r===Object.prototype?void 0:r},function(e,t,i){var n=i(254);e.exports=function(e,t){return new(n(e))(0===t?0:t)}},function(e,t,i){var n=i(1),r=i(7),s=i(149),a=i(16),o=i(26),l=i(80);n({target:"Object",stat:!0,sham:!r},{getOwnPropertyDescriptors:function(e){for(var t,i,n=a(e),r=o.f,u=s(n),c={},d=0;u.length>d;)void 0!==(i=r(n,t=u[d++]))&&l(c,t,i);return c}})},function(e,t,i){var n=i(1),r=i(2),s=i(15),a=i(107),o=i(151);n({target:"Object",stat:!0,forced:r((function(){a(1)})),sham:!o},{getPrototypeOf:function(e){return a(s(e))}})},function(e,t,i){"use strict";var n=i(33).forEach,r=i(40)("forEach");e.exports=r?[].forEach:function(e){return n(this,e,arguments.length>1?arguments[1]:void 0)}},function(e,t,i){var n=i(2);e.exports=!n((function(){return Object.isExtensible(Object.preventExtensions({}))}))},function(e,t,i){var n=i(16),r=i(45).f,s={}.toString,a="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];e.exports.f=function(e){return a&&"[object Window]"==s.call(e)?function(e){try{return r(e)}catch(e){return a.slice()}}(e):r(n(e))}},function(e,t,i){var n=i(4);t.f=n},function(e,t,i){var n=i(259),r=i(10),s=i(171),a=i(11).f;e.exports=function(e){var t=n.Symbol||(n.Symbol={});r(t,e)||a(t,e,{value:s.f(e)})}},function(e,t,i){var n=i(1),r=i(260);n({target:"Array",stat:!0,forced:!i(156)((function(e){Array.from(e)}))},{from:r})},function(e,t,i){i(1)({target:"Object",stat:!0,sham:!i(7)},{create:i(27)})},function(e,t){e.exports=function(e,t){for(var i=-1,n=t.length,r=e.length;++ic))return!1;var h=l.get(e),p=l.get(t);if(h&&p)return h==t&&p==e;var f=-1,m=!0,v=2&i?new n:void 0;for(l.set(e,t),l.set(t,e);++f-1&&e%1==0&&e3?0:(e-e%10!=10)*e%10]}};var g={D:function(e){return e.getDay()},DD:function(e){return h(e.getDay())},Do:function(e,t){return t.DoFn(e.getDate())},d:function(e){return e.getDate()},dd:function(e){return h(e.getDate())},ddd:function(e,t){return t.dayNamesShort[e.getDay()]},dddd:function(e,t){return t.dayNames[e.getDay()]},M:function(e){return e.getMonth()+1},MM:function(e){return h(e.getMonth()+1)},MMM:function(e,t){return t.monthNamesShort[e.getMonth()]},MMMM:function(e,t){return t.monthNames[e.getMonth()]},yy:function(e){return h(String(e.getFullYear()),4).substr(2)},yyyy:function(e){return h(e.getFullYear(),4)},h:function(e){return e.getHours()%12||12},hh:function(e){return h(e.getHours()%12||12)},H:function(e){return e.getHours()},HH:function(e){return h(e.getHours())},m:function(e){return e.getMinutes()},mm:function(e){return h(e.getMinutes())},s:function(e){return e.getSeconds()},ss:function(e){return h(e.getSeconds())},S:function(e){return Math.round(e.getMilliseconds()/100)},SS:function(e){return h(Math.round(e.getMilliseconds()/10),2)},SSS:function(e){return h(e.getMilliseconds(),3)},a:function(e,t){return e.getHours()<12?t.amPm[0]:t.amPm[1]},A:function(e,t){return e.getHours()<12?t.amPm[0].toUpperCase():t.amPm[1].toUpperCase()},ZZ:function(e){var t=e.getTimezoneOffset();return(t>0?"-":"+")+h(100*Math.floor(Math.abs(t)/60)+Math.abs(t)%60,4)}},_={d:["\\d\\d?",function(e,t){e.day=t}],Do:["\\d\\d?"+o,function(e,t){e.day=parseInt(t,10)}],M:["\\d\\d?",function(e,t){e.month=t-1}],yy:["\\d\\d?",function(e,t){var i=+(""+(new Date).getFullYear()).substr(0,2);e.year=""+(t>68?i-1:i)+t}],h:["\\d\\d?",function(e,t){e.hour=t}],m:["\\d\\d?",function(e,t){e.minute=t}],s:["\\d\\d?",function(e,t){e.second=t}],yyyy:["\\d{4}",function(e,t){e.year=t}],S:["\\d",function(e,t){e.millisecond=100*t}],SS:["\\d{2}",function(e,t){e.millisecond=10*t}],SSS:["\\d{3}",function(e,t){e.millisecond=t}],D:["\\d\\d?",u],ddd:[o,u],MMM:[o,d("monthNamesShort")],MMMM:[o,d("monthNames")],a:[o,function(e,t,i){var n=t.toLowerCase();n===i.amPm[0]?e.isPm=!1:n===i.amPm[1]&&(e.isPm=!0)}],ZZ:["[^\\s]*?[\\+\\-]\\d\\d:?\\d\\d|[^\\s]*?Z",function(e,t){var i,n=(t+"").match(/([+-]|\d\d)/gi);n&&(i=60*n[1]+parseInt(n[2],10),e.timezoneOffset="+"===n[0]?i:-i)}]};_.dd=_.d,_.dddd=_.ddd,_.DD=_.D,_.mm=_.m,_.hh=_.H=_.HH=_.h,_.MM=_.M,_.ss=_.s,_.A=_.a,s.masks={default:"ddd MMM dd yyyy HH:mm:ss",shortDate:"M/D/yy",mediumDate:"MMM d, yyyy",longDate:"MMMM d, yyyy",fullDate:"dddd, MMMM d, yyyy",shortTime:"HH:mm",mediumTime:"HH:mm:ss",longTime:"HH:mm:ss.SSS"},s.format=function(e,t,i){var n=i||s.i18n;if("number"==typeof e&&(e=new Date(e)),"[object Date]"!==Object.prototype.toString.call(e)||isNaN(e.getTime()))throw new Error("Invalid Date in fecha.format");t=s.masks[t]||t||s.masks.default;var r=[];return(t=(t=t.replace(l,(function(e,t){return r.push(t),"@@@"}))).replace(a,(function(t){return t in g?g[t](e,n):t.slice(1,t.length-1)}))).replace(/@@@/g,(function(){return r.shift()}))},s.parse=function(e,t,i){var n=i||s.i18n;if("string"!=typeof t)throw new Error("Invalid format in fecha.parse");if(t=s.masks[t]||t,e.length>1e3)return null;var r={},o=[],u=[];t=t.replace(l,(function(e,t){return u.push(t),"@@@"}));var c,d=(c=t,c.replace(/[|\\{()[^$+*?.-]/g,"\\$&")).replace(a,(function(e){if(_[e]){var t=_[e];return o.push(t[1]),"("+t[0]+")"}return e}));d=d.replace(/@@@/g,(function(){return u.shift()}));var h=e.match(new RegExp(d,"i"));if(!h)return null;for(var p=1;p0?this._openTimer=setTimeout((function(){t._openTimer=null,t.doOpen(i)}),n):this.doOpen(i)},doOpen:function(e){if(!this.$isServer&&(!this.willOpen||this.willOpen())&&!this.opened){this._opening=!0;var t=this.$el,i=e.modal,n=e.zIndex;if(n&&(s.default.zIndex=n),i&&(this._closing&&(s.default.closeModal(this._popupId),this._closing=!1),s.default.openModal(this._popupId,s.default.nextZIndex(),this.modalAppendToBody?void 0:t,e.modalClass,e.modalFade),e.lockScroll)){this.withoutHiddenClass=!(0,o.hasClass)(document.body,"el-popup-parent--hidden"),this.withoutHiddenClass&&(this.bodyPaddingRight=document.body.style.paddingRight,this.computedBodyPaddingRight=parseInt((0,o.getStyle)(document.body,"paddingRight"),10)),c=(0,a.default)();var r=document.documentElement.clientHeight0&&(r||"scroll"===l)&&this.withoutHiddenClass&&(document.body.style.paddingRight=this.computedBodyPaddingRight+c+"px"),(0,o.addClass)(document.body,"el-popup-parent--hidden")}"static"===getComputedStyle(t).position&&(t.style.position="absolute"),t.style.zIndex=s.default.nextZIndex(),this.opened=!0,this.onOpen&&this.onOpen(),this.doAfterOpen()}},doAfterOpen:function(){this._opening=!1},close:function(){var e=this;if(!this.willClose||this.willClose()){null!==this._openTimer&&(clearTimeout(this._openTimer),this._openTimer=null),clearTimeout(this._closeTimer);var t=Number(this.closeDelay);t>0?this._closeTimer=setTimeout((function(){e._closeTimer=null,e.doClose()}),t):this.doClose()}},doClose:function(){this._closing=!0,this.onClose&&this.onClose(),this.lockScroll&&setTimeout(this.restoreBodyStyle,200),this.opened=!1,this.doAfterClose()},doAfterClose:function(){s.default.closeModal(this._popupId),this._closing=!1},restoreBodyStyle:function(){this.modal&&this.withoutHiddenClass&&(document.body.style.paddingRight=this.bodyPaddingRight,(0,o.removeClass)(document.body,"el-popup-parent--hidden")),this.withoutHiddenClass=!0}}},t.PopupManager=s.default},function(e,t,i){"use strict";t.__esModule=!0;i(19);t.default={mounted:function(){},methods:{getMigratingConfig:function(){return{props:{},events:{}}}}}},function(e,t,i){"use strict";t.__esModule=!0;var n,r=i(0),s=(n=r)&&n.__esModule?n:{default:n},a=i(25);var o=[],l="@@clickoutsideContext",u=void 0,c=0;function d(e,t,i){return function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};!(i&&i.context&&n.target&&r.target)||e.contains(n.target)||e.contains(r.target)||e===n.target||i.context.popperElm&&(i.context.popperElm.contains(n.target)||i.context.popperElm.contains(r.target))||(t.expression&&e[l].methodName&&i.context[e[l].methodName]?i.context[e[l].methodName]():e[l].bindingFn&&e[l].bindingFn())}}!s.default.prototype.$isServer&&(0,a.on)(document,"mousedown",(function(e){return u=e})),!s.default.prototype.$isServer&&(0,a.on)(document,"mouseup",(function(e){o.forEach((function(t){return t[l].documentHandler(e,u)}))})),t.default={bind:function(e,t,i){o.push(e);var n=c++;e[l]={id:n,documentHandler:d(e,t,i),methodName:t.expression,bindingFn:t.value}},update:function(e,t,i){e[l].documentHandler=d(e,t,i),e[l].methodName=t.expression,e[l].bindingFn=t.value},unbind:function(e){for(var t=o.length,i=0;i-1:e._q(e.model,e.trueLabel)},on:{change:[function(t){var i=e.model,n=t.target,r=n.checked?e.trueLabel:e.falseLabel;if(Array.isArray(i)){var s=e._i(i,null);n.checked?s<0&&(e.model=i.concat([null])):s>-1&&(e.model=i.slice(0,s).concat(i.slice(s+1)))}else e.model=r},e.handleChange],focus:function(t){e.focus=!0},blur:function(t){e.focus=!1}}}):i("input",{directives:[{name:"model",rawName:"v-model",value:e.model,expression:"model"}],staticClass:"el-checkbox__original",attrs:{type:"checkbox","aria-hidden":e.indeterminate?"true":"false",disabled:e.isDisabled,name:e.name},domProps:{value:e.label,checked:Array.isArray(e.model)?e._i(e.model,e.label)>-1:e.model},on:{change:[function(t){var i=e.model,n=t.target,r=!!n.checked;if(Array.isArray(i)){var s=e.label,a=e._i(i,s);n.checked?a<0&&(e.model=i.concat([s])):a>-1&&(e.model=i.slice(0,a).concat(i.slice(a+1)))}else e.model=r},e.handleChange],focus:function(t){e.focus=!0},blur:function(t){e.focus=!1}}})]),e.$slots.default||e.label?i("span",{staticClass:"el-checkbox__label"},[e._t("default"),e.$slots.default?e._e():[e._v(e._s(e.label))]],2):e._e()])};n._withStripped=!0;var r=i(4),s={name:"ElCheckbox",mixins:[i.n(r).a],inject:{elForm:{default:""},elFormItem:{default:""}},componentName:"ElCheckbox",data:function(){return{selfModel:!1,focus:!1,isLimitExceeded:!1}},computed:{model:{get:function(){return this.isGroup?this.store:void 0!==this.value?this.value:this.selfModel},set:function(e){this.isGroup?(this.isLimitExceeded=!1,void 0!==this._checkboxGroup.min&&e.lengththis._checkboxGroup.max&&(this.isLimitExceeded=!0),!1===this.isLimitExceeded&&this.dispatch("ElCheckboxGroup","input",[e])):(this.$emit("input",e),this.selfModel=e)}},isChecked:function(){return"[object Boolean]"==={}.toString.call(this.model)?this.model:Array.isArray(this.model)?this.model.indexOf(this.label)>-1:null!==this.model&&void 0!==this.model?this.model===this.trueLabel:void 0},isGroup:function(){for(var e=this.$parent;e;){if("ElCheckboxGroup"===e.$options.componentName)return this._checkboxGroup=e,!0;e=e.$parent}return!1},store:function(){return this._checkboxGroup?this._checkboxGroup.value:this.value},isLimitDisabled:function(){var e=this._checkboxGroup,t=e.max,i=e.min;return!(!t&&!i)&&this.model.length>=t&&!this.isChecked||this.model.length<=i&&this.isChecked},isDisabled:function(){return this.isGroup?this._checkboxGroup.disabled||this.disabled||(this.elForm||{}).disabled||this.isLimitDisabled:this.disabled||(this.elForm||{}).disabled},_elFormItemSize:function(){return(this.elFormItem||{}).elFormItemSize},checkboxSize:function(){var e=this.size||this._elFormItemSize||(this.$ELEMENT||{}).size;return this.isGroup&&this._checkboxGroup.checkboxGroupSize||e}},props:{value:{},label:{},indeterminate:Boolean,disabled:Boolean,checked:Boolean,name:String,trueLabel:[String,Number],falseLabel:[String,Number],id:String,controls:String,border:Boolean,size:String},methods:{addToStore:function(){Array.isArray(this.model)&&-1===this.model.indexOf(this.label)?this.model.push(this.label):this.model=this.trueLabel||!0},handleChange:function(e){var t=this;if(!this.isLimitExceeded){var i=void 0;i=e.target.checked?void 0===this.trueLabel||this.trueLabel:void 0!==this.falseLabel&&this.falseLabel,this.$emit("change",i,e),this.$nextTick((function(){t.isGroup&&t.dispatch("ElCheckboxGroup","change",[t._checkboxGroup.value])}))}}},created:function(){this.checked&&this.addToStore()},mounted:function(){this.indeterminate&&this.$el.setAttribute("aria-controls",this.controls)},watch:{value:function(e){this.dispatch("ElFormItem","el.form.change",e)}}},a=i(0),o=Object(a.a)(s,n,[],!1,null,null,null);o.options.__file="packages/checkbox/src/checkbox.vue";var l=o.exports;l.install=function(e){e.component(l.name,l)};t.default=l},4:function(e,t){e.exports=i(36)}})},function(e,t){var i=/^(attrs|props|on|nativeOn|class|style|hook)$/;function n(e,t){return function(){e&&e.apply(this,arguments),t&&t.apply(this,arguments)}}e.exports=function(e){return e.reduce((function(e,t){var r,s,a,o,l;for(a in t)if(r=e[a],s=t[a],r&&i.test(a))if("class"===a&&("string"==typeof r&&(l=r,e[a]=r={},r[l]=!0),"string"==typeof s&&(l=s,t[a]=s={},s[l]=!0)),"on"===a||"nativeOn"===a||"hook"===a)for(o in s)r[o]=n(r[o],s[o]);else if(Array.isArray(r))e[a]=r.concat(s);else if(Array.isArray(s))e[a]=[r].concat(s);else for(o in s)r[o]=s[o];else e[a]=t[a];return e}),{})}},function(e,t,i){e.exports=function(e){var t={};function i(n){if(t[n])return t[n].exports;var r=t[n]={i:n,l:!1,exports:{}};return e[n].call(r.exports,r,r.exports,i),r.l=!0,r.exports}return i.m=e,i.c=t,i.d=function(e,t,n){i.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},i.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.t=function(e,t){if(1&t&&(e=i(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(i.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)i.d(n,r,function(t){return e[t]}.bind(null,r));return n},i.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(t,"a",t),t},i.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},i.p="/dist/",i(i.s=130)}({0:function(e,t,i){"use strict";function n(e,t,i,n,r,s,a,o){var l,u="function"==typeof e?e.options:e;if(t&&(u.render=t,u.staticRenderFns=i,u._compiled=!0),n&&(u.functional=!0),s&&(u._scopeId="data-v-"+s),a?(l=function(e){(e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),r&&r.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(a)},u._ssrRegister=l):r&&(l=o?function(){r.call(this,this.$root.$options.shadowRoot)}:r),l)if(u.functional){u._injectStyles=l;var c=u.render;u.render=function(e,t){return l.call(t),c(e,t)}}else{var d=u.beforeCreate;u.beforeCreate=d?[].concat(d,l):[l]}return{exports:e,options:u}}i.d(t,"a",(function(){return n}))},130:function(e,t,i){"use strict";i.r(t);var n={name:"ElTag",props:{text:String,closable:Boolean,type:String,hit:Boolean,disableTransitions:Boolean,color:String,size:String,effect:{type:String,default:"light",validator:function(e){return-1!==["dark","light","plain"].indexOf(e)}}},methods:{handleClose:function(e){e.stopPropagation(),this.$emit("close",e)},handleClick:function(e){this.$emit("click",e)}},computed:{tagSize:function(){return this.size||(this.$ELEMENT||{}).size}},render:function(e){var t=this.type,i=this.tagSize,n=this.hit,r=this.effect,s=e("span",{class:["el-tag",t?"el-tag--"+t:"",i?"el-tag--"+i:"",r?"el-tag--"+r:"",n&&"is-hit"],style:{backgroundColor:this.color},on:{click:this.handleClick}},[this.$slots.default,this.closable&&e("i",{class:"el-tag__close el-icon-close",on:{click:this.handleClose}})]);return this.disableTransitions?s:e("transition",{attrs:{name:"el-zoom-in-center"}},[s])}},r=i(0),s=Object(r.a)(n,void 0,void 0,!1,null,null,null);s.options.__file="packages/tag/src/tag.vue";var a=s.exports;a.install=function(e){e.component(a.name,a)};t.default=a}})},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&(t[i]=e[i]);return t.default=e,t}(i(6));t.default=function(e,t,i,r,s,a){!e.required||i.hasOwnProperty(e.field)&&!n.isEmptyValue(t,a||e.type)||r.push(n.format(s.messages.required,e.fullField))}},function(e,t,i){e.exports=function(e){var t={};function i(n){if(t[n])return t[n].exports;var r=t[n]={i:n,l:!1,exports:{}};return e[n].call(r.exports,r,r.exports,i),r.l=!0,r.exports}return i.m=e,i.c=t,i.d=function(e,t,n){i.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},i.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.t=function(e,t){if(1&t&&(e=i(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(i.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)i.d(n,r,function(t){return e[t]}.bind(null,r));return n},i.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(t,"a",t),t},i.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},i.p="/dist/",i(i.s=108)}({0:function(e,t,i){"use strict";function n(e,t,i,n,r,s,a,o){var l,u="function"==typeof e?e.options:e;if(t&&(u.render=t,u.staticRenderFns=i,u._compiled=!0),n&&(u.functional=!0),s&&(u._scopeId="data-v-"+s),a?(l=function(e){(e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),r&&r.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(a)},u._ssrRegister=l):r&&(l=o?function(){r.call(this,this.$root.$options.shadowRoot)}:r),l)if(u.functional){u._injectStyles=l;var c=u.render;u.render=function(e,t){return l.call(t),c(e,t)}}else{var d=u.beforeCreate;u.beforeCreate=d?[].concat(d,l):[l]}return{exports:e,options:u}}i.d(t,"a",(function(){return n}))},108:function(e,t,i){"use strict";i.r(t);var n=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("label",{staticClass:"el-radio",class:[e.border&&e.radioSize?"el-radio--"+e.radioSize:"",{"is-disabled":e.isDisabled},{"is-focus":e.focus},{"is-bordered":e.border},{"is-checked":e.model===e.label}],attrs:{role:"radio","aria-checked":e.model===e.label,"aria-disabled":e.isDisabled,tabindex:e.tabIndex},on:{keydown:function(t){if(!("button"in t)&&e._k(t.keyCode,"space",32,t.key,[" ","Spacebar"]))return null;t.stopPropagation(),t.preventDefault(),e.model=e.isDisabled?e.model:e.label}}},[i("span",{staticClass:"el-radio__input",class:{"is-disabled":e.isDisabled,"is-checked":e.model===e.label}},[i("span",{staticClass:"el-radio__inner"}),i("input",{directives:[{name:"model",rawName:"v-model",value:e.model,expression:"model"}],ref:"radio",staticClass:"el-radio__original",attrs:{type:"radio","aria-hidden":"true",name:e.name,disabled:e.isDisabled,tabindex:"-1",autocomplete:"off"},domProps:{value:e.label,checked:e._q(e.model,e.label)},on:{focus:function(t){e.focus=!0},blur:function(t){e.focus=!1},change:[function(t){e.model=e.label},e.handleChange]}})]),i("span",{staticClass:"el-radio__label",on:{keydown:function(e){e.stopPropagation()}}},[e._t("default"),e.$slots.default?e._e():[e._v(e._s(e.label))]],2)])};n._withStripped=!0;var r=i(4),s={name:"ElRadio",mixins:[i.n(r).a],inject:{elForm:{default:""},elFormItem:{default:""}},componentName:"ElRadio",props:{value:{},label:{},disabled:Boolean,name:String,border:Boolean,size:String},data:function(){return{focus:!1}},computed:{isGroup:function(){for(var e=this.$parent;e;){if("ElRadioGroup"===e.$options.componentName)return this._radioGroup=e,!0;e=e.$parent}return!1},model:{get:function(){return this.isGroup?this._radioGroup.value:this.value},set:function(e){this.isGroup?this.dispatch("ElRadioGroup","input",[e]):this.$emit("input",e),this.$refs.radio&&(this.$refs.radio.checked=this.model===this.label)}},_elFormItemSize:function(){return(this.elFormItem||{}).elFormItemSize},radioSize:function(){var e=this.size||this._elFormItemSize||(this.$ELEMENT||{}).size;return this.isGroup&&this._radioGroup.radioGroupSize||e},isDisabled:function(){return this.isGroup?this._radioGroup.disabled||this.disabled||(this.elForm||{}).disabled:this.disabled||(this.elForm||{}).disabled},tabIndex:function(){return this.isDisabled||this.isGroup&&this.model!==this.label?-1:0}},methods:{handleChange:function(){var e=this;this.$nextTick((function(){e.$emit("change",e.model),e.isGroup&&e.dispatch("ElRadioGroup","handleChange",e.model)}))}}},a=i(0),o=Object(a.a)(s,n,[],!1,null,null,null);o.options.__file="packages/radio/src/radio.vue";var l=o.exports;l.install=function(e){e.component(l.name,l)};t.default=l},4:function(e,t){e.exports=i(36)}})},function(e,t,i){},function(e,t,i){i(1)({target:"Object",stat:!0},{setPrototypeOf:i(74)})},function(e,t,i){var n=i(1),r=i(17),s=i(157),a=i(9),o=i(8),l=i(27),u=i(418),c=i(2),d=r("Reflect","construct"),h=c((function(){function e(){}return!(d((function(){}),[],e)instanceof e)})),p=!c((function(){d((function(){}))})),f=h||p;n({target:"Reflect",stat:!0,forced:f,sham:f},{construct:function(e,t){s(e),a(t);var i=arguments.length<3?e:s(arguments[2]);if(p&&!h)return d(e,t,i);if(e==i){switch(t.length){case 0:return new e;case 1:return new e(t[0]);case 2:return new e(t[0],t[1]);case 3:return new e(t[0],t[1],t[2]);case 4:return new e(t[0],t[1],t[2],t[3])}var n=[null];return n.push.apply(n,t),new(u.apply(e,n))}var r=i.prototype,c=l(o(r)?r:Object.prototype),f=Function.apply.call(e,c,t);return o(f)?f:c}})},function(e,t,i){},function(e,t,i){},function(e,t,i){var n=i(263),r=i(268),s=i(338),a=i(346),o=i(355),l=i(232),u=s((function(e){var t=l(e);return o(t)&&(t=void 0),a(n(e,1,o,!0),r(t,2))}));e.exports=u},function(e,t,i){e.exports=function(e){var t={};function i(n){if(t[n])return t[n].exports;var r=t[n]={i:n,l:!1,exports:{}};return e[n].call(r.exports,r,r.exports,i),r.l=!0,r.exports}return i.m=e,i.c=t,i.d=function(e,t,n){i.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},i.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.t=function(e,t){if(1&t&&(e=i(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(i.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)i.d(n,r,function(t){return e[t]}.bind(null,r));return n},i.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(t,"a",t),t},i.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},i.p="/dist/",i(i.s=45)}([function(e,t){e.exports=i(360)},function(e,t){e.exports=i(25)},function(e,t){e.exports=i(19)},function(e,t){e.exports=i(36)},function(e,t){e.exports=i(121)},function(e,t){e.exports=i(88)},function(e,t){e.exports=i(0)},function(e,t){e.exports=i(89)},function(e,t){e.exports=i(123)},function(e,t){e.exports=i(199)},function(e,t){e.exports=i(200)},function(e,t){e.exports=i(198)},function(e,t){e.exports=i(120)},function(e,t){e.exports=i(366)},function(e,t){e.exports=i(124)},function(e,t){e.exports=i(197)},function(e,t){e.exports=i(91)},function(e,t){e.exports=i(201)},function(e,t){e.exports=i(126)},function(e,t){e.exports=i(90)},function(e,t){e.exports=i(196)},function(e,t){e.exports=i(368)},function(e,t){e.exports=i(369)},function(e,t){e.exports=i(127)},function(e,t){e.exports=i(202)},function(e,t){e.exports=i(125)},function(e,t){e.exports=i(370)},function(e,t){e.exports=i(128)},function(e,t){e.exports=i(371)},function(e,t){e.exports=i(203)},function(e,t){e.exports=i(122)},function(e,t){e.exports=i(372)},function(e,t){e.exports=i(373)},function(e,t){e.exports=i(374)},function(e,t){e.exports=i(129)},function(e,t){e.exports=i(375)},function(e,t){e.exports=i(376)},function(e,t){e.exports=i(377)},function(e,t){e.exports=i(378)},function(e,t){e.exports=i(383)},function(e,t){e.exports=i(384)},function(e,t){e.exports=i(406)},function(e,t){e.exports=i(407)},function(e,t){e.exports=i(205)},function(e,t){e.exports=i(408)},function(e,t,i){e.exports=i(46)},function(e,t,i){"use strict";i.r(t);var n=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("ul",{staticClass:"el-pager",on:{click:e.onPagerClick}},[e.pageCount>0?i("li",{staticClass:"number",class:{active:1===e.currentPage,disabled:e.disabled}},[e._v("1")]):e._e(),e.showPrevMore?i("li",{staticClass:"el-icon more btn-quickprev",class:[e.quickprevIconClass,{disabled:e.disabled}],on:{mouseenter:function(t){e.onMouseenter("left")},mouseleave:function(t){e.quickprevIconClass="el-icon-more"}}}):e._e(),e._l(e.pagers,(function(t){return i("li",{key:t,staticClass:"number",class:{active:e.currentPage===t,disabled:e.disabled}},[e._v(e._s(t))])})),e.showNextMore?i("li",{staticClass:"el-icon more btn-quicknext",class:[e.quicknextIconClass,{disabled:e.disabled}],on:{mouseenter:function(t){e.onMouseenter("right")},mouseleave:function(t){e.quicknextIconClass="el-icon-more"}}}):e._e(),e.pageCount>1?i("li",{staticClass:"number",class:{active:e.currentPage===e.pageCount,disabled:e.disabled}},[e._v(e._s(e.pageCount))]):e._e()],2)};function r(e,t,i,n,r,s,a,o){var l,u="function"==typeof e?e.options:e;if(t&&(u.render=t,u.staticRenderFns=i,u._compiled=!0),n&&(u.functional=!0),s&&(u._scopeId="data-v-"+s),a?(l=function(e){(e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),r&&r.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(a)},u._ssrRegister=l):r&&(l=o?function(){r.call(this,this.$root.$options.shadowRoot)}:r),l)if(u.functional){u._injectStyles=l;var c=u.render;u.render=function(e,t){return l.call(t),c(e,t)}}else{var d=u.beforeCreate;u.beforeCreate=d?[].concat(d,l):[l]}return{exports:e,options:u}}n._withStripped=!0;var s=r({name:"ElPager",props:{currentPage:Number,pageCount:Number,pagerCount:Number,disabled:Boolean},watch:{showPrevMore:function(e){e||(this.quickprevIconClass="el-icon-more")},showNextMore:function(e){e||(this.quicknextIconClass="el-icon-more")}},methods:{onPagerClick:function(e){var t=e.target;if("UL"!==t.tagName&&!this.disabled){var i=Number(e.target.textContent),n=this.pageCount,r=this.currentPage,s=this.pagerCount-2;-1!==t.className.indexOf("more")&&(-1!==t.className.indexOf("quickprev")?i=r-s:-1!==t.className.indexOf("quicknext")&&(i=r+s)),isNaN(i)||(i<1&&(i=1),i>n&&(i=n)),i!==r&&this.$emit("change",i)}},onMouseenter:function(e){this.disabled||("left"===e?this.quickprevIconClass="el-icon-d-arrow-left":this.quicknextIconClass="el-icon-d-arrow-right")}},computed:{pagers:function(){var e=this.pagerCount,t=(e-1)/2,i=Number(this.currentPage),n=Number(this.pageCount),r=!1,s=!1;n>e&&(i>e-t&&(r=!0),i4&&e<22&&e%2==1},default:7},currentPage:{type:Number,default:1},layout:{default:"prev, pager, next, jumper, ->, total"},pageSizes:{type:Array,default:function(){return[10,20,30,40,50,100]}},popperClass:String,prevText:String,nextText:String,background:Boolean,disabled:Boolean,hideOnSinglePage:Boolean},data:function(){return{internalCurrentPage:1,internalPageSize:0,lastEmittedPage:-1,userChangePageSize:!1}},render:function(e){var t=this.layout;if(!t)return null;if(this.hideOnSinglePage&&(!this.internalPageCount||1===this.internalPageCount))return null;var i=e("div",{class:["el-pagination",{"is-background":this.background,"el-pagination--small":this.small}]}),n={prev:e("prev"),jumper:e("jumper"),pager:e("pager",{attrs:{currentPage:this.internalCurrentPage,pageCount:this.internalPageCount,pagerCount:this.pagerCount,disabled:this.disabled},on:{change:this.handleCurrentChange}}),next:e("next"),sizes:e("sizes",{attrs:{pageSizes:this.pageSizes}}),slot:e("slot",[this.$slots.default?this.$slots.default:""]),total:e("total")},r=t.split(",").map((function(e){return e.trim()})),s=e("div",{class:"el-pagination__rightwrapper"}),a=!1;return i.children=i.children||[],s.children=s.children||[],r.forEach((function(e){"->"!==e?a?s.children.push(n[e]):i.children.push(n[e]):a=!0})),a&&i.children.unshift(s),i},components:{Prev:{render:function(e){return e("button",{attrs:{type:"button",disabled:this.$parent.disabled||this.$parent.internalCurrentPage<=1},class:"btn-prev",on:{click:this.$parent.prev}},[this.$parent.prevText?e("span",[this.$parent.prevText]):e("i",{class:"el-icon el-icon-arrow-left"})])}},Next:{render:function(e){return e("button",{attrs:{type:"button",disabled:this.$parent.disabled||this.$parent.internalCurrentPage===this.$parent.internalPageCount||0===this.$parent.internalPageCount},class:"btn-next",on:{click:this.$parent.next}},[this.$parent.nextText?e("span",[this.$parent.nextText]):e("i",{class:"el-icon el-icon-arrow-right"})])}},Sizes:{mixins:[f.a],props:{pageSizes:Array},watch:{pageSizes:{immediate:!0,handler:function(e,t){Object(m.valueEquals)(e,t)||Array.isArray(e)&&(this.$parent.internalPageSize=e.indexOf(this.$parent.pageSize)>-1?this.$parent.pageSize:this.pageSizes[0])}}},render:function(e){var t=this;return e("span",{class:"el-pagination__sizes"},[e("el-select",{attrs:{value:this.$parent.internalPageSize,popperClass:this.$parent.popperClass||"",size:"mini",disabled:this.$parent.disabled},on:{input:this.handleChange}},[this.pageSizes.map((function(i){return e("el-option",{attrs:{value:i,label:i+t.t("el.pagination.pagesize")}})}))])])},components:{ElSelect:l.a,ElOption:c.a},methods:{handleChange:function(e){e!==this.$parent.internalPageSize&&(this.$parent.internalPageSize=e=parseInt(e,10),this.$parent.userChangePageSize=!0,this.$parent.$emit("update:pageSize",e),this.$parent.$emit("size-change",e))}}},Jumper:{mixins:[f.a],components:{ElInput:h.a},data:function(){return{userInput:null}},watch:{"$parent.internalCurrentPage":function(){this.userInput=null}},methods:{handleKeyup:function(e){var t=e.keyCode,i=e.target;13===t&&this.handleChange(i.value)},handleInput:function(e){this.userInput=e},handleChange:function(e){this.$parent.internalCurrentPage=this.$parent.getValidCurrentPage(e),this.$parent.emitChange(),this.userInput=null}},render:function(e){return e("span",{class:"el-pagination__jump"},[this.t("el.pagination.goto"),e("el-input",{class:"el-pagination__editor is-in-pagination",attrs:{min:1,max:this.$parent.internalPageCount,value:null!==this.userInput?this.userInput:this.$parent.internalCurrentPage,type:"number",disabled:this.$parent.disabled},nativeOn:{keyup:this.handleKeyup},on:{input:this.handleInput,change:this.handleChange}}),this.t("el.pagination.pageClassifier")])}},Total:{mixins:[f.a],render:function(e){return"number"==typeof this.$parent.total?e("span",{class:"el-pagination__total"},[this.t("el.pagination.total",{total:this.$parent.total})]):""}},Pager:a},methods:{handleCurrentChange:function(e){this.internalCurrentPage=this.getValidCurrentPage(e),this.userChangePageSize=!0,this.emitChange()},prev:function(){if(!this.disabled){var e=this.internalCurrentPage-1;this.internalCurrentPage=this.getValidCurrentPage(e),this.$emit("prev-click",this.internalCurrentPage),this.emitChange()}},next:function(){if(!this.disabled){var e=this.internalCurrentPage+1;this.internalCurrentPage=this.getValidCurrentPage(e),this.$emit("next-click",this.internalCurrentPage),this.emitChange()}},getValidCurrentPage:function(e){e=parseInt(e,10);var t=void 0;return"number"==typeof this.internalPageCount?e<1?t=1:e>this.internalPageCount&&(t=this.internalPageCount):(isNaN(e)||e<1)&&(t=1),(void 0===t&&isNaN(e)||0===t)&&(t=1),void 0===t?e:t},emitChange:function(){var e=this;this.$nextTick((function(){(e.internalCurrentPage!==e.lastEmittedPage||e.userChangePageSize)&&(e.$emit("current-change",e.internalCurrentPage),e.lastEmittedPage=e.internalCurrentPage,e.userChangePageSize=!1)}))}},computed:{internalPageCount:function(){return"number"==typeof this.total?Math.max(1,Math.ceil(this.total/this.internalPageSize)):"number"==typeof this.pageCount?Math.max(1,this.pageCount):null}},watch:{currentPage:{immediate:!0,handler:function(e){this.internalCurrentPage=this.getValidCurrentPage(e)}},pageSize:{immediate:!0,handler:function(e){this.internalPageSize=isNaN(e)?10:e}},internalCurrentPage:{immediate:!0,handler:function(e){this.$emit("update:currentPage",e),this.lastEmittedPage=-1}},internalPageCount:function(e){var t=this.internalCurrentPage;e>0&&0===t?this.internalCurrentPage=1:t>e&&(this.internalCurrentPage=0===e?1:e,this.userChangePageSize&&this.emitChange()),this.userChangePageSize=!1}},install:function(e){e.component(v.name,v)}},g=v,_=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("transition",{attrs:{name:"dialog-fade"},on:{"after-enter":e.afterEnter,"after-leave":e.afterLeave}},[i("div",{directives:[{name:"show",rawName:"v-show",value:e.visible,expression:"visible"}],staticClass:"el-dialog__wrapper",on:{click:function(t){return t.target!==t.currentTarget?null:e.handleWrapperClick(t)}}},[i("div",{key:e.key,ref:"dialog",class:["el-dialog",{"is-fullscreen":e.fullscreen,"el-dialog--center":e.center},e.customClass],style:e.style,attrs:{role:"dialog","aria-modal":"true","aria-label":e.title||"dialog"}},[i("div",{staticClass:"el-dialog__header"},[e._t("title",[i("span",{staticClass:"el-dialog__title"},[e._v(e._s(e.title))])]),e.showClose?i("button",{staticClass:"el-dialog__headerbtn",attrs:{type:"button","aria-label":"Close"},on:{click:e.handleClose}},[i("i",{staticClass:"el-dialog__close el-icon el-icon-close"})]):e._e()],2),e.rendered?i("div",{staticClass:"el-dialog__body"},[e._t("default")],2):e._e(),e.$slots.footer?i("div",{staticClass:"el-dialog__footer"},[e._t("footer")],2):e._e()])])])};_._withStripped=!0;var b=i(11),y=i.n(b),x=i(9),k=i.n(x),w=i(3),C=i.n(w),S=r({name:"ElDialog",mixins:[y.a,C.a,k.a],props:{title:{type:String,default:""},modal:{type:Boolean,default:!0},modalAppendToBody:{type:Boolean,default:!0},appendToBody:{type:Boolean,default:!1},lockScroll:{type:Boolean,default:!0},closeOnClickModal:{type:Boolean,default:!0},closeOnPressEscape:{type:Boolean,default:!0},showClose:{type:Boolean,default:!0},width:String,fullscreen:Boolean,customClass:{type:String,default:""},top:{type:String,default:"15vh"},beforeClose:Function,center:{type:Boolean,default:!1},destroyOnClose:Boolean},data:function(){return{closed:!1,key:0}},watch:{visible:function(e){var t=this;e?(this.closed=!1,this.$emit("open"),this.$el.addEventListener("scroll",this.updatePopper),this.$nextTick((function(){t.$refs.dialog.scrollTop=0})),this.appendToBody&&document.body.appendChild(this.$el)):(this.$el.removeEventListener("scroll",this.updatePopper),this.closed||this.$emit("close"),this.destroyOnClose&&this.$nextTick((function(){t.key++})))}},computed:{style:function(){var e={};return this.fullscreen||(e.marginTop=this.top,this.width&&(e.width=this.width)),e}},methods:{getMigratingConfig:function(){return{props:{size:"size is removed."}}},handleWrapperClick:function(){this.closeOnClickModal&&this.handleClose()},handleClose:function(){"function"==typeof this.beforeClose?this.beforeClose(this.hide):this.hide()},hide:function(e){!1!==e&&(this.$emit("update:visible",!1),this.$emit("close"),this.closed=!0)},updatePopper:function(){this.broadcast("ElSelectDropdown","updatePopper"),this.broadcast("ElDropdownMenu","updatePopper")},afterEnter:function(){this.$emit("opened")},afterLeave:function(){this.$emit("closed")}},mounted:function(){this.visible&&(this.rendered=!0,this.open(),this.appendToBody&&document.body.appendChild(this.$el))},destroyed:function(){this.appendToBody&&this.$el&&this.$el.parentNode&&this.$el.parentNode.removeChild(this.$el)}},_,[],!1,null,null,null);S.options.__file="packages/dialog/src/component.vue";var O=S.exports;O.install=function(e){e.component(O.name,O)};var D=O,E=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{directives:[{name:"clickoutside",rawName:"v-clickoutside",value:e.close,expression:"close"}],staticClass:"el-autocomplete",attrs:{"aria-haspopup":"listbox",role:"combobox","aria-expanded":e.suggestionVisible,"aria-owns":e.id}},[i("el-input",e._b({ref:"input",on:{input:e.handleInput,change:e.handleChange,focus:e.handleFocus,blur:e.handleBlur,clear:e.handleClear},nativeOn:{keydown:[function(t){if(!("button"in t)&&e._k(t.keyCode,"up",38,t.key,["Up","ArrowUp"]))return null;t.preventDefault(),e.highlight(e.highlightedIndex-1)},function(t){if(!("button"in t)&&e._k(t.keyCode,"down",40,t.key,["Down","ArrowDown"]))return null;t.preventDefault(),e.highlight(e.highlightedIndex+1)},function(t){return!("button"in t)&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:e.handleKeyEnter(t)},function(t){return!("button"in t)&&e._k(t.keyCode,"tab",9,t.key,"Tab")?null:e.close(t)}]}},"el-input",[e.$props,e.$attrs],!1),[e.$slots.prepend?i("template",{slot:"prepend"},[e._t("prepend")],2):e._e(),e.$slots.append?i("template",{slot:"append"},[e._t("append")],2):e._e(),e.$slots.prefix?i("template",{slot:"prefix"},[e._t("prefix")],2):e._e(),e.$slots.suffix?i("template",{slot:"suffix"},[e._t("suffix")],2):e._e()],2),i("el-autocomplete-suggestions",{ref:"suggestions",class:[e.popperClass?e.popperClass:""],attrs:{"visible-arrow":"","popper-options":e.popperOptions,"append-to-body":e.popperAppendToBody,placement:e.placement,id:e.id}},e._l(e.suggestions,(function(t,n){return i("li",{key:n,class:{highlighted:e.highlightedIndex===n},attrs:{id:e.id+"-item-"+n,role:"option","aria-selected":e.highlightedIndex===n},on:{click:function(i){e.select(t)}}},[e._t("default",[e._v("\n "+e._s(t[e.valueKey])+"\n ")],{item:t})],2)})),0)],1)};E._withStripped=!0;var T=i(16),$=i.n(T),P=i(10),j=i.n(P),M=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("transition",{attrs:{name:"el-zoom-in-top"},on:{"after-leave":e.doDestroy}},[i("div",{directives:[{name:"show",rawName:"v-show",value:e.showPopper,expression:"showPopper"}],staticClass:"el-autocomplete-suggestion el-popper",class:{"is-loading":!e.parent.hideLoading&&e.parent.loading},style:{width:e.dropdownWidth},attrs:{role:"region"}},[i("el-scrollbar",{attrs:{tag:"ul","wrap-class":"el-autocomplete-suggestion__wrap","view-class":"el-autocomplete-suggestion__list"}},[!e.parent.hideLoading&&e.parent.loading?i("li",[i("i",{staticClass:"el-icon-loading"})]):e._t("default")],2)],1)])};M._withStripped=!0;var I=i(5),A=i.n(I),N=i(18),L=i.n(N),F=r({components:{ElScrollbar:L.a},mixins:[A.a,C.a],componentName:"ElAutocompleteSuggestions",data:function(){return{parent:this.$parent,dropdownWidth:""}},props:{options:{default:function(){return{gpuAcceleration:!1}}},id:String},methods:{select:function(e){this.dispatch("ElAutocomplete","item-click",e)}},updated:function(){var e=this;this.$nextTick((function(t){e.popperJS&&e.updatePopper()}))},mounted:function(){this.$parent.popperElm=this.popperElm=this.$el,this.referenceElm=this.$parent.$refs.input.$refs.input||this.$parent.$refs.input.$refs.textarea,this.referenceList=this.$el.querySelector(".el-autocomplete-suggestion__list"),this.referenceList.setAttribute("role","listbox"),this.referenceList.setAttribute("id",this.id)},created:function(){var e=this;this.$on("visible",(function(t,i){e.dropdownWidth=i+"px",e.showPopper=t}))}},M,[],!1,null,null,null);F.options.__file="packages/autocomplete/src/autocomplete-suggestions.vue";var V=F.exports,z=i(23),R=i.n(z),B=r({name:"ElAutocomplete",mixins:[C.a,R()("input"),k.a],inheritAttrs:!1,componentName:"ElAutocomplete",components:{ElInput:h.a,ElAutocompleteSuggestions:V},directives:{Clickoutside:j.a},props:{valueKey:{type:String,default:"value"},popperClass:String,popperOptions:Object,placeholder:String,clearable:{type:Boolean,default:!1},disabled:Boolean,name:String,size:String,value:String,maxlength:Number,minlength:Number,autofocus:Boolean,fetchSuggestions:Function,triggerOnFocus:{type:Boolean,default:!0},customItem:String,selectWhenUnmatched:{type:Boolean,default:!1},prefixIcon:String,suffixIcon:String,label:String,debounce:{type:Number,default:300},placement:{type:String,default:"bottom-start"},hideLoading:Boolean,popperAppendToBody:{type:Boolean,default:!0},highlightFirstItem:{type:Boolean,default:!1}},data:function(){return{activated:!1,suggestions:[],loading:!1,highlightedIndex:-1,suggestionDisabled:!1}},computed:{suggestionVisible:function(){var e=this.suggestions;return(Array.isArray(e)&&e.length>0||this.loading)&&this.activated},id:function(){return"el-autocomplete-"+Object(m.generateId)()}},watch:{suggestionVisible:function(e){var t=this.getInput();t&&this.broadcast("ElAutocompleteSuggestions","visible",[e,t.offsetWidth])}},methods:{getMigratingConfig:function(){return{props:{"custom-item":"custom-item is removed, use scoped slot instead.",props:"props is removed, use value-key instead."}}},getData:function(e){var t=this;this.suggestionDisabled||(this.loading=!0,this.fetchSuggestions(e,(function(e){t.loading=!1,t.suggestionDisabled||(Array.isArray(e)?(t.suggestions=e,t.highlightedIndex=t.highlightFirstItem?0:-1):console.error("[Element Error][Autocomplete]autocomplete suggestions must be an array"))})))},handleInput:function(e){if(this.$emit("input",e),this.suggestionDisabled=!1,!this.triggerOnFocus&&!e)return this.suggestionDisabled=!0,void(this.suggestions=[]);this.debouncedGetData(e)},handleChange:function(e){this.$emit("change",e)},handleFocus:function(e){this.activated=!0,this.$emit("focus",e),this.triggerOnFocus&&this.debouncedGetData(this.value)},handleBlur:function(e){this.$emit("blur",e)},handleClear:function(){this.activated=!1,this.$emit("clear")},close:function(e){this.activated=!1},handleKeyEnter:function(e){var t=this;this.suggestionVisible&&this.highlightedIndex>=0&&this.highlightedIndex=this.suggestions.length&&(e=this.suggestions.length-1);var t=this.$refs.suggestions.$el.querySelector(".el-autocomplete-suggestion__wrap"),i=t.querySelectorAll(".el-autocomplete-suggestion__list li")[e],n=t.scrollTop,r=i.offsetTop;r+i.scrollHeight>n+t.clientHeight&&(t.scrollTop+=i.scrollHeight),r=0&&this.resetTabindex(this.triggerElm),clearTimeout(this.timeout),this.timeout=setTimeout((function(){e.visible=!1}),"click"===this.trigger?0:this.hideTimeout))},handleClick:function(){this.disabled||(this.visible?this.hide():this.show())},handleTriggerKeyDown:function(e){var t=e.keyCode;[38,40].indexOf(t)>-1?(this.removeTabindex(),this.resetTabindex(this.menuItems[0]),this.menuItems[0].focus(),e.preventDefault(),e.stopPropagation()):13===t?this.handleClick():[9,27].indexOf(t)>-1&&this.hide()},handleItemKeyDown:function(e){var t=e.keyCode,i=e.target,n=this.menuItemsArray.indexOf(i),r=this.menuItemsArray.length-1,s=void 0;[38,40].indexOf(t)>-1?(s=38===t?0!==n?n-1:0:n-1&&(this.hide(),this.triggerElmFocus())},resetTabindex:function(e){this.removeTabindex(),e.setAttribute("tabindex","0")},removeTabindex:function(){this.triggerElm.setAttribute("tabindex","-1"),this.menuItemsArray.forEach((function(e){e.setAttribute("tabindex","-1")}))},initAria:function(){this.dropdownElm.setAttribute("id",this.listId),this.triggerElm.setAttribute("aria-haspopup","list"),this.triggerElm.setAttribute("aria-controls",this.listId),this.splitButton||(this.triggerElm.setAttribute("role","button"),this.triggerElm.setAttribute("tabindex",this.tabindex),this.triggerElm.setAttribute("class",(this.triggerElm.getAttribute("class")||"")+" el-dropdown-selfdefine"))},initEvent:function(){var e=this,t=this.trigger,i=this.show,n=this.hide,r=this.handleClick,s=this.splitButton,a=this.handleTriggerKeyDown,o=this.handleItemKeyDown;this.triggerElm=s?this.$refs.trigger.$el:this.$slots.default[0].elm;var l=this.dropdownElm;this.triggerElm.addEventListener("keydown",a),l.addEventListener("keydown",o,!0),s||(this.triggerElm.addEventListener("focus",(function(){e.focusing=!0})),this.triggerElm.addEventListener("blur",(function(){e.focusing=!1})),this.triggerElm.addEventListener("click",(function(){e.focusing=!1}))),"hover"===t?(this.triggerElm.addEventListener("mouseenter",i),this.triggerElm.addEventListener("mouseleave",n),l.addEventListener("mouseenter",i),l.addEventListener("mouseleave",n)):"click"===t&&this.triggerElm.addEventListener("click",r)},handleMenuItemClick:function(e,t){this.hideOnClick&&(this.visible=!1),this.$emit("command",e,t)},triggerElmFocus:function(){this.triggerElm.focus&&this.triggerElm.focus()},initDomOperation:function(){this.dropdownElm=this.popperElm,this.menuItems=this.dropdownElm.querySelectorAll("[tabindex='-1']"),this.menuItemsArray=[].slice.call(this.menuItems),this.initEvent(),this.initAria()}},render:function(e){var t=this,i=this.hide,n=this.splitButton,r=this.type,s=this.dropdownSize,a=this.disabled,o=null;if(n)o=e("el-button-group",[e("el-button",{attrs:{type:r,size:s,disabled:a},nativeOn:{click:function(e){t.$emit("click",e),i()}}},[this.$slots.default]),e("el-button",{ref:"trigger",attrs:{type:r,size:s,disabled:a},class:"el-dropdown__caret-button"},[e("i",{class:"el-dropdown__icon el-icon-arrow-down"})])]);else{var l=(o=this.$slots.default)[0].data||{},u=l.attrs,c=void 0===u?{}:u;a&&!c.disabled&&(c.disabled=!0,l.attrs=c)}var d=a?null:this.$slots.dropdown;return e("div",{class:"el-dropdown",directives:[{name:"clickoutside",value:i}],attrs:{"aria-disabled":a}},[o,d])}},void 0,void 0,!1,null,null,null);K.options.__file="packages/dropdown/src/dropdown.vue";var X=K.exports;X.install=function(e){e.component(X.name,X)};var Z=X,Q=function(){var e=this.$createElement,t=this._self._c||e;return t("transition",{attrs:{name:"el-zoom-in-top"},on:{"after-leave":this.doDestroy}},[t("ul",{directives:[{name:"show",rawName:"v-show",value:this.showPopper,expression:"showPopper"}],staticClass:"el-dropdown-menu el-popper",class:[this.size&&"el-dropdown-menu--"+this.size]},[this._t("default")],2)])};Q._withStripped=!0;var J=r({name:"ElDropdownMenu",componentName:"ElDropdownMenu",mixins:[A.a],props:{visibleArrow:{type:Boolean,default:!0},arrowOffset:{type:Number,default:0}},data:function(){return{size:this.dropdown.dropdownSize}},inject:["dropdown"],created:function(){var e=this;this.$on("updatePopper",(function(){e.showPopper&&e.updatePopper()})),this.$on("visible",(function(t){e.showPopper=t}))},mounted:function(){this.dropdown.popperElm=this.popperElm=this.$el,this.referenceElm=this.dropdown.$el,this.dropdown.initDomOperation()},watch:{"dropdown.placement":{immediate:!0,handler:function(e){this.currentPlacement=e}}}},Q,[],!1,null,null,null);J.options.__file="packages/dropdown/src/dropdown-menu.vue";var ee=J.exports;ee.install=function(e){e.component(ee.name,ee)};var te=ee,ie=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("li",{staticClass:"el-dropdown-menu__item",class:{"is-disabled":e.disabled,"el-dropdown-menu__item--divided":e.divided},attrs:{"aria-disabled":e.disabled,tabindex:e.disabled?null:-1},on:{click:e.handleClick}},[e.icon?i("i",{class:e.icon}):e._e(),e._t("default")],2)};ie._withStripped=!0;var ne=r({name:"ElDropdownItem",mixins:[C.a],props:{command:{},disabled:Boolean,divided:Boolean,icon:String},methods:{handleClick:function(e){this.dispatch("ElDropdown","menu-item-click",[this.command,this])}}},ie,[],!1,null,null,null);ne.options.__file="packages/dropdown/src/dropdown-item.vue";var re=ne.exports;re.install=function(e){e.component(re.name,re)};var se=re,ae=ae||{};ae.Utils=ae.Utils||{},ae.Utils.focusFirstDescendant=function(e){for(var t=0;t=0;t--){var i=e.childNodes[t];if(ae.Utils.attemptFocus(i)||ae.Utils.focusLastDescendant(i))return!0}return!1},ae.Utils.attemptFocus=function(e){if(!ae.Utils.isFocusable(e))return!1;ae.Utils.IgnoreUtilFocusChanges=!0;try{e.focus()}catch(e){}return ae.Utils.IgnoreUtilFocusChanges=!1,document.activeElement===e},ae.Utils.isFocusable=function(e){if(e.tabIndex>0||0===e.tabIndex&&null!==e.getAttribute("tabIndex"))return!0;if(e.disabled)return!1;switch(e.nodeName){case"A":return!!e.href&&"ignore"!==e.rel;case"INPUT":return"hidden"!==e.type&&"file"!==e.type;case"BUTTON":case"SELECT":case"TEXTAREA":return!0;default:return!1}},ae.Utils.triggerEvent=function(e,t){var i=void 0;i=/^mouse|click/.test(t)?"MouseEvents":/^key/.test(t)?"KeyboardEvent":"HTMLEvents";for(var n=document.createEvent(i),r=arguments.length,s=Array(r>2?r-2:0),a=2;a=0;t--)e.splice(t,0,e[t]);e=e.join("")}return/^[0-9a-fA-F]{6}$/.test(e)?{red:parseInt(e.slice(0,2),16),green:parseInt(e.slice(2,4),16),blue:parseInt(e.slice(4,6),16)}:{red:255,green:255,blue:255}},mixColor:function(e,t){var i=this.getColorChannels(e),n=i.red,r=i.green,s=i.blue;return t>0?(n*=1-t,r*=1-t,s*=1-t):(n+=(255-n)*t,r+=(255-r)*t,s+=(255-s)*t),"rgb("+Math.round(n)+", "+Math.round(r)+", "+Math.round(s)+")"},addItem:function(e){this.$set(this.items,e.index,e)},removeItem:function(e){delete this.items[e.index]},addSubmenu:function(e){this.$set(this.submenus,e.index,e)},removeSubmenu:function(e){delete this.submenus[e.index]},openMenu:function(e,t){var i=this.openedMenus;-1===i.indexOf(e)&&(this.uniqueOpened&&(this.openedMenus=i.filter((function(e){return-1!==t.indexOf(e)}))),this.openedMenus.push(e))},closeMenu:function(e){var t=this.openedMenus.indexOf(e);-1!==t&&this.openedMenus.splice(t,1)},handleSubmenuClick:function(e){var t=e.index,i=e.indexPath;-1!==this.openedMenus.indexOf(t)?(this.closeMenu(t),this.$emit("close",t,i)):(this.openMenu(t,i),this.$emit("open",t,i))},handleItemClick:function(e){var t=this,i=e.index,n=e.indexPath,r=this.activeIndex,s=null!==e.index;s&&(this.activeIndex=e.index),this.$emit("select",i,n,e),("horizontal"===this.mode||this.collapse)&&(this.openedMenus=[]),this.router&&s&&this.routeToItem(e,(function(e){if(t.activeIndex=r,e){if("NavigationDuplicated"===e.name)return;console.error(e)}}))},initOpenedMenu:function(){var e=this,t=this.activeIndex,i=this.items[t];i&&"horizontal"!==this.mode&&!this.collapse&&i.indexPath.forEach((function(t){var i=e.submenus[t];i&&e.openMenu(t,i.indexPath)}))},routeToItem:function(e,t){var i=e.route||e.index;try{this.$router.push(i,(function(){}),t)}catch(e){console.error(e)}},open:function(e){var t=this,i=this.submenus[e.toString()].indexPath;i.forEach((function(e){return t.openMenu(e,i)}))},close:function(e){this.closeMenu(e)}},mounted:function(){this.initOpenedMenu(),this.$on("item-click",this.handleItemClick),this.$on("submenu-click",this.handleSubmenuClick),"horizontal"===this.mode&&new pe(this.$el),this.$watch("items",this.updateActiveIndex)}},void 0,void 0,!1,null,null,null);me.options.__file="packages/menu/src/menu.vue";var ve=me.exports;ve.install=function(e){e.component(ve.name,ve)};var ge=ve,_e=i(21),be=i.n(_e),ye={inject:["rootMenu"],computed:{indexPath:function(){for(var e=[this.index],t=this.$parent;"ElMenu"!==t.$options.componentName;)t.index&&e.unshift(t.index),t=t.$parent;return e},parentMenu:function(){for(var e=this.$parent;e&&-1===["ElMenu","ElSubmenu"].indexOf(e.$options.componentName);)e=e.$parent;return e},paddingStyle:function(){if("vertical"!==this.rootMenu.mode)return{};var e=20,t=this.$parent;if(this.rootMenu.collapse)e=20;else for(;t&&"ElMenu"!==t.$options.componentName;)"ElSubmenu"===t.$options.componentName&&(e+=20),t=t.$parent;return{paddingLeft:e+"px"}}}},xe={props:{transformOrigin:{type:[Boolean,String],default:!1},offset:A.a.props.offset,boundariesPadding:A.a.props.boundariesPadding,popperOptions:A.a.props.popperOptions},data:A.a.data,methods:A.a.methods,beforeDestroy:A.a.beforeDestroy,deactivated:A.a.deactivated},ke=r({name:"ElSubmenu",componentName:"ElSubmenu",mixins:[ye,C.a,xe],components:{ElCollapseTransition:be.a},props:{index:{type:String,required:!0},showTimeout:{type:Number,default:300},hideTimeout:{type:Number,default:300},popperClass:String,disabled:Boolean,popperAppendToBody:{type:Boolean,default:void 0}},data:function(){return{popperJS:null,timeout:null,items:{},submenus:{},mouseInChild:!1}},watch:{opened:function(e){var t=this;this.isMenuPopup&&this.$nextTick((function(e){t.updatePopper()}))}},computed:{appendToBody:function(){return void 0===this.popperAppendToBody?this.isFirstLevel:this.popperAppendToBody},menuTransitionName:function(){return this.rootMenu.collapse?"el-zoom-in-left":"el-zoom-in-top"},opened:function(){return this.rootMenu.openedMenus.indexOf(this.index)>-1},active:function(){var e=!1,t=this.submenus,i=this.items;return Object.keys(i).forEach((function(t){i[t].active&&(e=!0)})),Object.keys(t).forEach((function(i){t[i].active&&(e=!0)})),e},hoverBackground:function(){return this.rootMenu.hoverBackground},backgroundColor:function(){return this.rootMenu.backgroundColor||""},activeTextColor:function(){return this.rootMenu.activeTextColor||""},textColor:function(){return this.rootMenu.textColor||""},mode:function(){return this.rootMenu.mode},isMenuPopup:function(){return this.rootMenu.isMenuPopup},titleStyle:function(){return"horizontal"!==this.mode?{color:this.textColor}:{borderBottomColor:this.active?this.rootMenu.activeTextColor?this.activeTextColor:"":"transparent",color:this.active?this.activeTextColor:this.textColor}},isFirstLevel:function(){for(var e=!0,t=this.$parent;t&&t!==this.rootMenu;){if(["ElSubmenu","ElMenuItemGroup"].indexOf(t.$options.componentName)>-1){e=!1;break}t=t.$parent}return e}},methods:{handleCollapseToggle:function(e){e?this.initPopper():this.doDestroy()},addItem:function(e){this.$set(this.items,e.index,e)},removeItem:function(e){delete this.items[e.index]},addSubmenu:function(e){this.$set(this.submenus,e.index,e)},removeSubmenu:function(e){delete this.submenus[e.index]},handleClick:function(){var e=this.rootMenu,t=this.disabled;"hover"===e.menuTrigger&&"horizontal"===e.mode||e.collapse&&"vertical"===e.mode||t||this.dispatch("ElMenu","submenu-click",this)},handleMouseenter:function(e){var t=this,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.showTimeout;if("ActiveXObject"in window||"focus"!==e.type||e.relatedTarget){var n=this.rootMenu,r=this.disabled;"click"===n.menuTrigger&&"horizontal"===n.mode||!n.collapse&&"vertical"===n.mode||r||(this.dispatch("ElSubmenu","mouse-enter-child"),clearTimeout(this.timeout),this.timeout=setTimeout((function(){t.rootMenu.openMenu(t.index,t.indexPath)}),i),this.appendToBody&&this.$parent.$el.dispatchEvent(new MouseEvent("mouseenter")))}},handleMouseleave:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]&&arguments[0],i=this.rootMenu;"click"===i.menuTrigger&&"horizontal"===i.mode||!i.collapse&&"vertical"===i.mode||(this.dispatch("ElSubmenu","mouse-leave-child"),clearTimeout(this.timeout),this.timeout=setTimeout((function(){!e.mouseInChild&&e.rootMenu.closeMenu(e.index)}),this.hideTimeout),this.appendToBody&&t&&"ElSubmenu"===this.$parent.$options.name&&this.$parent.handleMouseleave(!0))},handleTitleMouseenter:function(){if("horizontal"!==this.mode||this.rootMenu.backgroundColor){var e=this.$refs["submenu-title"];e&&(e.style.backgroundColor=this.rootMenu.hoverBackground)}},handleTitleMouseleave:function(){if("horizontal"!==this.mode||this.rootMenu.backgroundColor){var e=this.$refs["submenu-title"];e&&(e.style.backgroundColor=this.rootMenu.backgroundColor||"")}},updatePlacement:function(){this.currentPlacement="horizontal"===this.mode&&this.isFirstLevel?"bottom-start":"right-start"},initPopper:function(){this.referenceElm=this.$el,this.popperElm=this.$refs.menu,this.updatePlacement()}},created:function(){var e=this;this.$on("toggle-collapse",this.handleCollapseToggle),this.$on("mouse-enter-child",(function(){e.mouseInChild=!0,clearTimeout(e.timeout)})),this.$on("mouse-leave-child",(function(){e.mouseInChild=!1,clearTimeout(e.timeout)}))},mounted:function(){this.parentMenu.addSubmenu(this),this.rootMenu.addSubmenu(this),this.initPopper()},beforeDestroy:function(){this.parentMenu.removeSubmenu(this),this.rootMenu.removeSubmenu(this)},render:function(e){var t=this,i=this.active,n=this.opened,r=this.paddingStyle,s=this.titleStyle,a=this.backgroundColor,o=this.rootMenu,l=this.currentPlacement,u=this.menuTransitionName,c=this.mode,d=this.disabled,h=this.popperClass,p=this.$slots,f=this.isFirstLevel,m=e("transition",{attrs:{name:u}},[e("div",{ref:"menu",directives:[{name:"show",value:n}],class:["el-menu--"+c,h],on:{mouseenter:function(e){return t.handleMouseenter(e,100)},mouseleave:function(){return t.handleMouseleave(!0)},focus:function(e){return t.handleMouseenter(e,100)}}},[e("ul",{attrs:{role:"menu"},class:["el-menu el-menu--popup","el-menu--popup-"+l],style:{backgroundColor:o.backgroundColor||""}},[p.default])])]),v=e("el-collapse-transition",[e("ul",{attrs:{role:"menu"},class:"el-menu el-menu--inline",directives:[{name:"show",value:n}],style:{backgroundColor:o.backgroundColor||""}},[p.default])]),g="horizontal"===o.mode&&f||"vertical"===o.mode&&!o.collapse?"el-icon-arrow-down":"el-icon-arrow-right";return e("li",{class:{"el-submenu":!0,"is-active":i,"is-opened":n,"is-disabled":d},attrs:{role:"menuitem","aria-haspopup":"true","aria-expanded":n},on:{mouseenter:this.handleMouseenter,mouseleave:function(){return t.handleMouseleave(!1)},focus:this.handleMouseenter}},[e("div",{class:"el-submenu__title",ref:"submenu-title",on:{click:this.handleClick,mouseenter:this.handleTitleMouseenter,mouseleave:this.handleTitleMouseleave},style:[r,s,{backgroundColor:a}]},[p.title,e("i",{class:["el-submenu__icon-arrow",g]})]),this.isMenuPopup?m:v])}},void 0,void 0,!1,null,null,null);ke.options.__file="packages/menu/src/submenu.vue";var we=ke.exports;we.install=function(e){e.component(we.name,we)};var Ce=we,Se=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("li",{staticClass:"el-menu-item",class:{"is-active":e.active,"is-disabled":e.disabled},style:[e.paddingStyle,e.itemStyle,{backgroundColor:e.backgroundColor}],attrs:{role:"menuitem",tabindex:"-1"},on:{click:e.handleClick,mouseenter:e.onMouseEnter,focus:e.onMouseEnter,blur:e.onMouseLeave,mouseleave:e.onMouseLeave}},["ElMenu"===e.parentMenu.$options.componentName&&e.rootMenu.collapse&&e.$slots.title?i("el-tooltip",{attrs:{effect:"dark",placement:"right"}},[i("div",{attrs:{slot:"content"},slot:"content"},[e._t("title")],2),i("div",{staticStyle:{position:"absolute",left:"0",top:"0",height:"100%",width:"100%",display:"inline-block","box-sizing":"border-box",padding:"0 20px"}},[e._t("default")],2)]):[e._t("default"),e._t("title")]],2)};Se._withStripped=!0;var Oe=i(26),De=i.n(Oe),Ee=r({name:"ElMenuItem",componentName:"ElMenuItem",mixins:[ye,C.a],components:{ElTooltip:De.a},props:{index:{default:null,validator:function(e){return"string"==typeof e||null===e}},route:[String,Object],disabled:Boolean},computed:{active:function(){return this.index===this.rootMenu.activeIndex},hoverBackground:function(){return this.rootMenu.hoverBackground},backgroundColor:function(){return this.rootMenu.backgroundColor||""},activeTextColor:function(){return this.rootMenu.activeTextColor||""},textColor:function(){return this.rootMenu.textColor||""},mode:function(){return this.rootMenu.mode},itemStyle:function(){var e={color:this.active?this.activeTextColor:this.textColor};return"horizontal"!==this.mode||this.isNested||(e.borderBottomColor=this.active?this.rootMenu.activeTextColor?this.activeTextColor:"":"transparent"),e},isNested:function(){return this.parentMenu!==this.rootMenu}},methods:{onMouseEnter:function(){("horizontal"!==this.mode||this.rootMenu.backgroundColor)&&(this.$el.style.backgroundColor=this.hoverBackground)},onMouseLeave:function(){("horizontal"!==this.mode||this.rootMenu.backgroundColor)&&(this.$el.style.backgroundColor=this.backgroundColor)},handleClick:function(){this.disabled||(this.dispatch("ElMenu","item-click",this),this.$emit("click",this))}},mounted:function(){this.parentMenu.addItem(this),this.rootMenu.addItem(this)},beforeDestroy:function(){this.parentMenu.removeItem(this),this.rootMenu.removeItem(this)}},Se,[],!1,null,null,null);Ee.options.__file="packages/menu/src/menu-item.vue";var Te=Ee.exports;Te.install=function(e){e.component(Te.name,Te)};var $e=Te,Pe=function(){var e=this.$createElement,t=this._self._c||e;return t("li",{staticClass:"el-menu-item-group"},[t("div",{staticClass:"el-menu-item-group__title",style:{paddingLeft:this.levelPadding+"px"}},[this.$slots.title?this._t("title"):[this._v(this._s(this.title))]],2),t("ul",[this._t("default")],2)])};Pe._withStripped=!0;var je=r({name:"ElMenuItemGroup",componentName:"ElMenuItemGroup",inject:["rootMenu"],props:{title:{type:String}},data:function(){return{paddingLeft:20}},computed:{levelPadding:function(){var e=20,t=this.$parent;if(this.rootMenu.collapse)return 20;for(;t&&"ElMenu"!==t.$options.componentName;)"ElSubmenu"===t.$options.componentName&&(e+=20),t=t.$parent;return e}}},Pe,[],!1,null,null,null);je.options.__file="packages/menu/src/menu-item-group.vue";var Me=je.exports;Me.install=function(e){e.component(Me.name,Me)};var Ie=Me,Ae=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{class:["textarea"===e.type?"el-textarea":"el-input",e.inputSize?"el-input--"+e.inputSize:"",{"is-disabled":e.inputDisabled,"is-exceed":e.inputExceed,"el-input-group":e.$slots.prepend||e.$slots.append,"el-input-group--append":e.$slots.append,"el-input-group--prepend":e.$slots.prepend,"el-input--prefix":e.$slots.prefix||e.prefixIcon,"el-input--suffix":e.$slots.suffix||e.suffixIcon||e.clearable||e.showPassword}],on:{mouseenter:function(t){e.hovering=!0},mouseleave:function(t){e.hovering=!1}}},["textarea"!==e.type?[e.$slots.prepend?i("div",{staticClass:"el-input-group__prepend"},[e._t("prepend")],2):e._e(),"textarea"!==e.type?i("input",e._b({ref:"input",staticClass:"el-input__inner",attrs:{tabindex:e.tabindex,type:e.showPassword?e.passwordVisible?"text":"password":e.type,disabled:e.inputDisabled,readonly:e.readonly,autocomplete:e.autoComplete||e.autocomplete,"aria-label":e.label},on:{compositionstart:e.handleCompositionStart,compositionupdate:e.handleCompositionUpdate,compositionend:e.handleCompositionEnd,input:e.handleInput,focus:e.handleFocus,blur:e.handleBlur,change:e.handleChange}},"input",e.$attrs,!1)):e._e(),e.$slots.prefix||e.prefixIcon?i("span",{staticClass:"el-input__prefix"},[e._t("prefix"),e.prefixIcon?i("i",{staticClass:"el-input__icon",class:e.prefixIcon}):e._e()],2):e._e(),e.getSuffixVisible()?i("span",{staticClass:"el-input__suffix"},[i("span",{staticClass:"el-input__suffix-inner"},[e.showClear&&e.showPwdVisible&&e.isWordLimitVisible?e._e():[e._t("suffix"),e.suffixIcon?i("i",{staticClass:"el-input__icon",class:e.suffixIcon}):e._e()],e.showClear?i("i",{staticClass:"el-input__icon el-icon-circle-close el-input__clear",on:{mousedown:function(e){e.preventDefault()},click:e.clear}}):e._e(),e.showPwdVisible?i("i",{staticClass:"el-input__icon el-icon-view el-input__clear",on:{click:e.handlePasswordVisible}}):e._e(),e.isWordLimitVisible?i("span",{staticClass:"el-input__count"},[i("span",{staticClass:"el-input__count-inner"},[e._v("\n "+e._s(e.textLength)+"/"+e._s(e.upperLimit)+"\n ")])]):e._e()],2),e.validateState?i("i",{staticClass:"el-input__icon",class:["el-input__validateIcon",e.validateIcon]}):e._e()]):e._e(),e.$slots.append?i("div",{staticClass:"el-input-group__append"},[e._t("append")],2):e._e()]:i("textarea",e._b({ref:"textarea",staticClass:"el-textarea__inner",style:e.textareaStyle,attrs:{tabindex:e.tabindex,disabled:e.inputDisabled,readonly:e.readonly,autocomplete:e.autoComplete||e.autocomplete,"aria-label":e.label},on:{compositionstart:e.handleCompositionStart,compositionupdate:e.handleCompositionUpdate,compositionend:e.handleCompositionEnd,input:e.handleInput,focus:e.handleFocus,blur:e.handleBlur,change:e.handleChange}},"textarea",e.$attrs,!1)),e.isWordLimitVisible&&"textarea"===e.type?i("span",{staticClass:"el-input__count"},[e._v(e._s(e.textLength)+"/"+e._s(e.upperLimit))]):e._e()],2)};Ae._withStripped=!0;var Ne=void 0,Le="\n height:0 !important;\n visibility:hidden !important;\n overflow:hidden !important;\n position:absolute !important;\n z-index:-1000 !important;\n top:0 !important;\n right:0 !important\n",Fe=["letter-spacing","line-height","padding-top","padding-bottom","font-family","font-weight","font-size","text-rendering","text-transform","width","text-indent","padding-left","padding-right","border-width","box-sizing"];function Ve(e){var t=window.getComputedStyle(e),i=t.getPropertyValue("box-sizing"),n=parseFloat(t.getPropertyValue("padding-bottom"))+parseFloat(t.getPropertyValue("padding-top")),r=parseFloat(t.getPropertyValue("border-bottom-width"))+parseFloat(t.getPropertyValue("border-top-width"));return{contextStyle:Fe.map((function(e){return e+":"+t.getPropertyValue(e)})).join(";"),paddingSize:n,borderSize:r,boxSizing:i}}function ze(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;Ne||(Ne=document.createElement("textarea"),document.body.appendChild(Ne));var n=Ve(e),r=n.paddingSize,s=n.borderSize,a=n.boxSizing,o=n.contextStyle;Ne.setAttribute("style",o+";"+Le),Ne.value=e.value||e.placeholder||"";var l=Ne.scrollHeight,u={};"border-box"===a?l+=s:"content-box"===a&&(l-=r),Ne.value="";var c=Ne.scrollHeight-r;if(null!==t){var d=c*t;"border-box"===a&&(d=d+r+s),l=Math.max(d,l),u.minHeight=d+"px"}if(null!==i){var h=c*i;"border-box"===a&&(h=h+r+s),l=Math.min(h,l)}return u.height=l+"px",Ne.parentNode&&Ne.parentNode.removeChild(Ne),Ne=null,u}var Re=i(7),Be=i.n(Re),He=i(19),We=r({name:"ElInput",componentName:"ElInput",mixins:[C.a,k.a],inheritAttrs:!1,inject:{elForm:{default:""},elFormItem:{default:""}},data:function(){return{textareaCalcStyle:{},hovering:!1,focused:!1,isComposing:!1,passwordVisible:!1}},props:{value:[String,Number],size:String,resize:String,form:String,disabled:Boolean,readonly:Boolean,type:{type:String,default:"text"},autosize:{type:[Boolean,Object],default:!1},autocomplete:{type:String,default:"off"},autoComplete:{type:String,validator:function(e){return!0}},validateEvent:{type:Boolean,default:!0},suffixIcon:String,prefixIcon:String,label:String,clearable:{type:Boolean,default:!1},showPassword:{type:Boolean,default:!1},showWordLimit:{type:Boolean,default:!1},tabindex:String},computed:{_elFormItemSize:function(){return(this.elFormItem||{}).elFormItemSize},validateState:function(){return this.elFormItem?this.elFormItem.validateState:""},needStatusIcon:function(){return!!this.elForm&&this.elForm.statusIcon},validateIcon:function(){return{validating:"el-icon-loading",success:"el-icon-circle-check",error:"el-icon-circle-close"}[this.validateState]},textareaStyle:function(){return Be()({},this.textareaCalcStyle,{resize:this.resize})},inputSize:function(){return this.size||this._elFormItemSize||(this.$ELEMENT||{}).size},inputDisabled:function(){return this.disabled||(this.elForm||{}).disabled},nativeInputValue:function(){return null===this.value||void 0===this.value?"":String(this.value)},showClear:function(){return this.clearable&&!this.inputDisabled&&!this.readonly&&this.nativeInputValue&&(this.focused||this.hovering)},showPwdVisible:function(){return this.showPassword&&!this.inputDisabled&&!this.readonly&&(!!this.nativeInputValue||this.focused)},isWordLimitVisible:function(){return this.showWordLimit&&this.$attrs.maxlength&&("text"===this.type||"textarea"===this.type)&&!this.inputDisabled&&!this.readonly&&!this.showPassword},upperLimit:function(){return this.$attrs.maxlength},textLength:function(){return"number"==typeof this.value?String(this.value).length:(this.value||"").length},inputExceed:function(){return this.isWordLimitVisible&&this.textLength>this.upperLimit}},watch:{value:function(e){this.$nextTick(this.resizeTextarea),this.validateEvent&&this.dispatch("ElFormItem","el.form.change",[e])},nativeInputValue:function(){this.setNativeInputValue()},type:function(){var e=this;this.$nextTick((function(){e.setNativeInputValue(),e.resizeTextarea(),e.updateIconOffset()}))}},methods:{focus:function(){this.getInput().focus()},blur:function(){this.getInput().blur()},getMigratingConfig:function(){return{props:{icon:"icon is removed, use suffix-icon / prefix-icon instead.","on-icon-click":"on-icon-click is removed."},events:{click:"click is removed."}}},handleBlur:function(e){this.focused=!1,this.$emit("blur",e),this.validateEvent&&this.dispatch("ElFormItem","el.form.blur",[this.value])},select:function(){this.getInput().select()},resizeTextarea:function(){if(!this.$isServer){var e=this.autosize;if("textarea"===this.type)if(e){var t=e.minRows,i=e.maxRows;this.textareaCalcStyle=ze(this.$refs.textarea,t,i)}else this.textareaCalcStyle={minHeight:ze(this.$refs.textarea).minHeight}}},setNativeInputValue:function(){var e=this.getInput();e&&e.value!==this.nativeInputValue&&(e.value=this.nativeInputValue)},handleFocus:function(e){this.focused=!0,this.$emit("focus",e)},handleCompositionStart:function(){this.isComposing=!0},handleCompositionUpdate:function(e){var t=e.target.value,i=t[t.length-1]||"";this.isComposing=!Object(He.isKorean)(i)},handleCompositionEnd:function(e){this.isComposing&&(this.isComposing=!1,this.handleInput(e))},handleInput:function(e){this.isComposing||e.target.value!==this.nativeInputValue&&(this.$emit("input",e.target.value),this.$nextTick(this.setNativeInputValue))},handleChange:function(e){this.$emit("change",e.target.value)},calcIconOffset:function(e){var t=[].slice.call(this.$el.querySelectorAll(".el-input__"+e)||[]);if(t.length){for(var i=null,n=0;n=0&&e===parseInt(e,10)}}},data:function(){return{currentValue:0,userInput:null}},watch:{value:{immediate:!0,handler:function(e){var t=void 0===e?e:Number(e);if(void 0!==t){if(isNaN(t))return;if(this.stepStrictly){var i=this.getPrecision(this.step),n=Math.pow(10,i);t=Math.round(t/this.step)*n*this.step/n}void 0!==this.precision&&(t=this.toPrecision(t,this.precision))}t>=this.max&&(t=this.max),t<=this.min&&(t=this.min),this.currentValue=t,this.userInput=null,this.$emit("input",t)}}},computed:{minDisabled:function(){return this._decrease(this.value,this.step)this.max},numPrecision:function(){var e=this.value,t=this.step,i=this.getPrecision,n=this.precision,r=i(t);return void 0!==n?(r>n&&console.warn("[Element Warn][InputNumber]precision should not be less than the decimal places of step"),n):Math.max(i(e),r)},controlsAtRight:function(){return this.controls&&"right"===this.controlsPosition},_elFormItemSize:function(){return(this.elFormItem||{}).elFormItemSize},inputNumberSize:function(){return this.size||this._elFormItemSize||(this.$ELEMENT||{}).size},inputNumberDisabled:function(){return this.disabled||!!(this.elForm||{}).disabled},displayValue:function(){if(null!==this.userInput)return this.userInput;var e=this.currentValue;if("number"==typeof e){if(this.stepStrictly){var t=this.getPrecision(this.step),i=Math.pow(10,t);e=Math.round(e/this.step)*i*this.step/i}void 0!==this.precision&&(e=e.toFixed(this.precision))}return e}},methods:{toPrecision:function(e,t){return void 0===t&&(t=this.numPrecision),parseFloat(Math.round(e*Math.pow(10,t))/Math.pow(10,t))},getPrecision:function(e){if(void 0===e)return 0;var t=e.toString(),i=t.indexOf("."),n=0;return-1!==i&&(n=t.length-i-1),n},_increase:function(e,t){if("number"!=typeof e&&void 0!==e)return this.currentValue;var i=Math.pow(10,this.numPrecision);return this.toPrecision((i*e+i*t)/i)},_decrease:function(e,t){if("number"!=typeof e&&void 0!==e)return this.currentValue;var i=Math.pow(10,this.numPrecision);return this.toPrecision((i*e-i*t)/i)},increase:function(){if(!this.inputNumberDisabled&&!this.maxDisabled){var e=this.value||0,t=this._increase(e,this.step);this.setCurrentValue(t)}},decrease:function(){if(!this.inputNumberDisabled&&!this.minDisabled){var e=this.value||0,t=this._decrease(e,this.step);this.setCurrentValue(t)}},handleBlur:function(e){this.$emit("blur",e)},handleFocus:function(e){this.$emit("focus",e)},setCurrentValue:function(e){var t=this.currentValue;"number"==typeof e&&void 0!==this.precision&&(e=this.toPrecision(e,this.precision)),e>=this.max&&(e=this.max),e<=this.min&&(e=this.min),t!==e&&(this.userInput=null,this.$emit("input",e),this.$emit("change",e,t),this.currentValue=e)},handleInput:function(e){this.userInput=e},handleInputChange:function(e){var t=""===e?void 0:Number(e);isNaN(t)&&""!==e||this.setCurrentValue(t),this.userInput=null},select:function(){this.$refs.input.select()}},mounted:function(){var e=this.$refs.input.$refs.input;e.setAttribute("role","spinbutton"),e.setAttribute("aria-valuemax",this.max),e.setAttribute("aria-valuemin",this.min),e.setAttribute("aria-valuenow",this.currentValue),e.setAttribute("aria-disabled",this.inputNumberDisabled)},updated:function(){this.$refs&&this.$refs.input&&this.$refs.input.$refs.input.setAttribute("aria-valuenow",this.currentValue)}},Ge,[],!1,null,null,null);Ke.options.__file="packages/input-number/src/input-number.vue";var Xe=Ke.exports;Xe.install=function(e){e.component(Xe.name,Xe)};var Ze=Xe,Qe=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("label",{staticClass:"el-radio",class:[e.border&&e.radioSize?"el-radio--"+e.radioSize:"",{"is-disabled":e.isDisabled},{"is-focus":e.focus},{"is-bordered":e.border},{"is-checked":e.model===e.label}],attrs:{role:"radio","aria-checked":e.model===e.label,"aria-disabled":e.isDisabled,tabindex:e.tabIndex},on:{keydown:function(t){if(!("button"in t)&&e._k(t.keyCode,"space",32,t.key,[" ","Spacebar"]))return null;t.stopPropagation(),t.preventDefault(),e.model=e.isDisabled?e.model:e.label}}},[i("span",{staticClass:"el-radio__input",class:{"is-disabled":e.isDisabled,"is-checked":e.model===e.label}},[i("span",{staticClass:"el-radio__inner"}),i("input",{directives:[{name:"model",rawName:"v-model",value:e.model,expression:"model"}],ref:"radio",staticClass:"el-radio__original",attrs:{type:"radio","aria-hidden":"true",name:e.name,disabled:e.isDisabled,tabindex:"-1",autocomplete:"off"},domProps:{value:e.label,checked:e._q(e.model,e.label)},on:{focus:function(t){e.focus=!0},blur:function(t){e.focus=!1},change:[function(t){e.model=e.label},e.handleChange]}})]),i("span",{staticClass:"el-radio__label",on:{keydown:function(e){e.stopPropagation()}}},[e._t("default"),e.$slots.default?e._e():[e._v(e._s(e.label))]],2)])};Qe._withStripped=!0;var Je=r({name:"ElRadio",mixins:[C.a],inject:{elForm:{default:""},elFormItem:{default:""}},componentName:"ElRadio",props:{value:{},label:{},disabled:Boolean,name:String,border:Boolean,size:String},data:function(){return{focus:!1}},computed:{isGroup:function(){for(var e=this.$parent;e;){if("ElRadioGroup"===e.$options.componentName)return this._radioGroup=e,!0;e=e.$parent}return!1},model:{get:function(){return this.isGroup?this._radioGroup.value:this.value},set:function(e){this.isGroup?this.dispatch("ElRadioGroup","input",[e]):this.$emit("input",e),this.$refs.radio&&(this.$refs.radio.checked=this.model===this.label)}},_elFormItemSize:function(){return(this.elFormItem||{}).elFormItemSize},radioSize:function(){var e=this.size||this._elFormItemSize||(this.$ELEMENT||{}).size;return this.isGroup&&this._radioGroup.radioGroupSize||e},isDisabled:function(){return this.isGroup?this._radioGroup.disabled||this.disabled||(this.elForm||{}).disabled:this.disabled||(this.elForm||{}).disabled},tabIndex:function(){return this.isDisabled||this.isGroup&&this.model!==this.label?-1:0}},methods:{handleChange:function(){var e=this;this.$nextTick((function(){e.$emit("change",e.model),e.isGroup&&e.dispatch("ElRadioGroup","handleChange",e.model)}))}}},Qe,[],!1,null,null,null);Je.options.__file="packages/radio/src/radio.vue";var et=Je.exports;et.install=function(e){e.component(et.name,et)};var tt=et,it=function(){var e=this.$createElement;return(this._self._c||e)(this._elTag,{tag:"component",staticClass:"el-radio-group",attrs:{role:"radiogroup"},on:{keydown:this.handleKeydown}},[this._t("default")],2)};it._withStripped=!0;var nt=Object.freeze({LEFT:37,UP:38,RIGHT:39,DOWN:40}),rt=r({name:"ElRadioGroup",componentName:"ElRadioGroup",inject:{elFormItem:{default:""}},mixins:[C.a],props:{value:{},size:String,fill:String,textColor:String,disabled:Boolean},computed:{_elFormItemSize:function(){return(this.elFormItem||{}).elFormItemSize},_elTag:function(){var e=(this.$vnode.data||{}).tag;return e&&"component"!==e||(e="div"),e},radioGroupSize:function(){return this.size||this._elFormItemSize||(this.$ELEMENT||{}).size}},created:function(){var e=this;this.$on("handleChange",(function(t){e.$emit("change",t)}))},mounted:function(){var e=this.$el.querySelectorAll("[type=radio]"),t=this.$el.querySelectorAll("[role=radio]")[0];![].some.call(e,(function(e){return e.checked}))&&t&&(t.tabIndex=0)},methods:{handleKeydown:function(e){var t=e.target,i="INPUT"===t.nodeName?"[type=radio]":"[role=radio]",n=this.$el.querySelectorAll(i),r=n.length,s=[].indexOf.call(n,t),a=this.$el.querySelectorAll("[role=radio]");switch(e.keyCode){case nt.LEFT:case nt.UP:e.stopPropagation(),e.preventDefault(),0===s?(a[r-1].click(),a[r-1].focus()):(a[s-1].click(),a[s-1].focus());break;case nt.RIGHT:case nt.DOWN:s===r-1?(e.stopPropagation(),e.preventDefault(),a[0].click(),a[0].focus()):(a[s+1].click(),a[s+1].focus())}}},watch:{value:function(e){this.dispatch("ElFormItem","el.form.change",[this.value])}}},it,[],!1,null,null,null);rt.options.__file="packages/radio/src/radio-group.vue";var st=rt.exports;st.install=function(e){e.component(st.name,st)};var at=st,ot=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("label",{staticClass:"el-radio-button",class:[e.size?"el-radio-button--"+e.size:"",{"is-active":e.value===e.label},{"is-disabled":e.isDisabled},{"is-focus":e.focus}],attrs:{role:"radio","aria-checked":e.value===e.label,"aria-disabled":e.isDisabled,tabindex:e.tabIndex},on:{keydown:function(t){if(!("button"in t)&&e._k(t.keyCode,"space",32,t.key,[" ","Spacebar"]))return null;t.stopPropagation(),t.preventDefault(),e.value=e.isDisabled?e.value:e.label}}},[i("input",{directives:[{name:"model",rawName:"v-model",value:e.value,expression:"value"}],staticClass:"el-radio-button__orig-radio",attrs:{type:"radio",name:e.name,disabled:e.isDisabled,tabindex:"-1",autocomplete:"off"},domProps:{value:e.label,checked:e._q(e.value,e.label)},on:{change:[function(t){e.value=e.label},e.handleChange],focus:function(t){e.focus=!0},blur:function(t){e.focus=!1}}}),i("span",{staticClass:"el-radio-button__inner",style:e.value===e.label?e.activeStyle:null,on:{keydown:function(e){e.stopPropagation()}}},[e._t("default"),e.$slots.default?e._e():[e._v(e._s(e.label))]],2)])};ot._withStripped=!0;var lt=r({name:"ElRadioButton",mixins:[C.a],inject:{elForm:{default:""},elFormItem:{default:""}},props:{label:{},disabled:Boolean,name:String},data:function(){return{focus:!1}},computed:{value:{get:function(){return this._radioGroup.value},set:function(e){this._radioGroup.$emit("input",e)}},_radioGroup:function(){for(var e=this.$parent;e;){if("ElRadioGroup"===e.$options.componentName)return e;e=e.$parent}return!1},activeStyle:function(){return{backgroundColor:this._radioGroup.fill||"",borderColor:this._radioGroup.fill||"",boxShadow:this._radioGroup.fill?"-1px 0 0 0 "+this._radioGroup.fill:"",color:this._radioGroup.textColor||""}},_elFormItemSize:function(){return(this.elFormItem||{}).elFormItemSize},size:function(){return this._radioGroup.radioGroupSize||this._elFormItemSize||(this.$ELEMENT||{}).size},isDisabled:function(){return this.disabled||this._radioGroup.disabled||(this.elForm||{}).disabled},tabIndex:function(){return this.isDisabled||this._radioGroup&&this.value!==this.label?-1:0}},methods:{handleChange:function(){var e=this;this.$nextTick((function(){e.dispatch("ElRadioGroup","handleChange",e.value)}))}}},ot,[],!1,null,null,null);lt.options.__file="packages/radio/src/radio-button.vue";var ut=lt.exports;ut.install=function(e){e.component(ut.name,ut)};var ct=ut,dt=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("label",{staticClass:"el-checkbox",class:[e.border&&e.checkboxSize?"el-checkbox--"+e.checkboxSize:"",{"is-disabled":e.isDisabled},{"is-bordered":e.border},{"is-checked":e.isChecked}],attrs:{id:e.id}},[i("span",{staticClass:"el-checkbox__input",class:{"is-disabled":e.isDisabled,"is-checked":e.isChecked,"is-indeterminate":e.indeterminate,"is-focus":e.focus},attrs:{tabindex:!!e.indeterminate&&0,role:!!e.indeterminate&&"checkbox","aria-checked":!!e.indeterminate&&"mixed"}},[i("span",{staticClass:"el-checkbox__inner"}),e.trueLabel||e.falseLabel?i("input",{directives:[{name:"model",rawName:"v-model",value:e.model,expression:"model"}],staticClass:"el-checkbox__original",attrs:{type:"checkbox","aria-hidden":e.indeterminate?"true":"false",name:e.name,disabled:e.isDisabled,"true-value":e.trueLabel,"false-value":e.falseLabel},domProps:{checked:Array.isArray(e.model)?e._i(e.model,null)>-1:e._q(e.model,e.trueLabel)},on:{change:[function(t){var i=e.model,n=t.target,r=n.checked?e.trueLabel:e.falseLabel;if(Array.isArray(i)){var s=e._i(i,null);n.checked?s<0&&(e.model=i.concat([null])):s>-1&&(e.model=i.slice(0,s).concat(i.slice(s+1)))}else e.model=r},e.handleChange],focus:function(t){e.focus=!0},blur:function(t){e.focus=!1}}}):i("input",{directives:[{name:"model",rawName:"v-model",value:e.model,expression:"model"}],staticClass:"el-checkbox__original",attrs:{type:"checkbox","aria-hidden":e.indeterminate?"true":"false",disabled:e.isDisabled,name:e.name},domProps:{value:e.label,checked:Array.isArray(e.model)?e._i(e.model,e.label)>-1:e.model},on:{change:[function(t){var i=e.model,n=t.target,r=!!n.checked;if(Array.isArray(i)){var s=e.label,a=e._i(i,s);n.checked?a<0&&(e.model=i.concat([s])):a>-1&&(e.model=i.slice(0,a).concat(i.slice(a+1)))}else e.model=r},e.handleChange],focus:function(t){e.focus=!0},blur:function(t){e.focus=!1}}})]),e.$slots.default||e.label?i("span",{staticClass:"el-checkbox__label"},[e._t("default"),e.$slots.default?e._e():[e._v(e._s(e.label))]],2):e._e()])};dt._withStripped=!0;var ht=r({name:"ElCheckbox",mixins:[C.a],inject:{elForm:{default:""},elFormItem:{default:""}},componentName:"ElCheckbox",data:function(){return{selfModel:!1,focus:!1,isLimitExceeded:!1}},computed:{model:{get:function(){return this.isGroup?this.store:void 0!==this.value?this.value:this.selfModel},set:function(e){this.isGroup?(this.isLimitExceeded=!1,void 0!==this._checkboxGroup.min&&e.lengththis._checkboxGroup.max&&(this.isLimitExceeded=!0),!1===this.isLimitExceeded&&this.dispatch("ElCheckboxGroup","input",[e])):(this.$emit("input",e),this.selfModel=e)}},isChecked:function(){return"[object Boolean]"==={}.toString.call(this.model)?this.model:Array.isArray(this.model)?this.model.indexOf(this.label)>-1:null!==this.model&&void 0!==this.model?this.model===this.trueLabel:void 0},isGroup:function(){for(var e=this.$parent;e;){if("ElCheckboxGroup"===e.$options.componentName)return this._checkboxGroup=e,!0;e=e.$parent}return!1},store:function(){return this._checkboxGroup?this._checkboxGroup.value:this.value},isLimitDisabled:function(){var e=this._checkboxGroup,t=e.max,i=e.min;return!(!t&&!i)&&this.model.length>=t&&!this.isChecked||this.model.length<=i&&this.isChecked},isDisabled:function(){return this.isGroup?this._checkboxGroup.disabled||this.disabled||(this.elForm||{}).disabled||this.isLimitDisabled:this.disabled||(this.elForm||{}).disabled},_elFormItemSize:function(){return(this.elFormItem||{}).elFormItemSize},checkboxSize:function(){var e=this.size||this._elFormItemSize||(this.$ELEMENT||{}).size;return this.isGroup&&this._checkboxGroup.checkboxGroupSize||e}},props:{value:{},label:{},indeterminate:Boolean,disabled:Boolean,checked:Boolean,name:String,trueLabel:[String,Number],falseLabel:[String,Number],id:String,controls:String,border:Boolean,size:String},methods:{addToStore:function(){Array.isArray(this.model)&&-1===this.model.indexOf(this.label)?this.model.push(this.label):this.model=this.trueLabel||!0},handleChange:function(e){var t=this;if(!this.isLimitExceeded){var i=void 0;i=e.target.checked?void 0===this.trueLabel||this.trueLabel:void 0!==this.falseLabel&&this.falseLabel,this.$emit("change",i,e),this.$nextTick((function(){t.isGroup&&t.dispatch("ElCheckboxGroup","change",[t._checkboxGroup.value])}))}}},created:function(){this.checked&&this.addToStore()},mounted:function(){this.indeterminate&&this.$el.setAttribute("aria-controls",this.controls)},watch:{value:function(e){this.dispatch("ElFormItem","el.form.change",e)}}},dt,[],!1,null,null,null);ht.options.__file="packages/checkbox/src/checkbox.vue";var pt=ht.exports;pt.install=function(e){e.component(pt.name,pt)};var ft=pt,mt=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("label",{staticClass:"el-checkbox-button",class:[e.size?"el-checkbox-button--"+e.size:"",{"is-disabled":e.isDisabled},{"is-checked":e.isChecked},{"is-focus":e.focus}],attrs:{role:"checkbox","aria-checked":e.isChecked,"aria-disabled":e.isDisabled}},[e.trueLabel||e.falseLabel?i("input",{directives:[{name:"model",rawName:"v-model",value:e.model,expression:"model"}],staticClass:"el-checkbox-button__original",attrs:{type:"checkbox",name:e.name,disabled:e.isDisabled,"true-value":e.trueLabel,"false-value":e.falseLabel},domProps:{checked:Array.isArray(e.model)?e._i(e.model,null)>-1:e._q(e.model,e.trueLabel)},on:{change:[function(t){var i=e.model,n=t.target,r=n.checked?e.trueLabel:e.falseLabel;if(Array.isArray(i)){var s=e._i(i,null);n.checked?s<0&&(e.model=i.concat([null])):s>-1&&(e.model=i.slice(0,s).concat(i.slice(s+1)))}else e.model=r},e.handleChange],focus:function(t){e.focus=!0},blur:function(t){e.focus=!1}}}):i("input",{directives:[{name:"model",rawName:"v-model",value:e.model,expression:"model"}],staticClass:"el-checkbox-button__original",attrs:{type:"checkbox",name:e.name,disabled:e.isDisabled},domProps:{value:e.label,checked:Array.isArray(e.model)?e._i(e.model,e.label)>-1:e.model},on:{change:[function(t){var i=e.model,n=t.target,r=!!n.checked;if(Array.isArray(i)){var s=e.label,a=e._i(i,s);n.checked?a<0&&(e.model=i.concat([s])):a>-1&&(e.model=i.slice(0,a).concat(i.slice(a+1)))}else e.model=r},e.handleChange],focus:function(t){e.focus=!0},blur:function(t){e.focus=!1}}}),e.$slots.default||e.label?i("span",{staticClass:"el-checkbox-button__inner",style:e.isChecked?e.activeStyle:null},[e._t("default",[e._v(e._s(e.label))])],2):e._e()])};mt._withStripped=!0;var vt=r({name:"ElCheckboxButton",mixins:[C.a],inject:{elForm:{default:""},elFormItem:{default:""}},data:function(){return{selfModel:!1,focus:!1,isLimitExceeded:!1}},props:{value:{},label:{},disabled:Boolean,checked:Boolean,name:String,trueLabel:[String,Number],falseLabel:[String,Number]},computed:{model:{get:function(){return this._checkboxGroup?this.store:void 0!==this.value?this.value:this.selfModel},set:function(e){this._checkboxGroup?(this.isLimitExceeded=!1,void 0!==this._checkboxGroup.min&&e.lengththis._checkboxGroup.max&&(this.isLimitExceeded=!0),!1===this.isLimitExceeded&&this.dispatch("ElCheckboxGroup","input",[e])):void 0!==this.value?this.$emit("input",e):this.selfModel=e}},isChecked:function(){return"[object Boolean]"==={}.toString.call(this.model)?this.model:Array.isArray(this.model)?this.model.indexOf(this.label)>-1:null!==this.model&&void 0!==this.model?this.model===this.trueLabel:void 0},_checkboxGroup:function(){for(var e=this.$parent;e;){if("ElCheckboxGroup"===e.$options.componentName)return e;e=e.$parent}return!1},store:function(){return this._checkboxGroup?this._checkboxGroup.value:this.value},activeStyle:function(){return{backgroundColor:this._checkboxGroup.fill||"",borderColor:this._checkboxGroup.fill||"",color:this._checkboxGroup.textColor||"","box-shadow":"-1px 0 0 0 "+this._checkboxGroup.fill}},_elFormItemSize:function(){return(this.elFormItem||{}).elFormItemSize},size:function(){return this._checkboxGroup.checkboxGroupSize||this._elFormItemSize||(this.$ELEMENT||{}).size},isLimitDisabled:function(){var e=this._checkboxGroup,t=e.max,i=e.min;return!(!t&&!i)&&this.model.length>=t&&!this.isChecked||this.model.length<=i&&this.isChecked},isDisabled:function(){return this._checkboxGroup?this._checkboxGroup.disabled||this.disabled||(this.elForm||{}).disabled||this.isLimitDisabled:this.disabled||(this.elForm||{}).disabled}},methods:{addToStore:function(){Array.isArray(this.model)&&-1===this.model.indexOf(this.label)?this.model.push(this.label):this.model=this.trueLabel||!0},handleChange:function(e){var t=this;if(!this.isLimitExceeded){var i=void 0;i=e.target.checked?void 0===this.trueLabel||this.trueLabel:void 0!==this.falseLabel&&this.falseLabel,this.$emit("change",i,e),this.$nextTick((function(){t._checkboxGroup&&t.dispatch("ElCheckboxGroup","change",[t._checkboxGroup.value])}))}}},created:function(){this.checked&&this.addToStore()}},mt,[],!1,null,null,null);vt.options.__file="packages/checkbox/src/checkbox-button.vue";var gt=vt.exports;gt.install=function(e){e.component(gt.name,gt)};var _t=gt,bt=function(){var e=this.$createElement;return(this._self._c||e)("div",{staticClass:"el-checkbox-group",attrs:{role:"group","aria-label":"checkbox-group"}},[this._t("default")],2)};bt._withStripped=!0;var yt=r({name:"ElCheckboxGroup",componentName:"ElCheckboxGroup",mixins:[C.a],inject:{elFormItem:{default:""}},props:{value:{},disabled:Boolean,min:Number,max:Number,size:String,fill:String,textColor:String},computed:{_elFormItemSize:function(){return(this.elFormItem||{}).elFormItemSize},checkboxGroupSize:function(){return this.size||this._elFormItemSize||(this.$ELEMENT||{}).size}},watch:{value:function(e){this.dispatch("ElFormItem","el.form.change",[e])}}},bt,[],!1,null,null,null);yt.options.__file="packages/checkbox/src/checkbox-group.vue";var xt=yt.exports;xt.install=function(e){e.component(xt.name,xt)};var kt=xt,wt=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{staticClass:"el-switch",class:{"is-disabled":e.switchDisabled,"is-checked":e.checked},attrs:{role:"switch","aria-checked":e.checked,"aria-disabled":e.switchDisabled},on:{click:function(t){return t.preventDefault(),e.switchValue(t)}}},[i("input",{ref:"input",staticClass:"el-switch__input",attrs:{type:"checkbox",id:e.id,name:e.name,"true-value":e.activeValue,"false-value":e.inactiveValue,disabled:e.switchDisabled},on:{change:e.handleChange,keydown:function(t){return!("button"in t)&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:e.switchValue(t)}}}),e.inactiveIconClass||e.inactiveText?i("span",{class:["el-switch__label","el-switch__label--left",e.checked?"":"is-active"]},[e.inactiveIconClass?i("i",{class:[e.inactiveIconClass]}):e._e(),!e.inactiveIconClass&&e.inactiveText?i("span",{attrs:{"aria-hidden":e.checked}},[e._v(e._s(e.inactiveText))]):e._e()]):e._e(),i("span",{ref:"core",staticClass:"el-switch__core",style:{width:e.coreWidth+"px"}}),e.activeIconClass||e.activeText?i("span",{class:["el-switch__label","el-switch__label--right",e.checked?"is-active":""]},[e.activeIconClass?i("i",{class:[e.activeIconClass]}):e._e(),!e.activeIconClass&&e.activeText?i("span",{attrs:{"aria-hidden":!e.checked}},[e._v(e._s(e.activeText))]):e._e()]):e._e()])};wt._withStripped=!0;var Ct=r({name:"ElSwitch",mixins:[R()("input"),k.a,C.a],inject:{elForm:{default:""}},props:{value:{type:[Boolean,String,Number],default:!1},disabled:{type:Boolean,default:!1},width:{type:Number,default:40},activeIconClass:{type:String,default:""},inactiveIconClass:{type:String,default:""},activeText:String,inactiveText:String,activeColor:{type:String,default:""},inactiveColor:{type:String,default:""},activeValue:{type:[Boolean,String,Number],default:!0},inactiveValue:{type:[Boolean,String,Number],default:!1},name:{type:String,default:""},validateEvent:{type:Boolean,default:!0},id:String},data:function(){return{coreWidth:this.width}},created:function(){~[this.activeValue,this.inactiveValue].indexOf(this.value)||this.$emit("input",this.inactiveValue)},computed:{checked:function(){return this.value===this.activeValue},switchDisabled:function(){return this.disabled||(this.elForm||{}).disabled}},watch:{checked:function(){this.$refs.input.checked=this.checked,(this.activeColor||this.inactiveColor)&&this.setBackgroundColor(),this.validateEvent&&this.dispatch("ElFormItem","el.form.change",[this.value])}},methods:{handleChange:function(e){var t=this,i=this.checked?this.inactiveValue:this.activeValue;this.$emit("input",i),this.$emit("change",i),this.$nextTick((function(){t.$refs.input.checked=t.checked}))},setBackgroundColor:function(){var e=this.checked?this.activeColor:this.inactiveColor;this.$refs.core.style.borderColor=e,this.$refs.core.style.backgroundColor=e},switchValue:function(){!this.switchDisabled&&this.handleChange()},getMigratingConfig:function(){return{props:{"on-color":"on-color is renamed to active-color.","off-color":"off-color is renamed to inactive-color.","on-text":"on-text is renamed to active-text.","off-text":"off-text is renamed to inactive-text.","on-value":"on-value is renamed to active-value.","off-value":"off-value is renamed to inactive-value.","on-icon-class":"on-icon-class is renamed to active-icon-class.","off-icon-class":"off-icon-class is renamed to inactive-icon-class."}}}},mounted:function(){this.coreWidth=this.width||40,(this.activeColor||this.inactiveColor)&&this.setBackgroundColor(),this.$refs.input.checked=this.checked}},wt,[],!1,null,null,null);Ct.options.__file="packages/switch/src/component.vue";var St=Ct.exports;St.install=function(e){e.component(St.name,St)};var Ot=St,Dt=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{directives:[{name:"clickoutside",rawName:"v-clickoutside",value:e.handleClose,expression:"handleClose"}],staticClass:"el-select",class:[e.selectSize?"el-select--"+e.selectSize:""],on:{click:function(t){return t.stopPropagation(),e.toggleMenu(t)}}},[e.multiple?i("div",{ref:"tags",staticClass:"el-select__tags",style:{"max-width":e.inputWidth-32+"px",width:"100%"}},[e.collapseTags&&e.selected.length?i("span",[i("el-tag",{attrs:{closable:!e.selectDisabled,size:e.collapseTagSize,hit:e.selected[0].hitState,type:"info","disable-transitions":""},on:{close:function(t){e.deleteTag(t,e.selected[0])}}},[i("span",{staticClass:"el-select__tags-text"},[e._v(e._s(e.selected[0].currentLabel))])]),e.selected.length>1?i("el-tag",{attrs:{closable:!1,size:e.collapseTagSize,type:"info","disable-transitions":""}},[i("span",{staticClass:"el-select__tags-text"},[e._v("+ "+e._s(e.selected.length-1))])]):e._e()],1):e._e(),e.collapseTags?e._e():i("transition-group",{on:{"after-leave":e.resetInputHeight}},e._l(e.selected,(function(t){return i("el-tag",{key:e.getValueKey(t),attrs:{closable:!e.selectDisabled,size:e.collapseTagSize,hit:t.hitState,type:"info","disable-transitions":""},on:{close:function(i){e.deleteTag(i,t)}}},[i("span",{staticClass:"el-select__tags-text"},[e._v(e._s(t.currentLabel))])])})),1),e.filterable?i("input",{directives:[{name:"model",rawName:"v-model",value:e.query,expression:"query"}],ref:"input",staticClass:"el-select__input",class:[e.selectSize?"is-"+e.selectSize:""],style:{"flex-grow":"1",width:e.inputLength/(e.inputWidth-32)+"%","max-width":e.inputWidth-42+"px"},attrs:{type:"text",disabled:e.selectDisabled,autocomplete:e.autoComplete||e.autocomplete},domProps:{value:e.query},on:{focus:e.handleFocus,blur:function(t){e.softFocus=!1},keyup:e.managePlaceholder,keydown:[e.resetInputState,function(t){if(!("button"in t)&&e._k(t.keyCode,"down",40,t.key,["Down","ArrowDown"]))return null;t.preventDefault(),e.navigateOptions("next")},function(t){if(!("button"in t)&&e._k(t.keyCode,"up",38,t.key,["Up","ArrowUp"]))return null;t.preventDefault(),e.navigateOptions("prev")},function(t){return!("button"in t)&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:(t.preventDefault(),e.selectOption(t))},function(t){if(!("button"in t)&&e._k(t.keyCode,"esc",27,t.key,["Esc","Escape"]))return null;t.stopPropagation(),t.preventDefault(),e.visible=!1},function(t){return!("button"in t)&&e._k(t.keyCode,"delete",[8,46],t.key,["Backspace","Delete","Del"])?null:e.deletePrevTag(t)},function(t){if(!("button"in t)&&e._k(t.keyCode,"tab",9,t.key,"Tab"))return null;e.visible=!1}],compositionstart:e.handleComposition,compositionupdate:e.handleComposition,compositionend:e.handleComposition,input:[function(t){t.target.composing||(e.query=t.target.value)},e.debouncedQueryChange]}}):e._e()],1):e._e(),i("el-input",{ref:"reference",class:{"is-focus":e.visible},attrs:{type:"text",placeholder:e.currentPlaceholder,name:e.name,id:e.id,autocomplete:e.autoComplete||e.autocomplete,size:e.selectSize,disabled:e.selectDisabled,readonly:e.readonly,"validate-event":!1,tabindex:e.multiple&&e.filterable?"-1":null},on:{focus:e.handleFocus,blur:e.handleBlur,input:e.debouncedOnInputChange},nativeOn:{keydown:[function(t){if(!("button"in t)&&e._k(t.keyCode,"down",40,t.key,["Down","ArrowDown"]))return null;t.stopPropagation(),t.preventDefault(),e.navigateOptions("next")},function(t){if(!("button"in t)&&e._k(t.keyCode,"up",38,t.key,["Up","ArrowUp"]))return null;t.stopPropagation(),t.preventDefault(),e.navigateOptions("prev")},function(t){return!("button"in t)&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:(t.preventDefault(),e.selectOption(t))},function(t){if(!("button"in t)&&e._k(t.keyCode,"esc",27,t.key,["Esc","Escape"]))return null;t.stopPropagation(),t.preventDefault(),e.visible=!1},function(t){if(!("button"in t)&&e._k(t.keyCode,"tab",9,t.key,"Tab"))return null;e.visible=!1}],mouseenter:function(t){e.inputHovering=!0},mouseleave:function(t){e.inputHovering=!1}},model:{value:e.selectedLabel,callback:function(t){e.selectedLabel=t},expression:"selectedLabel"}},[e.$slots.prefix?i("template",{slot:"prefix"},[e._t("prefix")],2):e._e(),i("template",{slot:"suffix"},[i("i",{directives:[{name:"show",rawName:"v-show",value:!e.showClose,expression:"!showClose"}],class:["el-select__caret","el-input__icon","el-icon-"+e.iconClass]}),e.showClose?i("i",{staticClass:"el-select__caret el-input__icon el-icon-circle-close",on:{click:e.handleClearClick}}):e._e()])],2),i("transition",{attrs:{name:"el-zoom-in-top"},on:{"before-enter":e.handleMenuEnter,"after-leave":e.doDestroy}},[i("el-select-menu",{directives:[{name:"show",rawName:"v-show",value:e.visible&&!1!==e.emptyText,expression:"visible && emptyText !== false"}],ref:"popper",attrs:{"append-to-body":e.popperAppendToBody}},[i("el-scrollbar",{directives:[{name:"show",rawName:"v-show",value:e.options.length>0&&!e.loading,expression:"options.length > 0 && !loading"}],ref:"scrollbar",class:{"is-empty":!e.allowCreate&&e.query&&0===e.filteredOptionsCount},attrs:{tag:"ul","wrap-class":"el-select-dropdown__wrap","view-class":"el-select-dropdown__list"}},[e.showNewOption?i("el-option",{attrs:{value:e.query,created:""}}):e._e(),e._t("default")],2),e.emptyText&&(!e.allowCreate||e.loading||e.allowCreate&&0===e.options.length)?[e.$slots.empty?e._t("empty"):i("p",{staticClass:"el-select-dropdown__empty"},[e._v("\n "+e._s(e.emptyText)+"\n ")])]:e._e()],2)],1)],1)};Dt._withStripped=!0;var Et=function(){var e=this.$createElement;return(this._self._c||e)("div",{staticClass:"el-select-dropdown el-popper",class:[{"is-multiple":this.$parent.multiple},this.popperClass],style:{minWidth:this.minWidth}},[this._t("default")],2)};Et._withStripped=!0;var Tt=r({name:"ElSelectDropdown",componentName:"ElSelectDropdown",mixins:[A.a],props:{placement:{default:"bottom-start"},boundariesPadding:{default:0},popperOptions:{default:function(){return{gpuAcceleration:!1}}},visibleArrow:{default:!0},appendToBody:{type:Boolean,default:!0}},data:function(){return{minWidth:""}},computed:{popperClass:function(){return this.$parent.popperClass}},watch:{"$parent.inputWidth":function(){this.minWidth=this.$parent.$el.getBoundingClientRect().width+"px"}},mounted:function(){var e=this;this.referenceElm=this.$parent.$refs.reference.$el,this.$parent.popperElm=this.popperElm=this.$el,this.$on("updatePopper",(function(){e.$parent.visible&&e.updatePopper()})),this.$on("destroyPopper",this.destroyPopper)}},Et,[],!1,null,null,null);Tt.options.__file="packages/select/src/select-dropdown.vue";var $t=Tt.exports,Pt=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("li",{directives:[{name:"show",rawName:"v-show",value:e.visible,expression:"visible"}],staticClass:"el-select-dropdown__item",class:{selected:e.itemSelected,"is-disabled":e.disabled||e.groupDisabled||e.limitReached,hover:e.hover},on:{mouseenter:e.hoverItem,click:function(t){return t.stopPropagation(),e.selectOptionClick(t)}}},[e._t("default",[i("span",[e._v(e._s(e.currentLabel))])])],2)};Pt._withStripped=!0;var jt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Mt=r({mixins:[C.a],name:"ElOption",componentName:"ElOption",inject:["select"],props:{value:{required:!0},label:[String,Number],created:Boolean,disabled:{type:Boolean,default:!1}},data:function(){return{index:-1,groupDisabled:!1,visible:!0,hitState:!1,hover:!1}},computed:{isObject:function(){return"[object object]"===Object.prototype.toString.call(this.value).toLowerCase()},currentLabel:function(){return this.label||(this.isObject?"":this.value)},currentValue:function(){return this.value||this.label||""},itemSelected:function(){return this.select.multiple?this.contains(this.select.value,this.value):this.isEqual(this.value,this.select.value)},limitReached:function(){return!!this.select.multiple&&(!this.itemSelected&&(this.select.value||[]).length>=this.select.multipleLimit&&this.select.multipleLimit>0)}},watch:{currentLabel:function(){this.created||this.select.remote||this.dispatch("ElSelect","setSelected")},value:function(e,t){var i=this.select,n=i.remote,r=i.valueKey;if(!this.created&&!n){if(r&&"object"===(void 0===e?"undefined":jt(e))&&"object"===(void 0===t?"undefined":jt(t))&&e[r]===t[r])return;this.dispatch("ElSelect","setSelected")}}},methods:{isEqual:function(e,t){if(this.isObject){var i=this.select.valueKey;return Object(m.getValueByPath)(e,i)===Object(m.getValueByPath)(t,i)}return e===t},contains:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments[1];if(this.isObject){var i=this.select.valueKey;return e&&e.some((function(e){return Object(m.getValueByPath)(e,i)===Object(m.getValueByPath)(t,i)}))}return e&&e.indexOf(t)>-1},handleGroupDisabled:function(e){this.groupDisabled=e},hoverItem:function(){this.disabled||this.groupDisabled||(this.select.hoverIndex=this.select.options.indexOf(this))},selectOptionClick:function(){!0!==this.disabled&&!0!==this.groupDisabled&&this.dispatch("ElSelect","handleOptionClick",[this,!0])},queryChange:function(e){this.visible=new RegExp(Object(m.escapeRegexpString)(e),"i").test(this.currentLabel)||this.created,this.visible||this.select.filteredOptionsCount--}},created:function(){this.select.options.push(this),this.select.cachedOptions.push(this),this.select.optionsCount++,this.select.filteredOptionsCount++,this.$on("queryChange",this.queryChange),this.$on("handleGroupDisabled",this.handleGroupDisabled)},beforeDestroy:function(){var e=this.select,t=e.selected,i=e.multiple?t:[t],n=this.select.cachedOptions.indexOf(this),r=i.indexOf(this);n>-1&&r<0&&this.select.cachedOptions.splice(n,1),this.select.onOptionDestroy(this.select.options.indexOf(this))}},Pt,[],!1,null,null,null);Mt.options.__file="packages/select/src/option.vue";var It=Mt.exports,At=i(29),Nt=i.n(At),Lt=i(14),Ft=i(27),Vt=i.n(Ft),zt=r({mixins:[C.a,f.a,R()("reference"),{data:function(){return{hoverOption:-1}},computed:{optionsAllDisabled:function(){return this.options.filter((function(e){return e.visible})).every((function(e){return e.disabled}))}},watch:{hoverIndex:function(e){var t=this;"number"==typeof e&&e>-1&&(this.hoverOption=this.options[e]||{}),this.options.forEach((function(e){e.hover=t.hoverOption===e}))}},methods:{navigateOptions:function(e){var t=this;if(this.visible){if(0!==this.options.length&&0!==this.filteredOptionsCount&&!this.optionsAllDisabled){"next"===e?(this.hoverIndex++,this.hoverIndex===this.options.length&&(this.hoverIndex=0)):"prev"===e&&(this.hoverIndex--,this.hoverIndex<0&&(this.hoverIndex=this.options.length-1));var i=this.options[this.hoverIndex];!0!==i.disabled&&!0!==i.groupDisabled&&i.visible||this.navigateOptions(e),this.$nextTick((function(){return t.scrollToOption(t.hoverOption)}))}}else this.visible=!0}}}],name:"ElSelect",componentName:"ElSelect",inject:{elForm:{default:""},elFormItem:{default:""}},provide:function(){return{select:this}},computed:{_elFormItemSize:function(){return(this.elFormItem||{}).elFormItemSize},readonly:function(){return!this.filterable||this.multiple||!Object(m.isIE)()&&!Object(m.isEdge)()&&!this.visible},showClose:function(){var e=this.multiple?Array.isArray(this.value)&&this.value.length>0:void 0!==this.value&&null!==this.value&&""!==this.value;return this.clearable&&!this.selectDisabled&&this.inputHovering&&e},iconClass:function(){return this.remote&&this.filterable?"":this.visible?"arrow-up is-reverse":"arrow-up"},debounce:function(){return this.remote?300:0},emptyText:function(){return this.loading?this.loadingText||this.t("el.select.loading"):(!this.remote||""!==this.query||0!==this.options.length)&&(this.filterable&&this.query&&this.options.length>0&&0===this.filteredOptionsCount?this.noMatchText||this.t("el.select.noMatch"):0===this.options.length?this.noDataText||this.t("el.select.noData"):null)},showNewOption:function(){var e=this,t=this.options.filter((function(e){return!e.created})).some((function(t){return t.currentLabel===e.query}));return this.filterable&&this.allowCreate&&""!==this.query&&!t},selectSize:function(){return this.size||this._elFormItemSize||(this.$ELEMENT||{}).size},selectDisabled:function(){return this.disabled||(this.elForm||{}).disabled},collapseTagSize:function(){return["small","mini"].indexOf(this.selectSize)>-1?"mini":"small"},propPlaceholder:function(){return void 0!==this.placeholder?this.placeholder:this.t("el.select.placeholder")}},components:{ElInput:h.a,ElSelectMenu:$t,ElOption:It,ElTag:Nt.a,ElScrollbar:L.a},directives:{Clickoutside:j.a},props:{name:String,id:String,value:{required:!0},autocomplete:{type:String,default:"off"},autoComplete:{type:String,validator:function(e){return!0}},automaticDropdown:Boolean,size:String,disabled:Boolean,clearable:Boolean,filterable:Boolean,allowCreate:Boolean,loading:Boolean,popperClass:String,remote:Boolean,loadingText:String,noMatchText:String,noDataText:String,remoteMethod:Function,filterMethod:Function,multiple:Boolean,multipleLimit:{type:Number,default:0},placeholder:{type:String,required:!1},defaultFirstOption:Boolean,reserveKeyword:Boolean,valueKey:{type:String,default:"value"},collapseTags:Boolean,popperAppendToBody:{type:Boolean,default:!0}},data:function(){return{options:[],cachedOptions:[],createdLabel:null,createdSelected:!1,selected:this.multiple?[]:{},inputLength:20,inputWidth:0,initialInputHeight:0,cachedPlaceHolder:"",optionsCount:0,filteredOptionsCount:0,visible:!1,softFocus:!1,selectedLabel:"",hoverIndex:-1,query:"",previousQuery:null,inputHovering:!1,currentPlaceholder:"",menuVisibleOnFocus:!1,isOnComposition:!1,isSilentBlur:!1}},watch:{selectDisabled:function(){var e=this;this.$nextTick((function(){e.resetInputHeight()}))},propPlaceholder:function(e){this.cachedPlaceHolder=this.currentPlaceholder=e},value:function(e,t){this.multiple&&(this.resetInputHeight(),e&&e.length>0||this.$refs.input&&""!==this.query?this.currentPlaceholder="":this.currentPlaceholder=this.cachedPlaceHolder,this.filterable&&!this.reserveKeyword&&(this.query="",this.handleQueryChange(this.query))),this.setSelected(),this.filterable&&!this.multiple&&(this.inputLength=20),Object(m.valueEquals)(e,t)||this.dispatch("ElFormItem","el.form.change",e)},visible:function(e){var t=this;e?(this.broadcast("ElSelectDropdown","updatePopper"),this.filterable&&(this.query=this.remote?"":this.selectedLabel,this.handleQueryChange(this.query),this.multiple?this.$refs.input.focus():(this.remote||(this.broadcast("ElOption","queryChange",""),this.broadcast("ElOptionGroup","queryChange")),this.selectedLabel&&(this.currentPlaceholder=this.selectedLabel,this.selectedLabel="")))):(this.broadcast("ElSelectDropdown","destroyPopper"),this.$refs.input&&this.$refs.input.blur(),this.query="",this.previousQuery=null,this.selectedLabel="",this.inputLength=20,this.menuVisibleOnFocus=!1,this.resetHoverIndex(),this.$nextTick((function(){t.$refs.input&&""===t.$refs.input.value&&0===t.selected.length&&(t.currentPlaceholder=t.cachedPlaceHolder)})),this.multiple||(this.selected&&(this.filterable&&this.allowCreate&&this.createdSelected&&this.createdLabel?this.selectedLabel=this.createdLabel:this.selectedLabel=this.selected.currentLabel,this.filterable&&(this.query=this.selectedLabel)),this.filterable&&(this.currentPlaceholder=this.cachedPlaceHolder))),this.$emit("visible-change",e)},options:function(){var e=this;if(!this.$isServer){this.$nextTick((function(){e.broadcast("ElSelectDropdown","updatePopper")})),this.multiple&&this.resetInputHeight();var t=this.$el.querySelectorAll("input");-1===[].indexOf.call(t,document.activeElement)&&this.setSelected(),this.defaultFirstOption&&(this.filterable||this.remote)&&this.filteredOptionsCount&&this.checkDefaultFirstOption()}}},methods:{handleComposition:function(e){var t=this,i=e.target.value;if("compositionend"===e.type)this.isOnComposition=!1,this.$nextTick((function(e){return t.handleQueryChange(i)}));else{var n=i[i.length-1]||"";this.isOnComposition=!Object(He.isKorean)(n)}},handleQueryChange:function(e){var t=this;this.previousQuery===e||this.isOnComposition||(null!==this.previousQuery||"function"!=typeof this.filterMethod&&"function"!=typeof this.remoteMethod?(this.previousQuery=e,this.$nextTick((function(){t.visible&&t.broadcast("ElSelectDropdown","updatePopper")})),this.hoverIndex=-1,this.multiple&&this.filterable&&this.$nextTick((function(){var e=15*t.$refs.input.value.length+20;t.inputLength=t.collapseTags?Math.min(50,e):e,t.managePlaceholder(),t.resetInputHeight()})),this.remote&&"function"==typeof this.remoteMethod?(this.hoverIndex=-1,this.remoteMethod(e)):"function"==typeof this.filterMethod?(this.filterMethod(e),this.broadcast("ElOptionGroup","queryChange")):(this.filteredOptionsCount=this.optionsCount,this.broadcast("ElOption","queryChange",e),this.broadcast("ElOptionGroup","queryChange")),this.defaultFirstOption&&(this.filterable||this.remote)&&this.filteredOptionsCount&&this.checkDefaultFirstOption()):this.previousQuery=e)},scrollToOption:function(e){var t=Array.isArray(e)&&e[0]?e[0].$el:e.$el;if(this.$refs.popper&&t){var i=this.$refs.popper.$el.querySelector(".el-select-dropdown__wrap");Vt()(i,t)}this.$refs.scrollbar&&this.$refs.scrollbar.handleScroll()},handleMenuEnter:function(){var e=this;this.$nextTick((function(){return e.scrollToOption(e.selected)}))},emitChange:function(e){Object(m.valueEquals)(this.value,e)||this.$emit("change",e)},getOption:function(e){for(var t=void 0,i="[object object]"===Object.prototype.toString.call(e).toLowerCase(),n="[object null]"===Object.prototype.toString.call(e).toLowerCase(),r="[object undefined]"===Object.prototype.toString.call(e).toLowerCase(),s=this.cachedOptions.length-1;s>=0;s--){var a=this.cachedOptions[s];if(i?Object(m.getValueByPath)(a.value,this.valueKey)===Object(m.getValueByPath)(e,this.valueKey):a.value===e){t=a;break}}if(t)return t;var o={value:e,currentLabel:i||n||r?"":String(e)};return this.multiple&&(o.hitState=!1),o},setSelected:function(){var e=this;if(!this.multiple){var t=this.getOption(this.value);return t.created?(this.createdLabel=t.currentLabel,this.createdSelected=!0):this.createdSelected=!1,this.selectedLabel=t.currentLabel,this.selected=t,void(this.filterable&&(this.query=this.selectedLabel))}var i=[];Array.isArray(this.value)&&this.value.forEach((function(t){i.push(e.getOption(t))})),this.selected=i,this.$nextTick((function(){e.resetInputHeight()}))},handleFocus:function(e){this.softFocus?this.softFocus=!1:((this.automaticDropdown||this.filterable)&&(this.visible=!0,this.filterable&&(this.menuVisibleOnFocus=!0)),this.$emit("focus",e))},blur:function(){this.visible=!1,this.$refs.reference.blur()},handleBlur:function(e){var t=this;setTimeout((function(){t.isSilentBlur?t.isSilentBlur=!1:t.$emit("blur",e)}),50),this.softFocus=!1},handleClearClick:function(e){this.deleteSelected(e)},doDestroy:function(){this.$refs.popper&&this.$refs.popper.doDestroy()},handleClose:function(){this.visible=!1},toggleLastOptionHitState:function(e){if(Array.isArray(this.selected)){var t=this.selected[this.selected.length-1];if(t)return!0===e||!1===e?(t.hitState=e,e):(t.hitState=!t.hitState,t.hitState)}},deletePrevTag:function(e){if(e.target.value.length<=0&&!this.toggleLastOptionHitState()){var t=this.value.slice();t.pop(),this.$emit("input",t),this.emitChange(t)}},managePlaceholder:function(){""!==this.currentPlaceholder&&(this.currentPlaceholder=this.$refs.input.value?"":this.cachedPlaceHolder)},resetInputState:function(e){8!==e.keyCode&&this.toggleLastOptionHitState(!1),this.inputLength=15*this.$refs.input.value.length+20,this.resetInputHeight()},resetInputHeight:function(){var e=this;this.collapseTags&&!this.filterable||this.$nextTick((function(){if(e.$refs.reference){var t=e.$refs.reference.$el.childNodes,i=[].filter.call(t,(function(e){return"INPUT"===e.tagName}))[0],n=e.$refs.tags,r=n?Math.round(n.getBoundingClientRect().height):0,s=e.initialInputHeight||40;i.style.height=0===e.selected.length?s+"px":Math.max(n?r+(r>s?6:0):0,s)+"px",e.visible&&!1!==e.emptyText&&e.broadcast("ElSelectDropdown","updatePopper")}}))},resetHoverIndex:function(){var e=this;setTimeout((function(){e.multiple?e.selected.length>0?e.hoverIndex=Math.min.apply(null,e.selected.map((function(t){return e.options.indexOf(t)}))):e.hoverIndex=-1:e.hoverIndex=e.options.indexOf(e.selected)}),300)},handleOptionSelect:function(e,t){var i=this;if(this.multiple){var n=(this.value||[]).slice(),r=this.getValueIndex(n,e.value);r>-1?n.splice(r,1):(this.multipleLimit<=0||n.length0&&void 0!==arguments[0]?arguments[0]:[],t=arguments[1],i="[object object]"===Object.prototype.toString.call(t).toLowerCase();if(i){var n=this.valueKey,r=-1;return e.some((function(e,i){return Object(m.getValueByPath)(e,n)===Object(m.getValueByPath)(t,n)&&(r=i,!0)})),r}return e.indexOf(t)},toggleMenu:function(){this.selectDisabled||(this.menuVisibleOnFocus?this.menuVisibleOnFocus=!1:this.visible=!this.visible,this.visible&&(this.$refs.input||this.$refs.reference).focus())},selectOption:function(){this.visible?this.options[this.hoverIndex]&&this.handleOptionSelect(this.options[this.hoverIndex]):this.toggleMenu()},deleteSelected:function(e){e.stopPropagation();var t=this.multiple?[]:"";this.$emit("input",t),this.emitChange(t),this.visible=!1,this.$emit("clear")},deleteTag:function(e,t){var i=this.selected.indexOf(t);if(i>-1&&!this.selectDisabled){var n=this.value.slice();n.splice(i,1),this.$emit("input",n),this.emitChange(n),this.$emit("remove-tag",t.value)}e.stopPropagation()},onInputChange:function(){this.filterable&&this.query!==this.selectedLabel&&(this.query=this.selectedLabel,this.handleQueryChange(this.query))},onOptionDestroy:function(e){e>-1&&(this.optionsCount--,this.filteredOptionsCount--,this.options.splice(e,1))},resetInputWidth:function(){this.inputWidth=this.$refs.reference.$el.getBoundingClientRect().width},handleResize:function(){this.resetInputWidth(),this.multiple&&this.resetInputHeight()},checkDefaultFirstOption:function(){this.hoverIndex=-1;for(var e=!1,t=this.options.length-1;t>=0;t--)if(this.options[t].created){e=!0,this.hoverIndex=t;break}if(!e)for(var i=0;i!==this.options.length;++i){var n=this.options[i];if(this.query){if(!n.disabled&&!n.groupDisabled&&n.visible){this.hoverIndex=i;break}}else if(n.itemSelected){this.hoverIndex=i;break}}},getValueKey:function(e){return"[object object]"!==Object.prototype.toString.call(e.value).toLowerCase()?e.value:Object(m.getValueByPath)(e.value,this.valueKey)}},created:function(){var e=this;this.cachedPlaceHolder=this.currentPlaceholder=this.propPlaceholder,this.multiple&&!Array.isArray(this.value)&&this.$emit("input",[]),!this.multiple&&Array.isArray(this.value)&&this.$emit("input",""),this.debouncedOnInputChange=$()(this.debounce,(function(){e.onInputChange()})),this.debouncedQueryChange=$()(this.debounce,(function(t){e.handleQueryChange(t.target.value)})),this.$on("handleOptionClick",this.handleOptionSelect),this.$on("setSelected",this.setSelected)},mounted:function(){var e=this;this.multiple&&Array.isArray(this.value)&&this.value.length>0&&(this.currentPlaceholder=""),Object(Lt.addResizeListener)(this.$el,this.handleResize);var t=this.$refs.reference;if(t&&t.$el){var i=t.$el.querySelector("input");this.initialInputHeight=i.getBoundingClientRect().height||{medium:36,small:32,mini:28}[this.selectSize]}this.remote&&this.multiple&&this.resetInputHeight(),this.$nextTick((function(){t&&t.$el&&(e.inputWidth=t.$el.getBoundingClientRect().width)})),this.setSelected()},beforeDestroy:function(){this.$el&&this.handleResize&&Object(Lt.removeResizeListener)(this.$el,this.handleResize)}},Dt,[],!1,null,null,null);zt.options.__file="packages/select/src/select.vue";var Rt=zt.exports;Rt.install=function(e){e.component(Rt.name,Rt)};var Bt=Rt;It.install=function(e){e.component(It.name,It)};var Ht=It,Wt=function(){var e=this.$createElement,t=this._self._c||e;return t("ul",{directives:[{name:"show",rawName:"v-show",value:this.visible,expression:"visible"}],staticClass:"el-select-group__wrap"},[t("li",{staticClass:"el-select-group__title"},[this._v(this._s(this.label))]),t("li",[t("ul",{staticClass:"el-select-group"},[this._t("default")],2)])])};Wt._withStripped=!0;var qt=r({mixins:[C.a],name:"ElOptionGroup",componentName:"ElOptionGroup",props:{label:String,disabled:{type:Boolean,default:!1}},data:function(){return{visible:!0}},watch:{disabled:function(e){this.broadcast("ElOption","handleGroupDisabled",e)}},methods:{queryChange:function(){this.visible=this.$children&&Array.isArray(this.$children)&&this.$children.some((function(e){return!0===e.visible}))}},created:function(){this.$on("queryChange",this.queryChange)},mounted:function(){this.disabled&&this.broadcast("ElOption","handleGroupDisabled",this.disabled)}},Wt,[],!1,null,null,null);qt.options.__file="packages/select/src/option-group.vue";var Ut=qt.exports;Ut.install=function(e){e.component(Ut.name,Ut)};var Gt=Ut,Yt=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("button",{staticClass:"el-button",class:[e.type?"el-button--"+e.type:"",e.buttonSize?"el-button--"+e.buttonSize:"",{"is-disabled":e.buttonDisabled,"is-loading":e.loading,"is-plain":e.plain,"is-round":e.round,"is-circle":e.circle}],attrs:{disabled:e.buttonDisabled||e.loading,autofocus:e.autofocus,type:e.nativeType},on:{click:e.handleClick}},[e.loading?i("i",{staticClass:"el-icon-loading"}):e._e(),e.icon&&!e.loading?i("i",{class:e.icon}):e._e(),e.$slots.default?i("span",[e._t("default")],2):e._e()])};Yt._withStripped=!0;var Kt=r({name:"ElButton",inject:{elForm:{default:""},elFormItem:{default:""}},props:{type:{type:String,default:"default"},size:String,icon:{type:String,default:""},nativeType:{type:String,default:"button"},loading:Boolean,disabled:Boolean,plain:Boolean,autofocus:Boolean,round:Boolean,circle:Boolean},computed:{_elFormItemSize:function(){return(this.elFormItem||{}).elFormItemSize},buttonSize:function(){return this.size||this._elFormItemSize||(this.$ELEMENT||{}).size},buttonDisabled:function(){return this.disabled||(this.elForm||{}).disabled}},methods:{handleClick:function(e){this.$emit("click",e)}}},Yt,[],!1,null,null,null);Kt.options.__file="packages/button/src/button.vue";var Xt=Kt.exports;Xt.install=function(e){e.component(Xt.name,Xt)};var Zt=Xt,Qt=function(){var e=this.$createElement;return(this._self._c||e)("div",{staticClass:"el-button-group"},[this._t("default")],2)};Qt._withStripped=!0;var Jt=r({name:"ElButtonGroup"},Qt,[],!1,null,null,null);Jt.options.__file="packages/button/src/button-group.vue";var ei=Jt.exports;ei.install=function(e){e.component(ei.name,ei)};var ti=ei,ii=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{staticClass:"el-table",class:[{"el-table--fit":e.fit,"el-table--striped":e.stripe,"el-table--border":e.border||e.isGroup,"el-table--hidden":e.isHidden,"el-table--group":e.isGroup,"el-table--fluid-height":e.maxHeight,"el-table--scrollable-x":e.layout.scrollX,"el-table--scrollable-y":e.layout.scrollY,"el-table--enable-row-hover":!e.store.states.isComplex,"el-table--enable-row-transition":0!==(e.store.states.data||[]).length&&(e.store.states.data||[]).length<100},e.tableSize?"el-table--"+e.tableSize:""],on:{mouseleave:function(t){e.handleMouseLeave(t)}}},[i("div",{ref:"hiddenColumns",staticClass:"hidden-columns"},[e._t("default")],2),e.showHeader?i("div",{directives:[{name:"mousewheel",rawName:"v-mousewheel",value:e.handleHeaderFooterMousewheel,expression:"handleHeaderFooterMousewheel"}],ref:"headerWrapper",staticClass:"el-table__header-wrapper"},[i("table-header",{ref:"tableHeader",style:{width:e.layout.bodyWidth?e.layout.bodyWidth+"px":""},attrs:{store:e.store,border:e.border,"default-sort":e.defaultSort}})],1):e._e(),i("div",{ref:"bodyWrapper",staticClass:"el-table__body-wrapper",class:[e.layout.scrollX?"is-scrolling-"+e.scrollPosition:"is-scrolling-none"],style:[e.bodyHeight]},[i("table-body",{style:{width:e.bodyWidth},attrs:{context:e.context,store:e.store,stripe:e.stripe,"row-class-name":e.rowClassName,"row-style":e.rowStyle,highlight:e.highlightCurrentRow}}),e.data&&0!==e.data.length?e._e():i("div",{ref:"emptyBlock",staticClass:"el-table__empty-block",style:e.emptyBlockStyle},[i("span",{staticClass:"el-table__empty-text"},[e._t("empty",[e._v(e._s(e.emptyText||e.t("el.table.emptyText")))])],2)]),e.$slots.append?i("div",{ref:"appendWrapper",staticClass:"el-table__append-wrapper"},[e._t("append")],2):e._e()],1),e.showSummary?i("div",{directives:[{name:"show",rawName:"v-show",value:e.data&&e.data.length>0,expression:"data && data.length > 0"},{name:"mousewheel",rawName:"v-mousewheel",value:e.handleHeaderFooterMousewheel,expression:"handleHeaderFooterMousewheel"}],ref:"footerWrapper",staticClass:"el-table__footer-wrapper"},[i("table-footer",{style:{width:e.layout.bodyWidth?e.layout.bodyWidth+"px":""},attrs:{store:e.store,border:e.border,"sum-text":e.sumText||e.t("el.table.sumText"),"summary-method":e.summaryMethod,"default-sort":e.defaultSort}})],1):e._e(),e.fixedColumns.length>0?i("div",{directives:[{name:"mousewheel",rawName:"v-mousewheel",value:e.handleFixedMousewheel,expression:"handleFixedMousewheel"}],ref:"fixedWrapper",staticClass:"el-table__fixed",style:[{width:e.layout.fixedWidth?e.layout.fixedWidth+"px":""},e.fixedHeight]},[e.showHeader?i("div",{ref:"fixedHeaderWrapper",staticClass:"el-table__fixed-header-wrapper"},[i("table-header",{ref:"fixedTableHeader",style:{width:e.bodyWidth},attrs:{fixed:"left",border:e.border,store:e.store}})],1):e._e(),i("div",{ref:"fixedBodyWrapper",staticClass:"el-table__fixed-body-wrapper",style:[{top:e.layout.headerHeight+"px"},e.fixedBodyHeight]},[i("table-body",{style:{width:e.bodyWidth},attrs:{fixed:"left",store:e.store,stripe:e.stripe,highlight:e.highlightCurrentRow,"row-class-name":e.rowClassName,"row-style":e.rowStyle}}),e.$slots.append?i("div",{staticClass:"el-table__append-gutter",style:{height:e.layout.appendHeight+"px"}}):e._e()],1),e.showSummary?i("div",{directives:[{name:"show",rawName:"v-show",value:e.data&&e.data.length>0,expression:"data && data.length > 0"}],ref:"fixedFooterWrapper",staticClass:"el-table__fixed-footer-wrapper"},[i("table-footer",{style:{width:e.bodyWidth},attrs:{fixed:"left",border:e.border,"sum-text":e.sumText||e.t("el.table.sumText"),"summary-method":e.summaryMethod,store:e.store}})],1):e._e()]):e._e(),e.rightFixedColumns.length>0?i("div",{directives:[{name:"mousewheel",rawName:"v-mousewheel",value:e.handleFixedMousewheel,expression:"handleFixedMousewheel"}],ref:"rightFixedWrapper",staticClass:"el-table__fixed-right",style:[{width:e.layout.rightFixedWidth?e.layout.rightFixedWidth+"px":"",right:e.layout.scrollY?(e.border?e.layout.gutterWidth:e.layout.gutterWidth||0)+"px":""},e.fixedHeight]},[e.showHeader?i("div",{ref:"rightFixedHeaderWrapper",staticClass:"el-table__fixed-header-wrapper"},[i("table-header",{ref:"rightFixedTableHeader",style:{width:e.bodyWidth},attrs:{fixed:"right",border:e.border,store:e.store}})],1):e._e(),i("div",{ref:"rightFixedBodyWrapper",staticClass:"el-table__fixed-body-wrapper",style:[{top:e.layout.headerHeight+"px"},e.fixedBodyHeight]},[i("table-body",{style:{width:e.bodyWidth},attrs:{fixed:"right",store:e.store,stripe:e.stripe,"row-class-name":e.rowClassName,"row-style":e.rowStyle,highlight:e.highlightCurrentRow}}),e.$slots.append?i("div",{staticClass:"el-table__append-gutter",style:{height:e.layout.appendHeight+"px"}}):e._e()],1),e.showSummary?i("div",{directives:[{name:"show",rawName:"v-show",value:e.data&&e.data.length>0,expression:"data && data.length > 0"}],ref:"rightFixedFooterWrapper",staticClass:"el-table__fixed-footer-wrapper"},[i("table-footer",{style:{width:e.bodyWidth},attrs:{fixed:"right",border:e.border,"sum-text":e.sumText||e.t("el.table.sumText"),"summary-method":e.summaryMethod,store:e.store}})],1):e._e()]):e._e(),e.rightFixedColumns.length>0?i("div",{ref:"rightFixedPatch",staticClass:"el-table__fixed-right-patch",style:{width:e.layout.scrollY?e.layout.gutterWidth+"px":"0",height:e.layout.headerHeight+"px"}}):e._e(),i("div",{directives:[{name:"show",rawName:"v-show",value:e.resizeProxyVisible,expression:"resizeProxyVisible"}],ref:"resizeProxy",staticClass:"el-table__column-resize-proxy"})])};ii._withStripped=!0;var ni=i(17),ri=i.n(ni),si=i(35),ai=i(38),oi=i.n(ai),li="undefined"!=typeof navigator&&navigator.userAgent.toLowerCase().indexOf("firefox")>-1,ui={bind:function(e,t){var i,n;i=e,n=t.value,i&&i.addEventListener&&i.addEventListener(li?"DOMMouseScroll":"mousewheel",(function(e){var t=oi()(e);n&&n.apply(this,[e,t])}))}},ci=i(6),di=i.n(ci),hi="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},pi=function(e){for(var t=e.target;t&&"HTML"!==t.tagName.toUpperCase();){if("TD"===t.tagName.toUpperCase())return t;t=t.parentNode}return null},fi=function(e){return null!==e&&"object"===(void 0===e?"undefined":hi(e))},mi=function(e,t,i,n,r){if(!t&&!n&&(!r||Array.isArray(r)&&!r.length))return e;i="string"==typeof i?"descending"===i?-1:1:i&&i<0?-1:1;var s=n?null:function(i,n){return r?(Array.isArray(r)||(r=[r]),r.map((function(t){return"string"==typeof t?Object(m.getValueByPath)(i,t):t(i,n,e)}))):("$key"!==t&&fi(i)&&"$value"in i&&(i=i.$value),[fi(i)?Object(m.getValueByPath)(i,t):i])};return e.map((function(e,t){return{value:e,index:t,key:s?s(e,t):null}})).sort((function(e,t){var r=function(e,t){if(n)return n(e.value,t.value);for(var i=0,r=e.key.length;it.key[i])return 1}return 0}(e,t);return r||(r=e.index-t.index),r*i})).map((function(e){return e.value}))},vi=function(e,t){var i=null;return e.columns.forEach((function(e){e.id===t&&(i=e)})),i},gi=function(e,t){var i=(t.className||"").match(/el-table_[^\s]+/gm);return i?vi(e,i[0]):null},_i=function(e,t){if(!e)throw new Error("row is required when get row identity");if("string"==typeof t){if(t.indexOf(".")<0)return e[t];for(var i=t.split("."),n=e,r=0;r2&&void 0!==arguments[2]?arguments[2]:"children",n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"hasChildren",r=function(e){return!(Array.isArray(e)&&e.length)};function s(e,a,o){t(e,a,o),a.forEach((function(e){if(e[n])t(e,null,o+1);else{var a=e[i];r(a)||s(e,a,o+1)}}))}e.forEach((function(e){if(e[n])t(e,null,0);else{var a=e[i];r(a)||s(e,a,0)}}))}(e,(function(e,t,i){var n=_i(e,r);Array.isArray(t)?a[n]={children:t.map((function(e){return _i(e,r)})),level:i}:s&&(a[n]={children:[],lazy:!0,level:i})}),i,n),a},updateTreeData:function(){var e=this.normalizedData,t=this.normalizedLazyNode,i=Object.keys(e),n={};if(i.length){var r=this.states,s=r.treeData,a=r.defaultExpandAll,o=r.expandRowKeys,l=r.lazy,u=[],c=function(e,t){var i=a||o&&-1!==o.indexOf(t);return!!(e&&e.expanded||i)};i.forEach((function(t){var i=s[t],r=Oi({},e[t]);if(r.expanded=c(i,t),r.lazy){var a=i||{},o=a.loaded,l=void 0!==o&&o,d=a.loading,h=void 0!==d&&d;r.loaded=!!l,r.loading=!!h,u.push(t)}n[t]=r}));var d=Object.keys(t);l&&d.length&&u.length&&d.forEach((function(e){var i=s[e],r=t[e].children;if(-1!==u.indexOf(e)){if(0!==n[e].children.length)throw new Error("[ElTable]children must be an empty array.");n[e].children=r}else{var a=i||{},o=a.loaded,l=void 0!==o&&o,d=a.loading,h=void 0!==d&&d;n[e]={lazy:!0,loaded:!!l,loading:!!h,expanded:c(i,e),children:r,level:""}}}))}this.states.treeData=n,this.updateTableScrollY()},updateTreeExpandKeys:function(e){this.states.expandRowKeys=e,this.updateTreeData()},toggleTreeExpansion:function(e,t){this.assertRowKey();var i=this.states,n=i.rowKey,r=i.treeData,s=_i(e,n),a=s&&r[s];if(s&&a&&"expanded"in a){var o=a.expanded;t=void 0===t?!a.expanded:t,r[s].expanded=t,o!==t&&this.table.$emit("expand-change",e,t),this.updateTableScrollY()}},loadOrToggle:function(e){this.assertRowKey();var t=this.states,i=t.lazy,n=t.treeData,r=t.rowKey,s=_i(e,r),a=n[s];i&&a&&"loaded"in a&&!a.loaded?this.loadData(e,s,a):this.toggleTreeExpansion(e)},loadData:function(e,t,i){var n=this,r=this.table.load,s=this.states.treeData;r&&!s[t].loaded&&(s[t].loading=!0,r(e,i,(function(i){if(!Array.isArray(i))throw new Error("[ElTable] data must be an array");var r=n.states,s=r.lazyTreeNodeMap,a=r.treeData;a[t].loading=!1,a[t].loaded=!0,a[t].expanded=!0,i.length&&n.$set(s,t,i),n.table.$emit("expand-change",e,!0)})))}}},Ei=function e(t){var i=[];return t.forEach((function(t){t.children?i.push.apply(i,e(t.children)):i.push(t)})),i},Ti=di.a.extend({data:function(){return{states:{rowKey:null,data:[],isComplex:!1,_columns:[],originColumns:[],columns:[],fixedColumns:[],rightFixedColumns:[],leafColumns:[],fixedLeafColumns:[],rightFixedLeafColumns:[],leafColumnsLength:0,fixedLeafColumnsLength:0,rightFixedLeafColumnsLength:0,isAllSelected:!1,selection:[],reserveSelection:!1,selectOnIndeterminate:!1,selectable:null,filters:{},filteredData:null,sortingColumn:null,sortProp:null,sortOrder:null,hoverRow:null}}},mixins:[Ci,Si,Di],methods:{assertRowKey:function(){if(!this.states.rowKey)throw new Error("[ElTable] prop row-key is required")},updateColumns:function(){var e=this.states,t=e._columns||[];e.fixedColumns=t.filter((function(e){return!0===e.fixed||"left"===e.fixed})),e.rightFixedColumns=t.filter((function(e){return"right"===e.fixed})),e.fixedColumns.length>0&&t[0]&&"selection"===t[0].type&&!t[0].fixed&&(t[0].fixed=!0,e.fixedColumns.unshift(t[0]));var i=t.filter((function(e){return!e.fixed}));e.originColumns=[].concat(e.fixedColumns).concat(i).concat(e.rightFixedColumns);var n=Ei(i),r=Ei(e.fixedColumns),s=Ei(e.rightFixedColumns);e.leafColumnsLength=n.length,e.fixedLeafColumnsLength=r.length,e.rightFixedLeafColumnsLength=s.length,e.columns=[].concat(r).concat(n).concat(s),e.isComplex=e.fixedColumns.length>0||e.rightFixedColumns.length>0},scheduleLayout:function(e){e&&this.updateColumns(),this.table.debouncedUpdateLayout()},isSelected:function(e){var t=this.states.selection;return(void 0===t?[]:t).indexOf(e)>-1},clearSelection:function(){var e=this.states;e.isAllSelected=!1,e.selection.length&&(e.selection=[],this.table.$emit("selection-change",[]))},cleanSelection:function(){var e=this.states,t=e.data,i=e.rowKey,n=e.selection,r=void 0;if(i){r=[];var s=bi(n,i),a=bi(t,i);for(var o in s)s.hasOwnProperty(o)&&!a[o]&&r.push(s[o].row)}else r=n.filter((function(e){return-1===t.indexOf(e)}));if(r.length){var l=n.filter((function(e){return-1===r.indexOf(e)}));e.selection=l,this.table.$emit("selection-change",l.slice())}},toggleRowSelection:function(e,t){var i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],n=wi(this.states.selection,e,t);if(n){var r=(this.states.selection||[]).slice();i&&this.table.$emit("select",r,e),this.table.$emit("selection-change",r)}},_toggleAllSelection:function(){var e=this.states,t=e.data,i=void 0===t?[]:t,n=e.selection,r=e.selectOnIndeterminate?!e.isAllSelected:!(e.isAllSelected||n.length);e.isAllSelected=r;var s=!1;i.forEach((function(t,i){e.selectable?e.selectable.call(null,t,i)&&wi(n,t,r)&&(s=!0):wi(n,t,r)&&(s=!0)})),s&&this.table.$emit("selection-change",n?n.slice():[]),this.table.$emit("select-all",n)},updateSelectionByRowKey:function(){var e=this.states,t=e.selection,i=e.rowKey,n=e.data,r=bi(t,i);n.forEach((function(e){var n=_i(e,i),s=r[n];s&&(t[s.index]=e)}))},updateAllSelected:function(){var e=this.states,t=e.selection,i=e.rowKey,n=e.selectable,r=e.data||[];if(0!==r.length){var s=void 0;i&&(s=bi(t,i));for(var a,o=!0,l=0,u=0,c=r.length;u1?i-1:0),r=1;rthis.bodyHeight;return this.scrollY=n,i!==n}return!1},e.prototype.setHeight=function(e){var t=this,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"height";if(!di.a.prototype.$isServer){var n=this.table.$el;if(e=ki(e),this.height=e,!n&&(e||0===e))return di.a.nextTick((function(){return t.setHeight(e,i)}));"number"==typeof e?(n.style[i]=e+"px",this.updateElsHeight()):"string"==typeof e&&(n.style[i]=e,this.updateElsHeight())}},e.prototype.setMaxHeight=function(e){this.setHeight(e,"max-height")},e.prototype.getFlattenColumns=function(){var e=[];return this.table.columns.forEach((function(t){t.isColumnGroup?e.push.apply(e,t.columns):e.push(t)})),e},e.prototype.updateElsHeight=function(){var e=this;if(!this.table.$ready)return di.a.nextTick((function(){return e.updateElsHeight()}));var t=this.table.$refs,i=t.headerWrapper,n=t.appendWrapper,r=t.footerWrapper;if(this.appendHeight=n?n.offsetHeight:0,!this.showHeader||i){var s=i?i.querySelector(".el-table__header tr"):null,a=this.headerDisplayNone(s),o=this.headerHeight=this.showHeader?i.offsetHeight:0;if(this.showHeader&&!a&&i.offsetWidth>0&&(this.table.columns||[]).length>0&&o<2)return di.a.nextTick((function(){return e.updateElsHeight()}));var l=this.tableHeight=this.table.$el.clientHeight,u=this.footerHeight=r?r.offsetHeight:0;null!==this.height&&(this.bodyHeight=l-o-u+(r?1:0)),this.fixedBodyHeight=this.scrollX?this.bodyHeight-this.gutterWidth:this.bodyHeight;var c=!(this.store.states.data&&this.store.states.data.length);this.viewportHeight=this.scrollX?l-(c?0:this.gutterWidth):l,this.updateScrollY(),this.notifyObservers("scrollable")}},e.prototype.headerDisplayNone=function(e){if(!e)return!0;for(var t=e;"DIV"!==t.tagName;){if("none"===getComputedStyle(t).display)return!0;t=t.parentElement}return!1},e.prototype.updateColumnsWidth=function(){if(!di.a.prototype.$isServer){var e=this.fit,t=this.table.$el.clientWidth,i=0,n=this.getFlattenColumns(),r=n.filter((function(e){return"number"!=typeof e.width}));if(n.forEach((function(e){"number"==typeof e.width&&e.realWidth&&(e.realWidth=null)})),r.length>0&&e){n.forEach((function(e){i+=e.width||e.minWidth||80}));var s=this.scrollY?this.gutterWidth:0;if(i<=t-s){this.scrollX=!1;var a=t-s-i;if(1===r.length)r[0].realWidth=(r[0].minWidth||80)+a;else{var o=a/r.reduce((function(e,t){return e+(t.minWidth||80)}),0),l=0;r.forEach((function(e,t){if(0!==t){var i=Math.floor((e.minWidth||80)*o);l+=i,e.realWidth=(e.minWidth||80)+i}})),r[0].realWidth=(r[0].minWidth||80)+a-l}}else this.scrollX=!0,r.forEach((function(e){e.realWidth=e.minWidth}));this.bodyWidth=Math.max(i,t),this.table.resizeState.width=this.bodyWidth}else n.forEach((function(e){e.width||e.minWidth?e.realWidth=e.width||e.minWidth:e.realWidth=80,i+=e.realWidth})),this.scrollX=i>t,this.bodyWidth=i;var u=this.store.states.fixedColumns;if(u.length>0){var c=0;u.forEach((function(e){c+=e.realWidth||e.width})),this.fixedWidth=c}var d=this.store.states.rightFixedColumns;if(d.length>0){var h=0;d.forEach((function(e){h+=e.realWidth||e.width})),this.rightFixedWidth=h}this.notifyObservers("columns")}},e.prototype.addObserver=function(e){this.observers.push(e)},e.prototype.removeObserver=function(e){var t=this.observers.indexOf(e);-1!==t&&this.observers.splice(t,1)},e.prototype.notifyObservers=function(e){var t=this;this.observers.forEach((function(i){switch(e){case"columns":i.onColumnsChange(t);break;case"scrollable":i.onScrollableChange(t);break;default:throw new Error("Table Layout don't have event "+e+".")}}))},e}(),Ai={created:function(){this.tableLayout.addObserver(this)},destroyed:function(){this.tableLayout.removeObserver(this)},computed:{tableLayout:function(){var e=this.layout;if(!e&&this.table&&(e=this.table.layout),!e)throw new Error("Can not find table layout.");return e}},mounted:function(){this.onColumnsChange(this.tableLayout),this.onScrollableChange(this.tableLayout)},updated:function(){this.__updated__||(this.onColumnsChange(this.tableLayout),this.onScrollableChange(this.tableLayout),this.__updated__=!0)},methods:{onColumnsChange:function(e){var t=this.$el.querySelectorAll("colgroup > col");if(t.length){var i=e.getFlattenColumns(),n={};i.forEach((function(e){n[e.id]=e}));for(var r=0,s=t.length;r col[name=gutter]"),i=0,n=t.length;i=this.leftFixedLeafCount:"right"===this.fixed?e=this.columnsCount-this.rightFixedLeafCount},getSpan:function(e,t,i,n){var r=1,s=1,a=this.table.spanMethod;if("function"==typeof a){var o=a({row:e,column:t,rowIndex:i,columnIndex:n});Array.isArray(o)?(r=o[0],s=o[1]):"object"===(void 0===o?"undefined":Ni(o))&&(r=o.rowspan,s=o.colspan)}return{rowspan:r,colspan:s}},getRowStyle:function(e,t){var i=this.table.rowStyle;return"function"==typeof i?i.call(null,{row:e,rowIndex:t}):i||null},getRowClass:function(e,t){var i=["el-table__row"];this.table.highlightCurrentRow&&e===this.store.states.currentRow&&i.push("current-row"),this.stripe&&t%2==1&&i.push("el-table__row--striped");var n=this.table.rowClassName;return"string"==typeof n?i.push(n):"function"==typeof n&&i.push(n.call(null,{row:e,rowIndex:t})),this.store.states.expandRows.indexOf(e)>-1&&i.push("expanded"),i},getCellStyle:function(e,t,i,n){var r=this.table.cellStyle;return"function"==typeof r?r.call(null,{rowIndex:e,columnIndex:t,row:i,column:n}):r},getCellClass:function(e,t,i,n){var r=[n.id,n.align,n.className];this.isColumnHidden(t)&&r.push("is-hidden");var s=this.table.cellClassName;return"string"==typeof s?r.push(s):"function"==typeof s&&r.push(s.call(null,{rowIndex:e,columnIndex:t,row:i,column:n})),r.push("el-table__cell"),r.join(" ")},getColspanRealWidth:function(e,t,i){return t<1?e[i].realWidth:e.map((function(e){return e.realWidth})).slice(i,i+t).reduce((function(e,t){return e+t}),-1)},handleCellMouseEnter:function(e,t){var i=this.table,n=pi(e);if(n){var r=gi(i,n),s=i.hoverState={cell:n,column:r,row:t};i.$emit("cell-mouse-enter",s.row,s.column,s.cell,e)}var a=e.target.querySelector(".cell");if(Object(fe.hasClass)(a,"el-tooltip")&&a.childNodes.length){var o=document.createRange();if(o.setStart(a,0),o.setEnd(a,a.childNodes.length),(o.getBoundingClientRect().width+((parseInt(Object(fe.getStyle)(a,"paddingLeft"),10)||0)+(parseInt(Object(fe.getStyle)(a,"paddingRight"),10)||0))>a.offsetWidth||a.scrollWidth>a.offsetWidth)&&this.$refs.tooltip){var l=this.$refs.tooltip;this.tooltipContent=n.innerText||n.textContent,l.referenceElm=n,l.$refs.popper&&(l.$refs.popper.style.display="none"),l.doDestroy(),l.setExpectedState(!0),this.activateTooltip(l)}}},handleCellMouseLeave:function(e){var t=this.$refs.tooltip;if(t&&(t.setExpectedState(!1),t.handleClosePopper()),pi(e)){var i=this.table.hoverState||{};this.table.$emit("cell-mouse-leave",i.row,i.column,i.cell,e)}},handleMouseEnter:$()(30,(function(e){this.store.commit("setHoverRow",e)})),handleMouseLeave:$()(30,(function(){this.store.commit("setHoverRow",null)})),handleContextMenu:function(e,t){this.handleEvent(e,t,"contextmenu")},handleDoubleClick:function(e,t){this.handleEvent(e,t,"dblclick")},handleClick:function(e,t){this.store.commit("setCurrentRow",t),this.handleEvent(e,t,"click")},handleEvent:function(e,t,i){var n=this.table,r=pi(e),s=void 0;r&&(s=gi(n,r))&&n.$emit("cell-"+i,t,s,r,e),n.$emit("row-"+i,t,s,e)},rowRender:function(e,t,i){var n=this,r=this.$createElement,s=this.treeIndent,a=this.columns,o=this.firstDefaultColumnIndex,l=a.map((function(e,t){return n.isColumnHidden(t)})),u=this.getRowClass(e,t),c=!0;return i&&(u.push("el-table__row--level-"+i.level),c=i.display),r("tr",{style:[c?null:{display:"none"},this.getRowStyle(e,t)],class:u,key:this.getKeyOfRow(e,t),on:{dblclick:function(t){return n.handleDoubleClick(t,e)},click:function(t){return n.handleClick(t,e)},contextmenu:function(t){return n.handleContextMenu(t,e)},mouseenter:function(e){return n.handleMouseEnter(t)},mouseleave:this.handleMouseLeave}},[a.map((function(u,c){var d=n.getSpan(e,u,t,c),h=d.rowspan,p=d.colspan;if(!h||!p)return null;var f=Li({},u);f.realWidth=n.getColspanRealWidth(a,p,c);var m={store:n.store,_self:n.context||n.table.$vnode.context,column:f,row:e,$index:t};return c===o&&i&&(m.treeNode={indent:i.level*s,level:i.level},"boolean"==typeof i.expanded&&(m.treeNode.expanded=i.expanded,"loading"in i&&(m.treeNode.loading=i.loading),"noLazyChildren"in i&&(m.treeNode.noLazyChildren=i.noLazyChildren))),r("td",{style:n.getCellStyle(t,c,e,u),class:n.getCellClass(t,c,e,u),attrs:{rowspan:h,colspan:p},on:{mouseenter:function(t){return n.handleCellMouseEnter(t,e)},mouseleave:n.handleCellMouseLeave}},[u.renderCell.call(n._renderProxy,n.$createElement,m,l[c])])}))])},wrappedRowRender:function(e,t){var i=this,n=this.$createElement,r=this.store,s=r.isRowExpanded,a=r.assertRowKey,o=r.states,l=o.treeData,u=o.lazyTreeNodeMap,c=o.childrenColumnName,d=o.rowKey;if(this.hasExpandColumn&&s(e)){var h=this.table.renderExpanded,p=this.rowRender(e,t);return h?[[p,n("tr",{key:"expanded-row__"+p.key},[n("td",{attrs:{colspan:this.columnsCount},class:"el-table__cell el-table__expanded-cell"},[h(this.$createElement,{row:e,$index:t,store:this.store})])])]]:(console.error("[Element Error]renderExpanded is required."),p)}if(Object.keys(l).length){a();var f=_i(e,d),m=l[f],v=null;m&&(v={expanded:m.expanded,level:m.level,display:!0},"boolean"==typeof m.lazy&&("boolean"==typeof m.loaded&&m.loaded&&(v.noLazyChildren=!(m.children&&m.children.length)),v.loading=m.loading));var g=[this.rowRender(e,t,v)];if(m){var _=0;m.display=!0,function e(n,r){n&&n.length&&r&&n.forEach((function(n){var s={display:r.display&&r.expanded,level:r.level+1},a=_i(n,d);if(null==a)throw new Error("for nested data item, row-key is required.");if((m=Li({},l[a]))&&(s.expanded=m.expanded,m.level=m.level||s.level,m.display=!(!m.expanded||!s.display),"boolean"==typeof m.lazy&&("boolean"==typeof m.loaded&&m.loaded&&(s.noLazyChildren=!(m.children&&m.children.length)),s.loading=m.loading)),_++,g.push(i.rowRender(n,t+_,s)),m){var o=u[a]||n[c];e(o,m)}}))}(u[f]||e[c],m)}return g}return this.rowRender(e,t)}}},Vi=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("transition",{attrs:{name:"el-zoom-in-top"}},[e.multiple?i("div",{directives:[{name:"clickoutside",rawName:"v-clickoutside",value:e.handleOutsideClick,expression:"handleOutsideClick"},{name:"show",rawName:"v-show",value:e.showPopper,expression:"showPopper"}],staticClass:"el-table-filter"},[i("div",{staticClass:"el-table-filter__content"},[i("el-scrollbar",{attrs:{"wrap-class":"el-table-filter__wrap"}},[i("el-checkbox-group",{staticClass:"el-table-filter__checkbox-group",model:{value:e.filteredValue,callback:function(t){e.filteredValue=t},expression:"filteredValue"}},e._l(e.filters,(function(t){return i("el-checkbox",{key:t.value,attrs:{label:t.value}},[e._v(e._s(t.text))])})),1)],1)],1),i("div",{staticClass:"el-table-filter__bottom"},[i("button",{class:{"is-disabled":0===e.filteredValue.length},attrs:{disabled:0===e.filteredValue.length},on:{click:e.handleConfirm}},[e._v(e._s(e.t("el.table.confirmFilter")))]),i("button",{on:{click:e.handleReset}},[e._v(e._s(e.t("el.table.resetFilter")))])])]):i("div",{directives:[{name:"clickoutside",rawName:"v-clickoutside",value:e.handleOutsideClick,expression:"handleOutsideClick"},{name:"show",rawName:"v-show",value:e.showPopper,expression:"showPopper"}],staticClass:"el-table-filter"},[i("ul",{staticClass:"el-table-filter__list"},[i("li",{staticClass:"el-table-filter__list-item",class:{"is-active":void 0===e.filterValue||null===e.filterValue},on:{click:function(t){e.handleSelect(null)}}},[e._v(e._s(e.t("el.table.clearFilter")))]),e._l(e.filters,(function(t){return i("li",{key:t.value,staticClass:"el-table-filter__list-item",class:{"is-active":e.isActive(t)},attrs:{label:t.value},on:{click:function(i){e.handleSelect(t.value)}}},[e._v(e._s(t.text))])}))],2)])])};Vi._withStripped=!0;var zi=[];!di.a.prototype.$isServer&&document.addEventListener("click",(function(e){zi.forEach((function(t){var i=e.target;t&&t.$el&&(i===t.$el||t.$el.contains(i)||t.handleOutsideClick&&t.handleOutsideClick(e))}))}));var Ri=function(e){e&&zi.push(e)},Bi=function(e){-1!==zi.indexOf(e)&&zi.splice(e,1)},Hi=i(31),Wi=i.n(Hi),qi=r({name:"ElTableFilterPanel",mixins:[A.a,f.a],directives:{Clickoutside:j.a},components:{ElCheckbox:ri.a,ElCheckboxGroup:Wi.a,ElScrollbar:L.a},props:{placement:{type:String,default:"bottom-end"}},methods:{isActive:function(e){return e.value===this.filterValue},handleOutsideClick:function(){var e=this;setTimeout((function(){e.showPopper=!1}),16)},handleConfirm:function(){this.confirmFilter(this.filteredValue),this.handleOutsideClick()},handleReset:function(){this.filteredValue=[],this.confirmFilter(this.filteredValue),this.handleOutsideClick()},handleSelect:function(e){this.filterValue=e,null!=e?this.confirmFilter(this.filteredValue):this.confirmFilter([]),this.handleOutsideClick()},confirmFilter:function(e){this.table.store.commit("filterChange",{column:this.column,values:e}),this.table.store.updateAllSelected()}},data:function(){return{table:null,cell:null,column:null}},computed:{filters:function(){return this.column&&this.column.filters},filterValue:{get:function(){return(this.column.filteredValue||[])[0]},set:function(e){this.filteredValue&&(null!=e?this.filteredValue.splice(0,1,e):this.filteredValue.splice(0,1))}},filteredValue:{get:function(){return this.column&&this.column.filteredValue||[]},set:function(e){this.column&&(this.column.filteredValue=e)}},multiple:function(){return!this.column||this.column.filterMultiple}},mounted:function(){var e=this;this.popperElm=this.$el,this.referenceElm=this.cell,this.table.bodyWrapper.addEventListener("scroll",(function(){e.updatePopper()})),this.$watch("showPopper",(function(t){e.column&&(e.column.filterOpened=t),t?Ri(e):Bi(e)}))},watch:{showPopper:function(e){!0===e&&parseInt(this.popperJS._popper.style.zIndex,10)1;return r&&(this.$parent.isGroup=!0),e("table",{class:"el-table__header",attrs:{cellspacing:"0",cellpadding:"0",border:"0"}},[e("colgroup",[this.columns.map((function(t){return e("col",{attrs:{name:t.id},key:t.id})})),this.hasGutter?e("col",{attrs:{name:"gutter"}}):""]),e("thead",{class:[{"is-group":r,"has-gutter":this.hasGutter}]},[this._l(n,(function(i,n){return e("tr",{style:t.getHeaderRowStyle(n),class:t.getHeaderRowClass(n)},[i.map((function(r,s){return e("th",{attrs:{colspan:r.colSpan,rowspan:r.rowSpan},on:{mousemove:function(e){return t.handleMouseMove(e,r)},mouseout:t.handleMouseOut,mousedown:function(e){return t.handleMouseDown(e,r)},click:function(e){return t.handleHeaderClick(e,r)},contextmenu:function(e){return t.handleHeaderContextMenu(e,r)}},style:t.getHeaderCellStyle(n,s,i,r),class:t.getHeaderCellClass(n,s,i,r),key:r.id},[e("div",{class:["cell",r.filteredValue&&r.filteredValue.length>0?"highlight":"",r.labelClassName]},[r.renderHeader?r.renderHeader.call(t._renderProxy,e,{column:r,$index:s,store:t.store,_self:t.$parent.$vnode.context}):r.label,r.sortable?e("span",{class:"caret-wrapper",on:{click:function(e){return t.handleSortClick(e,r)}}},[e("i",{class:"sort-caret ascending",on:{click:function(e){return t.handleSortClick(e,r,"ascending")}}}),e("i",{class:"sort-caret descending",on:{click:function(e){return t.handleSortClick(e,r,"descending")}}})]):"",r.filterable?e("span",{class:"el-table__column-filter-trigger",on:{click:function(e){return t.handleFilterClick(e,r)}}},[e("i",{class:["el-icon-arrow-down",r.filterOpened?"el-icon-arrow-up":""]})]):""])])})),t.hasGutter?e("th",{class:"el-table__cell gutter"}):""])}))])])},props:{fixed:String,store:{required:!0},border:Boolean,defaultSort:{type:Object,default:function(){return{prop:"",order:""}}}},components:{ElCheckbox:ri.a},computed:Gi({table:function(){return this.$parent},hasGutter:function(){return!this.fixed&&this.tableLayout.gutterWidth}},Pi({columns:"columns",isAllSelected:"isAllSelected",leftFixedLeafCount:"fixedLeafColumnsLength",rightFixedLeafCount:"rightFixedLeafColumnsLength",columnsCount:function(e){return e.columns.length},leftFixedCount:function(e){return e.fixedColumns.length},rightFixedCount:function(e){return e.rightFixedColumns.length}})),created:function(){this.filterPanels={}},mounted:function(){var e=this;this.$nextTick((function(){var t=e.defaultSort,i=t.prop,n=t.order;e.store.commit("sort",{prop:i,order:n,init:!0})}))},beforeDestroy:function(){var e=this.filterPanels;for(var t in e)e.hasOwnProperty(t)&&e[t]&&e[t].$destroy(!0)},methods:{isCellHidden:function(e,t){for(var i=0,n=0;n=this.leftFixedLeafCount:"right"===this.fixed?i=this.columnsCount-this.rightFixedLeafCount},getHeaderRowStyle:function(e){var t=this.table.headerRowStyle;return"function"==typeof t?t.call(null,{rowIndex:e}):t},getHeaderRowClass:function(e){var t=[],i=this.table.headerRowClassName;return"string"==typeof i?t.push(i):"function"==typeof i&&t.push(i.call(null,{rowIndex:e})),t.join(" ")},getHeaderCellStyle:function(e,t,i,n){var r=this.table.headerCellStyle;return"function"==typeof r?r.call(null,{rowIndex:e,columnIndex:t,row:i,column:n}):r},getHeaderCellClass:function(e,t,i,n){var r=[n.id,n.order,n.headerAlign,n.className,n.labelClassName];0===e&&this.isCellHidden(t,i)&&r.push("is-hidden"),n.children||r.push("is-leaf"),n.sortable&&r.push("is-sortable");var s=this.table.headerCellClassName;return"string"==typeof s?r.push(s):"function"==typeof s&&r.push(s.call(null,{rowIndex:e,columnIndex:t,row:i,column:n})),r.push("el-table__cell"),r.join(" ")},toggleAllSelection:function(e){e.stopPropagation(),this.store.commit("toggleAllSelection")},handleFilterClick:function(e,t){e.stopPropagation();var i=e.target,n="TH"===i.tagName?i:i.parentNode;if(!Object(fe.hasClass)(n,"noclick")){n=n.querySelector(".el-table__column-filter-trigger")||n;var r=this.$parent,s=this.filterPanels[t.id];s&&t.filterOpened?s.showPopper=!1:(s||(s=new di.a(Ui),this.filterPanels[t.id]=s,t.filterPlacement&&(s.placement=t.filterPlacement),s.table=r,s.cell=n,s.column=t,!this.$isServer&&s.$mount(document.createElement("div"))),setTimeout((function(){s.showPopper=!0}),16))}},handleHeaderClick:function(e,t){!t.filters&&t.sortable?this.handleSortClick(e,t):t.filterable&&!t.sortable&&this.handleFilterClick(e,t),this.$parent.$emit("header-click",t,e)},handleHeaderContextMenu:function(e,t){this.$parent.$emit("header-contextmenu",t,e)},handleMouseDown:function(e,t){var i=this;if(!this.$isServer&&!(t.children&&t.children.length>0)&&this.draggingColumn&&this.border){this.dragging=!0,this.$parent.resizeProxyVisible=!0;var n=this.$parent,r=n.$el.getBoundingClientRect().left,s=this.$el.querySelector("th."+t.id),a=s.getBoundingClientRect(),o=a.left-r+30;Object(fe.addClass)(s,"noclick"),this.dragState={startMouseLeft:e.clientX,startLeft:a.right-r,startColumnLeft:a.left-r,tableLeft:r};var l=n.$refs.resizeProxy;l.style.left=this.dragState.startLeft+"px",document.onselectstart=function(){return!1},document.ondragstart=function(){return!1};var u=function(e){var t=e.clientX-i.dragState.startMouseLeft,n=i.dragState.startLeft+t;l.style.left=Math.max(o,n)+"px"};document.addEventListener("mousemove",u),document.addEventListener("mouseup",(function r(){if(i.dragging){var a=i.dragState,o=a.startColumnLeft,c=a.startLeft,d=parseInt(l.style.left,10)-o;t.width=t.realWidth=d,n.$emit("header-dragend",t.width,c-o,t,e),i.store.scheduleLayout(),document.body.style.cursor="",i.dragging=!1,i.draggingColumn=null,i.dragState={},n.resizeProxyVisible=!1}document.removeEventListener("mousemove",u),document.removeEventListener("mouseup",r),document.onselectstart=null,document.ondragstart=null,setTimeout((function(){Object(fe.removeClass)(s,"noclick")}),0)}))}},handleMouseMove:function(e,t){if(!(t.children&&t.children.length>0)){for(var i=e.target;i&&"TH"!==i.tagName;)i=i.parentNode;if(t&&t.resizable&&!this.dragging&&this.border){var n=i.getBoundingClientRect(),r=document.body.style;n.width>12&&n.right-e.pageX<8?(r.cursor="col-resize",Object(fe.hasClass)(i,"is-sortable")&&(i.style.cursor="col-resize"),this.draggingColumn=t):this.dragging||(r.cursor="",Object(fe.hasClass)(i,"is-sortable")&&(i.style.cursor="pointer"),this.draggingColumn=null)}}},handleMouseOut:function(){this.$isServer||(document.body.style.cursor="")},toggleOrder:function(e){var t=e.order,i=e.sortOrders;if(""===t)return i[0];var n=i.indexOf(t||null);return i[n>i.length-2?0:n+1]},handleSortClick:function(e,t,i){e.stopPropagation();for(var n=t.order===i?null:i||this.toggleOrder(t),r=e.target;r&&"TH"!==r.tagName;)r=r.parentNode;if(r&&"TH"===r.tagName&&Object(fe.hasClass)(r,"noclick"))Object(fe.removeClass)(r,"noclick");else if(t.sortable){var s=this.store.states,a=s.sortProp,o=void 0,l=s.sortingColumn;(l!==t||l===t&&null===l.order)&&(l&&(l.order=null),s.sortingColumn=t,a=t.property),o=t.order=n||null,s.sortProp=a,s.sortOrder=o,this.store.commit("changeSortCondition")}}},data:function(){return{draggingColumn:null,dragging:!1,dragState:{}}}},Xi=Object.assign||function(e){for(var t=1;t=this.leftFixedLeafCount;if("right"===this.fixed){for(var n=0,r=0;r=this.columnsCount-this.rightFixedCount)},getRowClasses:function(e,t){var i=[e.id,e.align,e.labelClassName];return e.className&&i.push(e.className),this.isCellHidden(t,this.columns,e)&&i.push("is-hidden"),e.children||i.push("is-leaf"),i}}},Qi=Object.assign||function(e){for(var t=1;t0){var n=i.scrollTop;t.pixelY<0&&0!==n&&e.preventDefault(),t.pixelY>0&&i.scrollHeight-i.clientHeight>n&&e.preventDefault(),i.scrollTop+=Math.ceil(t.pixelY/5)}else i.scrollLeft+=Math.ceil(t.pixelX/5)},handleHeaderFooterMousewheel:function(e,t){var i=t.pixelX,n=t.pixelY;Math.abs(i)>=Math.abs(n)&&(this.bodyWrapper.scrollLeft+=t.pixelX/5)},syncPostion:Object(si.throttle)(20,(function(){var e=this.bodyWrapper,t=e.scrollLeft,i=e.scrollTop,n=e.offsetWidth,r=e.scrollWidth,s=this.$refs,a=s.headerWrapper,o=s.footerWrapper,l=s.fixedBodyWrapper,u=s.rightFixedBodyWrapper;a&&(a.scrollLeft=t),o&&(o.scrollLeft=t),l&&(l.scrollTop=i),u&&(u.scrollTop=i);var c=r-n-1;this.scrollPosition=t>=c?"right":0===t?"left":"middle"})),bindEvents:function(){this.bodyWrapper.addEventListener("scroll",this.syncPostion,{passive:!0}),this.fit&&Object(Lt.addResizeListener)(this.$el,this.resizeListener)},unbindEvents:function(){this.bodyWrapper.removeEventListener("scroll",this.syncPostion,{passive:!0}),this.fit&&Object(Lt.removeResizeListener)(this.$el,this.resizeListener)},resizeListener:function(){if(this.$ready){var e=!1,t=this.$el,i=this.resizeState,n=i.width,r=i.height,s=t.offsetWidth;n!==s&&(e=!0);var a=t.offsetHeight;(this.height||this.shouldUpdateHeight)&&r!==a&&(e=!0),e&&(this.resizeState.width=s,this.resizeState.height=a,this.doLayout())}},doLayout:function(){this.shouldUpdateHeight&&this.layout.updateElsHeight(),this.layout.updateColumnsWidth()},sort:function(e,t){this.store.commit("sort",{prop:e,order:t})},toggleAllSelection:function(){this.store.commit("toggleAllSelection")}},computed:Qi({tableSize:function(){return this.size||(this.$ELEMENT||{}).size},bodyWrapper:function(){return this.$refs.bodyWrapper},shouldUpdateHeight:function(){return this.height||this.maxHeight||this.fixedColumns.length>0||this.rightFixedColumns.length>0},bodyWidth:function(){var e=this.layout,t=e.bodyWidth,i=e.scrollY,n=e.gutterWidth;return t?t-(i?n:0)+"px":""},bodyHeight:function(){var e=this.layout,t=e.headerHeight,i=void 0===t?0:t,n=e.bodyHeight,r=e.footerHeight,s=void 0===r?0:r;if(this.height)return{height:n?n+"px":""};if(this.maxHeight){var a=ki(this.maxHeight);if("number"==typeof a)return{"max-height":a-s-(this.showHeader?i:0)+"px"}}return{}},fixedBodyHeight:function(){if(this.height)return{height:this.layout.fixedBodyHeight?this.layout.fixedBodyHeight+"px":""};if(this.maxHeight){var e=ki(this.maxHeight);if("number"==typeof e)return e=this.layout.scrollX?e-this.layout.gutterWidth:e,this.showHeader&&(e-=this.layout.headerHeight),{"max-height":(e-=this.layout.footerHeight)+"px"}}return{}},fixedHeight:function(){return this.maxHeight?this.showSummary?{bottom:0}:{bottom:this.layout.scrollX&&this.data.length?this.layout.gutterWidth+"px":""}:this.showSummary?{height:this.layout.tableHeight?this.layout.tableHeight+"px":""}:{height:this.layout.viewportHeight?this.layout.viewportHeight+"px":""}},emptyBlockStyle:function(){if(this.data&&this.data.length)return null;var e="100%";return this.layout.appendHeight&&(e="calc(100% - "+this.layout.appendHeight+"px)"),{width:this.bodyWidth,height:e}}},Pi({selection:"selection",columns:"columns",tableData:"data",fixedColumns:"fixedColumns",rightFixedColumns:"rightFixedColumns"})),watch:{height:{immediate:!0,handler:function(e){this.layout.setHeight(e)}},maxHeight:{immediate:!0,handler:function(e){this.layout.setMaxHeight(e)}},currentRowKey:{immediate:!0,handler:function(e){this.rowKey&&this.store.setCurrentRowKey(e)}},data:{immediate:!0,handler:function(e){this.store.commit("setData",e)}},expandRowKeys:{immediate:!0,handler:function(e){e&&this.store.setExpandRowKeysAdapter(e)}}},created:function(){var e=this;this.tableId="el-table_"+Ji++,this.debouncedUpdateLayout=Object(si.debounce)(50,(function(){return e.doLayout()}))},mounted:function(){var e=this;this.bindEvents(),this.store.updateColumns(),this.doLayout(),this.resizeState={width:this.$el.offsetWidth,height:this.$el.offsetHeight},this.store.states.columns.forEach((function(t){t.filteredValue&&t.filteredValue.length&&e.store.commit("filterChange",{column:t,values:t.filteredValue,silent:!0})})),this.$ready=!0},destroyed:function(){this.unbindEvents()},data:function(){var e=this.treeProps,t=e.hasChildren,i=void 0===t?"hasChildren":t,n=e.children,r=void 0===n?"children":n;return this.store=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!e)throw new Error("Table is required.");var i=new $i;return i.table=e,i.toggleAllSelection=$()(10,i._toggleAllSelection),Object.keys(t).forEach((function(e){i.states[e]=t[e]})),i}(this,{rowKey:this.rowKey,defaultExpandAll:this.defaultExpandAll,selectOnIndeterminate:this.selectOnIndeterminate,indent:this.indent,lazy:this.lazy,lazyColumnIdentifier:i,childrenColumnName:r}),{layout:new Ii({store:this.store,table:this,fit:this.fit,showHeader:this.showHeader}),isHidden:!1,renderExpanded:null,resizeProxyVisible:!1,resizeState:{width:null,height:null},isGroup:!1,scrollPosition:"left"}}},ii,[],!1,null,null,null);en.options.__file="packages/table/src/table.vue";var tn=en.exports;tn.install=function(e){e.component(tn.name,tn)};var nn=tn,rn={default:{order:""},selection:{width:48,minWidth:48,realWidth:48,order:"",className:"el-table-column--selection"},expand:{width:48,minWidth:48,realWidth:48,order:""},index:{width:48,minWidth:48,realWidth:48,order:""}},sn={selection:{renderHeader:function(e,t){var i=t.store;return e("el-checkbox",{attrs:{disabled:i.states.data&&0===i.states.data.length,indeterminate:i.states.selection.length>0&&!this.isAllSelected,value:this.isAllSelected},nativeOn:{click:this.toggleAllSelection}})},renderCell:function(e,t){var i=t.row,n=t.column,r=t.store,s=t.$index;return e("el-checkbox",{nativeOn:{click:function(e){return e.stopPropagation()}},attrs:{value:r.isSelected(i),disabled:!!n.selectable&&!n.selectable.call(null,i,s)},on:{input:function(){r.commit("rowSelectedChanged",i)}}})},sortable:!1,resizable:!1},index:{renderHeader:function(e,t){return t.column.label||"#"},renderCell:function(e,t){var i=t.$index,n=i+1,r=t.column.index;return"number"==typeof r?n=i+r:"function"==typeof r&&(n=r(i)),e("div",[n])},sortable:!1},expand:{renderHeader:function(e,t){return t.column.label||""},renderCell:function(e,t){var i=t.row,n=t.store,r=["el-table__expand-icon"];n.states.expandRows.indexOf(i)>-1&&r.push("el-table__expand-icon--expanded");return e("div",{class:r,on:{click:function(e){e.stopPropagation(),n.toggleRowExpansion(i)}}},[e("i",{class:"el-icon el-icon-arrow-right"})])},sortable:!1,resizable:!1,className:"el-table__expand-column"}};function an(e,t){var i=t.row,n=t.column,r=t.$index,s=n.property,a=s&&Object(m.getPropByPath)(i,s).v;return n&&n.formatter?n.formatter(i,n,a,r):a}var on=Object.assign||function(e){for(var t=1;t-1}))}}},data:function(){return{isSubColumn:!1,columns:[]}},computed:{owner:function(){for(var e=this.$parent;e&&!e.tableId;)e=e.$parent;return e},columnOrTableParent:function(){for(var e=this.$parent;e&&!e.tableId&&!e.columnId;)e=e.$parent;return e},realWidth:function(){return xi(this.width)},realMinWidth:function(){return void 0!==(e=this.minWidth)&&(e=xi(e),isNaN(e)&&(e=80)),e;var e},realAlign:function(){return this.align?"is-"+this.align:null},realHeaderAlign:function(){return this.headerAlign?"is-"+this.headerAlign:this.realAlign}},methods:{getPropsData:function(){for(var e=this,t=arguments.length,i=Array(t),n=0;n3&&void 0!==arguments[3]?arguments[3]:"-";if(!e)return null;var r=(yn[i]||yn.default).parser,s=t||fn[i];return r(e,s,n)},wn=function(e,t,i){return e?(0,(yn[i]||yn.default).formatter)(e,t||fn[i]):null},Cn=function(e,t){var i=function(e,t){var i=e instanceof Date,n=t instanceof Date;return i&&n?e.getTime()===t.getTime():!i&&!n&&e===t},n=e instanceof Array,r=t instanceof Array;return n&&r?e.length===t.length&&e.every((function(e,n){return i(e,t[n])})):!n&&!r&&i(e,t)},Sn=function(e){return"string"==typeof e||e instanceof String},On=function(e){return null==e||Sn(e)||Array.isArray(e)&&2===e.length&&e.every(Sn)},Dn=r({mixins:[C.a,pn],inject:{elForm:{default:""},elFormItem:{default:""}},props:{size:String,format:String,valueFormat:String,readonly:Boolean,placeholder:String,startPlaceholder:String,endPlaceholder:String,prefixIcon:String,clearIcon:{type:String,default:"el-icon-circle-close"},name:{default:"",validator:On},disabled:Boolean,clearable:{type:Boolean,default:!0},id:{default:"",validator:On},popperClass:String,editable:{type:Boolean,default:!0},align:{type:String,default:"left"},value:{},defaultValue:{},defaultTime:{},rangeSeparator:{default:"-"},pickerOptions:{},unlinkPanels:Boolean,validateEvent:{type:Boolean,default:!0}},components:{ElInput:h.a},directives:{Clickoutside:j.a},data:function(){return{pickerVisible:!1,showClose:!1,userInput:null,valueOnOpen:null,unwatchPickerOptions:null}},watch:{pickerVisible:function(e){this.readonly||this.pickerDisabled||(e?(this.showPicker(),this.valueOnOpen=Array.isArray(this.value)?[].concat(this.value):this.value):(this.hidePicker(),this.emitChange(this.value),this.userInput=null,this.validateEvent&&this.dispatch("ElFormItem","el.form.blur"),this.$emit("blur",this),this.blur()))},parsedValue:{immediate:!0,handler:function(e){this.picker&&(this.picker.value=e)}},defaultValue:function(e){this.picker&&(this.picker.defaultValue=e)},value:function(e,t){Cn(e,t)||this.pickerVisible||!this.validateEvent||this.dispatch("ElFormItem","el.form.change",e)}},computed:{ranged:function(){return this.type.indexOf("range")>-1},reference:function(){var e=this.$refs.reference;return e.$el||e},refInput:function(){return this.reference?[].slice.call(this.reference.querySelectorAll("input")):[]},valueIsEmpty:function(){var e=this.value;if(Array.isArray(e)){for(var t=0,i=e.length;t0&&void 0!==arguments[0]?arguments[0]:"",i=arguments.length>1&&void 0!==arguments[1]&&arguments[1];e.userInput=null,e.pickerVisible=e.picker.visible=i,e.emitInput(t),e.picker.resetView&&e.picker.resetView()})),this.picker.$on("select-range",(function(t,i,n){0!==e.refInput.length&&(n&&"min"!==n?"max"===n&&(e.refInput[1].setSelectionRange(t,i),e.refInput[1].focus()):(e.refInput[0].setSelectionRange(t,i),e.refInput[0].focus()))}))},unmountPicker:function(){this.picker&&(this.picker.$destroy(),this.picker.$off(),"function"==typeof this.unwatchPickerOptions&&this.unwatchPickerOptions(),this.picker.$el.parentNode.removeChild(this.picker.$el))},emitChange:function(e){Cn(e,this.valueOnOpen)||(this.$emit("change",e),this.valueOnOpen=e,this.validateEvent&&this.dispatch("ElFormItem","el.form.change",e))},emitInput:function(e){var t=this.formatToValue(e);Cn(this.value,t)||this.$emit("input",t)},isValidValue:function(e){return this.picker||this.mountPicker(),!this.picker.isValidValue||e&&this.picker.isValidValue(e)}}},dn,[],!1,null,null,null);Dn.options.__file="packages/date-picker/src/picker.vue";var En=Dn.exports,Tn=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("transition",{attrs:{name:"el-zoom-in-top"},on:{"after-enter":e.handleEnter,"after-leave":e.handleLeave}},[i("div",{directives:[{name:"show",rawName:"v-show",value:e.visible,expression:"visible"}],staticClass:"el-picker-panel el-date-picker el-popper",class:[{"has-sidebar":e.$slots.sidebar||e.shortcuts,"has-time":e.showTime},e.popperClass]},[i("div",{staticClass:"el-picker-panel__body-wrapper"},[e._t("sidebar"),e.shortcuts?i("div",{staticClass:"el-picker-panel__sidebar"},e._l(e.shortcuts,(function(t,n){return i("button",{key:n,staticClass:"el-picker-panel__shortcut",attrs:{type:"button"},on:{click:function(i){e.handleShortcutClick(t)}}},[e._v(e._s(t.text))])})),0):e._e(),i("div",{staticClass:"el-picker-panel__body"},[e.showTime?i("div",{staticClass:"el-date-picker__time-header"},[i("span",{staticClass:"el-date-picker__editor-wrap"},[i("el-input",{attrs:{placeholder:e.t("el.datepicker.selectDate"),value:e.visibleDate,size:"small"},on:{input:function(t){return e.userInputDate=t},change:e.handleVisibleDateChange}})],1),i("span",{directives:[{name:"clickoutside",rawName:"v-clickoutside",value:e.handleTimePickClose,expression:"handleTimePickClose"}],staticClass:"el-date-picker__editor-wrap"},[i("el-input",{ref:"input",attrs:{placeholder:e.t("el.datepicker.selectTime"),value:e.visibleTime,size:"small"},on:{focus:function(t){e.timePickerVisible=!0},input:function(t){return e.userInputTime=t},change:e.handleVisibleTimeChange}}),i("time-picker",{ref:"timepicker",attrs:{"time-arrow-control":e.arrowControl,visible:e.timePickerVisible},on:{pick:e.handleTimePick,mounted:e.proxyTimePickerDataProperties}})],1)]):e._e(),i("div",{directives:[{name:"show",rawName:"v-show",value:"time"!==e.currentView,expression:"currentView !== 'time'"}],staticClass:"el-date-picker__header",class:{"el-date-picker__header--bordered":"year"===e.currentView||"month"===e.currentView}},[i("button",{staticClass:"el-picker-panel__icon-btn el-date-picker__prev-btn el-icon-d-arrow-left",attrs:{type:"button","aria-label":e.t("el.datepicker.prevYear")},on:{click:e.prevYear}}),i("button",{directives:[{name:"show",rawName:"v-show",value:"date"===e.currentView,expression:"currentView === 'date'"}],staticClass:"el-picker-panel__icon-btn el-date-picker__prev-btn el-icon-arrow-left",attrs:{type:"button","aria-label":e.t("el.datepicker.prevMonth")},on:{click:e.prevMonth}}),i("span",{staticClass:"el-date-picker__header-label",attrs:{role:"button"},on:{click:e.showYearPicker}},[e._v(e._s(e.yearLabel))]),i("span",{directives:[{name:"show",rawName:"v-show",value:"date"===e.currentView,expression:"currentView === 'date'"}],staticClass:"el-date-picker__header-label",class:{active:"month"===e.currentView},attrs:{role:"button"},on:{click:e.showMonthPicker}},[e._v(e._s(e.t("el.datepicker.month"+(e.month+1))))]),i("button",{staticClass:"el-picker-panel__icon-btn el-date-picker__next-btn el-icon-d-arrow-right",attrs:{type:"button","aria-label":e.t("el.datepicker.nextYear")},on:{click:e.nextYear}}),i("button",{directives:[{name:"show",rawName:"v-show",value:"date"===e.currentView,expression:"currentView === 'date'"}],staticClass:"el-picker-panel__icon-btn el-date-picker__next-btn el-icon-arrow-right",attrs:{type:"button","aria-label":e.t("el.datepicker.nextMonth")},on:{click:e.nextMonth}})]),i("div",{staticClass:"el-picker-panel__content"},[i("date-table",{directives:[{name:"show",rawName:"v-show",value:"date"===e.currentView,expression:"currentView === 'date'"}],attrs:{"selection-mode":e.selectionMode,"first-day-of-week":e.firstDayOfWeek,value:e.value,"default-value":e.defaultValue?new Date(e.defaultValue):null,date:e.date,"cell-class-name":e.cellClassName,"disabled-date":e.disabledDate},on:{pick:e.handleDatePick}}),i("year-table",{directives:[{name:"show",rawName:"v-show",value:"year"===e.currentView,expression:"currentView === 'year'"}],attrs:{value:e.value,"default-value":e.defaultValue?new Date(e.defaultValue):null,date:e.date,"disabled-date":e.disabledDate},on:{pick:e.handleYearPick}}),i("month-table",{directives:[{name:"show",rawName:"v-show",value:"month"===e.currentView,expression:"currentView === 'month'"}],attrs:{value:e.value,"default-value":e.defaultValue?new Date(e.defaultValue):null,date:e.date,"disabled-date":e.disabledDate},on:{pick:e.handleMonthPick}})],1)])],2),i("div",{directives:[{name:"show",rawName:"v-show",value:e.footerVisible&&"date"===e.currentView,expression:"footerVisible && currentView === 'date'"}],staticClass:"el-picker-panel__footer"},[i("el-button",{directives:[{name:"show",rawName:"v-show",value:"dates"!==e.selectionMode,expression:"selectionMode !== 'dates'"}],staticClass:"el-picker-panel__link-btn",attrs:{size:"mini",type:"text"},on:{click:e.changeToNow}},[e._v("\n "+e._s(e.t("el.datepicker.now"))+"\n ")]),i("el-button",{staticClass:"el-picker-panel__link-btn",attrs:{plain:"",size:"mini"},on:{click:e.confirm}},[e._v("\n "+e._s(e.t("el.datepicker.confirm"))+"\n ")])],1)])])};Tn._withStripped=!0;var $n=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("transition",{attrs:{name:"el-zoom-in-top"},on:{"after-leave":function(t){e.$emit("dodestroy")}}},[i("div",{directives:[{name:"show",rawName:"v-show",value:e.visible,expression:"visible"}],staticClass:"el-time-panel el-popper",class:e.popperClass},[i("div",{staticClass:"el-time-panel__content",class:{"has-seconds":e.showSeconds}},[i("time-spinner",{ref:"spinner",attrs:{"arrow-control":e.useArrow,"show-seconds":e.showSeconds,"am-pm-mode":e.amPmMode,date:e.date},on:{change:e.handleChange,"select-range":e.setSelectionRange}})],1),i("div",{staticClass:"el-time-panel__footer"},[i("button",{staticClass:"el-time-panel__btn cancel",attrs:{type:"button"},on:{click:e.handleCancel}},[e._v(e._s(e.t("el.datepicker.cancel")))]),i("button",{staticClass:"el-time-panel__btn",class:{confirm:!e.disabled},attrs:{type:"button"},on:{click:function(t){e.handleConfirm()}}},[e._v(e._s(e.t("el.datepicker.confirm")))])])])])};$n._withStripped=!0;var Pn=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{staticClass:"el-time-spinner",class:{"has-seconds":e.showSeconds}},[e.arrowControl?e._e():[i("el-scrollbar",{ref:"hours",staticClass:"el-time-spinner__wrapper",attrs:{"wrap-style":"max-height: inherit;","view-class":"el-time-spinner__list",noresize:"",tag:"ul"},nativeOn:{mouseenter:function(t){e.emitSelectRange("hours")},mousemove:function(t){e.adjustCurrentSpinner("hours")}}},e._l(e.hoursList,(function(t,n){return i("li",{key:n,staticClass:"el-time-spinner__item",class:{active:n===e.hours,disabled:t},on:{click:function(i){e.handleClick("hours",{value:n,disabled:t})}}},[e._v(e._s(("0"+(e.amPmMode?n%12||12:n)).slice(-2))+e._s(e.amPm(n)))])})),0),i("el-scrollbar",{ref:"minutes",staticClass:"el-time-spinner__wrapper",attrs:{"wrap-style":"max-height: inherit;","view-class":"el-time-spinner__list",noresize:"",tag:"ul"},nativeOn:{mouseenter:function(t){e.emitSelectRange("minutes")},mousemove:function(t){e.adjustCurrentSpinner("minutes")}}},e._l(e.minutesList,(function(t,n){return i("li",{key:n,staticClass:"el-time-spinner__item",class:{active:n===e.minutes,disabled:!t},on:{click:function(t){e.handleClick("minutes",{value:n,disabled:!1})}}},[e._v(e._s(("0"+n).slice(-2)))])})),0),i("el-scrollbar",{directives:[{name:"show",rawName:"v-show",value:e.showSeconds,expression:"showSeconds"}],ref:"seconds",staticClass:"el-time-spinner__wrapper",attrs:{"wrap-style":"max-height: inherit;","view-class":"el-time-spinner__list",noresize:"",tag:"ul"},nativeOn:{mouseenter:function(t){e.emitSelectRange("seconds")},mousemove:function(t){e.adjustCurrentSpinner("seconds")}}},e._l(60,(function(t,n){return i("li",{key:n,staticClass:"el-time-spinner__item",class:{active:n===e.seconds},on:{click:function(t){e.handleClick("seconds",{value:n,disabled:!1})}}},[e._v(e._s(("0"+n).slice(-2)))])})),0)],e.arrowControl?[i("div",{staticClass:"el-time-spinner__wrapper is-arrow",on:{mouseenter:function(t){e.emitSelectRange("hours")}}},[i("i",{directives:[{name:"repeat-click",rawName:"v-repeat-click",value:e.decrease,expression:"decrease"}],staticClass:"el-time-spinner__arrow el-icon-arrow-up"}),i("i",{directives:[{name:"repeat-click",rawName:"v-repeat-click",value:e.increase,expression:"increase"}],staticClass:"el-time-spinner__arrow el-icon-arrow-down"}),i("ul",{ref:"hours",staticClass:"el-time-spinner__list"},e._l(e.arrowHourList,(function(t,n){return i("li",{key:n,staticClass:"el-time-spinner__item",class:{active:t===e.hours,disabled:e.hoursList[t]}},[e._v(e._s(void 0===t?"":("0"+(e.amPmMode?t%12||12:t)).slice(-2)+e.amPm(t)))])})),0)]),i("div",{staticClass:"el-time-spinner__wrapper is-arrow",on:{mouseenter:function(t){e.emitSelectRange("minutes")}}},[i("i",{directives:[{name:"repeat-click",rawName:"v-repeat-click",value:e.decrease,expression:"decrease"}],staticClass:"el-time-spinner__arrow el-icon-arrow-up"}),i("i",{directives:[{name:"repeat-click",rawName:"v-repeat-click",value:e.increase,expression:"increase"}],staticClass:"el-time-spinner__arrow el-icon-arrow-down"}),i("ul",{ref:"minutes",staticClass:"el-time-spinner__list"},e._l(e.arrowMinuteList,(function(t,n){return i("li",{key:n,staticClass:"el-time-spinner__item",class:{active:t===e.minutes}},[e._v("\n "+e._s(void 0===t?"":("0"+t).slice(-2))+"\n ")])})),0)]),e.showSeconds?i("div",{staticClass:"el-time-spinner__wrapper is-arrow",on:{mouseenter:function(t){e.emitSelectRange("seconds")}}},[i("i",{directives:[{name:"repeat-click",rawName:"v-repeat-click",value:e.decrease,expression:"decrease"}],staticClass:"el-time-spinner__arrow el-icon-arrow-up"}),i("i",{directives:[{name:"repeat-click",rawName:"v-repeat-click",value:e.increase,expression:"increase"}],staticClass:"el-time-spinner__arrow el-icon-arrow-down"}),i("ul",{ref:"seconds",staticClass:"el-time-spinner__list"},e._l(e.arrowSecondList,(function(t,n){return i("li",{key:n,staticClass:"el-time-spinner__item",class:{active:t===e.seconds}},[e._v("\n "+e._s(void 0===t?"":("0"+t).slice(-2))+"\n ")])})),0)]):e._e()]:e._e()],2)};Pn._withStripped=!0;var jn=r({components:{ElScrollbar:L.a},directives:{repeatClick:Ye},props:{date:{},defaultValue:{},showSeconds:{type:Boolean,default:!0},arrowControl:Boolean,amPmMode:{type:String,default:""}},computed:{hours:function(){return this.date.getHours()},minutes:function(){return this.date.getMinutes()},seconds:function(){return this.date.getSeconds()},hoursList:function(){return Object(hn.getRangeHours)(this.selectableRange)},minutesList:function(){return Object(hn.getRangeMinutes)(this.selectableRange,this.hours)},arrowHourList:function(){var e=this.hours;return[e>0?e-1:void 0,e,e<23?e+1:void 0]},arrowMinuteList:function(){var e=this.minutes;return[e>0?e-1:void 0,e,e<59?e+1:void 0]},arrowSecondList:function(){var e=this.seconds;return[e>0?e-1:void 0,e,e<59?e+1:void 0]}},data:function(){return{selectableRange:[],currentScrollbar:null}},mounted:function(){var e=this;this.$nextTick((function(){!e.arrowControl&&e.bindScrollEvent()}))},methods:{increase:function(){this.scrollDown(1)},decrease:function(){this.scrollDown(-1)},modifyDateField:function(e,t){switch(e){case"hours":this.$emit("change",Object(hn.modifyTime)(this.date,t,this.minutes,this.seconds));break;case"minutes":this.$emit("change",Object(hn.modifyTime)(this.date,this.hours,t,this.seconds));break;case"seconds":this.$emit("change",Object(hn.modifyTime)(this.date,this.hours,this.minutes,t))}},handleClick:function(e,t){var i=t.value;t.disabled||(this.modifyDateField(e,i),this.emitSelectRange(e),this.adjustSpinner(e,i))},emitSelectRange:function(e){"hours"===e?this.$emit("select-range",0,2):"minutes"===e?this.$emit("select-range",3,5):"seconds"===e&&this.$emit("select-range",6,8),this.currentScrollbar=e},bindScrollEvent:function(){var e=this,t=function(t){e.$refs[t].wrap.onscroll=function(i){e.handleScroll(t,i)}};t("hours"),t("minutes"),t("seconds")},handleScroll:function(e){var t=Math.min(Math.round((this.$refs[e].wrap.scrollTop-(.5*this.scrollBarHeight(e)-10)/this.typeItemHeight(e)+3)/this.typeItemHeight(e)),"hours"===e?23:59);this.modifyDateField(e,t)},adjustSpinners:function(){this.adjustSpinner("hours",this.hours),this.adjustSpinner("minutes",this.minutes),this.adjustSpinner("seconds",this.seconds)},adjustCurrentSpinner:function(e){this.adjustSpinner(e,this[e])},adjustSpinner:function(e,t){if(!this.arrowControl){var i=this.$refs[e].wrap;i&&(i.scrollTop=Math.max(0,t*this.typeItemHeight(e)))}},scrollDown:function(e){var t=this;this.currentScrollbar||this.emitSelectRange("hours");var i=this.currentScrollbar,n=this.hoursList,r=this[i];if("hours"===this.currentScrollbar){var s=Math.abs(e);e=e>0?1:-1;for(var a=n.length;a--&&s;)n[r=(r+e+n.length)%n.length]||s--;if(n[r])return}else r=(r+e+60)%60;this.modifyDateField(i,r),this.adjustSpinner(i,r),this.$nextTick((function(){return t.emitSelectRange(t.currentScrollbar)}))},amPm:function(e){if(!("a"===this.amPmMode.toLowerCase()))return"";var t=e<12?" am":" pm";return"A"===this.amPmMode&&(t=t.toUpperCase()),t},typeItemHeight:function(e){return this.$refs[e].$el.querySelector("li").offsetHeight},scrollBarHeight:function(e){return this.$refs[e].$el.offsetHeight}}},Pn,[],!1,null,null,null);jn.options.__file="packages/date-picker/src/basic/time-spinner.vue";var Mn=jn.exports,In=r({mixins:[f.a],components:{TimeSpinner:Mn},props:{visible:Boolean,timeArrowControl:Boolean},watch:{visible:function(e){var t=this;e?(this.oldValue=this.value,this.$nextTick((function(){return t.$refs.spinner.emitSelectRange("hours")}))):this.needInitAdjust=!0},value:function(e){var t=this,i=void 0;e instanceof Date?i=Object(hn.limitTimeRange)(e,this.selectableRange,this.format):e||(i=this.defaultValue?new Date(this.defaultValue):new Date),this.date=i,this.visible&&this.needInitAdjust&&(this.$nextTick((function(e){return t.adjustSpinners()})),this.needInitAdjust=!1)},selectableRange:function(e){this.$refs.spinner.selectableRange=e},defaultValue:function(e){Object(hn.isDate)(this.value)||(this.date=e?new Date(e):new Date)}},data:function(){return{popperClass:"",format:"HH:mm:ss",value:"",defaultValue:null,date:new Date,oldValue:new Date,selectableRange:[],selectionRange:[0,2],disabled:!1,arrowControl:!1,needInitAdjust:!0}},computed:{showSeconds:function(){return-1!==(this.format||"").indexOf("ss")},useArrow:function(){return this.arrowControl||this.timeArrowControl||!1},amPmMode:function(){return-1!==(this.format||"").indexOf("A")?"A":-1!==(this.format||"").indexOf("a")?"a":""}},methods:{handleCancel:function(){this.$emit("pick",this.oldValue,!1)},handleChange:function(e){this.visible&&(this.date=Object(hn.clearMilliseconds)(e),this.isValidValue(this.date)&&this.$emit("pick",this.date,!0))},setSelectionRange:function(e,t){this.$emit("select-range",e,t),this.selectionRange=[e,t]},handleConfirm:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=arguments[1];if(!t){var i=Object(hn.clearMilliseconds)(Object(hn.limitTimeRange)(this.date,this.selectableRange,this.format));this.$emit("pick",i,e,t)}},handleKeydown:function(e){var t=e.keyCode,i={38:-1,40:1,37:-1,39:1};if(37===t||39===t){var n=i[t];return this.changeSelectionRange(n),void e.preventDefault()}if(38===t||40===t){var r=i[t];return this.$refs.spinner.scrollDown(r),void e.preventDefault()}},isValidValue:function(e){return Object(hn.timeWithinRange)(e,this.selectableRange,this.format)},adjustSpinners:function(){return this.$refs.spinner.adjustSpinners()},changeSelectionRange:function(e){var t=[0,3].concat(this.showSeconds?[6]:[]),i=["hours","minutes"].concat(this.showSeconds?["seconds"]:[]),n=(t.indexOf(this.selectionRange[0])+e+t.length)%t.length;this.$refs.spinner.emitSelectRange(i[n])}},mounted:function(){var e=this;this.$nextTick((function(){return e.handleConfirm(!0,!0)})),this.$emit("mounted")}},$n,[],!1,null,null,null);In.options.__file="packages/date-picker/src/panel/time.vue";var An=In.exports,Nn=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("table",{staticClass:"el-year-table",on:{click:e.handleYearTableClick}},[i("tbody",[i("tr",[i("td",{staticClass:"available",class:e.getCellStyle(e.startYear+0)},[i("a",{staticClass:"cell"},[e._v(e._s(e.startYear))])]),i("td",{staticClass:"available",class:e.getCellStyle(e.startYear+1)},[i("a",{staticClass:"cell"},[e._v(e._s(e.startYear+1))])]),i("td",{staticClass:"available",class:e.getCellStyle(e.startYear+2)},[i("a",{staticClass:"cell"},[e._v(e._s(e.startYear+2))])]),i("td",{staticClass:"available",class:e.getCellStyle(e.startYear+3)},[i("a",{staticClass:"cell"},[e._v(e._s(e.startYear+3))])])]),i("tr",[i("td",{staticClass:"available",class:e.getCellStyle(e.startYear+4)},[i("a",{staticClass:"cell"},[e._v(e._s(e.startYear+4))])]),i("td",{staticClass:"available",class:e.getCellStyle(e.startYear+5)},[i("a",{staticClass:"cell"},[e._v(e._s(e.startYear+5))])]),i("td",{staticClass:"available",class:e.getCellStyle(e.startYear+6)},[i("a",{staticClass:"cell"},[e._v(e._s(e.startYear+6))])]),i("td",{staticClass:"available",class:e.getCellStyle(e.startYear+7)},[i("a",{staticClass:"cell"},[e._v(e._s(e.startYear+7))])])]),i("tr",[i("td",{staticClass:"available",class:e.getCellStyle(e.startYear+8)},[i("a",{staticClass:"cell"},[e._v(e._s(e.startYear+8))])]),i("td",{staticClass:"available",class:e.getCellStyle(e.startYear+9)},[i("a",{staticClass:"cell"},[e._v(e._s(e.startYear+9))])]),i("td"),i("td")])])])};Nn._withStripped=!0;var Ln=r({props:{disabledDate:{},value:{},defaultValue:{validator:function(e){return null===e||e instanceof Date&&Object(hn.isDate)(e)}},date:{}},computed:{startYear:function(){return 10*Math.floor(this.date.getFullYear()/10)}},methods:{getCellStyle:function(e){var t={},i=new Date;return t.disabled="function"==typeof this.disabledDate&&function(e){var t=Object(hn.getDayCountOfYear)(e),i=new Date(e,0,1);return Object(hn.range)(t).map((function(e){return Object(hn.nextDate)(i,e)}))}(e).every(this.disabledDate),t.current=Object(m.arrayFindIndex)(Object(m.coerceTruthyValueToArray)(this.value),(function(t){return t.getFullYear()===e}))>=0,t.today=i.getFullYear()===e,t.default=this.defaultValue&&this.defaultValue.getFullYear()===e,t},handleYearTableClick:function(e){var t=e.target;if("A"===t.tagName){if(Object(fe.hasClass)(t.parentNode,"disabled"))return;var i=t.textContent||t.innerText;this.$emit("pick",Number(i))}}}},Nn,[],!1,null,null,null);Ln.options.__file="packages/date-picker/src/basic/year-table.vue";var Fn=Ln.exports,Vn=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("table",{staticClass:"el-month-table",on:{click:e.handleMonthTableClick,mousemove:e.handleMouseMove}},[i("tbody",e._l(e.rows,(function(t,n){return i("tr",{key:n},e._l(t,(function(t,n){return i("td",{key:n,class:e.getCellStyle(t)},[i("div",[i("a",{staticClass:"cell"},[e._v(e._s(e.t("el.datepicker.months."+e.months[t.text])))])])])})),0)})),0)])};Vn._withStripped=!0;var zn=function(e){return new Date(e.getFullYear(),e.getMonth())},Rn=function(e){return"number"==typeof e||"string"==typeof e?zn(new Date(e)).getTime():e instanceof Date?zn(e).getTime():NaN},Bn=r({props:{disabledDate:{},value:{},selectionMode:{default:"month"},minDate:{},maxDate:{},defaultValue:{validator:function(e){return null===e||Object(hn.isDate)(e)||Array.isArray(e)&&e.every(hn.isDate)}},date:{},rangeState:{default:function(){return{endDate:null,selecting:!1}}}},mixins:[f.a],watch:{"rangeState.endDate":function(e){this.markRange(this.minDate,e)},minDate:function(e,t){Rn(e)!==Rn(t)&&this.markRange(this.minDate,this.maxDate)},maxDate:function(e,t){Rn(e)!==Rn(t)&&this.markRange(this.minDate,this.maxDate)}},data:function(){return{months:["jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec"],tableRows:[[],[],[]],lastRow:null,lastColumn:null}},methods:{cellMatchesDate:function(e,t){var i=new Date(t);return this.date.getFullYear()===i.getFullYear()&&Number(e.text)===i.getMonth()},getCellStyle:function(e){var t=this,i={},n=this.date.getFullYear(),r=new Date,s=e.text,a=this.defaultValue?Array.isArray(this.defaultValue)?this.defaultValue:[this.defaultValue]:[];return i.disabled="function"==typeof this.disabledDate&&function(e,t){var i=Object(hn.getDayCountOfMonth)(e,t),n=new Date(e,t,1);return Object(hn.range)(i).map((function(e){return Object(hn.nextDate)(n,e)}))}(n,s).every(this.disabledDate),i.current=Object(m.arrayFindIndex)(Object(m.coerceTruthyValueToArray)(this.value),(function(e){return e.getFullYear()===n&&e.getMonth()===s}))>=0,i.today=r.getFullYear()===n&&r.getMonth()===s,i.default=a.some((function(i){return t.cellMatchesDate(e,i)})),e.inRange&&(i["in-range"]=!0,e.start&&(i["start-date"]=!0),e.end&&(i["end-date"]=!0)),i},getMonthOfCell:function(e){var t=this.date.getFullYear();return new Date(t,e,1)},markRange:function(e,t){e=Rn(e),t=Rn(t)||e;var i=[Math.min(e,t),Math.max(e,t)];e=i[0],t=i[1];for(var n=this.rows,r=0,s=n.length;r=e&&d<=t,u.start=e&&d===e,u.end=t&&d===t}},handleMouseMove:function(e){if(this.rangeState.selecting){var t=e.target;if("A"===t.tagName&&(t=t.parentNode.parentNode),"DIV"===t.tagName&&(t=t.parentNode),"TD"===t.tagName){var i=t.parentNode.rowIndex,n=t.cellIndex;this.rows[i][n].disabled||i===this.lastRow&&n===this.lastColumn||(this.lastRow=i,this.lastColumn=n,this.$emit("changerange",{minDate:this.minDate,maxDate:this.maxDate,rangeState:{selecting:!0,endDate:this.getMonthOfCell(4*i+n)}}))}}},handleMonthTableClick:function(e){var t=e.target;if("A"===t.tagName&&(t=t.parentNode.parentNode),"DIV"===t.tagName&&(t=t.parentNode),"TD"===t.tagName&&!Object(fe.hasClass)(t,"disabled")){var i=t.cellIndex,n=4*t.parentNode.rowIndex+i,r=this.getMonthOfCell(n);"range"===this.selectionMode?this.rangeState.selecting?(r>=this.minDate?this.$emit("pick",{minDate:this.minDate,maxDate:r}):this.$emit("pick",{minDate:r,maxDate:this.minDate}),this.rangeState.selecting=!1):(this.$emit("pick",{minDate:r,maxDate:null}),this.rangeState.selecting=!0):this.$emit("pick",n)}}},computed:{rows:function(){for(var e=this,t=this.tableRows,i=this.disabledDate,n=[],r=Rn(new Date),s=0;s<3;s++)for(var a=t[s],o=function(t){var o=a[t];o||(o={row:s,column:t,type:"normal",inRange:!1,start:!1,end:!1}),o.type="normal";var l=4*s+t,u=new Date(e.date.getFullYear(),l).getTime();o.inRange=u>=Rn(e.minDate)&&u<=Rn(e.maxDate),o.start=e.minDate&&u===Rn(e.minDate),o.end=e.maxDate&&u===Rn(e.maxDate),u===r&&(o.type="today"),o.text=l;var c=new Date(u);o.disabled="function"==typeof i&&i(c),o.selected=Object(m.arrayFind)(n,(function(e){return e.getTime()===c.getTime()})),e.$set(a,t,o)},l=0;l<4;l++)o(l);return t}}},Vn,[],!1,null,null,null);Bn.options.__file="packages/date-picker/src/basic/month-table.vue";var Hn=Bn.exports,Wn=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("table",{staticClass:"el-date-table",class:{"is-week-mode":"week"===e.selectionMode},attrs:{cellspacing:"0",cellpadding:"0"},on:{click:e.handleClick,mousemove:e.handleMouseMove}},[i("tbody",[i("tr",[e.showWeekNumber?i("th",[e._v(e._s(e.t("el.datepicker.week")))]):e._e(),e._l(e.WEEKS,(function(t,n){return i("th",{key:n},[e._v(e._s(e.t("el.datepicker.weeks."+t)))])}))],2),e._l(e.rows,(function(t,n){return i("tr",{key:n,staticClass:"el-date-table__row",class:{current:e.isWeekActive(t[1])}},e._l(t,(function(t,n){return i("td",{key:n,class:e.getCellClasses(t)},[i("div",[i("span",[e._v("\n "+e._s(t.text)+"\n ")])])])})),0)}))],2)])};Wn._withStripped=!0;var qn=["sun","mon","tue","wed","thu","fri","sat"],Un=function(e){return"number"==typeof e||"string"==typeof e?Object(hn.clearTime)(new Date(e)).getTime():e instanceof Date?Object(hn.clearTime)(e).getTime():NaN},Gn=r({mixins:[f.a],props:{firstDayOfWeek:{default:7,type:Number,validator:function(e){return e>=1&&e<=7}},value:{},defaultValue:{validator:function(e){return null===e||Object(hn.isDate)(e)||Array.isArray(e)&&e.every(hn.isDate)}},date:{},selectionMode:{default:"day"},showWeekNumber:{type:Boolean,default:!1},disabledDate:{},cellClassName:{},minDate:{},maxDate:{},rangeState:{default:function(){return{endDate:null,selecting:!1}}}},computed:{offsetDay:function(){var e=this.firstDayOfWeek;return e>3?7-e:-e},WEEKS:function(){var e=this.firstDayOfWeek;return qn.concat(qn).slice(e,e+7)},year:function(){return this.date.getFullYear()},month:function(){return this.date.getMonth()},startDate:function(){return Object(hn.getStartDateOfMonth)(this.year,this.month)},rows:function(){var e=this,t=new Date(this.year,this.month,1),i=Object(hn.getFirstDayOfMonth)(t),n=Object(hn.getDayCountOfMonth)(t.getFullYear(),t.getMonth()),r=Object(hn.getDayCountOfMonth)(t.getFullYear(),0===t.getMonth()?11:t.getMonth()-1);i=0===i?7:i;for(var s=this.offsetDay,a=this.tableRows,o=1,l=this.startDate,u=this.disabledDate,c=this.cellClassName,d="dates"===this.selectionMode?Object(m.coerceTruthyValueToArray)(this.value):[],h=Un(new Date),p=0;p<6;p++){var f=a[p];this.showWeekNumber&&(f[0]||(f[0]={type:"week",text:Object(hn.getWeekNumber)(Object(hn.nextDate)(l,7*p+1))}));for(var v=function(t){var a=f[e.showWeekNumber?t+1:t];a||(a={row:p,column:t,type:"normal",inRange:!1,start:!1,end:!1}),a.type="normal";var v=7*p+t,g=Object(hn.nextDate)(l,v-s).getTime();if(a.inRange=g>=Un(e.minDate)&&g<=Un(e.maxDate),a.start=e.minDate&&g===Un(e.minDate),a.end=e.maxDate&&g===Un(e.maxDate),g===h&&(a.type="today"),p>=0&&p<=1){var _=i+s<0?7+i+s:i+s;t+7*p>=_?a.text=o++:(a.text=r-(_-t%7)+1+7*p,a.type="prev-month")}else o<=n?a.text=o++:(a.text=o++-n,a.type="next-month");var b=new Date(g);a.disabled="function"==typeof u&&u(b),a.selected=Object(m.arrayFind)(d,(function(e){return e.getTime()===b.getTime()})),a.customClass="function"==typeof c&&c(b),e.$set(f,e.showWeekNumber?t+1:t,a)},g=0;g<7;g++)v(g);if("week"===this.selectionMode){var _=this.showWeekNumber?1:0,b=this.showWeekNumber?7:6,y=this.isWeekActive(f[_+1]);f[_].inRange=y,f[_].start=y,f[b].inRange=y,f[b].end=y}}return a}},watch:{"rangeState.endDate":function(e){this.markRange(this.minDate,e)},minDate:function(e,t){Un(e)!==Un(t)&&this.markRange(this.minDate,this.maxDate)},maxDate:function(e,t){Un(e)!==Un(t)&&this.markRange(this.minDate,this.maxDate)}},data:function(){return{tableRows:[[],[],[],[],[],[]],lastRow:null,lastColumn:null}},methods:{cellMatchesDate:function(e,t){var i=new Date(t);return this.year===i.getFullYear()&&this.month===i.getMonth()&&Number(e.text)===i.getDate()},getCellClasses:function(e){var t=this,i=this.selectionMode,n=this.defaultValue?Array.isArray(this.defaultValue)?this.defaultValue:[this.defaultValue]:[],r=[];return"normal"!==e.type&&"today"!==e.type||e.disabled?r.push(e.type):(r.push("available"),"today"===e.type&&r.push("today")),"normal"===e.type&&n.some((function(i){return t.cellMatchesDate(e,i)}))&&r.push("default"),"day"!==i||"normal"!==e.type&&"today"!==e.type||!this.cellMatchesDate(e,this.value)||r.push("current"),!e.inRange||"normal"!==e.type&&"today"!==e.type&&"week"!==this.selectionMode||(r.push("in-range"),e.start&&r.push("start-date"),e.end&&r.push("end-date")),e.disabled&&r.push("disabled"),e.selected&&r.push("selected"),e.customClass&&r.push(e.customClass),r.join(" ")},getDateOfCell:function(e,t){var i=7*e+(t-(this.showWeekNumber?1:0))-this.offsetDay;return Object(hn.nextDate)(this.startDate,i)},isWeekActive:function(e){if("week"!==this.selectionMode)return!1;var t=new Date(this.year,this.month,1),i=t.getFullYear(),n=t.getMonth();if("prev-month"===e.type&&(t.setMonth(0===n?11:n-1),t.setFullYear(0===n?i-1:i)),"next-month"===e.type&&(t.setMonth(11===n?0:n+1),t.setFullYear(11===n?i+1:i)),t.setDate(parseInt(e.text,10)),Object(hn.isDate)(this.value)){var r=(this.value.getDay()-this.firstDayOfWeek+7)%7-1;return Object(hn.prevDate)(this.value,r).getTime()===t.getTime()}return!1},markRange:function(e,t){e=Un(e),t=Un(t)||e;var i=[Math.min(e,t),Math.max(e,t)];e=i[0],t=i[1];for(var n=this.startDate,r=this.rows,s=0,a=r.length;s=e&&h<=t,c.start=e&&h===e,c.end=t&&h===t}},handleMouseMove:function(e){if(this.rangeState.selecting){var t=e.target;if("SPAN"===t.tagName&&(t=t.parentNode.parentNode),"DIV"===t.tagName&&(t=t.parentNode),"TD"===t.tagName){var i=t.parentNode.rowIndex-1,n=t.cellIndex;this.rows[i][n].disabled||i===this.lastRow&&n===this.lastColumn||(this.lastRow=i,this.lastColumn=n,this.$emit("changerange",{minDate:this.minDate,maxDate:this.maxDate,rangeState:{selecting:!0,endDate:this.getDateOfCell(i,n)}}))}}},handleClick:function(e){var t=e.target;if("SPAN"===t.tagName&&(t=t.parentNode.parentNode),"DIV"===t.tagName&&(t=t.parentNode),"TD"===t.tagName){var i=t.parentNode.rowIndex-1,n="week"===this.selectionMode?1:t.cellIndex,r=this.rows[i][n];if(!r.disabled&&"week"!==r.type){var s,a,o,l=this.getDateOfCell(i,n);if("range"===this.selectionMode)this.rangeState.selecting?(l>=this.minDate?this.$emit("pick",{minDate:this.minDate,maxDate:l}):this.$emit("pick",{minDate:l,maxDate:this.minDate}),this.rangeState.selecting=!1):(this.$emit("pick",{minDate:l,maxDate:null}),this.rangeState.selecting=!0);else if("day"===this.selectionMode)this.$emit("pick",l);else if("week"===this.selectionMode){var u=Object(hn.getWeekNumber)(l),c=l.getFullYear()+"w"+u;this.$emit("pick",{year:l.getFullYear(),week:u,value:c,date:l})}else if("dates"===this.selectionMode){var d=this.value||[],h=r.selected?(s=d,(o="function"==typeof(a=function(e){return e.getTime()===l.getTime()})?Object(m.arrayFindIndex)(s,a):s.indexOf(a))>=0?[].concat(s.slice(0,o),s.slice(o+1)):s):[].concat(d,[l]);this.$emit("pick",h)}}}}}},Wn,[],!1,null,null,null);Gn.options.__file="packages/date-picker/src/basic/date-table.vue";var Yn=Gn.exports,Kn=r({mixins:[f.a],directives:{Clickoutside:j.a},watch:{showTime:function(e){var t=this;e&&this.$nextTick((function(e){var i=t.$refs.input.$el;i&&(t.pickerWidth=i.getBoundingClientRect().width+10)}))},value:function(e){"dates"===this.selectionMode&&this.value||(Object(hn.isDate)(e)?this.date=new Date(e):this.date=this.getDefaultValue())},defaultValue:function(e){Object(hn.isDate)(this.value)||(this.date=e?new Date(e):new Date)},timePickerVisible:function(e){var t=this;e&&this.$nextTick((function(){return t.$refs.timepicker.adjustSpinners()}))},selectionMode:function(e){"month"===e?"year"===this.currentView&&"month"===this.currentView||(this.currentView="month"):"dates"===e&&(this.currentView="date")}},methods:{proxyTimePickerDataProperties:function(){var e,t=this,i=function(e){t.$refs.timepicker.value=e},n=function(e){t.$refs.timepicker.date=e},r=function(e){t.$refs.timepicker.selectableRange=e};this.$watch("value",i),this.$watch("date",n),this.$watch("selectableRange",r),e=this.timeFormat,t.$refs.timepicker.format=e,i(this.value),n(this.date),r(this.selectableRange)},handleClear:function(){this.date=this.getDefaultValue(),this.$emit("pick",null)},emit:function(e){for(var t=this,i=arguments.length,n=Array(i>1?i-1:0),r=1;r0)||Object(hn.timeWithinRange)(e,this.selectableRange,this.format||"HH:mm:ss")}},components:{TimePicker:An,YearTable:Fn,MonthTable:Hn,DateTable:Yn,ElInput:h.a,ElButton:U.a},data:function(){return{popperClass:"",date:new Date,value:"",defaultValue:null,defaultTime:null,showTime:!1,selectionMode:"day",shortcuts:"",visible:!1,currentView:"date",disabledDate:"",cellClassName:"",selectableRange:[],firstDayOfWeek:7,showWeekNumber:!1,timePickerVisible:!1,format:"",arrowControl:!1,userInputDate:null,userInputTime:null}},computed:{year:function(){return this.date.getFullYear()},month:function(){return this.date.getMonth()},week:function(){return Object(hn.getWeekNumber)(this.date)},monthDate:function(){return this.date.getDate()},footerVisible:function(){return this.showTime||"dates"===this.selectionMode},visibleTime:function(){return null!==this.userInputTime?this.userInputTime:Object(hn.formatDate)(this.value||this.defaultValue,this.timeFormat)},visibleDate:function(){return null!==this.userInputDate?this.userInputDate:Object(hn.formatDate)(this.value||this.defaultValue,this.dateFormat)},yearLabel:function(){var e=this.t("el.datepicker.year");if("year"===this.currentView){var t=10*Math.floor(this.year/10);return e?t+" "+e+" - "+(t+9)+" "+e:t+" - "+(t+9)}return this.year+" "+e},timeFormat:function(){return this.format?Object(hn.extractTimeFormat)(this.format):"HH:mm:ss"},dateFormat:function(){return this.format?Object(hn.extractDateFormat)(this.format):"yyyy-MM-dd"}}},Tn,[],!1,null,null,null);Kn.options.__file="packages/date-picker/src/panel/date.vue";var Xn=Kn.exports,Zn=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("transition",{attrs:{name:"el-zoom-in-top"},on:{"after-leave":function(t){e.$emit("dodestroy")}}},[i("div",{directives:[{name:"show",rawName:"v-show",value:e.visible,expression:"visible"}],staticClass:"el-picker-panel el-date-range-picker el-popper",class:[{"has-sidebar":e.$slots.sidebar||e.shortcuts,"has-time":e.showTime},e.popperClass]},[i("div",{staticClass:"el-picker-panel__body-wrapper"},[e._t("sidebar"),e.shortcuts?i("div",{staticClass:"el-picker-panel__sidebar"},e._l(e.shortcuts,(function(t,n){return i("button",{key:n,staticClass:"el-picker-panel__shortcut",attrs:{type:"button"},on:{click:function(i){e.handleShortcutClick(t)}}},[e._v(e._s(t.text))])})),0):e._e(),i("div",{staticClass:"el-picker-panel__body"},[e.showTime?i("div",{staticClass:"el-date-range-picker__time-header"},[i("span",{staticClass:"el-date-range-picker__editors-wrap"},[i("span",{staticClass:"el-date-range-picker__time-picker-wrap"},[i("el-input",{ref:"minInput",staticClass:"el-date-range-picker__editor",attrs:{size:"small",disabled:e.rangeState.selecting,placeholder:e.t("el.datepicker.startDate"),value:e.minVisibleDate},on:{input:function(t){return e.handleDateInput(t,"min")},change:function(t){return e.handleDateChange(t,"min")}}})],1),i("span",{directives:[{name:"clickoutside",rawName:"v-clickoutside",value:e.handleMinTimeClose,expression:"handleMinTimeClose"}],staticClass:"el-date-range-picker__time-picker-wrap"},[i("el-input",{staticClass:"el-date-range-picker__editor",attrs:{size:"small",disabled:e.rangeState.selecting,placeholder:e.t("el.datepicker.startTime"),value:e.minVisibleTime},on:{focus:function(t){e.minTimePickerVisible=!0},input:function(t){return e.handleTimeInput(t,"min")},change:function(t){return e.handleTimeChange(t,"min")}}}),i("time-picker",{ref:"minTimePicker",attrs:{"time-arrow-control":e.arrowControl,visible:e.minTimePickerVisible},on:{pick:e.handleMinTimePick,mounted:function(t){e.$refs.minTimePicker.format=e.timeFormat}}})],1)]),i("span",{staticClass:"el-icon-arrow-right"}),i("span",{staticClass:"el-date-range-picker__editors-wrap is-right"},[i("span",{staticClass:"el-date-range-picker__time-picker-wrap"},[i("el-input",{staticClass:"el-date-range-picker__editor",attrs:{size:"small",disabled:e.rangeState.selecting,placeholder:e.t("el.datepicker.endDate"),value:e.maxVisibleDate,readonly:!e.minDate},on:{input:function(t){return e.handleDateInput(t,"max")},change:function(t){return e.handleDateChange(t,"max")}}})],1),i("span",{directives:[{name:"clickoutside",rawName:"v-clickoutside",value:e.handleMaxTimeClose,expression:"handleMaxTimeClose"}],staticClass:"el-date-range-picker__time-picker-wrap"},[i("el-input",{staticClass:"el-date-range-picker__editor",attrs:{size:"small",disabled:e.rangeState.selecting,placeholder:e.t("el.datepicker.endTime"),value:e.maxVisibleTime,readonly:!e.minDate},on:{focus:function(t){e.minDate&&(e.maxTimePickerVisible=!0)},input:function(t){return e.handleTimeInput(t,"max")},change:function(t){return e.handleTimeChange(t,"max")}}}),i("time-picker",{ref:"maxTimePicker",attrs:{"time-arrow-control":e.arrowControl,visible:e.maxTimePickerVisible},on:{pick:e.handleMaxTimePick,mounted:function(t){e.$refs.maxTimePicker.format=e.timeFormat}}})],1)])]):e._e(),i("div",{staticClass:"el-picker-panel__content el-date-range-picker__content is-left"},[i("div",{staticClass:"el-date-range-picker__header"},[i("button",{staticClass:"el-picker-panel__icon-btn el-icon-d-arrow-left",attrs:{type:"button"},on:{click:e.leftPrevYear}}),i("button",{staticClass:"el-picker-panel__icon-btn el-icon-arrow-left",attrs:{type:"button"},on:{click:e.leftPrevMonth}}),e.unlinkPanels?i("button",{staticClass:"el-picker-panel__icon-btn el-icon-d-arrow-right",class:{"is-disabled":!e.enableYearArrow},attrs:{type:"button",disabled:!e.enableYearArrow},on:{click:e.leftNextYear}}):e._e(),e.unlinkPanels?i("button",{staticClass:"el-picker-panel__icon-btn el-icon-arrow-right",class:{"is-disabled":!e.enableMonthArrow},attrs:{type:"button",disabled:!e.enableMonthArrow},on:{click:e.leftNextMonth}}):e._e(),i("div",[e._v(e._s(e.leftLabel))])]),i("date-table",{attrs:{"selection-mode":"range",date:e.leftDate,"default-value":e.defaultValue,"min-date":e.minDate,"max-date":e.maxDate,"range-state":e.rangeState,"disabled-date":e.disabledDate,"cell-class-name":e.cellClassName,"first-day-of-week":e.firstDayOfWeek},on:{changerange:e.handleChangeRange,pick:e.handleRangePick}})],1),i("div",{staticClass:"el-picker-panel__content el-date-range-picker__content is-right"},[i("div",{staticClass:"el-date-range-picker__header"},[e.unlinkPanels?i("button",{staticClass:"el-picker-panel__icon-btn el-icon-d-arrow-left",class:{"is-disabled":!e.enableYearArrow},attrs:{type:"button",disabled:!e.enableYearArrow},on:{click:e.rightPrevYear}}):e._e(),e.unlinkPanels?i("button",{staticClass:"el-picker-panel__icon-btn el-icon-arrow-left",class:{"is-disabled":!e.enableMonthArrow},attrs:{type:"button",disabled:!e.enableMonthArrow},on:{click:e.rightPrevMonth}}):e._e(),i("button",{staticClass:"el-picker-panel__icon-btn el-icon-d-arrow-right",attrs:{type:"button"},on:{click:e.rightNextYear}}),i("button",{staticClass:"el-picker-panel__icon-btn el-icon-arrow-right",attrs:{type:"button"},on:{click:e.rightNextMonth}}),i("div",[e._v(e._s(e.rightLabel))])]),i("date-table",{attrs:{"selection-mode":"range",date:e.rightDate,"default-value":e.defaultValue,"min-date":e.minDate,"max-date":e.maxDate,"range-state":e.rangeState,"disabled-date":e.disabledDate,"cell-class-name":e.cellClassName,"first-day-of-week":e.firstDayOfWeek},on:{changerange:e.handleChangeRange,pick:e.handleRangePick}})],1)])],2),e.showTime?i("div",{staticClass:"el-picker-panel__footer"},[i("el-button",{staticClass:"el-picker-panel__link-btn",attrs:{size:"mini",type:"text"},on:{click:e.handleClear}},[e._v("\n "+e._s(e.t("el.datepicker.clear"))+"\n ")]),i("el-button",{staticClass:"el-picker-panel__link-btn",attrs:{plain:"",size:"mini",disabled:e.btnDisabled},on:{click:function(t){e.handleConfirm(!1)}}},[e._v("\n "+e._s(e.t("el.datepicker.confirm"))+"\n ")])],1):e._e()])])};Zn._withStripped=!0;var Qn=function(e){return Array.isArray(e)?[new Date(e[0]),new Date(e[1])]:e?[new Date(e),Object(hn.nextDate)(new Date(e),1)]:[new Date,Object(hn.nextDate)(new Date,1)]},Jn=r({mixins:[f.a],directives:{Clickoutside:j.a},computed:{btnDisabled:function(){return!(this.minDate&&this.maxDate&&!this.selecting&&this.isValidValue([this.minDate,this.maxDate]))},leftLabel:function(){return this.leftDate.getFullYear()+" "+this.t("el.datepicker.year")+" "+this.t("el.datepicker.month"+(this.leftDate.getMonth()+1))},rightLabel:function(){return this.rightDate.getFullYear()+" "+this.t("el.datepicker.year")+" "+this.t("el.datepicker.month"+(this.rightDate.getMonth()+1))},leftYear:function(){return this.leftDate.getFullYear()},leftMonth:function(){return this.leftDate.getMonth()},leftMonthDate:function(){return this.leftDate.getDate()},rightYear:function(){return this.rightDate.getFullYear()},rightMonth:function(){return this.rightDate.getMonth()},rightMonthDate:function(){return this.rightDate.getDate()},minVisibleDate:function(){return null!==this.dateUserInput.min?this.dateUserInput.min:this.minDate?Object(hn.formatDate)(this.minDate,this.dateFormat):""},maxVisibleDate:function(){return null!==this.dateUserInput.max?this.dateUserInput.max:this.maxDate||this.minDate?Object(hn.formatDate)(this.maxDate||this.minDate,this.dateFormat):""},minVisibleTime:function(){return null!==this.timeUserInput.min?this.timeUserInput.min:this.minDate?Object(hn.formatDate)(this.minDate,this.timeFormat):""},maxVisibleTime:function(){return null!==this.timeUserInput.max?this.timeUserInput.max:this.maxDate||this.minDate?Object(hn.formatDate)(this.maxDate||this.minDate,this.timeFormat):""},timeFormat:function(){return this.format?Object(hn.extractTimeFormat)(this.format):"HH:mm:ss"},dateFormat:function(){return this.format?Object(hn.extractDateFormat)(this.format):"yyyy-MM-dd"},enableMonthArrow:function(){var e=(this.leftMonth+1)%12,t=this.leftMonth+1>=12?1:0;return this.unlinkPanels&&new Date(this.leftYear+t,e)=12}},data:function(){return{popperClass:"",value:[],defaultValue:null,defaultTime:null,minDate:"",maxDate:"",leftDate:new Date,rightDate:Object(hn.nextMonth)(new Date),rangeState:{endDate:null,selecting:!1,row:null,column:null},showTime:!1,shortcuts:"",visible:"",disabledDate:"",cellClassName:"",firstDayOfWeek:7,minTimePickerVisible:!1,maxTimePickerVisible:!1,format:"",arrowControl:!1,unlinkPanels:!1,dateUserInput:{min:null,max:null},timeUserInput:{min:null,max:null}}},watch:{minDate:function(e){var t=this;this.dateUserInput.min=null,this.timeUserInput.min=null,this.$nextTick((function(){if(t.$refs.maxTimePicker&&t.maxDate&&t.maxDatethis.maxDate&&(this.maxDate=this.minDate)):(this.maxDate=Object(hn.modifyDate)(this.maxDate,i.getFullYear(),i.getMonth(),i.getDate()),this.maxDatethis.maxDate&&(this.maxDate=this.minDate),this.$refs.minTimePicker.value=this.minDate,this.minTimePickerVisible=!1):(this.maxDate=Object(hn.modifyTime)(this.maxDate,i.getHours(),i.getMinutes(),i.getSeconds()),this.maxDate1&&void 0!==arguments[1])||arguments[1],n=this.defaultTime||[],r=Object(hn.modifyWithTimeString)(e.minDate,n[0]),s=Object(hn.modifyWithTimeString)(e.maxDate,n[1]);this.maxDate===s&&this.minDate===r||(this.onPick&&this.onPick(e),this.maxDate=s,this.minDate=r,setTimeout((function(){t.maxDate=s,t.minDate=r}),10),i&&!this.showTime&&this.handleConfirm())},handleShortcutClick:function(e){e.onClick&&e.onClick(this)},handleMinTimePick:function(e,t,i){this.minDate=this.minDate||new Date,e&&(this.minDate=Object(hn.modifyTime)(this.minDate,e.getHours(),e.getMinutes(),e.getSeconds())),i||(this.minTimePickerVisible=t),(!this.maxDate||this.maxDate&&this.maxDate.getTime()this.maxDate.getTime()&&(this.minDate=new Date(this.maxDate))},handleMaxTimeClose:function(){this.maxTimePickerVisible=!1},leftPrevYear:function(){this.leftDate=Object(hn.prevYear)(this.leftDate),this.unlinkPanels||(this.rightDate=Object(hn.nextMonth)(this.leftDate))},leftPrevMonth:function(){this.leftDate=Object(hn.prevMonth)(this.leftDate),this.unlinkPanels||(this.rightDate=Object(hn.nextMonth)(this.leftDate))},rightNextYear:function(){this.unlinkPanels?this.rightDate=Object(hn.nextYear)(this.rightDate):(this.leftDate=Object(hn.nextYear)(this.leftDate),this.rightDate=Object(hn.nextMonth)(this.leftDate))},rightNextMonth:function(){this.unlinkPanels?this.rightDate=Object(hn.nextMonth)(this.rightDate):(this.leftDate=Object(hn.nextMonth)(this.leftDate),this.rightDate=Object(hn.nextMonth)(this.leftDate))},leftNextYear:function(){this.leftDate=Object(hn.nextYear)(this.leftDate)},leftNextMonth:function(){this.leftDate=Object(hn.nextMonth)(this.leftDate)},rightPrevYear:function(){this.rightDate=Object(hn.prevYear)(this.rightDate)},rightPrevMonth:function(){this.rightDate=Object(hn.prevMonth)(this.rightDate)},handleConfirm:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];this.isValidValue([this.minDate,this.maxDate])&&this.$emit("pick",[this.minDate,this.maxDate],e)},isValidValue:function(e){return Array.isArray(e)&&e&&e[0]&&e[1]&&Object(hn.isDate)(e[0])&&Object(hn.isDate)(e[1])&&e[0].getTime()<=e[1].getTime()&&("function"!=typeof this.disabledDate||!this.disabledDate(e[0])&&!this.disabledDate(e[1]))},resetView:function(){this.minDate&&null==this.maxDate&&(this.rangeState.selecting=!1),this.minDate=this.value&&Object(hn.isDate)(this.value[0])?new Date(this.value[0]):null,this.maxDate=this.value&&Object(hn.isDate)(this.value[0])?new Date(this.value[1]):null}},components:{TimePicker:An,DateTable:Yn,ElInput:h.a,ElButton:U.a}},Zn,[],!1,null,null,null);Jn.options.__file="packages/date-picker/src/panel/date-range.vue";var er=Jn.exports,tr=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("transition",{attrs:{name:"el-zoom-in-top"},on:{"after-leave":function(t){e.$emit("dodestroy")}}},[i("div",{directives:[{name:"show",rawName:"v-show",value:e.visible,expression:"visible"}],staticClass:"el-picker-panel el-date-range-picker el-popper",class:[{"has-sidebar":e.$slots.sidebar||e.shortcuts},e.popperClass]},[i("div",{staticClass:"el-picker-panel__body-wrapper"},[e._t("sidebar"),e.shortcuts?i("div",{staticClass:"el-picker-panel__sidebar"},e._l(e.shortcuts,(function(t,n){return i("button",{key:n,staticClass:"el-picker-panel__shortcut",attrs:{type:"button"},on:{click:function(i){e.handleShortcutClick(t)}}},[e._v(e._s(t.text))])})),0):e._e(),i("div",{staticClass:"el-picker-panel__body"},[i("div",{staticClass:"el-picker-panel__content el-date-range-picker__content is-left"},[i("div",{staticClass:"el-date-range-picker__header"},[i("button",{staticClass:"el-picker-panel__icon-btn el-icon-d-arrow-left",attrs:{type:"button"},on:{click:e.leftPrevYear}}),e.unlinkPanels?i("button",{staticClass:"el-picker-panel__icon-btn el-icon-d-arrow-right",class:{"is-disabled":!e.enableYearArrow},attrs:{type:"button",disabled:!e.enableYearArrow},on:{click:e.leftNextYear}}):e._e(),i("div",[e._v(e._s(e.leftLabel))])]),i("month-table",{attrs:{"selection-mode":"range",date:e.leftDate,"default-value":e.defaultValue,"min-date":e.minDate,"max-date":e.maxDate,"range-state":e.rangeState,"disabled-date":e.disabledDate},on:{changerange:e.handleChangeRange,pick:e.handleRangePick}})],1),i("div",{staticClass:"el-picker-panel__content el-date-range-picker__content is-right"},[i("div",{staticClass:"el-date-range-picker__header"},[e.unlinkPanels?i("button",{staticClass:"el-picker-panel__icon-btn el-icon-d-arrow-left",class:{"is-disabled":!e.enableYearArrow},attrs:{type:"button",disabled:!e.enableYearArrow},on:{click:e.rightPrevYear}}):e._e(),i("button",{staticClass:"el-picker-panel__icon-btn el-icon-d-arrow-right",attrs:{type:"button"},on:{click:e.rightNextYear}}),i("div",[e._v(e._s(e.rightLabel))])]),i("month-table",{attrs:{"selection-mode":"range",date:e.rightDate,"default-value":e.defaultValue,"min-date":e.minDate,"max-date":e.maxDate,"range-state":e.rangeState,"disabled-date":e.disabledDate},on:{changerange:e.handleChangeRange,pick:e.handleRangePick}})],1)])],2)])])};tr._withStripped=!0;var ir=function(e){return Array.isArray(e)?[new Date(e[0]),new Date(e[1])]:e?[new Date(e),Object(hn.nextMonth)(new Date(e))]:[new Date,Object(hn.nextMonth)(new Date)]},nr=r({mixins:[f.a],directives:{Clickoutside:j.a},computed:{btnDisabled:function(){return!(this.minDate&&this.maxDate&&!this.selecting&&this.isValidValue([this.minDate,this.maxDate]))},leftLabel:function(){return this.leftDate.getFullYear()+" "+this.t("el.datepicker.year")},rightLabel:function(){return this.rightDate.getFullYear()+" "+this.t("el.datepicker.year")},leftYear:function(){return this.leftDate.getFullYear()},rightYear:function(){return this.rightDate.getFullYear()===this.leftDate.getFullYear()?this.leftDate.getFullYear()+1:this.rightDate.getFullYear()},enableYearArrow:function(){return this.unlinkPanels&&this.rightYear>this.leftYear+1}},data:function(){return{popperClass:"",value:[],defaultValue:null,defaultTime:null,minDate:"",maxDate:"",leftDate:new Date,rightDate:Object(hn.nextYear)(new Date),rangeState:{endDate:null,selecting:!1,row:null,column:null},shortcuts:"",visible:"",disabledDate:"",format:"",arrowControl:!1,unlinkPanels:!1}},watch:{value:function(e){if(e){if(Array.isArray(e))if(this.minDate=Object(hn.isDate)(e[0])?new Date(e[0]):null,this.maxDate=Object(hn.isDate)(e[1])?new Date(e[1]):null,this.minDate)if(this.leftDate=this.minDate,this.unlinkPanels&&this.maxDate){var t=this.minDate.getFullYear(),i=this.maxDate.getFullYear();this.rightDate=t===i?Object(hn.nextYear)(this.maxDate):this.maxDate}else this.rightDate=Object(hn.nextYear)(this.leftDate);else this.leftDate=ir(this.defaultValue)[0],this.rightDate=Object(hn.nextYear)(this.leftDate)}else this.minDate=null,this.maxDate=null},defaultValue:function(e){if(!Array.isArray(this.value)){var t=ir(e),i=t[0],n=t[1];this.leftDate=i,this.rightDate=e&&e[1]&&i.getFullYear()!==n.getFullYear()&&this.unlinkPanels?n:Object(hn.nextYear)(this.leftDate)}}},methods:{handleClear:function(){this.minDate=null,this.maxDate=null,this.leftDate=ir(this.defaultValue)[0],this.rightDate=Object(hn.nextYear)(this.leftDate),this.$emit("pick",null)},handleChangeRange:function(e){this.minDate=e.minDate,this.maxDate=e.maxDate,this.rangeState=e.rangeState},handleRangePick:function(e){var t=this,i=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=this.defaultTime||[],r=Object(hn.modifyWithTimeString)(e.minDate,n[0]),s=Object(hn.modifyWithTimeString)(e.maxDate,n[1]);this.maxDate===s&&this.minDate===r||(this.onPick&&this.onPick(e),this.maxDate=s,this.minDate=r,setTimeout((function(){t.maxDate=s,t.minDate=r}),10),i&&this.handleConfirm())},handleShortcutClick:function(e){e.onClick&&e.onClick(this)},leftPrevYear:function(){this.leftDate=Object(hn.prevYear)(this.leftDate),this.unlinkPanels||(this.rightDate=Object(hn.prevYear)(this.rightDate))},rightNextYear:function(){this.unlinkPanels||(this.leftDate=Object(hn.nextYear)(this.leftDate)),this.rightDate=Object(hn.nextYear)(this.rightDate)},leftNextYear:function(){this.leftDate=Object(hn.nextYear)(this.leftDate)},rightPrevYear:function(){this.rightDate=Object(hn.prevYear)(this.rightDate)},handleConfirm:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];this.isValidValue([this.minDate,this.maxDate])&&this.$emit("pick",[this.minDate,this.maxDate],e)},isValidValue:function(e){return Array.isArray(e)&&e&&e[0]&&e[1]&&Object(hn.isDate)(e[0])&&Object(hn.isDate)(e[1])&&e[0].getTime()<=e[1].getTime()&&("function"!=typeof this.disabledDate||!this.disabledDate(e[0])&&!this.disabledDate(e[1]))},resetView:function(){this.minDate=this.value&&Object(hn.isDate)(this.value[0])?new Date(this.value[0]):null,this.maxDate=this.value&&Object(hn.isDate)(this.value[0])?new Date(this.value[1]):null}},components:{MonthTable:Hn,ElInput:h.a,ElButton:U.a}},tr,[],!1,null,null,null);nr.options.__file="packages/date-picker/src/panel/month-range.vue";var rr=nr.exports,sr=function(e){return"daterange"===e||"datetimerange"===e?er:"monthrange"===e?rr:Xn},ar={mixins:[En],name:"ElDatePicker",props:{type:{type:String,default:"date"},timeArrowControl:Boolean},watch:{type:function(e){this.picker?(this.unmountPicker(),this.panel=sr(e),this.mountPicker()):this.panel=sr(e)}},created:function(){this.panel=sr(this.type)},install:function(e){e.component(ar.name,ar)}},or=ar,lr=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("transition",{attrs:{name:"el-zoom-in-top"},on:{"before-enter":e.handleMenuEnter,"after-leave":function(t){e.$emit("dodestroy")}}},[i("div",{directives:[{name:"show",rawName:"v-show",value:e.visible,expression:"visible"}],ref:"popper",staticClass:"el-picker-panel time-select el-popper",class:e.popperClass,style:{width:e.width+"px"}},[i("el-scrollbar",{attrs:{noresize:"","wrap-class":"el-picker-panel__content"}},e._l(e.items,(function(t){return i("div",{key:t.value,staticClass:"time-select-item",class:{selected:e.value===t.value,disabled:t.disabled,default:t.value===e.defaultValue},attrs:{disabled:t.disabled},on:{click:function(i){e.handleClick(t)}}},[e._v(e._s(t.value))])})),0)],1)])};lr._withStripped=!0;var ur=function(e){var t=(e||"").split(":");return t.length>=2?{hours:parseInt(t[0],10),minutes:parseInt(t[1],10)}:null},cr=function(e,t){var i=ur(e),n=ur(t),r=i.minutes+60*i.hours,s=n.minutes+60*n.hours;return r===s?0:r>s?1:-1},dr=function(e,t){var i=ur(e),n=ur(t),r={hours:i.hours,minutes:i.minutes};return r.minutes+=n.minutes,r.hours+=n.hours,r.hours+=Math.floor(r.minutes/60),r.minutes=r.minutes%60,function(e){return(e.hours<10?"0"+e.hours:e.hours)+":"+(e.minutes<10?"0"+e.minutes:e.minutes)}(r)},hr=r({components:{ElScrollbar:L.a},watch:{value:function(e){var t=this;e&&this.$nextTick((function(){return t.scrollToOption()}))}},methods:{handleClick:function(e){e.disabled||this.$emit("pick",e.value)},handleClear:function(){this.$emit("pick",null)},scrollToOption:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:".selected",t=this.$refs.popper.querySelector(".el-picker-panel__content");Vt()(t,t.querySelector(e))},handleMenuEnter:function(){var e=this,t=-1!==this.items.map((function(e){return e.value})).indexOf(this.value),i=-1!==this.items.map((function(e){return e.value})).indexOf(this.defaultValue),n=(t?".selected":i&&".default")||".time-select-item:not(.disabled)";this.$nextTick((function(){return e.scrollToOption(n)}))},scrollDown:function(e){for(var t=this.items,i=t.length,n=t.length,r=t.map((function(e){return e.value})).indexOf(this.value);n--;)if(!t[r=(r+e+i)%i].disabled)return void this.$emit("pick",t[r].value,!0)},isValidValue:function(e){return-1!==this.items.filter((function(e){return!e.disabled})).map((function(e){return e.value})).indexOf(e)},handleKeydown:function(e){var t=e.keyCode;if(38===t||40===t){var i={40:1,38:-1}[t.toString()];return this.scrollDown(i),void e.stopPropagation()}}},data:function(){return{popperClass:"",start:"09:00",end:"18:00",step:"00:30",value:"",defaultValue:"",visible:!1,minTime:"",maxTime:"",width:0}},computed:{items:function(){var e=this.start,t=this.end,i=this.step,n=[];if(e&&t&&i)for(var r=e;cr(r,t)<=0;)n.push({value:r,disabled:cr(r,this.minTime||"-1:-1")<=0||cr(r,this.maxTime||"100:100")>=0}),r=dr(r,i);return n}}},lr,[],!1,null,null,null);hr.options.__file="packages/date-picker/src/panel/time-select.vue";var pr=hr.exports,fr={mixins:[En],name:"ElTimeSelect",componentName:"ElTimeSelect",props:{type:{type:String,default:"time-select"}},beforeCreate:function(){this.panel=pr},install:function(e){e.component(fr.name,fr)}},mr=fr,vr=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("transition",{attrs:{name:"el-zoom-in-top"},on:{"after-leave":function(t){e.$emit("dodestroy")}}},[i("div",{directives:[{name:"show",rawName:"v-show",value:e.visible,expression:"visible"}],staticClass:"el-time-range-picker el-picker-panel el-popper",class:e.popperClass},[i("div",{staticClass:"el-time-range-picker__content"},[i("div",{staticClass:"el-time-range-picker__cell"},[i("div",{staticClass:"el-time-range-picker__header"},[e._v(e._s(e.t("el.datepicker.startTime")))]),i("div",{staticClass:"el-time-range-picker__body el-time-panel__content",class:{"has-seconds":e.showSeconds,"is-arrow":e.arrowControl}},[i("time-spinner",{ref:"minSpinner",attrs:{"show-seconds":e.showSeconds,"am-pm-mode":e.amPmMode,"arrow-control":e.arrowControl,date:e.minDate},on:{change:e.handleMinChange,"select-range":e.setMinSelectionRange}})],1)]),i("div",{staticClass:"el-time-range-picker__cell"},[i("div",{staticClass:"el-time-range-picker__header"},[e._v(e._s(e.t("el.datepicker.endTime")))]),i("div",{staticClass:"el-time-range-picker__body el-time-panel__content",class:{"has-seconds":e.showSeconds,"is-arrow":e.arrowControl}},[i("time-spinner",{ref:"maxSpinner",attrs:{"show-seconds":e.showSeconds,"am-pm-mode":e.amPmMode,"arrow-control":e.arrowControl,date:e.maxDate},on:{change:e.handleMaxChange,"select-range":e.setMaxSelectionRange}})],1)])]),i("div",{staticClass:"el-time-panel__footer"},[i("button",{staticClass:"el-time-panel__btn cancel",attrs:{type:"button"},on:{click:function(t){e.handleCancel()}}},[e._v(e._s(e.t("el.datepicker.cancel")))]),i("button",{staticClass:"el-time-panel__btn confirm",attrs:{type:"button",disabled:e.btnDisabled},on:{click:function(t){e.handleConfirm()}}},[e._v(e._s(e.t("el.datepicker.confirm")))])])])])};vr._withStripped=!0;var gr=Object(hn.parseDate)("00:00:00","HH:mm:ss"),_r=Object(hn.parseDate)("23:59:59","HH:mm:ss"),br=function(e){return Object(hn.modifyDate)(_r,e.getFullYear(),e.getMonth(),e.getDate())},yr=function(e,t){return new Date(Math.min(e.getTime()+t,br(e).getTime()))},xr=r({mixins:[f.a],components:{TimeSpinner:Mn},computed:{showSeconds:function(){return-1!==(this.format||"").indexOf("ss")},offset:function(){return this.showSeconds?11:8},spinner:function(){return this.selectionRange[0]this.maxDate.getTime()},amPmMode:function(){return-1!==(this.format||"").indexOf("A")?"A":-1!==(this.format||"").indexOf("a")?"a":""}},data:function(){return{popperClass:"",minDate:new Date,maxDate:new Date,value:[],oldValue:[new Date,new Date],defaultValue:null,format:"HH:mm:ss",visible:!1,selectionRange:[0,2],arrowControl:!1}},watch:{value:function(e){Array.isArray(e)?(this.minDate=new Date(e[0]),this.maxDate=new Date(e[1])):Array.isArray(this.defaultValue)?(this.minDate=new Date(this.defaultValue[0]),this.maxDate=new Date(this.defaultValue[1])):this.defaultValue?(this.minDate=new Date(this.defaultValue),this.maxDate=yr(new Date(this.defaultValue),36e5)):(this.minDate=new Date,this.maxDate=yr(new Date,36e5))},visible:function(e){var t=this;e&&(this.oldValue=this.value,this.$nextTick((function(){return t.$refs.minSpinner.emitSelectRange("hours")})))}},methods:{handleClear:function(){this.$emit("pick",null)},handleCancel:function(){this.$emit("pick",this.oldValue)},handleMinChange:function(e){this.minDate=Object(hn.clearMilliseconds)(e),this.handleChange()},handleMaxChange:function(e){this.maxDate=Object(hn.clearMilliseconds)(e),this.handleChange()},handleChange:function(){var e;this.isValidValue([this.minDate,this.maxDate])&&(this.$refs.minSpinner.selectableRange=[[(e=this.minDate,Object(hn.modifyDate)(gr,e.getFullYear(),e.getMonth(),e.getDate())),this.maxDate]],this.$refs.maxSpinner.selectableRange=[[this.minDate,br(this.maxDate)]],this.$emit("pick",[this.minDate,this.maxDate],!0))},setMinSelectionRange:function(e,t){this.$emit("select-range",e,t,"min"),this.selectionRange=[e,t]},setMaxSelectionRange:function(e,t){this.$emit("select-range",e,t,"max"),this.selectionRange=[e+this.offset,t+this.offset]},handleConfirm:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=this.$refs.minSpinner.selectableRange,i=this.$refs.maxSpinner.selectableRange;this.minDate=Object(hn.limitTimeRange)(this.minDate,t,this.format),this.maxDate=Object(hn.limitTimeRange)(this.maxDate,i,this.format),this.$emit("pick",[this.minDate,this.maxDate],e)},adjustSpinners:function(){this.$refs.minSpinner.adjustSpinners(),this.$refs.maxSpinner.adjustSpinners()},changeSelectionRange:function(e){var t=this.showSeconds?[0,3,6,11,14,17]:[0,3,8,11],i=["hours","minutes"].concat(this.showSeconds?["seconds"]:[]),n=(t.indexOf(this.selectionRange[0])+e+t.length)%t.length,r=t.length/2;n-1}},openDelay:{type:Number,default:0},closeDelay:{type:Number,default:200},title:String,disabled:Boolean,content:String,reference:{},popperClass:String,width:{},visibleArrow:{default:!0},arrowOffset:{type:Number,default:0},transition:{type:String,default:"fade-in-linear"},tabindex:{type:Number,default:0}},computed:{tooltipId:function(){return"el-popover-"+Object(m.generateId)()}},watch:{showPopper:function(e){this.disabled||(e?this.$emit("show"):this.$emit("hide"))}},mounted:function(){var e=this,t=this.referenceElm=this.reference||this.$refs.reference,i=this.popper||this.$refs.popper;!t&&this.$refs.wrapper.children&&(t=this.referenceElm=this.$refs.wrapper.children[0]),t&&(Object(fe.addClass)(t,"el-popover__reference"),t.setAttribute("aria-describedby",this.tooltipId),t.setAttribute("tabindex",this.tabindex),i.setAttribute("tabindex",0),"click"!==this.trigger&&(Object(fe.on)(t,"focusin",(function(){e.handleFocus();var i=t.__vue__;i&&"function"==typeof i.focus&&i.focus()})),Object(fe.on)(i,"focusin",this.handleFocus),Object(fe.on)(t,"focusout",this.handleBlur),Object(fe.on)(i,"focusout",this.handleBlur)),Object(fe.on)(t,"keydown",this.handleKeydown),Object(fe.on)(t,"click",this.handleClick)),"click"===this.trigger?(Object(fe.on)(t,"click",this.doToggle),Object(fe.on)(document,"click",this.handleDocumentClick)):"hover"===this.trigger?(Object(fe.on)(t,"mouseenter",this.handleMouseEnter),Object(fe.on)(i,"mouseenter",this.handleMouseEnter),Object(fe.on)(t,"mouseleave",this.handleMouseLeave),Object(fe.on)(i,"mouseleave",this.handleMouseLeave)):"focus"===this.trigger&&(this.tabindex<0&&console.warn("[Element Warn][Popover]a negative taindex means that the element cannot be focused by tab key"),t.querySelector("input, textarea")?(Object(fe.on)(t,"focusin",this.doShow),Object(fe.on)(t,"focusout",this.doClose)):(Object(fe.on)(t,"mousedown",this.doShow),Object(fe.on)(t,"mouseup",this.doClose)))},beforeDestroy:function(){this.cleanup()},deactivated:function(){this.cleanup()},methods:{doToggle:function(){this.showPopper=!this.showPopper},doShow:function(){this.showPopper=!0},doClose:function(){this.showPopper=!1},handleFocus:function(){Object(fe.addClass)(this.referenceElm,"focusing"),"click"!==this.trigger&&"focus"!==this.trigger||(this.showPopper=!0)},handleClick:function(){Object(fe.removeClass)(this.referenceElm,"focusing")},handleBlur:function(){Object(fe.removeClass)(this.referenceElm,"focusing"),"click"!==this.trigger&&"focus"!==this.trigger||(this.showPopper=!1)},handleMouseEnter:function(){var e=this;clearTimeout(this._timer),this.openDelay?this._timer=setTimeout((function(){e.showPopper=!0}),this.openDelay):this.showPopper=!0},handleKeydown:function(e){27===e.keyCode&&"manual"!==this.trigger&&this.doClose()},handleMouseLeave:function(){var e=this;clearTimeout(this._timer),this.closeDelay?this._timer=setTimeout((function(){e.showPopper=!1}),this.closeDelay):this.showPopper=!1},handleDocumentClick:function(e){var t=this.reference||this.$refs.reference,i=this.popper||this.$refs.popper;!t&&this.$refs.wrapper.children&&(t=this.referenceElm=this.$refs.wrapper.children[0]),this.$el&&t&&!this.$el.contains(e.target)&&!t.contains(e.target)&&i&&!i.contains(e.target)&&(this.showPopper=!1)},handleAfterEnter:function(){this.$emit("after-enter")},handleAfterLeave:function(){this.$emit("after-leave"),this.doDestroy()},cleanup:function(){(this.openDelay||this.closeDelay)&&clearTimeout(this._timer)}},destroyed:function(){var e=this.reference;Object(fe.off)(e,"click",this.doToggle),Object(fe.off)(e,"mouseup",this.doClose),Object(fe.off)(e,"mousedown",this.doShow),Object(fe.off)(e,"focusin",this.doShow),Object(fe.off)(e,"focusout",this.doClose),Object(fe.off)(e,"mousedown",this.doShow),Object(fe.off)(e,"mouseup",this.doClose),Object(fe.off)(e,"mouseleave",this.handleMouseLeave),Object(fe.off)(e,"mouseenter",this.handleMouseEnter),Object(fe.off)(document,"click",this.handleDocumentClick)}},Sr,[],!1,null,null,null);Or.options.__file="packages/popover/src/main.vue";var Dr=Or.exports,Er=function(e,t,i){var n=t.expression?t.value:t.arg,r=i.context.$refs[n];r&&(Array.isArray(r)?r[0].$refs.reference=e:r.$refs.reference=e)},Tr={bind:function(e,t,i){Er(e,t,i)},inserted:function(e,t,i){Er(e,t,i)}};di.a.directive("popover",Tr),Dr.install=function(e){e.directive("popover",Tr),e.component(Dr.name,Dr)},Dr.directive=Tr;var $r=Dr,Pr={name:"ElTooltip",mixins:[A.a],props:{openDelay:{type:Number,default:0},disabled:Boolean,manual:Boolean,effect:{type:String,default:"dark"},arrowOffset:{type:Number,default:0},popperClass:String,content:String,visibleArrow:{default:!0},transition:{type:String,default:"el-fade-in-linear"},popperOptions:{default:function(){return{boundariesPadding:10,gpuAcceleration:!1}}},enterable:{type:Boolean,default:!0},hideAfter:{type:Number,default:0},tabindex:{type:Number,default:0}},data:function(){return{tooltipId:"el-tooltip-"+Object(m.generateId)(),timeoutPending:null,focusing:!1}},beforeCreate:function(){var e=this;this.$isServer||(this.popperVM=new di.a({data:{node:""},render:function(e){return this.node}}).$mount(),this.debounceClose=$()(200,(function(){return e.handleClosePopper()})))},render:function(e){var t=this;this.popperVM&&(this.popperVM.node=e("transition",{attrs:{name:this.transition},on:{afterLeave:this.doDestroy}},[e("div",{on:{mouseleave:function(){t.setExpectedState(!1),t.debounceClose()},mouseenter:function(){t.setExpectedState(!0)}},ref:"popper",attrs:{role:"tooltip",id:this.tooltipId,"aria-hidden":this.disabled||!this.showPopper?"true":"false"},directives:[{name:"show",value:!this.disabled&&this.showPopper}],class:["el-tooltip__popper","is-"+this.effect,this.popperClass]},[this.$slots.content||this.content])]));var i=this.getFirstElement();if(!i)return null;var n=i.data=i.data||{};return n.staticClass=this.addTooltipClass(n.staticClass),i},mounted:function(){var e=this;this.referenceElm=this.$el,1===this.$el.nodeType&&(this.$el.setAttribute("aria-describedby",this.tooltipId),this.$el.setAttribute("tabindex",this.tabindex),Object(fe.on)(this.referenceElm,"mouseenter",this.show),Object(fe.on)(this.referenceElm,"mouseleave",this.hide),Object(fe.on)(this.referenceElm,"focus",(function(){if(e.$slots.default&&e.$slots.default.length){var t=e.$slots.default[0].componentInstance;t&&t.focus?t.focus():e.handleFocus()}else e.handleFocus()})),Object(fe.on)(this.referenceElm,"blur",this.handleBlur),Object(fe.on)(this.referenceElm,"click",this.removeFocusing)),this.value&&this.popperVM&&this.popperVM.$nextTick((function(){e.value&&e.updatePopper()}))},watch:{focusing:function(e){e?Object(fe.addClass)(this.referenceElm,"focusing"):Object(fe.removeClass)(this.referenceElm,"focusing")}},methods:{show:function(){this.setExpectedState(!0),this.handleShowPopper()},hide:function(){this.setExpectedState(!1),this.debounceClose()},handleFocus:function(){this.focusing=!0,this.show()},handleBlur:function(){this.focusing=!1,this.hide()},removeFocusing:function(){this.focusing=!1},addTooltipClass:function(e){return e?"el-tooltip "+e.replace("el-tooltip",""):"el-tooltip"},handleShowPopper:function(){var e=this;this.expectedState&&!this.manual&&(clearTimeout(this.timeout),this.timeout=setTimeout((function(){e.showPopper=!0}),this.openDelay),this.hideAfter>0&&(this.timeoutPending=setTimeout((function(){e.showPopper=!1}),this.hideAfter)))},handleClosePopper:function(){this.enterable&&this.expectedState||this.manual||(clearTimeout(this.timeout),this.timeoutPending&&clearTimeout(this.timeoutPending),this.showPopper=!1,this.disabled&&this.doDestroy())},setExpectedState:function(e){!1===e&&clearTimeout(this.timeoutPending),this.expectedState=e},getFirstElement:function(){var e=this.$slots.default;if(!Array.isArray(e))return null;for(var t=null,i=0;i0){var t=(Ur=Yr.shift()).options;for(var i in t)t.hasOwnProperty(i)&&(Gr[i]=t[i]);void 0===t.callback&&(Gr.callback=Kr);var n=Gr.callback;Gr.callback=function(t,i){n(t,i),e()},Object(Br.isVNode)(Gr.message)?(Gr.$slots.default=[Gr.message],Gr.message=null):delete Gr.$slots.default,["modal","showClose","closeOnClickModal","closeOnPressEscape","closeOnHashChange"].forEach((function(e){void 0===Gr[e]&&(Gr[e]=!0)})),document.body.appendChild(Gr.$el),di.a.nextTick((function(){Gr.visible=!0}))}},Zr=function e(t,i){if(!di.a.prototype.$isServer){if("string"==typeof t||Object(Br.isVNode)(t)?(t={message:t},"string"==typeof arguments[1]&&(t.title=arguments[1])):t.callback&&!i&&(i=t.callback),"undefined"!=typeof Promise)return new Promise((function(n,r){Yr.push({options:Be()({},Wr,e.defaults,t),callback:i,resolve:n,reject:r}),Xr()}));Yr.push({options:Be()({},Wr,e.defaults,t),callback:i}),Xr()}};Zr.setDefaults=function(e){Zr.defaults=e},Zr.alert=function(e,t,i){return"object"===(void 0===t?"undefined":Hr(t))?(i=t,t=""):void 0===t&&(t=""),Zr(Be()({title:t,message:e,$type:"alert",closeOnPressEscape:!1,closeOnClickModal:!1},i))},Zr.confirm=function(e,t,i){return"object"===(void 0===t?"undefined":Hr(t))?(i=t,t=""):void 0===t&&(t=""),Zr(Be()({title:t,message:e,$type:"confirm",showCancelButton:!0},i))},Zr.prompt=function(e,t,i){return"object"===(void 0===t?"undefined":Hr(t))?(i=t,t=""):void 0===t&&(t=""),Zr(Be()({title:t,message:e,showCancelButton:!0,showInput:!0,$type:"prompt"},i))},Zr.close=function(){Gr.doClose(),Gr.visible=!1,Yr=[],Ur=null};var Qr=Zr,Jr=function(){var e=this.$createElement;return(this._self._c||e)("div",{staticClass:"el-breadcrumb",attrs:{"aria-label":"Breadcrumb",role:"navigation"}},[this._t("default")],2)};Jr._withStripped=!0;var es=r({name:"ElBreadcrumb",props:{separator:{type:String,default:"/"},separatorClass:{type:String,default:""}},provide:function(){return{elBreadcrumb:this}},mounted:function(){var e=this.$el.querySelectorAll(".el-breadcrumb__item");e.length&&e[e.length-1].setAttribute("aria-current","page")}},Jr,[],!1,null,null,null);es.options.__file="packages/breadcrumb/src/breadcrumb.vue";var ts=es.exports;ts.install=function(e){e.component(ts.name,ts)};var is=ts,ns=function(){var e=this.$createElement,t=this._self._c||e;return t("span",{staticClass:"el-breadcrumb__item"},[t("span",{ref:"link",class:["el-breadcrumb__inner",this.to?"is-link":""],attrs:{role:"link"}},[this._t("default")],2),this.separatorClass?t("i",{staticClass:"el-breadcrumb__separator",class:this.separatorClass}):t("span",{staticClass:"el-breadcrumb__separator",attrs:{role:"presentation"}},[this._v(this._s(this.separator))])])};ns._withStripped=!0;var rs=r({name:"ElBreadcrumbItem",props:{to:{},replace:Boolean},data:function(){return{separator:"",separatorClass:""}},inject:["elBreadcrumb"],mounted:function(){var e=this;this.separator=this.elBreadcrumb.separator,this.separatorClass=this.elBreadcrumb.separatorClass;var t=this.$refs.link;t.setAttribute("role","link"),t.addEventListener("click",(function(t){var i=e.to,n=e.$router;i&&n&&(e.replace?n.replace(i):n.push(i))}))}},ns,[],!1,null,null,null);rs.options.__file="packages/breadcrumb/src/breadcrumb-item.vue";var ss=rs.exports;ss.install=function(e){e.component(ss.name,ss)};var as=ss,os=function(){var e=this.$createElement;return(this._self._c||e)("form",{staticClass:"el-form",class:[this.labelPosition?"el-form--label-"+this.labelPosition:"",{"el-form--inline":this.inline}]},[this._t("default")],2)};os._withStripped=!0;var ls=r({name:"ElForm",componentName:"ElForm",provide:function(){return{elForm:this}},props:{model:Object,rules:Object,labelPosition:String,labelWidth:String,labelSuffix:{type:String,default:""},inline:Boolean,inlineMessage:Boolean,statusIcon:Boolean,showMessage:{type:Boolean,default:!0},size:String,disabled:Boolean,validateOnRuleChange:{type:Boolean,default:!0},hideRequiredAsterisk:{type:Boolean,default:!1}},watch:{rules:function(){this.fields.forEach((function(e){e.removeValidateEvents(),e.addValidateEvents()})),this.validateOnRuleChange&&this.validate((function(){}))}},computed:{autoLabelWidth:function(){if(!this.potentialLabelWidthArr.length)return 0;var e=Math.max.apply(Math,this.potentialLabelWidthArr);return e?e+"px":""}},data:function(){return{fields:[],potentialLabelWidthArr:[]}},created:function(){var e=this;this.$on("el.form.addField",(function(t){t&&e.fields.push(t)})),this.$on("el.form.removeField",(function(t){t.prop&&e.fields.splice(e.fields.indexOf(t),1)}))},methods:{resetFields:function(){this.model?this.fields.forEach((function(e){e.resetField()})):console.warn("[Element Warn][Form]model is required for resetFields to work.")},clearValidate:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=e.length?"string"==typeof e?this.fields.filter((function(t){return e===t.prop})):this.fields.filter((function(t){return e.indexOf(t.prop)>-1})):this.fields;t.forEach((function(e){e.clearValidate()}))},validate:function(e){var t=this;if(this.model){var i=void 0;"function"!=typeof e&&window.Promise&&(i=new window.Promise((function(t,i){e=function(e){e?t(e):i(e)}})));var n=!0,r=0;0===this.fields.length&&e&&e(!0);var s={};return this.fields.forEach((function(i){i.validate("",(function(i,a){i&&(n=!1),s=Be()({},s,a),"function"==typeof e&&++r===t.fields.length&&e(n,s)}))})),i||void 0}console.warn("[Element Warn][Form]model is required for validate to work!")},validateField:function(e,t){e=[].concat(e);var i=this.fields.filter((function(t){return-1!==e.indexOf(t.prop)}));i.length?i.forEach((function(e){e.validate("",t)})):console.warn("[Element Warn]please pass correct props!")},getLabelWidthIndex:function(e){var t=this.potentialLabelWidthArr.indexOf(e);if(-1===t)throw new Error("[ElementForm]unpected width ",e);return t},registerLabelWidth:function(e,t){if(e&&t){var i=this.getLabelWidthIndex(t);this.potentialLabelWidthArr.splice(i,1,e)}else e&&this.potentialLabelWidthArr.push(e)},deregisterLabelWidth:function(e){var t=this.getLabelWidthIndex(e);this.potentialLabelWidthArr.splice(t,1)}}},os,[],!1,null,null,null);ls.options.__file="packages/form/src/form.vue";var us=ls.exports;us.install=function(e){e.component(us.name,us)};var cs=us,ds=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{staticClass:"el-form-item",class:[{"el-form-item--feedback":e.elForm&&e.elForm.statusIcon,"is-error":"error"===e.validateState,"is-validating":"validating"===e.validateState,"is-success":"success"===e.validateState,"is-required":e.isRequired||e.required,"is-no-asterisk":e.elForm&&e.elForm.hideRequiredAsterisk},e.sizeClass?"el-form-item--"+e.sizeClass:""]},[i("label-wrap",{attrs:{"is-auto-width":e.labelStyle&&"auto"===e.labelStyle.width,"update-all":"auto"===e.form.labelWidth}},[e.label||e.$slots.label?i("label",{staticClass:"el-form-item__label",style:e.labelStyle,attrs:{for:e.labelFor}},[e._t("label",[e._v(e._s(e.label+e.form.labelSuffix))])],2):e._e()]),i("div",{staticClass:"el-form-item__content",style:e.contentStyle},[e._t("default"),i("transition",{attrs:{name:"el-zoom-in-top"}},["error"===e.validateState&&e.showMessage&&e.form.showMessage?e._t("error",[i("div",{staticClass:"el-form-item__error",class:{"el-form-item__error--inline":"boolean"==typeof e.inlineMessage?e.inlineMessage:e.elForm&&e.elForm.inlineMessage||!1}},[e._v("\n "+e._s(e.validateMessage)+"\n ")])],{error:e.validateMessage}):e._e()],2)],2)],1)};ds._withStripped=!0;var hs=i(40),ps=i.n(hs),fs=r({props:{isAutoWidth:Boolean,updateAll:Boolean},inject:["elForm","elFormItem"],render:function(){var e=arguments[0],t=this.$slots.default;if(!t)return null;if(this.isAutoWidth){var i=this.elForm.autoLabelWidth,n={};if(i&&"auto"!==i){var r=parseInt(i,10)-this.computedWidth;r&&(n.marginLeft=r+"px")}return e("div",{class:"el-form-item__label-wrap",style:n},[t])}return t[0]},methods:{getLabelWidth:function(){if(this.$el&&this.$el.firstElementChild){var e=window.getComputedStyle(this.$el.firstElementChild).width;return Math.ceil(parseFloat(e))}return 0},updateLabelWidth:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"update";this.$slots.default&&this.isAutoWidth&&this.$el.firstElementChild&&("update"===e?this.computedWidth=this.getLabelWidth():"remove"===e&&this.elForm.deregisterLabelWidth(this.computedWidth))}},watch:{computedWidth:function(e,t){this.updateAll&&(this.elForm.registerLabelWidth(e,t),this.elFormItem.updateComputedLabelWidth(e))}},data:function(){return{computedWidth:0}},mounted:function(){this.updateLabelWidth("update")},updated:function(){this.updateLabelWidth("update")},beforeDestroy:function(){this.updateLabelWidth("remove")}},void 0,void 0,!1,null,null,null);fs.options.__file="packages/form/src/label-wrap.vue";var ms=fs.exports,vs=r({name:"ElFormItem",componentName:"ElFormItem",mixins:[C.a],provide:function(){return{elFormItem:this}},inject:["elForm"],props:{label:String,labelWidth:String,prop:String,required:{type:Boolean,default:void 0},rules:[Object,Array],error:String,validateStatus:String,for:String,inlineMessage:{type:[String,Boolean],default:""},showMessage:{type:Boolean,default:!0},size:String},components:{LabelWrap:ms},watch:{error:{immediate:!0,handler:function(e){this.validateMessage=e,this.validateState=e?"error":""}},validateStatus:function(e){this.validateState=e}},computed:{labelFor:function(){return this.for||this.prop},labelStyle:function(){var e={};if("top"===this.form.labelPosition)return e;var t=this.labelWidth||this.form.labelWidth;return t&&(e.width=t),e},contentStyle:function(){var e={},t=this.label;if("top"===this.form.labelPosition||this.form.inline)return e;if(!t&&!this.labelWidth&&this.isNested)return e;var i=this.labelWidth||this.form.labelWidth;return"auto"===i?"auto"===this.labelWidth?e.marginLeft=this.computedLabelWidth:"auto"===this.form.labelWidth&&(e.marginLeft=this.elForm.autoLabelWidth):e.marginLeft=i,e},form:function(){for(var e=this.$parent,t=e.$options.componentName;"ElForm"!==t;)"ElFormItem"===t&&(this.isNested=!0),t=(e=e.$parent).$options.componentName;return e},fieldValue:function(){var e=this.form.model;if(e&&this.prop){var t=this.prop;return-1!==t.indexOf(":")&&(t=t.replace(/:/,".")),Object(m.getPropByPath)(e,t,!0).v}},isRequired:function(){var e=this.getRules(),t=!1;return e&&e.length&&e.every((function(e){return!e.required||(t=!0,!1)})),t},_formSize:function(){return this.elForm.size},elFormItemSize:function(){return this.size||this._formSize},sizeClass:function(){return this.elFormItemSize||(this.$ELEMENT||{}).size}},data:function(){return{validateState:"",validateMessage:"",validateDisabled:!1,validator:{},isNested:!1,computedLabelWidth:""}},methods:{validate:function(e){var t=this,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:m.noop;this.validateDisabled=!1;var n=this.getFilteredRule(e);if((!n||0===n.length)&&void 0===this.required)return i(),!0;this.validateState="validating";var r={};n&&n.length>0&&n.forEach((function(e){delete e.trigger})),r[this.prop]=n;var s=new ps.a(r),a={};a[this.prop]=this.fieldValue,s.validate(a,{firstFields:!0},(function(e,n){t.validateState=e?"error":"success",t.validateMessage=e?e[0].message:"",i(t.validateMessage,n),t.elForm&&t.elForm.$emit("validate",t.prop,!e,t.validateMessage||null)}))},clearValidate:function(){this.validateState="",this.validateMessage="",this.validateDisabled=!1},resetField:function(){var e=this;this.validateState="",this.validateMessage="";var t=this.form.model,i=this.fieldValue,n=this.prop;-1!==n.indexOf(":")&&(n=n.replace(/:/,"."));var r=Object(m.getPropByPath)(t,n,!0);this.validateDisabled=!0,Array.isArray(i)?r.o[r.k]=[].concat(this.initialValue):r.o[r.k]=this.initialValue,this.$nextTick((function(){e.validateDisabled=!1})),this.broadcast("ElTimeSelect","fieldReset",this.initialValue)},getRules:function(){var e=this.form.rules,t=this.rules,i=void 0!==this.required?{required:!!this.required}:[],n=Object(m.getPropByPath)(e,this.prop||"");return e=e?n.o[this.prop||""]||n.v:[],[].concat(t||e||[]).concat(i)},getFilteredRule:function(e){return this.getRules().filter((function(t){return!t.trigger||""===e||(Array.isArray(t.trigger)?t.trigger.indexOf(e)>-1:t.trigger===e)})).map((function(e){return Be()({},e)}))},onFieldBlur:function(){this.validate("blur")},onFieldChange:function(){this.validateDisabled?this.validateDisabled=!1:this.validate("change")},updateComputedLabelWidth:function(e){this.computedLabelWidth=e?e+"px":""},addValidateEvents:function(){(this.getRules().length||void 0!==this.required)&&(this.$on("el.form.blur",this.onFieldBlur),this.$on("el.form.change",this.onFieldChange))},removeValidateEvents:function(){this.$off()}},mounted:function(){if(this.prop){this.dispatch("ElForm","el.form.addField",[this]);var e=this.fieldValue;Array.isArray(e)&&(e=[].concat(e)),Object.defineProperty(this,"initialValue",{value:e}),this.addValidateEvents()}},beforeDestroy:function(){this.dispatch("ElForm","el.form.removeField",[this])}},ds,[],!1,null,null,null);vs.options.__file="packages/form/src/form-item.vue";var gs=vs.exports;gs.install=function(e){e.component(gs.name,gs)};var _s=gs,bs=function(){var e=this.$createElement;return(this._self._c||e)("div",{staticClass:"el-tabs__active-bar",class:"is-"+this.rootTabs.tabPosition,style:this.barStyle})};bs._withStripped=!0;var ys=r({name:"TabBar",props:{tabs:Array},inject:["rootTabs"],computed:{barStyle:{get:function(){var e=this,t={},i=0,n=0,r=-1!==["top","bottom"].indexOf(this.rootTabs.tabPosition)?"width":"height",s="width"===r?"x":"y",a=function(e){return e.toLowerCase().replace(/( |^)[a-z]/g,(function(e){return e.toUpperCase()}))};this.tabs.every((function(t,s){var o=Object(m.arrayFind)(e.$parent.$refs.tabs||[],(function(e){return e.id.replace("tab-","")===t.paneName}));if(!o)return!1;if(t.active){n=o["client"+a(r)];var l=window.getComputedStyle(o);return"width"===r&&e.tabs.length>1&&(n-=parseFloat(l.paddingLeft)+parseFloat(l.paddingRight)),"width"===r&&(i+=parseFloat(l.paddingLeft)),!1}return i+=o["client"+a(r)],!0}));var o="translate"+a(s)+"("+i+"px)";return t[r]=n+"px",t.transform=o,t.msTransform=o,t.webkitTransform=o,t}}}},bs,[],!1,null,null,null);ys.options.__file="packages/tabs/src/tab-bar.vue";var xs=ys.exports;function ks(){}var ws=function(e){return e.toLowerCase().replace(/( |^)[a-z]/g,(function(e){return e.toUpperCase()}))},Cs=r({name:"TabNav",components:{TabBar:xs},inject:["rootTabs"],props:{panes:Array,currentName:String,editable:Boolean,onTabClick:{type:Function,default:ks},onTabRemove:{type:Function,default:ks},type:String,stretch:Boolean},data:function(){return{scrollable:!1,navOffset:0,isFocus:!1,focusable:!0}},computed:{navStyle:function(){return{transform:"translate"+(-1!==["top","bottom"].indexOf(this.rootTabs.tabPosition)?"X":"Y")+"(-"+this.navOffset+"px)"}},sizeName:function(){return-1!==["top","bottom"].indexOf(this.rootTabs.tabPosition)?"width":"height"}},methods:{scrollPrev:function(){var e=this.$refs.navScroll["offset"+ws(this.sizeName)],t=this.navOffset;if(t){var i=t>e?t-e:0;this.navOffset=i}},scrollNext:function(){var e=this.$refs.nav["offset"+ws(this.sizeName)],t=this.$refs.navScroll["offset"+ws(this.sizeName)],i=this.navOffset;if(!(e-i<=t)){var n=e-i>2*t?i+t:e-t;this.navOffset=n}},scrollToActiveTab:function(){if(this.scrollable){var e=this.$refs.nav,t=this.$el.querySelector(".is-active");if(t){var i=this.$refs.navScroll,n=-1!==["top","bottom"].indexOf(this.rootTabs.tabPosition),r=t.getBoundingClientRect(),s=i.getBoundingClientRect(),a=n?e.offsetWidth-s.width:e.offsetHeight-s.height,o=this.navOffset,l=o;n?(r.lefts.right&&(l=o+r.right-s.right)):(r.tops.bottom&&(l=o+(r.bottom-s.bottom))),l=Math.max(l,0),this.navOffset=Math.min(l,a)}}},update:function(){if(this.$refs.nav){var e=this.sizeName,t=this.$refs.nav["offset"+ws(e)],i=this.$refs.navScroll["offset"+ws(e)],n=this.navOffset;if(i0&&(this.navOffset=0)}},changeTab:function(e){var t=e.keyCode,i=void 0,n=void 0,r=void 0;-1!==[37,38,39,40].indexOf(t)&&(r=e.currentTarget.querySelectorAll("[role=tab]"),n=Array.prototype.indexOf.call(r,e.target),r[i=37===t||38===t?0===n?r.length-1:n-1:n0&&void 0!==arguments[0]&&arguments[0];if(this.$slots.default){var i=this.$slots.default.filter((function(e){return e.tag&&e.componentOptions&&"ElTabPane"===e.componentOptions.Ctor.options.name})),n=i.map((function(e){return e.componentInstance})),r=!(n.length===this.panes.length&&n.every((function(t,i){return t===e.panes[i]})));(t||r)&&(this.panes=n)}else 0!==this.panes.length&&(this.panes=[])},handleTabClick:function(e,t,i){e.disabled||(this.setCurrentName(t),this.$emit("tab-click",e,i))},handleTabRemove:function(e,t){e.disabled||(t.stopPropagation(),this.$emit("edit",e.name,"remove"),this.$emit("tab-remove",e.name))},handleTabAdd:function(){this.$emit("edit",null,"add"),this.$emit("tab-add")},setCurrentName:function(e){var t=this,i=function(){t.currentName=e,t.$emit("input",e)};if(this.currentName!==e&&this.beforeLeave){var n=this.beforeLeave(e,this.currentName);n&&n.then?n.then((function(){i(),t.$refs.nav&&t.$refs.nav.removeFocus()}),(function(){})):!1!==n&&i()}else i()}},render:function(e){var t,i=this.type,n=this.handleTabClick,r=this.handleTabRemove,s=this.handleTabAdd,a=this.currentName,o=this.panes,l=this.editable,u=this.addable,c=this.tabPosition,d=this.stretch,h=l||u?e("span",{class:"el-tabs__new-tab",on:{click:s,keydown:function(e){13===e.keyCode&&s()}},attrs:{tabindex:"0"}},[e("i",{class:"el-icon-plus"})]):null,p=e("div",{class:["el-tabs__header","is-"+c]},[h,e("tab-nav",{props:{currentName:a,onTabClick:n,onTabRemove:r,editable:l,type:i,panes:o,stretch:d},ref:"nav"})]),f=e("div",{class:"el-tabs__content"},[this.$slots.default]);return e("div",{class:(t={"el-tabs":!0,"el-tabs--card":"card"===i},t["el-tabs--"+c]=!0,t["el-tabs--border-card"]="border-card"===i,t)},["bottom"!==c?[p,f]:[f,p]])},created:function(){this.currentName||this.setCurrentName("0"),this.$on("tab-nav-update",this.calcPaneInstances.bind(null,!0))},mounted:function(){this.calcPaneInstances()},updated:function(){this.calcPaneInstances()}},void 0,void 0,!1,null,null,null);Ss.options.__file="packages/tabs/src/tabs.vue";var Os=Ss.exports;Os.install=function(e){e.component(Os.name,Os)};var Ds=Os,Es=function(){var e=this,t=e.$createElement,i=e._self._c||t;return!e.lazy||e.loaded||e.active?i("div",{directives:[{name:"show",rawName:"v-show",value:e.active,expression:"active"}],staticClass:"el-tab-pane",attrs:{role:"tabpanel","aria-hidden":!e.active,id:"pane-"+e.paneName,"aria-labelledby":"tab-"+e.paneName}},[e._t("default")],2):e._e()};Es._withStripped=!0;var Ts=r({name:"ElTabPane",componentName:"ElTabPane",props:{label:String,labelContent:Function,name:String,closable:Boolean,disabled:Boolean,lazy:Boolean},data:function(){return{index:null,loaded:!1}},computed:{isClosable:function(){return this.closable||this.$parent.closable},active:function(){var e=this.$parent.currentName===(this.name||this.index);return e&&(this.loaded=!0),e},paneName:function(){return this.name||this.index}},updated:function(){this.$parent.$emit("tab-nav-update")}},Es,[],!1,null,null,null);Ts.options.__file="packages/tabs/src/tab-pane.vue";var $s=Ts.exports;$s.install=function(e){e.component($s.name,$s)};var Ps=$s,js=r({name:"ElTag",props:{text:String,closable:Boolean,type:String,hit:Boolean,disableTransitions:Boolean,color:String,size:String,effect:{type:String,default:"light",validator:function(e){return-1!==["dark","light","plain"].indexOf(e)}}},methods:{handleClose:function(e){e.stopPropagation(),this.$emit("close",e)},handleClick:function(e){this.$emit("click",e)}},computed:{tagSize:function(){return this.size||(this.$ELEMENT||{}).size}},render:function(e){var t=this.type,i=this.tagSize,n=this.hit,r=this.effect,s=e("span",{class:["el-tag",t?"el-tag--"+t:"",i?"el-tag--"+i:"",r?"el-tag--"+r:"",n&&"is-hit"],style:{backgroundColor:this.color},on:{click:this.handleClick}},[this.$slots.default,this.closable&&e("i",{class:"el-tag__close el-icon-close",on:{click:this.handleClose}})]);return this.disableTransitions?s:e("transition",{attrs:{name:"el-zoom-in-center"}},[s])}},void 0,void 0,!1,null,null,null);js.options.__file="packages/tag/src/tag.vue";var Ms=js.exports;Ms.install=function(e){e.component(Ms.name,Ms)};var Is=Ms,As=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{staticClass:"el-tree",class:{"el-tree--highlight-current":e.highlightCurrent,"is-dragging":!!e.dragState.draggingNode,"is-drop-not-allow":!e.dragState.allowDrop,"is-drop-inner":"inner"===e.dragState.dropType},attrs:{role:"tree"}},[e._l(e.root.childNodes,(function(t){return i("el-tree-node",{key:e.getNodeKey(t),attrs:{node:t,props:e.props,"render-after-expand":e.renderAfterExpand,"show-checkbox":e.showCheckbox,"render-content":e.renderContent},on:{"node-expand":e.handleNodeExpand}})})),e.isEmpty?i("div",{staticClass:"el-tree__empty-block"},[i("span",{staticClass:"el-tree__empty-text"},[e._v(e._s(e.emptyText))])]):e._e(),i("div",{directives:[{name:"show",rawName:"v-show",value:e.dragState.showDropIndicator,expression:"dragState.showDropIndicator"}],ref:"dropIndicator",staticClass:"el-tree__drop-indicator"})],2)};As._withStripped=!0;var Ns="$treeNodeId",Ls=function(e,t){t&&!t[Ns]&&Object.defineProperty(t,Ns,{value:e.id,enumerable:!1,configurable:!1,writable:!1})},Fs=function(e,t){return e?t[e]:t[Ns]},Vs=function(){function e(e,t){for(var i=0;i0&&n.lazy&&n.defaultExpandAll&&this.expand(),Array.isArray(this.data)||Ls(this,this.data),this.data){var a=n.defaultExpandedKeys,o=n.key;o&&a&&-1!==a.indexOf(this.key)&&this.expand(null,n.autoExpandParent),o&&void 0!==n.currentNodeKey&&this.key===n.currentNodeKey&&(n.currentNode=this,n.currentNode.isCurrent=!0),n.lazy&&n._initDefaultCheckedNode(this),this.updateLeafState()}}return e.prototype.setData=function(e){Array.isArray(e)||Ls(this,e),this.data=e,this.childNodes=[];for(var t=void 0,i=0,n=(t=0===this.level&&this.data instanceof Array?this.data:Bs(this,"children")||[]).length;i1&&void 0!==arguments[1])||arguments[1],i=function i(n){for(var r=n.childNodes||[],s=!1,a=0,o=r.length;a-1&&t.splice(i,1);var n=this.childNodes.indexOf(e);n>-1&&(this.store&&this.store.deregisterNode(e),e.parent=null,this.childNodes.splice(n,1)),this.updateLeafState()},e.prototype.removeChildByData=function(e){for(var t=null,i=0;i0;)n.expanded=!0,n=n.parent;i.expanded=!0,e&&e()};this.shouldLoadData()?this.loadData((function(e){e instanceof Array&&(i.checked?i.setChecked(!0,!0):i.store.checkStrictly||Rs(i),n())})):n()},e.prototype.doCreateChildren=function(e){var t=this,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};e.forEach((function(e){t.insertChild(Be()({data:e},i),void 0,!0)}))},e.prototype.collapse=function(){this.expanded=!1},e.prototype.shouldLoadData=function(){return!0===this.store.lazy&&this.store.load&&!this.loaded},e.prototype.updateLeafState=function(){if(!0!==this.store.lazy||!0===this.loaded||void 0===this.isLeafByUser){var e=this.childNodes;!this.store.lazy||!0===this.store.lazy&&!0===this.loaded?this.isLeaf=!e||0===e.length:this.isLeaf=!1}else this.isLeaf=this.isLeafByUser},e.prototype.setChecked=function(e,t,i,n){var r=this;if(this.indeterminate="half"===e,this.checked=!0===e,!this.store.checkStrictly){if(!this.shouldLoadData()||this.store.checkDescendants){var s=zs(this.childNodes),a=s.all,o=s.allWithoutDisable;this.isLeaf||a||!o||(this.checked=!1,e=!1);var l=function(){if(t){for(var i=r.childNodes,s=0,a=i.length;s0&&void 0!==arguments[0]&&arguments[0];if(0===this.level)return this.data;var t=this.data;if(!t)return null;var i=this.store.props,n="children";return i&&(n=i.children||"children"),void 0===t[n]&&(t[n]=null),e&&!t[n]&&(t[n]=[]),t[n]},e.prototype.updateChildren=function(){var e=this,t=this.getChildren()||[],i=this.childNodes.map((function(e){return e.data})),n={},r=[];t.forEach((function(e,t){var s=e[Ns];!!s&&Object(m.arrayFindIndex)(i,(function(e){return e[Ns]===s}))>=0?n[s]={index:t,data:e}:r.push({index:t,data:e})})),this.store.lazy||i.forEach((function(t){n[t[Ns]]||e.removeChildByData(t)})),r.forEach((function(t){var i=t.index,n=t.data;e.insertChild({data:n},i)})),this.updateLeafState()},e.prototype.loadData=function(e){var t=this,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!0!==this.store.lazy||!this.store.load||this.loaded||this.loading&&!Object.keys(i).length)e&&e.call(this);else{this.loading=!0;var n=function(n){t.loaded=!0,t.loading=!1,t.childNodes=[],t.doCreateChildren(n,i),t.updateLeafState(),e&&e.call(t,n)};this.store.load(this,n)}},Vs(e,[{key:"label",get:function(){return Bs(this,"label")}},{key:"key",get:function(){var e=this.store.key;return this.data?this.data[e]:null}},{key:"disabled",get:function(){return Bs(this,"disabled")}},{key:"nextSibling",get:function(){var e=this.parent;if(e){var t=e.childNodes.indexOf(this);if(t>-1)return e.childNodes[t+1]}return null}},{key:"previousSibling",get:function(){var e=this.parent;if(e){var t=e.childNodes.indexOf(this);if(t>-1)return t>0?e.childNodes[t-1]:null}return null}}]),e}(),qs="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};var Us=function(){function e(t){var i=this;for(var n in function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.currentNode=null,this.currentNodeKey=null,t)t.hasOwnProperty(n)&&(this[n]=t[n]);(this.nodesMap={},this.root=new Ws({data:this.data,store:this}),this.lazy&&this.load)?(0,this.load)(this.root,(function(e){i.root.doCreateChildren(e),i._initDefaultCheckedNodes()})):this._initDefaultCheckedNodes()}return e.prototype.filter=function(e){var t=this.filterNodeMethod,i=this.lazy;!function n(r){var s=r.root?r.root.childNodes:r.childNodes;if(s.forEach((function(i){i.visible=t.call(i,e,i.data,i),n(i)})),!r.visible&&s.length){var a;a=!s.some((function(e){return e.visible})),r.root?r.root.visible=!1===a:r.visible=!1===a}e&&(!r.visible||r.isLeaf||i||r.expand())}(this)},e.prototype.setData=function(e){e!==this.root.data?(this.root.setData(e),this._initDefaultCheckedNodes()):this.root.updateChildren()},e.prototype.getNode=function(e){if(e instanceof Ws)return e;var t="object"!==(void 0===e?"undefined":qs(e))?e:Fs(this.key,e);return this.nodesMap[t]||null},e.prototype.insertBefore=function(e,t){var i=this.getNode(t);i.parent.insertBefore({data:e},i)},e.prototype.insertAfter=function(e,t){var i=this.getNode(t);i.parent.insertAfter({data:e},i)},e.prototype.remove=function(e){var t=this.getNode(e);t&&t.parent&&(t===this.currentNode&&(this.currentNode=null),t.parent.removeChild(t))},e.prototype.append=function(e,t){var i=t?this.getNode(t):this.root;i&&i.insertChild({data:e})},e.prototype._initDefaultCheckedNodes=function(){var e=this,t=this.defaultCheckedKeys||[],i=this.nodesMap;t.forEach((function(t){var n=i[t];n&&n.setChecked(!0,!e.checkStrictly)}))},e.prototype._initDefaultCheckedNode=function(e){-1!==(this.defaultCheckedKeys||[]).indexOf(e.key)&&e.setChecked(!0,!this.checkStrictly)},e.prototype.setDefaultCheckedKey=function(e){e!==this.defaultCheckedKeys&&(this.defaultCheckedKeys=e,this._initDefaultCheckedNodes())},e.prototype.registerNode=function(e){this.key&&e&&e.data&&(void 0!==e.key&&(this.nodesMap[e.key]=e))},e.prototype.deregisterNode=function(e){var t=this;this.key&&e&&e.data&&(e.childNodes.forEach((function(e){t.deregisterNode(e)})),delete this.nodesMap[e.key])},e.prototype.getCheckedNodes=function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=[],n=function n(r){(r.root?r.root.childNodes:r.childNodes).forEach((function(r){(r.checked||t&&r.indeterminate)&&(!e||e&&r.isLeaf)&&i.push(r.data),n(r)}))};return n(this),i},e.prototype.getCheckedKeys=function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return this.getCheckedNodes(t).map((function(t){return(t||{})[e.key]}))},e.prototype.getHalfCheckedNodes=function(){var e=[];return function t(i){(i.root?i.root.childNodes:i.childNodes).forEach((function(i){i.indeterminate&&e.push(i.data),t(i)}))}(this),e},e.prototype.getHalfCheckedKeys=function(){var e=this;return this.getHalfCheckedNodes().map((function(t){return(t||{})[e.key]}))},e.prototype._getAllNodes=function(){var e=[],t=this.nodesMap;for(var i in t)t.hasOwnProperty(i)&&e.push(t[i]);return e},e.prototype.updateChildren=function(e,t){var i=this.nodesMap[e];if(i){for(var n=i.childNodes,r=n.length-1;r>=0;r--){var s=n[r];this.remove(s.data)}for(var a=0,o=t.length;a1&&void 0!==arguments[1]&&arguments[1],i=arguments[2],n=this._getAllNodes().sort((function(e,t){return t.level-e.level})),r=Object.create(null),s=Object.keys(i);n.forEach((function(e){return e.setChecked(!1,!1)}));for(var a=0,o=n.length;a-1;if(c){for(var d=l.parent;d&&d.level>0;)r[d.data[e]]=!0,d=d.parent;l.isLeaf||this.checkStrictly?l.setChecked(!0,!1):(l.setChecked(!0,!0),t&&function(){l.setChecked(!1,!1);!function e(t){t.childNodes.forEach((function(t){t.isLeaf||t.setChecked(!1,!1),e(t)}))}(l)}())}else l.checked&&!r[u]&&l.setChecked(!1,!1)}},e.prototype.setCheckedNodes=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=this.key,n={};e.forEach((function(e){n[(e||{})[i]]=!0})),this._setCheckedKeys(i,t,n)},e.prototype.setCheckedKeys=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];this.defaultCheckedKeys=e;var i=this.key,n={};e.forEach((function(e){n[e]=!0})),this._setCheckedKeys(i,t,n)},e.prototype.setDefaultExpandedKeys=function(e){var t=this;e=e||[],this.defaultExpandedKeys=e,e.forEach((function(e){var i=t.getNode(e);i&&i.expand(null,t.autoExpandParent)}))},e.prototype.setChecked=function(e,t,i){var n=this.getNode(e);n&&n.setChecked(!!t,i)},e.prototype.getCurrentNode=function(){return this.currentNode},e.prototype.setCurrentNode=function(e){var t=this.currentNode;t&&(t.isCurrent=!1),this.currentNode=e,this.currentNode.isCurrent=!0},e.prototype.setUserCurrentNode=function(e){var t=e[this.key],i=this.nodesMap[t];this.setCurrentNode(i)},e.prototype.setCurrentNodeKey=function(e){if(null==e)return this.currentNode&&(this.currentNode.isCurrent=!1),void(this.currentNode=null);var t=this.getNode(e);t&&this.setCurrentNode(t)},e}(),Gs=function(){var e=this,t=this,i=t.$createElement,n=t._self._c||i;return n("div",{directives:[{name:"show",rawName:"v-show",value:t.node.visible,expression:"node.visible"}],ref:"node",staticClass:"el-tree-node",class:{"is-expanded":t.expanded,"is-current":t.node.isCurrent,"is-hidden":!t.node.visible,"is-focusable":!t.node.disabled,"is-checked":!t.node.disabled&&t.node.checked},attrs:{role:"treeitem",tabindex:"-1","aria-expanded":t.expanded,"aria-disabled":t.node.disabled,"aria-checked":t.node.checked,draggable:t.tree.draggable},on:{click:function(e){return e.stopPropagation(),t.handleClick(e)},contextmenu:function(t){return e.handleContextMenu(t)},dragstart:function(e){return e.stopPropagation(),t.handleDragStart(e)},dragover:function(e){return e.stopPropagation(),t.handleDragOver(e)},dragend:function(e){return e.stopPropagation(),t.handleDragEnd(e)},drop:function(e){return e.stopPropagation(),t.handleDrop(e)}}},[n("div",{staticClass:"el-tree-node__content",style:{"padding-left":(t.node.level-1)*t.tree.indent+"px"}},[n("span",{class:[{"is-leaf":t.node.isLeaf,expanded:!t.node.isLeaf&&t.expanded},"el-tree-node__expand-icon",t.tree.iconClass?t.tree.iconClass:"el-icon-caret-right"],on:{click:function(e){return e.stopPropagation(),t.handleExpandIconClick(e)}}}),t.showCheckbox?n("el-checkbox",{attrs:{indeterminate:t.node.indeterminate,disabled:!!t.node.disabled},on:{change:t.handleCheckChange},nativeOn:{click:function(e){e.stopPropagation()}},model:{value:t.node.checked,callback:function(e){t.$set(t.node,"checked",e)},expression:"node.checked"}}):t._e(),t.node.loading?n("span",{staticClass:"el-tree-node__loading-icon el-icon-loading"}):t._e(),n("node-content",{attrs:{node:t.node}})],1),n("el-collapse-transition",[!t.renderAfterExpand||t.childNodeRendered?n("div",{directives:[{name:"show",rawName:"v-show",value:t.expanded,expression:"expanded"}],staticClass:"el-tree-node__children",attrs:{role:"group","aria-expanded":t.expanded}},t._l(t.node.childNodes,(function(e){return n("el-tree-node",{key:t.getNodeKey(e),attrs:{"render-content":t.renderContent,"render-after-expand":t.renderAfterExpand,"show-checkbox":t.showCheckbox,node:e},on:{"node-expand":t.handleChildNodeExpand}})})),1):t._e()])],1)};Gs._withStripped=!0;var Ys=r({name:"ElTreeNode",componentName:"ElTreeNode",mixins:[C.a],props:{node:{default:function(){return{}}},props:{},renderContent:Function,renderAfterExpand:{type:Boolean,default:!0},showCheckbox:{type:Boolean,default:!1}},components:{ElCollapseTransition:be.a,ElCheckbox:ri.a,NodeContent:{props:{node:{required:!0}},render:function(e){var t=this.$parent,i=t.tree,n=this.node,r=n.data,s=n.store;return t.renderContent?t.renderContent.call(t._renderProxy,e,{_self:i.$vnode.context,node:n,data:r,store:s}):i.$scopedSlots.default?i.$scopedSlots.default({node:n,data:r}):e("span",{class:"el-tree-node__label"},[n.label])}}},data:function(){return{tree:null,expanded:!1,childNodeRendered:!1,oldChecked:null,oldIndeterminate:null}},watch:{"node.indeterminate":function(e){this.handleSelectChange(this.node.checked,e)},"node.checked":function(e){this.handleSelectChange(e,this.node.indeterminate)},"node.expanded":function(e){var t=this;this.$nextTick((function(){return t.expanded=e})),e&&(this.childNodeRendered=!0)}},methods:{getNodeKey:function(e){return Fs(this.tree.nodeKey,e.data)},handleSelectChange:function(e,t){this.oldChecked!==e&&this.oldIndeterminate!==t&&this.tree.$emit("check-change",this.node.data,e,t),this.oldChecked=e,this.indeterminate=t},handleClick:function(){var e=this.tree.store;e.setCurrentNode(this.node),this.tree.$emit("current-change",e.currentNode?e.currentNode.data:null,e.currentNode),this.tree.currentNode=this,this.tree.expandOnClickNode&&this.handleExpandIconClick(),this.tree.checkOnClickNode&&!this.node.disabled&&this.handleCheckChange(null,{target:{checked:!this.node.checked}}),this.tree.$emit("node-click",this.node.data,this.node,this)},handleContextMenu:function(e){this.tree._events["node-contextmenu"]&&this.tree._events["node-contextmenu"].length>0&&(e.stopPropagation(),e.preventDefault()),this.tree.$emit("node-contextmenu",e,this.node.data,this.node,this)},handleExpandIconClick:function(){this.node.isLeaf||(this.expanded?(this.tree.$emit("node-collapse",this.node.data,this.node,this),this.node.collapse()):(this.node.expand(),this.$emit("node-expand",this.node.data,this.node,this)))},handleCheckChange:function(e,t){var i=this;this.node.setChecked(t.target.checked,!this.tree.checkStrictly),this.$nextTick((function(){var e=i.tree.store;i.tree.$emit("check",i.node.data,{checkedNodes:e.getCheckedNodes(),checkedKeys:e.getCheckedKeys(),halfCheckedNodes:e.getHalfCheckedNodes(),halfCheckedKeys:e.getHalfCheckedKeys()})}))},handleChildNodeExpand:function(e,t,i){this.broadcast("ElTreeNode","tree-node-expand",t),this.tree.$emit("node-expand",e,t,i)},handleDragStart:function(e){this.tree.draggable&&this.tree.$emit("tree-node-drag-start",e,this)},handleDragOver:function(e){this.tree.draggable&&(this.tree.$emit("tree-node-drag-over",e,this),e.preventDefault())},handleDrop:function(e){e.preventDefault()},handleDragEnd:function(e){this.tree.draggable&&this.tree.$emit("tree-node-drag-end",e,this)}},created:function(){var e=this,t=this.$parent;t.isTree?this.tree=t:this.tree=t.tree;var i=this.tree;i||console.warn("Can not find node's tree.");var n=(i.props||{}).children||"children";this.$watch("node.data."+n,(function(){e.node.updateChildren()})),this.node.expanded&&(this.expanded=!0,this.childNodeRendered=!0),this.tree.accordion&&this.$on("tree-node-expand",(function(t){e.node!==t&&e.node.collapse()}))}},Gs,[],!1,null,null,null);Ys.options.__file="packages/tree/src/tree-node.vue";var Ks=Ys.exports,Xs=r({name:"ElTree",mixins:[C.a],components:{ElTreeNode:Ks},data:function(){return{store:null,root:null,currentNode:null,treeItems:null,checkboxItems:[],dragState:{showDropIndicator:!1,draggingNode:null,dropNode:null,allowDrop:!0}}},props:{data:{type:Array},emptyText:{type:String,default:function(){return Object(Ir.t)("el.tree.emptyText")}},renderAfterExpand:{type:Boolean,default:!0},nodeKey:String,checkStrictly:Boolean,defaultExpandAll:Boolean,expandOnClickNode:{type:Boolean,default:!0},checkOnClickNode:Boolean,checkDescendants:{type:Boolean,default:!1},autoExpandParent:{type:Boolean,default:!0},defaultCheckedKeys:Array,defaultExpandedKeys:Array,currentNodeKey:[String,Number],renderContent:Function,showCheckbox:{type:Boolean,default:!1},draggable:{type:Boolean,default:!1},allowDrag:Function,allowDrop:Function,props:{default:function(){return{children:"children",label:"label",disabled:"disabled"}}},lazy:{type:Boolean,default:!1},highlightCurrent:Boolean,load:Function,filterNodeMethod:Function,accordion:Boolean,indent:{type:Number,default:18},iconClass:String},computed:{children:{set:function(e){this.data=e},get:function(){return this.data}},treeItemArray:function(){return Array.prototype.slice.call(this.treeItems)},isEmpty:function(){var e=this.root.childNodes;return!e||0===e.length||e.every((function(e){return!e.visible}))}},watch:{defaultCheckedKeys:function(e){this.store.setDefaultCheckedKey(e)},defaultExpandedKeys:function(e){this.store.defaultExpandedKeys=e,this.store.setDefaultExpandedKeys(e)},data:function(e){this.store.setData(e)},checkboxItems:function(e){Array.prototype.forEach.call(e,(function(e){e.setAttribute("tabindex",-1)}))},checkStrictly:function(e){this.store.checkStrictly=e}},methods:{filter:function(e){if(!this.filterNodeMethod)throw new Error("[Tree] filterNodeMethod is required when filter");this.store.filter(e)},getNodeKey:function(e){return Fs(this.nodeKey,e.data)},getNodePath:function(e){if(!this.nodeKey)throw new Error("[Tree] nodeKey is required in getNodePath");var t=this.store.getNode(e);if(!t)return[];for(var i=[t.data],n=t.parent;n&&n!==this.root;)i.push(n.data),n=n.parent;return i.reverse()},getCheckedNodes:function(e,t){return this.store.getCheckedNodes(e,t)},getCheckedKeys:function(e){return this.store.getCheckedKeys(e)},getCurrentNode:function(){var e=this.store.getCurrentNode();return e?e.data:null},getCurrentKey:function(){if(!this.nodeKey)throw new Error("[Tree] nodeKey is required in getCurrentKey");var e=this.getCurrentNode();return e?e[this.nodeKey]:null},setCheckedNodes:function(e,t){if(!this.nodeKey)throw new Error("[Tree] nodeKey is required in setCheckedNodes");this.store.setCheckedNodes(e,t)},setCheckedKeys:function(e,t){if(!this.nodeKey)throw new Error("[Tree] nodeKey is required in setCheckedKeys");this.store.setCheckedKeys(e,t)},setChecked:function(e,t,i){this.store.setChecked(e,t,i)},getHalfCheckedNodes:function(){return this.store.getHalfCheckedNodes()},getHalfCheckedKeys:function(){return this.store.getHalfCheckedKeys()},setCurrentNode:function(e){if(!this.nodeKey)throw new Error("[Tree] nodeKey is required in setCurrentNode");this.store.setUserCurrentNode(e)},setCurrentKey:function(e){if(!this.nodeKey)throw new Error("[Tree] nodeKey is required in setCurrentKey");this.store.setCurrentNodeKey(e)},getNode:function(e){return this.store.getNode(e)},remove:function(e){this.store.remove(e)},append:function(e,t){this.store.append(e,t)},insertBefore:function(e,t){this.store.insertBefore(e,t)},insertAfter:function(e,t){this.store.insertAfter(e,t)},handleNodeExpand:function(e,t,i){this.broadcast("ElTreeNode","tree-node-expand",t),this.$emit("node-expand",e,t,i)},updateKeyChildren:function(e,t){if(!this.nodeKey)throw new Error("[Tree] nodeKey is required in updateKeyChild");this.store.updateChildren(e,t)},initTabIndex:function(){this.treeItems=this.$el.querySelectorAll(".is-focusable[role=treeitem]"),this.checkboxItems=this.$el.querySelectorAll("input[type=checkbox]");var e=this.$el.querySelectorAll(".is-checked[role=treeitem]");e.length?e[0].setAttribute("tabindex",0):this.treeItems[0]&&this.treeItems[0].setAttribute("tabindex",0)},handleKeydown:function(e){var t=e.target;if(-1!==t.className.indexOf("el-tree-node")){var i=e.keyCode;this.treeItems=this.$el.querySelectorAll(".is-focusable[role=treeitem]");var n=this.treeItemArray.indexOf(t),r=void 0;[38,40].indexOf(i)>-1&&(e.preventDefault(),r=38===i?0!==n?n-1:0:n-1&&(e.preventDefault(),t.click());var s=t.querySelector('[type="checkbox"]');[13,32].indexOf(i)>-1&&s&&(e.preventDefault(),s.click())}}},created:function(){var e=this;this.isTree=!0,this.store=new Us({key:this.nodeKey,data:this.data,lazy:this.lazy,props:this.props,load:this.load,currentNodeKey:this.currentNodeKey,checkStrictly:this.checkStrictly,checkDescendants:this.checkDescendants,defaultCheckedKeys:this.defaultCheckedKeys,defaultExpandedKeys:this.defaultExpandedKeys,autoExpandParent:this.autoExpandParent,defaultExpandAll:this.defaultExpandAll,filterNodeMethod:this.filterNodeMethod}),this.root=this.store.root;var t=this.dragState;this.$on("tree-node-drag-start",(function(i,n){if("function"==typeof e.allowDrag&&!e.allowDrag(n.node))return i.preventDefault(),!1;i.dataTransfer.effectAllowed="move";try{i.dataTransfer.setData("text/plain","")}catch(e){}t.draggingNode=n,e.$emit("node-drag-start",n.node,i)})),this.$on("tree-node-drag-over",(function(i,n){var r=function(e,t){for(var i=e;i&&"BODY"!==i.tagName;){if(i.__vue__&&i.__vue__.$options.name===t)return i.__vue__;i=i.parentNode}return null}(i.target,"ElTreeNode"),s=t.dropNode;s&&s!==r&&Object(fe.removeClass)(s.$el,"is-drop-inner");var a=t.draggingNode;if(a&&r){var o=!0,l=!0,u=!0,c=!0;"function"==typeof e.allowDrop&&(o=e.allowDrop(a.node,r.node,"prev"),c=l=e.allowDrop(a.node,r.node,"inner"),u=e.allowDrop(a.node,r.node,"next")),i.dataTransfer.dropEffect=l?"move":"none",(o||l||u)&&s!==r&&(s&&e.$emit("node-drag-leave",a.node,s.node,i),e.$emit("node-drag-enter",a.node,r.node,i)),(o||l||u)&&(t.dropNode=r),r.node.nextSibling===a.node&&(u=!1),r.node.previousSibling===a.node&&(o=!1),r.node.contains(a.node,!1)&&(l=!1),(a.node===r.node||a.node.contains(r.node))&&(o=!1,l=!1,u=!1);var d=r.$el.getBoundingClientRect(),h=e.$el.getBoundingClientRect(),p=void 0,f=o?l?.25:u?.45:1:-1,m=u?l?.75:o?.55:0:1,v=-9999,g=i.clientY-d.top;p=gd.height*m?"after":l?"inner":"none";var _=r.$el.querySelector(".el-tree-node__expand-icon").getBoundingClientRect(),b=e.$refs.dropIndicator;"before"===p?v=_.top-h.top:"after"===p&&(v=_.bottom-h.top),b.style.top=v+"px",b.style.left=_.right-h.left+"px","inner"===p?Object(fe.addClass)(r.$el,"is-drop-inner"):Object(fe.removeClass)(r.$el,"is-drop-inner"),t.showDropIndicator="before"===p||"after"===p,t.allowDrop=t.showDropIndicator||c,t.dropType=p,e.$emit("node-drag-over",a.node,r.node,i)}})),this.$on("tree-node-drag-end",(function(i){var n=t.draggingNode,r=t.dropType,s=t.dropNode;if(i.preventDefault(),i.dataTransfer.dropEffect="move",n&&s){var a={data:n.node.data};"none"!==r&&n.node.remove(),"before"===r?s.node.parent.insertBefore(a,s.node):"after"===r?s.node.parent.insertAfter(a,s.node):"inner"===r&&s.node.insertChild(a),"none"!==r&&e.store.registerNode(a),Object(fe.removeClass)(s.$el,"is-drop-inner"),e.$emit("node-drag-end",n.node,s.node,r,i),"none"!==r&&e.$emit("node-drop",n.node,s.node,r,i)}n&&!s&&e.$emit("node-drag-end",n.node,null,r,i),t.showDropIndicator=!1,t.draggingNode=null,t.dropNode=null,t.allowDrop=!0}))},mounted:function(){this.initTabIndex(),this.$el.addEventListener("keydown",this.handleKeydown)},updated:function(){this.treeItems=this.$el.querySelectorAll("[role=treeitem]"),this.checkboxItems=this.$el.querySelectorAll("input[type=checkbox]")}},As,[],!1,null,null,null);Xs.options.__file="packages/tree/src/tree.vue";var Zs=Xs.exports;Zs.install=function(e){e.component(Zs.name,Zs)};var Qs=Zs,Js=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("transition",{attrs:{name:"el-alert-fade"}},[i("div",{directives:[{name:"show",rawName:"v-show",value:e.visible,expression:"visible"}],staticClass:"el-alert",class:[e.typeClass,e.center?"is-center":"","is-"+e.effect],attrs:{role:"alert"}},[e.showIcon?i("i",{staticClass:"el-alert__icon",class:[e.iconClass,e.isBigIcon]}):e._e(),i("div",{staticClass:"el-alert__content"},[e.title||e.$slots.title?i("span",{staticClass:"el-alert__title",class:[e.isBoldTitle]},[e._t("title",[e._v(e._s(e.title))])],2):e._e(),e.$slots.default&&!e.description?i("p",{staticClass:"el-alert__description"},[e._t("default")],2):e._e(),e.description&&!e.$slots.default?i("p",{staticClass:"el-alert__description"},[e._v(e._s(e.description))]):e._e(),i("i",{directives:[{name:"show",rawName:"v-show",value:e.closable,expression:"closable"}],staticClass:"el-alert__closebtn",class:{"is-customed":""!==e.closeText,"el-icon-close":""===e.closeText},on:{click:function(t){e.close()}}},[e._v(e._s(e.closeText))])])])])};Js._withStripped=!0;var ea={success:"el-icon-success",warning:"el-icon-warning",error:"el-icon-error"},ta=r({name:"ElAlert",props:{title:{type:String,default:""},description:{type:String,default:""},type:{type:String,default:"info"},closable:{type:Boolean,default:!0},closeText:{type:String,default:""},showIcon:Boolean,center:Boolean,effect:{type:String,default:"light",validator:function(e){return-1!==["light","dark"].indexOf(e)}}},data:function(){return{visible:!0}},methods:{close:function(){this.visible=!1,this.$emit("close")}},computed:{typeClass:function(){return"el-alert--"+this.type},iconClass:function(){return ea[this.type]||"el-icon-info"},isBigIcon:function(){return this.description||this.$slots.default?"is-big":""},isBoldTitle:function(){return this.description||this.$slots.default?"is-bold":""}}},Js,[],!1,null,null,null);ta.options.__file="packages/alert/src/main.vue";var ia=ta.exports;ia.install=function(e){e.component(ia.name,ia)};var na=ia,ra=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("transition",{attrs:{name:"el-notification-fade"}},[i("div",{directives:[{name:"show",rawName:"v-show",value:e.visible,expression:"visible"}],class:["el-notification",e.customClass,e.horizontalClass],style:e.positionStyle,attrs:{role:"alert"},on:{mouseenter:function(t){e.clearTimer()},mouseleave:function(t){e.startTimer()},click:e.click}},[e.type||e.iconClass?i("i",{staticClass:"el-notification__icon",class:[e.typeClass,e.iconClass]}):e._e(),i("div",{staticClass:"el-notification__group",class:{"is-with-icon":e.typeClass||e.iconClass}},[i("h2",{staticClass:"el-notification__title",domProps:{textContent:e._s(e.title)}}),i("div",{directives:[{name:"show",rawName:"v-show",value:e.message,expression:"message"}],staticClass:"el-notification__content"},[e._t("default",[e.dangerouslyUseHTMLString?i("p",{domProps:{innerHTML:e._s(e.message)}}):i("p",[e._v(e._s(e.message))])])],2),e.showClose?i("div",{staticClass:"el-notification__closeBtn el-icon-close",on:{click:function(t){return t.stopPropagation(),e.close(t)}}}):e._e()])])])};ra._withStripped=!0;var sa={success:"success",info:"info",warning:"warning",error:"error"},aa=r({data:function(){return{visible:!1,title:"",message:"",duration:4500,type:"",showClose:!0,customClass:"",iconClass:"",onClose:null,onClick:null,closed:!1,verticalOffset:0,timer:null,dangerouslyUseHTMLString:!1,position:"top-right"}},computed:{typeClass:function(){return this.type&&sa[this.type]?"el-icon-"+sa[this.type]:""},horizontalClass:function(){return this.position.indexOf("right")>-1?"right":"left"},verticalProperty:function(){return/^top-/.test(this.position)?"top":"bottom"},positionStyle:function(){var e;return(e={})[this.verticalProperty]=this.verticalOffset+"px",e}},watch:{closed:function(e){e&&(this.visible=!1,this.$el.addEventListener("transitionend",this.destroyElement))}},methods:{destroyElement:function(){this.$el.removeEventListener("transitionend",this.destroyElement),this.$destroy(!0),this.$el.parentNode.removeChild(this.$el)},click:function(){"function"==typeof this.onClick&&this.onClick()},close:function(){this.closed=!0,"function"==typeof this.onClose&&this.onClose()},clearTimer:function(){clearTimeout(this.timer)},startTimer:function(){var e=this;this.duration>0&&(this.timer=setTimeout((function(){e.closed||e.close()}),this.duration))},keydown:function(e){46===e.keyCode||8===e.keyCode?this.clearTimer():27===e.keyCode?this.closed||this.close():this.startTimer()}},mounted:function(){var e=this;this.duration>0&&(this.timer=setTimeout((function(){e.closed||e.close()}),this.duration)),document.addEventListener("keydown",this.keydown)},beforeDestroy:function(){document.removeEventListener("keydown",this.keydown)}},ra,[],!1,null,null,null);aa.options.__file="packages/notification/src/main.vue";var oa=aa.exports,la=di.a.extend(oa),ua=void 0,ca=[],da=1,ha=function e(t){if(!di.a.prototype.$isServer){var i=(t=Be()({},t)).onClose,n="notification_"+da++,r=t.position||"top-right";t.onClose=function(){e.close(n,i)},ua=new la({data:t}),Object(Br.isVNode)(t.message)&&(ua.$slots.default=[t.message],t.message="REPLACED_BY_VNODE"),ua.id=n,ua.$mount(),document.body.appendChild(ua.$el),ua.visible=!0,ua.dom=ua.$el,ua.dom.style.zIndex=b.PopupManager.nextZIndex();var s=t.offset||0;return ca.filter((function(e){return e.position===r})).forEach((function(e){s+=e.$el.offsetHeight+16})),s+=16,ua.verticalOffset=s,ca.push(ua),ua}};["success","warning","info","error"].forEach((function(e){ha[e]=function(t){return("string"==typeof t||Object(Br.isVNode)(t))&&(t={message:t}),t.type=e,ha(t)}})),ha.close=function(e,t){var i=-1,n=ca.length,r=ca.filter((function(t,n){return t.id===e&&(i=n,!0)}))[0];if(r&&("function"==typeof t&&t(r),ca.splice(i,1),!(n<=1)))for(var s=r.position,a=r.dom.offsetHeight,o=i;o=0;e--)ca[e].close()};var pa=ha,fa=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{staticClass:"el-slider",class:{"is-vertical":e.vertical,"el-slider--with-input":e.showInput},attrs:{role:"slider","aria-valuemin":e.min,"aria-valuemax":e.max,"aria-orientation":e.vertical?"vertical":"horizontal","aria-disabled":e.sliderDisabled}},[e.showInput&&!e.range?i("el-input-number",{ref:"input",staticClass:"el-slider__input",attrs:{step:e.step,disabled:e.sliderDisabled,controls:e.showInputControls,min:e.min,max:e.max,debounce:e.debounce,size:e.inputSize},on:{change:e.emitChange},model:{value:e.firstValue,callback:function(t){e.firstValue=t},expression:"firstValue"}}):e._e(),i("div",{ref:"slider",staticClass:"el-slider__runway",class:{"show-input":e.showInput,disabled:e.sliderDisabled},style:e.runwayStyle,on:{click:e.onSliderClick}},[i("div",{staticClass:"el-slider__bar",style:e.barStyle}),i("slider-button",{ref:"button1",attrs:{vertical:e.vertical,"tooltip-class":e.tooltipClass},model:{value:e.firstValue,callback:function(t){e.firstValue=t},expression:"firstValue"}}),e.range?i("slider-button",{ref:"button2",attrs:{vertical:e.vertical,"tooltip-class":e.tooltipClass},model:{value:e.secondValue,callback:function(t){e.secondValue=t},expression:"secondValue"}}):e._e(),e._l(e.stops,(function(t,n){return e.showStops?i("div",{key:n,staticClass:"el-slider__stop",style:e.getStopStyle(t)}):e._e()})),e.markList.length>0?[i("div",e._l(e.markList,(function(t,n){return i("div",{key:n,staticClass:"el-slider__stop el-slider__marks-stop",style:e.getStopStyle(t.position)})})),0),i("div",{staticClass:"el-slider__marks"},e._l(e.markList,(function(t,n){return i("slider-marker",{key:n,style:e.getStopStyle(t.position),attrs:{mark:t.mark}})})),1)]:e._e()],2)],1)};fa._withStripped=!0;var ma=i(41),va=i.n(ma),ga=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{ref:"button",staticClass:"el-slider__button-wrapper",class:{hover:e.hovering,dragging:e.dragging},style:e.wrapperStyle,attrs:{tabindex:"0"},on:{mouseenter:e.handleMouseEnter,mouseleave:e.handleMouseLeave,mousedown:e.onButtonDown,touchstart:e.onButtonDown,focus:e.handleMouseEnter,blur:e.handleMouseLeave,keydown:[function(t){return!("button"in t)&&e._k(t.keyCode,"left",37,t.key,["Left","ArrowLeft"])||"button"in t&&0!==t.button?null:e.onLeftKeyDown(t)},function(t){return!("button"in t)&&e._k(t.keyCode,"right",39,t.key,["Right","ArrowRight"])||"button"in t&&2!==t.button?null:e.onRightKeyDown(t)},function(t){return!("button"in t)&&e._k(t.keyCode,"down",40,t.key,["Down","ArrowDown"])?null:(t.preventDefault(),e.onLeftKeyDown(t))},function(t){return!("button"in t)&&e._k(t.keyCode,"up",38,t.key,["Up","ArrowUp"])?null:(t.preventDefault(),e.onRightKeyDown(t))}]}},[i("el-tooltip",{ref:"tooltip",attrs:{placement:"top","popper-class":e.tooltipClass,disabled:!e.showTooltip}},[i("span",{attrs:{slot:"content"},slot:"content"},[e._v(e._s(e.formatValue))]),i("div",{staticClass:"el-slider__button",class:{hover:e.hovering,dragging:e.dragging}})])],1)};ga._withStripped=!0;var _a=r({name:"ElSliderButton",components:{ElTooltip:De.a},props:{value:{type:Number,default:0},vertical:{type:Boolean,default:!1},tooltipClass:String},data:function(){return{hovering:!1,dragging:!1,isClick:!1,startX:0,currentX:0,startY:0,currentY:0,startPosition:0,newPosition:null,oldValue:this.value}},computed:{disabled:function(){return this.$parent.sliderDisabled},max:function(){return this.$parent.max},min:function(){return this.$parent.min},step:function(){return this.$parent.step},showTooltip:function(){return this.$parent.showTooltip},precision:function(){return this.$parent.precision},currentPosition:function(){return(this.value-this.min)/(this.max-this.min)*100+"%"},enableFormat:function(){return this.$parent.formatTooltip instanceof Function},formatValue:function(){return this.enableFormat&&this.$parent.formatTooltip(this.value)||this.value},wrapperStyle:function(){return this.vertical?{bottom:this.currentPosition}:{left:this.currentPosition}}},watch:{dragging:function(e){this.$parent.dragging=e}},methods:{displayTooltip:function(){this.$refs.tooltip&&(this.$refs.tooltip.showPopper=!0)},hideTooltip:function(){this.$refs.tooltip&&(this.$refs.tooltip.showPopper=!1)},handleMouseEnter:function(){this.hovering=!0,this.displayTooltip()},handleMouseLeave:function(){this.hovering=!1,this.hideTooltip()},onButtonDown:function(e){this.disabled||(e.preventDefault(),this.onDragStart(e),window.addEventListener("mousemove",this.onDragging),window.addEventListener("touchmove",this.onDragging),window.addEventListener("mouseup",this.onDragEnd),window.addEventListener("touchend",this.onDragEnd),window.addEventListener("contextmenu",this.onDragEnd))},onLeftKeyDown:function(){this.disabled||(this.newPosition=parseFloat(this.currentPosition)-this.step/(this.max-this.min)*100,this.setPosition(this.newPosition),this.$parent.emitChange())},onRightKeyDown:function(){this.disabled||(this.newPosition=parseFloat(this.currentPosition)+this.step/(this.max-this.min)*100,this.setPosition(this.newPosition),this.$parent.emitChange())},onDragStart:function(e){this.dragging=!0,this.isClick=!0,"touchstart"===e.type&&(e.clientY=e.touches[0].clientY,e.clientX=e.touches[0].clientX),this.vertical?this.startY=e.clientY:this.startX=e.clientX,this.startPosition=parseFloat(this.currentPosition),this.newPosition=this.startPosition},onDragging:function(e){if(this.dragging){this.isClick=!1,this.displayTooltip(),this.$parent.resetSize();var t=0;"touchmove"===e.type&&(e.clientY=e.touches[0].clientY,e.clientX=e.touches[0].clientX),this.vertical?(this.currentY=e.clientY,t=(this.startY-this.currentY)/this.$parent.sliderSize*100):(this.currentX=e.clientX,t=(this.currentX-this.startX)/this.$parent.sliderSize*100),this.newPosition=this.startPosition+t,this.setPosition(this.newPosition)}},onDragEnd:function(){var e=this;this.dragging&&(setTimeout((function(){e.dragging=!1,e.hideTooltip(),e.isClick||(e.setPosition(e.newPosition),e.$parent.emitChange())}),0),window.removeEventListener("mousemove",this.onDragging),window.removeEventListener("touchmove",this.onDragging),window.removeEventListener("mouseup",this.onDragEnd),window.removeEventListener("touchend",this.onDragEnd),window.removeEventListener("contextmenu",this.onDragEnd))},setPosition:function(e){var t=this;if(null!==e&&!isNaN(e)){e<0?e=0:e>100&&(e=100);var i=100/((this.max-this.min)/this.step),n=Math.round(e/i)*i*(this.max-this.min)*.01+this.min;n=parseFloat(n.toFixed(this.precision)),this.$emit("input",n),this.$nextTick((function(){t.displayTooltip(),t.$refs.tooltip&&t.$refs.tooltip.updatePopper()})),this.dragging||this.value===this.oldValue||(this.oldValue=this.value)}}}},ga,[],!1,null,null,null);_a.options.__file="packages/slider/src/button.vue";var ba=_a.exports,ya={name:"ElMarker",props:{mark:{type:[String,Object]}},render:function(){var e=arguments[0],t="string"==typeof this.mark?this.mark:this.mark.label;return e("div",{class:"el-slider__marks-text",style:this.mark.style||{}},[t])}},xa=r({name:"ElSlider",mixins:[C.a],inject:{elForm:{default:""}},props:{min:{type:Number,default:0},max:{type:Number,default:100},step:{type:Number,default:1},value:{type:[Number,Array],default:0},showInput:{type:Boolean,default:!1},showInputControls:{type:Boolean,default:!0},inputSize:{type:String,default:"small"},showStops:{type:Boolean,default:!1},showTooltip:{type:Boolean,default:!0},formatTooltip:Function,disabled:{type:Boolean,default:!1},range:{type:Boolean,default:!1},vertical:{type:Boolean,default:!1},height:{type:String},debounce:{type:Number,default:300},label:{type:String},tooltipClass:String,marks:Object},components:{ElInputNumber:va.a,SliderButton:ba,SliderMarker:ya},data:function(){return{firstValue:null,secondValue:null,oldValue:null,dragging:!1,sliderSize:1}},watch:{value:function(e,t){this.dragging||Array.isArray(e)&&Array.isArray(t)&&e.every((function(e,i){return e===t[i]}))||this.setValues()},dragging:function(e){e||this.setValues()},firstValue:function(e){this.range?this.$emit("input",[this.minValue,this.maxValue]):this.$emit("input",e)},secondValue:function(){this.range&&this.$emit("input",[this.minValue,this.maxValue])},min:function(){this.setValues()},max:function(){this.setValues()}},methods:{valueChanged:function(){var e=this;return this.range?![this.minValue,this.maxValue].every((function(t,i){return t===e.oldValue[i]})):this.value!==this.oldValue},setValues:function(){if(this.min>this.max)console.error("[Element Error][Slider]min should not be greater than max.");else{var e=this.value;this.range&&Array.isArray(e)?e[1]this.max?this.$emit("input",[this.max,this.max]):e[0]this.max?this.$emit("input",[e[0],this.max]):(this.firstValue=e[0],this.secondValue=e[1],this.valueChanged()&&(this.dispatch("ElFormItem","el.form.change",[this.minValue,this.maxValue]),this.oldValue=e.slice())):this.range||"number"!=typeof e||isNaN(e)||(ethis.max?this.$emit("input",this.max):(this.firstValue=e,this.valueChanged()&&(this.dispatch("ElFormItem","el.form.change",e),this.oldValue=e)))}},setPosition:function(e){var t=this.min+e*(this.max-this.min)/100;if(this.range){var i=void 0;i=Math.abs(this.minValue-t)this.secondValue?"button1":"button2",this.$refs[i].setPosition(e)}else this.$refs.button1.setPosition(e)},onSliderClick:function(e){if(!this.sliderDisabled&&!this.dragging){if(this.resetSize(),this.vertical){var t=this.$refs.slider.getBoundingClientRect().bottom;this.setPosition((t-e.clientY)/this.sliderSize*100)}else{var i=this.$refs.slider.getBoundingClientRect().left;this.setPosition((e.clientX-i)/this.sliderSize*100)}this.emitChange()}},resetSize:function(){this.$refs.slider&&(this.sliderSize=this.$refs.slider["client"+(this.vertical?"Height":"Width")])},emitChange:function(){var e=this;this.$nextTick((function(){e.$emit("change",e.range?[e.minValue,e.maxValue]:e.value)}))},getStopStyle:function(e){return this.vertical?{bottom:e+"%"}:{left:e+"%"}}},computed:{stops:function(){var e=this;if(!this.showStops||this.min>this.max)return[];if(0===this.step)return[];for(var t=(this.max-this.min)/this.step,i=100*this.step/(this.max-this.min),n=[],r=1;r100*(e.maxValue-e.min)/(e.max-e.min)})):n.filter((function(t){return t>100*(e.firstValue-e.min)/(e.max-e.min)}))},markList:function(){var e=this;return this.marks?Object.keys(this.marks).map(parseFloat).sort((function(e,t){return e-t})).filter((function(t){return t<=e.max&&t>=e.min})).map((function(t){return{point:t,position:100*(t-e.min)/(e.max-e.min),mark:e.marks[t]}})):[]},minValue:function(){return Math.min(this.firstValue,this.secondValue)},maxValue:function(){return Math.max(this.firstValue,this.secondValue)},barSize:function(){return this.range?100*(this.maxValue-this.minValue)/(this.max-this.min)+"%":100*(this.firstValue-this.min)/(this.max-this.min)+"%"},barStart:function(){return this.range?100*(this.minValue-this.min)/(this.max-this.min)+"%":"0%"},precision:function(){var e=[this.min,this.max,this.step].map((function(e){var t=(""+e).split(".")[1];return t?t.length:0}));return Math.max.apply(null,e)},runwayStyle:function(){return this.vertical?{height:this.height}:{}},barStyle:function(){return this.vertical?{height:this.barSize,bottom:this.barStart}:{width:this.barSize,left:this.barStart}},sliderDisabled:function(){return this.disabled||(this.elForm||{}).disabled}},mounted:function(){var e=void 0;this.range?(Array.isArray(this.value)?(this.firstValue=Math.max(this.min,this.value[0]),this.secondValue=Math.min(this.max,this.value[1])):(this.firstValue=this.min,this.secondValue=this.max),this.oldValue=[this.firstValue,this.secondValue],e=this.firstValue+"-"+this.secondValue):("number"!=typeof this.value||isNaN(this.value)?this.firstValue=this.min:this.firstValue=Math.min(this.max,Math.max(this.min,this.value)),this.oldValue=this.firstValue,e=this.firstValue),this.$el.setAttribute("aria-valuetext",e),this.$el.setAttribute("aria-label",this.label?this.label:"slider between "+this.min+" and "+this.max),this.resetSize(),window.addEventListener("resize",this.resetSize)},beforeDestroy:function(){window.removeEventListener("resize",this.resetSize)}},fa,[],!1,null,null,null);xa.options.__file="packages/slider/src/main.vue";var ka=xa.exports;ka.install=function(e){e.component(ka.name,ka)};var wa=ka,Ca=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("transition",{attrs:{name:"el-loading-fade"},on:{"after-leave":e.handleAfterLeave}},[i("div",{directives:[{name:"show",rawName:"v-show",value:e.visible,expression:"visible"}],staticClass:"el-loading-mask",class:[e.customClass,{"is-fullscreen":e.fullscreen}],style:{backgroundColor:e.background||""}},[i("div",{staticClass:"el-loading-spinner"},[e.spinner?i("i",{class:e.spinner}):i("svg",{staticClass:"circular",attrs:{viewBox:"25 25 50 50"}},[i("circle",{staticClass:"path",attrs:{cx:"50",cy:"50",r:"20",fill:"none"}})]),e.text?i("p",{staticClass:"el-loading-text"},[e._v(e._s(e.text))]):e._e()])])])};Ca._withStripped=!0;var Sa=r({data:function(){return{text:null,spinner:null,background:null,fullscreen:!0,visible:!1,customClass:""}},methods:{handleAfterLeave:function(){this.$emit("after-leave")},setText:function(e){this.text=e}}},Ca,[],!1,null,null,null);Sa.options.__file="packages/loading/src/loading.vue";var Oa=Sa.exports,Da=i(32),Ea=i.n(Da),Ta=di.a.extend(Oa),$a={install:function(e){if(!e.prototype.$isServer){var t=function(t,n){n.value?e.nextTick((function(){n.modifiers.fullscreen?(t.originalPosition=Object(fe.getStyle)(document.body,"position"),t.originalOverflow=Object(fe.getStyle)(document.body,"overflow"),t.maskStyle.zIndex=b.PopupManager.nextZIndex(),Object(fe.addClass)(t.mask,"is-fullscreen"),i(document.body,t,n)):(Object(fe.removeClass)(t.mask,"is-fullscreen"),n.modifiers.body?(t.originalPosition=Object(fe.getStyle)(document.body,"position"),["top","left"].forEach((function(e){var i="top"===e?"scrollTop":"scrollLeft";t.maskStyle[e]=t.getBoundingClientRect()[e]+document.body[i]+document.documentElement[i]-parseInt(Object(fe.getStyle)(document.body,"margin-"+e),10)+"px"})),["height","width"].forEach((function(e){t.maskStyle[e]=t.getBoundingClientRect()[e]+"px"})),i(document.body,t,n)):(t.originalPosition=Object(fe.getStyle)(t,"position"),i(t,t,n)))})):(Ea()(t.instance,(function(e){if(t.instance.hiding){t.domVisible=!1;var i=n.modifiers.fullscreen||n.modifiers.body?document.body:t;Object(fe.removeClass)(i,"el-loading-parent--relative"),Object(fe.removeClass)(i,"el-loading-parent--hidden"),t.instance.hiding=!1}}),300,!0),t.instance.visible=!1,t.instance.hiding=!0)},i=function(t,i,n){i.domVisible||"none"===Object(fe.getStyle)(i,"display")||"hidden"===Object(fe.getStyle)(i,"visibility")?i.domVisible&&!0===i.instance.hiding&&(i.instance.visible=!0,i.instance.hiding=!1):(Object.keys(i.maskStyle).forEach((function(e){i.mask.style[e]=i.maskStyle[e]})),"absolute"!==i.originalPosition&&"fixed"!==i.originalPosition&&Object(fe.addClass)(t,"el-loading-parent--relative"),n.modifiers.fullscreen&&n.modifiers.lock&&Object(fe.addClass)(t,"el-loading-parent--hidden"),i.domVisible=!0,t.appendChild(i.mask),e.nextTick((function(){i.instance.hiding?i.instance.$emit("after-leave"):i.instance.visible=!0})),i.domInserted=!0)};e.directive("loading",{bind:function(e,i,n){var r=e.getAttribute("element-loading-text"),s=e.getAttribute("element-loading-spinner"),a=e.getAttribute("element-loading-background"),o=e.getAttribute("element-loading-custom-class"),l=n.context,u=new Ta({el:document.createElement("div"),data:{text:l&&l[r]||r,spinner:l&&l[s]||s,background:l&&l[a]||a,customClass:l&&l[o]||o,fullscreen:!!i.modifiers.fullscreen}});e.instance=u,e.mask=u.$el,e.maskStyle={},i.value&&t(e,i)},update:function(e,i){e.instance.setText(e.getAttribute("element-loading-text")),i.oldValue!==i.value&&t(e,i)},unbind:function(e,i){e.domInserted&&(e.mask&&e.mask.parentNode&&e.mask.parentNode.removeChild(e.mask),t(e,{value:!1,modifiers:i.modifiers})),e.instance&&e.instance.$destroy()}})}}},Pa=$a,ja=di.a.extend(Oa),Ma={text:null,fullscreen:!0,body:!1,lock:!1,customClass:""},Ia=void 0;ja.prototype.originalPosition="",ja.prototype.originalOverflow="",ja.prototype.close=function(){var e=this;this.fullscreen&&(Ia=void 0),Ea()(this,(function(t){var i=e.fullscreen||e.body?document.body:e.target;Object(fe.removeClass)(i,"el-loading-parent--relative"),Object(fe.removeClass)(i,"el-loading-parent--hidden"),e.$el&&e.$el.parentNode&&e.$el.parentNode.removeChild(e.$el),e.$destroy()}),300),this.visible=!1};var Aa=function(e,t,i){var n={};e.fullscreen?(i.originalPosition=Object(fe.getStyle)(document.body,"position"),i.originalOverflow=Object(fe.getStyle)(document.body,"overflow"),n.zIndex=b.PopupManager.nextZIndex()):e.body?(i.originalPosition=Object(fe.getStyle)(document.body,"position"),["top","left"].forEach((function(t){var i="top"===t?"scrollTop":"scrollLeft";n[t]=e.target.getBoundingClientRect()[t]+document.body[i]+document.documentElement[i]+"px"})),["height","width"].forEach((function(t){n[t]=e.target.getBoundingClientRect()[t]+"px"}))):i.originalPosition=Object(fe.getStyle)(t,"position"),Object.keys(n).forEach((function(e){i.$el.style[e]=n[e]}))},Na=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(!di.a.prototype.$isServer){if("string"==typeof(e=Be()({},Ma,e)).target&&(e.target=document.querySelector(e.target)),e.target=e.target||document.body,e.target!==document.body?e.fullscreen=!1:e.body=!0,e.fullscreen&&Ia)return Ia;var t=e.body?document.body:e.target,i=new ja({el:document.createElement("div"),data:e});return Aa(e,t,i),"absolute"!==i.originalPosition&&"fixed"!==i.originalPosition&&Object(fe.addClass)(t,"el-loading-parent--relative"),e.fullscreen&&e.lock&&Object(fe.addClass)(t,"el-loading-parent--hidden"),t.appendChild(i.$el),di.a.nextTick((function(){i.visible=!0})),e.fullscreen&&(Ia=i),i}},La={install:function(e){e.use(Pa),e.prototype.$loading=Na},directive:Pa,service:Na},Fa=function(){var e=this.$createElement;return(this._self._c||e)("i",{class:"el-icon-"+this.name})};Fa._withStripped=!0;var Va=r({name:"ElIcon",props:{name:String}},Fa,[],!1,null,null,null);Va.options.__file="packages/icon/src/icon.vue";var za=Va.exports;za.install=function(e){e.component(za.name,za)};var Ra=za,Ba={name:"ElRow",componentName:"ElRow",props:{tag:{type:String,default:"div"},gutter:Number,type:String,justify:{type:String,default:"start"},align:String},computed:{style:function(){var e={};return this.gutter&&(e.marginLeft="-"+this.gutter/2+"px",e.marginRight=e.marginLeft),e}},render:function(e){return e(this.tag,{class:["el-row","start"!==this.justify?"is-justify-"+this.justify:"",this.align?"is-align-"+this.align:"",{"el-row--flex":"flex"===this.type}],style:this.style},this.$slots.default)},install:function(e){e.component(Ba.name,Ba)}},Ha=Ba,Wa="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},qa={name:"ElCol",props:{span:{type:Number,default:24},tag:{type:String,default:"div"},offset:Number,pull:Number,push:Number,xs:[Number,Object],sm:[Number,Object],md:[Number,Object],lg:[Number,Object],xl:[Number,Object]},computed:{gutter:function(){for(var e=this.$parent;e&&"ElRow"!==e.$options.componentName;)e=e.$parent;return e?e.gutter:0}},render:function(e){var t=this,i=[],n={};return this.gutter&&(n.paddingLeft=this.gutter/2+"px",n.paddingRight=n.paddingLeft),["span","offset","pull","push"].forEach((function(e){(t[e]||0===t[e])&&i.push("span"!==e?"el-col-"+e+"-"+t[e]:"el-col-"+t[e])})),["xs","sm","md","lg","xl"].forEach((function(e){if("number"==typeof t[e])i.push("el-col-"+e+"-"+t[e]);else if("object"===Wa(t[e])){var n=t[e];Object.keys(n).forEach((function(t){i.push("span"!==t?"el-col-"+e+"-"+t+"-"+n[t]:"el-col-"+e+"-"+n[t])}))}})),e(this.tag,{class:["el-col",i],style:n},this.$slots.default)},install:function(e){e.component(qa.name,qa)}},Ua=qa,Ga=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("transition-group",{class:["el-upload-list","el-upload-list--"+e.listType,{"is-disabled":e.disabled}],attrs:{tag:"ul",name:"el-list"}},e._l(e.files,(function(t){return i("li",{key:t.uid,class:["el-upload-list__item","is-"+t.status,e.focusing?"focusing":""],attrs:{tabindex:"0"},on:{keydown:function(i){if(!("button"in i)&&e._k(i.keyCode,"delete",[8,46],i.key,["Backspace","Delete","Del"]))return null;!e.disabled&&e.$emit("remove",t)},focus:function(t){e.focusing=!0},blur:function(t){e.focusing=!1},click:function(t){e.focusing=!1}}},[e._t("default",["uploading"!==t.status&&["picture-card","picture"].indexOf(e.listType)>-1?i("img",{staticClass:"el-upload-list__item-thumbnail",attrs:{src:t.url,alt:""}}):e._e(),i("a",{staticClass:"el-upload-list__item-name",on:{click:function(i){e.handleClick(t)}}},[i("i",{staticClass:"el-icon-document"}),e._v(e._s(t.name)+"\n ")]),i("label",{staticClass:"el-upload-list__item-status-label"},[i("i",{class:{"el-icon-upload-success":!0,"el-icon-circle-check":"text"===e.listType,"el-icon-check":["picture-card","picture"].indexOf(e.listType)>-1}})]),e.disabled?e._e():i("i",{staticClass:"el-icon-close",on:{click:function(i){e.$emit("remove",t)}}}),e.disabled?e._e():i("i",{staticClass:"el-icon-close-tip"},[e._v(e._s(e.t("el.upload.deleteTip")))]),"uploading"===t.status?i("el-progress",{attrs:{type:"picture-card"===e.listType?"circle":"line","stroke-width":"picture-card"===e.listType?6:2,percentage:e.parsePercentage(t.percentage)}}):e._e(),"picture-card"===e.listType?i("span",{staticClass:"el-upload-list__item-actions"},[e.handlePreview&&"picture-card"===e.listType?i("span",{staticClass:"el-upload-list__item-preview",on:{click:function(i){e.handlePreview(t)}}},[i("i",{staticClass:"el-icon-zoom-in"})]):e._e(),e.disabled?e._e():i("span",{staticClass:"el-upload-list__item-delete",on:{click:function(i){e.$emit("remove",t)}}},[i("i",{staticClass:"el-icon-delete"})])]):e._e()],{file:t})],2)})),0)};Ga._withStripped=!0;var Ya=i(33),Ka=i.n(Ya),Xa=r({name:"ElUploadList",mixins:[f.a],data:function(){return{focusing:!1}},components:{ElProgress:Ka.a},props:{files:{type:Array,default:function(){return[]}},disabled:{type:Boolean,default:!1},handlePreview:Function,listType:String},methods:{parsePercentage:function(e){return parseInt(e,10)},handleClick:function(e){this.handlePreview&&this.handlePreview(e)}}},Ga,[],!1,null,null,null);Xa.options.__file="packages/upload/src/upload-list.vue";var Za=Xa.exports,Qa=i(24),Ja=i.n(Qa);var eo=function(){var e=this,t=e.$createElement;return(e._self._c||t)("div",{staticClass:"el-upload-dragger",class:{"is-dragover":e.dragover},on:{drop:function(t){return t.preventDefault(),e.onDrop(t)},dragover:function(t){return t.preventDefault(),e.onDragover(t)},dragleave:function(t){t.preventDefault(),e.dragover=!1}}},[e._t("default")],2)};eo._withStripped=!0;var to=r({name:"ElUploadDrag",props:{disabled:Boolean},inject:{uploader:{default:""}},data:function(){return{dragover:!1}},methods:{onDragover:function(){this.disabled||(this.dragover=!0)},onDrop:function(e){if(!this.disabled&&this.uploader){var t=this.uploader.accept;this.dragover=!1,t?this.$emit("file",[].slice.call(e.dataTransfer.files).filter((function(e){var i=e.type,n=e.name,r=n.indexOf(".")>-1?"."+n.split(".").pop():"",s=i.replace(/\/.*$/,"");return t.split(",").map((function(e){return e.trim()})).filter((function(e){return e})).some((function(e){return/\..+$/.test(e)?r===e:/\/\*$/.test(e)?s===e.replace(/\/\*$/,""):!!/^[^\/]+\/[^\/]+$/.test(e)&&i===e}))}))):this.$emit("file",e.dataTransfer.files)}}}},eo,[],!1,null,null,null);to.options.__file="packages/upload/src/upload-dragger.vue";var io=r({inject:["uploader"],components:{UploadDragger:to.exports},props:{type:String,action:{type:String,required:!0},name:{type:String,default:"file"},data:Object,headers:Object,withCredentials:Boolean,multiple:Boolean,accept:String,onStart:Function,onProgress:Function,onSuccess:Function,onError:Function,beforeUpload:Function,drag:Boolean,onPreview:{type:Function,default:function(){}},onRemove:{type:Function,default:function(){}},fileList:Array,autoUpload:Boolean,listType:String,httpRequest:{type:Function,default:function(e){if("undefined"!=typeof XMLHttpRequest){var t=new XMLHttpRequest,i=e.action;t.upload&&(t.upload.onprogress=function(t){t.total>0&&(t.percent=t.loaded/t.total*100),e.onProgress(t)});var n=new FormData;e.data&&Object.keys(e.data).forEach((function(t){n.append(t,e.data[t])})),n.append(e.filename,e.file,e.file.name),t.onerror=function(t){e.onError(t)},t.onload=function(){if(t.status<200||t.status>=300)return e.onError(function(e,t,i){var n=void 0;n=i.response?""+(i.response.error||i.response):i.responseText?""+i.responseText:"fail to post "+e+" "+i.status;var r=new Error(n);return r.status=i.status,r.method="post",r.url=e,r}(i,0,t));e.onSuccess(function(e){var t=e.responseText||e.response;if(!t)return t;try{return JSON.parse(t)}catch(e){return t}}(t))},t.open("post",i,!0),e.withCredentials&&"withCredentials"in t&&(t.withCredentials=!0);var r=e.headers||{};for(var s in r)r.hasOwnProperty(s)&&null!==r[s]&&t.setRequestHeader(s,r[s]);return t.send(n),t}}},disabled:Boolean,limit:Number,onExceed:Function},data:function(){return{mouseover:!1,reqs:{}}},methods:{isImage:function(e){return-1!==e.indexOf("image")},handleChange:function(e){var t=e.target.files;t&&this.uploadFiles(t)},uploadFiles:function(e){var t=this;if(this.limit&&this.fileList.length+e.length>this.limit)this.onExceed&&this.onExceed(e,this.fileList);else{var i=Array.prototype.slice.call(e);this.multiple||(i=i.slice(0,1)),0!==i.length&&i.forEach((function(e){t.onStart(e),t.autoUpload&&t.upload(e)}))}},upload:function(e){var t=this;if(this.$refs.input.value=null,!this.beforeUpload)return this.post(e);var i=this.beforeUpload(e);i&&i.then?i.then((function(i){var n=Object.prototype.toString.call(i);if("[object File]"===n||"[object Blob]"===n){for(var r in"[object Blob]"===n&&(i=new File([i],e.name,{type:e.type})),e)e.hasOwnProperty(r)&&(i[r]=e[r]);t.post(i)}else t.post(e)}),(function(){t.onRemove(null,e)})):!1!==i?this.post(e):this.onRemove(null,e)},abort:function(e){var t=this.reqs;if(e){var i=e;e.uid&&(i=e.uid),t[i]&&t[i].abort()}else Object.keys(t).forEach((function(e){t[e]&&t[e].abort(),delete t[e]}))},post:function(e){var t=this,i=e.uid,n={headers:this.headers,withCredentials:this.withCredentials,file:e,data:this.data,filename:this.name,action:this.action,onProgress:function(i){t.onProgress(i,e)},onSuccess:function(n){t.onSuccess(n,e),delete t.reqs[i]},onError:function(n){t.onError(n,e),delete t.reqs[i]}},r=this.httpRequest(n);this.reqs[i]=r,r&&r.then&&r.then(n.onSuccess,n.onError)},handleClick:function(){this.disabled||(this.$refs.input.value=null,this.$refs.input.click())},handleKeydown:function(e){e.target===e.currentTarget&&(13!==e.keyCode&&32!==e.keyCode||this.handleClick())}},render:function(e){var t=this.handleClick,i=this.drag,n=this.name,r=this.handleChange,s=this.multiple,a=this.accept,o=this.listType,l=this.uploadFiles,u=this.disabled,c={class:{"el-upload":!0},on:{click:t,keydown:this.handleKeydown}};return c.class["el-upload--"+o]=!0,e("div",Ja()([c,{attrs:{tabindex:"0"}}]),[i?e("upload-dragger",{attrs:{disabled:u},on:{file:l}},[this.$slots.default]):this.$slots.default,e("input",{class:"el-upload__input",attrs:{type:"file",name:n,multiple:s,accept:a},ref:"input",on:{change:r}})])}},void 0,void 0,!1,null,null,null);io.options.__file="packages/upload/src/upload.vue";var no=io.exports;function ro(){}var so=r({name:"ElUpload",mixins:[k.a],components:{ElProgress:Ka.a,UploadList:Za,Upload:no},provide:function(){return{uploader:this}},inject:{elForm:{default:""}},props:{action:{type:String,required:!0},headers:{type:Object,default:function(){return{}}},data:Object,multiple:Boolean,name:{type:String,default:"file"},drag:Boolean,dragger:Boolean,withCredentials:Boolean,showFileList:{type:Boolean,default:!0},accept:String,type:{type:String,default:"select"},beforeUpload:Function,beforeRemove:Function,onRemove:{type:Function,default:ro},onChange:{type:Function,default:ro},onPreview:{type:Function},onSuccess:{type:Function,default:ro},onProgress:{type:Function,default:ro},onError:{type:Function,default:ro},fileList:{type:Array,default:function(){return[]}},autoUpload:{type:Boolean,default:!0},listType:{type:String,default:"text"},httpRequest:Function,disabled:Boolean,limit:Number,onExceed:{type:Function,default:ro}},data:function(){return{uploadFiles:[],dragOver:!1,draging:!1,tempIndex:1}},computed:{uploadDisabled:function(){return this.disabled||(this.elForm||{}).disabled}},watch:{listType:function(e){"picture-card"!==e&&"picture"!==e||(this.uploadFiles=this.uploadFiles.map((function(e){if(!e.url&&e.raw)try{e.url=URL.createObjectURL(e.raw)}catch(e){console.error("[Element Error][Upload]",e)}return e})))},fileList:{immediate:!0,handler:function(e){var t=this;this.uploadFiles=e.map((function(e){return e.uid=e.uid||Date.now()+t.tempIndex++,e.status=e.status||"success",e}))}}},methods:{handleStart:function(e){e.uid=Date.now()+this.tempIndex++;var t={status:"ready",name:e.name,size:e.size,percentage:0,uid:e.uid,raw:e};if("picture-card"===this.listType||"picture"===this.listType)try{t.url=URL.createObjectURL(e)}catch(e){return void console.error("[Element Error][Upload]",e)}this.uploadFiles.push(t),this.onChange(t,this.uploadFiles)},handleProgress:function(e,t){var i=this.getFile(t);this.onProgress(e,i,this.uploadFiles),i.status="uploading",i.percentage=e.percent||0},handleSuccess:function(e,t){var i=this.getFile(t);i&&(i.status="success",i.response=e,this.onSuccess(e,i,this.uploadFiles),this.onChange(i,this.uploadFiles))},handleError:function(e,t){var i=this.getFile(t),n=this.uploadFiles;i.status="fail",n.splice(n.indexOf(i),1),this.onError(e,i,this.uploadFiles),this.onChange(i,this.uploadFiles)},handleRemove:function(e,t){var i=this;t&&(e=this.getFile(t));var n=function(){i.abort(e);var t=i.uploadFiles;t.splice(t.indexOf(e),1),i.onRemove(e,t)};if(this.beforeRemove){if("function"==typeof this.beforeRemove){var r=this.beforeRemove(e,this.uploadFiles);r&&r.then?r.then((function(){n()}),ro):!1!==r&&n()}}else n()},getFile:function(e){var t=this.uploadFiles,i=void 0;return t.every((function(t){return!(i=e.uid===t.uid?t:null)})),i},abort:function(e){this.$refs["upload-inner"].abort(e)},clearFiles:function(){this.uploadFiles=[]},submit:function(){var e=this;this.uploadFiles.filter((function(e){return"ready"===e.status})).forEach((function(t){e.$refs["upload-inner"].upload(t.raw)}))},getMigratingConfig:function(){return{props:{"default-file-list":"default-file-list is renamed to file-list.","show-upload-list":"show-upload-list is renamed to show-file-list.","thumbnail-mode":"thumbnail-mode has been deprecated, you can implement the same effect according to this case: http://element.eleme.io/#/zh-CN/component/upload#yong-hu-tou-xiang-shang-chuan"}}}},beforeDestroy:function(){this.uploadFiles.forEach((function(e){e.url&&0===e.url.indexOf("blob:")&&URL.revokeObjectURL(e.url)}))},render:function(e){var t=this,i=void 0;this.showFileList&&(i=e(Za,{attrs:{disabled:this.uploadDisabled,listType:this.listType,files:this.uploadFiles,handlePreview:this.onPreview},on:{remove:this.handleRemove}},[function(e){if(t.$scopedSlots.file)return t.$scopedSlots.file({file:e.file})}]));var n=e("upload",{props:{type:this.type,drag:this.drag,action:this.action,multiple:this.multiple,"before-upload":this.beforeUpload,"with-credentials":this.withCredentials,headers:this.headers,name:this.name,data:this.data,accept:this.accept,fileList:this.uploadFiles,autoUpload:this.autoUpload,listType:this.listType,disabled:this.uploadDisabled,limit:this.limit,"on-exceed":this.onExceed,"on-start":this.handleStart,"on-progress":this.handleProgress,"on-success":this.handleSuccess,"on-error":this.handleError,"on-preview":this.onPreview,"on-remove":this.handleRemove,"http-request":this.httpRequest},ref:"upload-inner"},[this.$slots.trigger||this.$slots.default]);return e("div",["picture-card"===this.listType?i:"",this.$slots.trigger?[n,this.$slots.default]:n,this.$slots.tip,"picture-card"!==this.listType?i:""])}},void 0,void 0,!1,null,null,null);so.options.__file="packages/upload/src/index.vue";var ao=so.exports;ao.install=function(e){e.component(ao.name,ao)};var oo=ao,lo=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{staticClass:"el-progress",class:["el-progress--"+e.type,e.status?"is-"+e.status:"",{"el-progress--without-text":!e.showText,"el-progress--text-inside":e.textInside}],attrs:{role:"progressbar","aria-valuenow":e.percentage,"aria-valuemin":"0","aria-valuemax":"100"}},["line"===e.type?i("div",{staticClass:"el-progress-bar"},[i("div",{staticClass:"el-progress-bar__outer",style:{height:e.strokeWidth+"px"}},[i("div",{staticClass:"el-progress-bar__inner",style:e.barStyle},[e.showText&&e.textInside?i("div",{staticClass:"el-progress-bar__innerText"},[e._v(e._s(e.content))]):e._e()])])]):i("div",{staticClass:"el-progress-circle",style:{height:e.width+"px",width:e.width+"px"}},[i("svg",{attrs:{viewBox:"0 0 100 100"}},[i("path",{staticClass:"el-progress-circle__track",style:e.trailPathStyle,attrs:{d:e.trackPath,stroke:"#e5e9f2","stroke-width":e.relativeStrokeWidth,fill:"none"}}),i("path",{staticClass:"el-progress-circle__path",style:e.circlePathStyle,attrs:{d:e.trackPath,stroke:e.stroke,fill:"none","stroke-linecap":e.strokeLinecap,"stroke-width":e.percentage?e.relativeStrokeWidth:0}})])]),e.showText&&!e.textInside?i("div",{staticClass:"el-progress__text",style:{fontSize:e.progressTextSize+"px"}},[e.status?i("i",{class:e.iconClass}):[e._v(e._s(e.content))]],2):e._e()])};lo._withStripped=!0;var uo=r({name:"ElProgress",props:{type:{type:String,default:"line",validator:function(e){return["line","circle","dashboard"].indexOf(e)>-1}},percentage:{type:Number,default:0,required:!0,validator:function(e){return e>=0&&e<=100}},status:{type:String,validator:function(e){return["success","exception","warning"].indexOf(e)>-1}},strokeWidth:{type:Number,default:6},strokeLinecap:{type:String,default:"round"},textInside:{type:Boolean,default:!1},width:{type:Number,default:126},showText:{type:Boolean,default:!0},color:{type:[String,Array,Function],default:""},format:Function},computed:{barStyle:function(){var e={};return e.width=this.percentage+"%",e.backgroundColor=this.getCurrentColor(this.percentage),e},relativeStrokeWidth:function(){return(this.strokeWidth/this.width*100).toFixed(1)},radius:function(){return"circle"===this.type||"dashboard"===this.type?parseInt(50-parseFloat(this.relativeStrokeWidth)/2,10):0},trackPath:function(){var e=this.radius,t="dashboard"===this.type;return"\n M 50 50\n m 0 "+(t?"":"-")+e+"\n a "+e+" "+e+" 0 1 1 0 "+(t?"-":"")+2*e+"\n a "+e+" "+e+" 0 1 1 0 "+(t?"":"-")+2*e+"\n "},perimeter:function(){return 2*Math.PI*this.radius},rate:function(){return"dashboard"===this.type?.75:1},strokeDashoffset:function(){return-1*this.perimeter*(1-this.rate)/2+"px"},trailPathStyle:function(){return{strokeDasharray:this.perimeter*this.rate+"px, "+this.perimeter+"px",strokeDashoffset:this.strokeDashoffset}},circlePathStyle:function(){return{strokeDasharray:this.perimeter*this.rate*(this.percentage/100)+"px, "+this.perimeter+"px",strokeDashoffset:this.strokeDashoffset,transition:"stroke-dasharray 0.6s ease 0s, stroke 0.6s ease"}},stroke:function(){var e=void 0;if(this.color)e=this.getCurrentColor(this.percentage);else switch(this.status){case"success":e="#13ce66";break;case"exception":e="#ff4949";break;case"warning":e="#e6a23c";break;default:e="#20a0ff"}return e},iconClass:function(){return"warning"===this.status?"el-icon-warning":"line"===this.type?"success"===this.status?"el-icon-circle-check":"el-icon-circle-close":"success"===this.status?"el-icon-check":"el-icon-close"},progressTextSize:function(){return"line"===this.type?12+.4*this.strokeWidth:.111111*this.width+2},content:function(){return"function"==typeof this.format?this.format(this.percentage)||"":this.percentage+"%"}},methods:{getCurrentColor:function(e){return"function"==typeof this.color?this.color(e):"string"==typeof this.color?this.color:this.getLevelColor(e)},getLevelColor:function(e){for(var t=this.getColorArray().sort((function(e,t){return e.percentage-t.percentage})),i=0;ie)return t[i].color;return t[t.length-1].color},getColorArray:function(){var e=this.color,t=100/e.length;return e.map((function(e,i){return"string"==typeof e?{color:e,percentage:(i+1)*t}:e}))}}},lo,[],!1,null,null,null);uo.options.__file="packages/progress/src/progress.vue";var co=uo.exports;co.install=function(e){e.component(co.name,co)};var ho=co,po=function(){var e=this.$createElement,t=this._self._c||e;return t("span",{staticClass:"el-spinner"},[t("svg",{staticClass:"el-spinner-inner",style:{width:this.radius/2+"px",height:this.radius/2+"px"},attrs:{viewBox:"0 0 50 50"}},[t("circle",{staticClass:"path",attrs:{cx:"25",cy:"25",r:"20",fill:"none",stroke:this.strokeColor,"stroke-width":this.strokeWidth}})])])};po._withStripped=!0;var fo=r({name:"ElSpinner",props:{type:String,radius:{type:Number,default:100},strokeWidth:{type:Number,default:5},strokeColor:{type:String,default:"#efefef"}}},po,[],!1,null,null,null);fo.options.__file="packages/spinner/src/spinner.vue";var mo=fo.exports;mo.install=function(e){e.component(mo.name,mo)};var vo=mo,go=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("transition",{attrs:{name:"el-message-fade"},on:{"after-leave":e.handleAfterLeave}},[i("div",{directives:[{name:"show",rawName:"v-show",value:e.visible,expression:"visible"}],class:["el-message",e.type&&!e.iconClass?"el-message--"+e.type:"",e.center?"is-center":"",e.showClose?"is-closable":"",e.customClass],style:e.positionStyle,attrs:{role:"alert"},on:{mouseenter:e.clearTimer,mouseleave:e.startTimer}},[e.iconClass?i("i",{class:e.iconClass}):i("i",{class:e.typeClass}),e._t("default",[e.dangerouslyUseHTMLString?i("p",{staticClass:"el-message__content",domProps:{innerHTML:e._s(e.message)}}):i("p",{staticClass:"el-message__content"},[e._v(e._s(e.message))])]),e.showClose?i("i",{staticClass:"el-message__closeBtn el-icon-close",on:{click:e.close}}):e._e()],2)])};go._withStripped=!0;var _o={success:"success",info:"info",warning:"warning",error:"error"},bo=r({data:function(){return{visible:!1,message:"",duration:3e3,type:"info",iconClass:"",customClass:"",onClose:null,showClose:!1,closed:!1,verticalOffset:20,timer:null,dangerouslyUseHTMLString:!1,center:!1}},computed:{typeClass:function(){return this.type&&!this.iconClass?"el-message__icon el-icon-"+_o[this.type]:""},positionStyle:function(){return{top:this.verticalOffset+"px"}}},watch:{closed:function(e){e&&(this.visible=!1)}},methods:{handleAfterLeave:function(){this.$destroy(!0),this.$el.parentNode.removeChild(this.$el)},close:function(){this.closed=!0,"function"==typeof this.onClose&&this.onClose(this)},clearTimer:function(){clearTimeout(this.timer)},startTimer:function(){var e=this;this.duration>0&&(this.timer=setTimeout((function(){e.closed||e.close()}),this.duration))},keydown:function(e){27===e.keyCode&&(this.closed||this.close())}},mounted:function(){this.startTimer(),document.addEventListener("keydown",this.keydown)},beforeDestroy:function(){document.removeEventListener("keydown",this.keydown)}},go,[],!1,null,null,null);bo.options.__file="packages/message/src/main.vue";var yo=bo.exports,xo=i(15),ko=Object.assign||function(e){for(var t=1;tSo.length-1))for(var a=n;a=0;e--)So[e].close()};var Eo=Do,To=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{staticClass:"el-badge"},[e._t("default"),i("transition",{attrs:{name:"el-zoom-in-center"}},[i("sup",{directives:[{name:"show",rawName:"v-show",value:!e.hidden&&(e.content||0===e.content||e.isDot),expression:"!hidden && (content || content === 0 || isDot)"}],staticClass:"el-badge__content",class:["el-badge__content--"+e.type,{"is-fixed":e.$slots.default,"is-dot":e.isDot}],domProps:{textContent:e._s(e.content)}})])],2)};To._withStripped=!0;var $o=r({name:"ElBadge",props:{value:[String,Number],max:Number,isDot:Boolean,hidden:Boolean,type:{type:String,validator:function(e){return["primary","success","warning","info","danger"].indexOf(e)>-1}}},computed:{content:function(){if(!this.isDot){var e=this.value,t=this.max;return"number"==typeof e&&"number"==typeof t&&t0&&e-1this.value,i=this.allowHalf&&this.pointerAtLeftHalf&&e-.5<=this.currentValue&&e>this.currentValue;return t||i},getIconStyle:function(e){var t=this.rateDisabled?this.disabledVoidColor:this.voidColor;return{color:e<=this.currentValue?this.activeColor:t}},selectValue:function(e){this.rateDisabled||(this.allowHalf&&this.pointerAtLeftHalf?(this.$emit("input",this.currentValue),this.$emit("change",this.currentValue)):(this.$emit("input",e),this.$emit("change",e)))},handleKey:function(e){if(!this.rateDisabled){var t=this.currentValue,i=e.keyCode;38===i||39===i?(this.allowHalf?t+=.5:t+=1,e.stopPropagation(),e.preventDefault()):37!==i&&40!==i||(this.allowHalf?t-=.5:t-=1,e.stopPropagation(),e.preventDefault()),t=(t=t<0?0:t)>this.max?this.max:t,this.$emit("input",t),this.$emit("change",t)}},setCurrentValue:function(e,t){if(!this.rateDisabled){if(this.allowHalf){var i=t.target;Object(fe.hasClass)(i,"el-rate__item")&&(i=i.querySelector(".el-rate__icon")),Object(fe.hasClass)(i,"el-rate__decimal")&&(i=i.parentNode),this.pointerAtLeftHalf=2*t.offsetX<=i.clientWidth,this.currentValue=this.pointerAtLeftHalf?e-.5:e}else this.currentValue=e;this.hoverIndex=e}},resetCurrentValue:function(){this.rateDisabled||(this.allowHalf&&(this.pointerAtLeftHalf=this.value!==Math.floor(this.value)),this.currentValue=this.value,this.hoverIndex=-1)}},created:function(){this.value||this.$emit("input",0)}},Lo,[],!1,null,null,null);Fo.options.__file="packages/rate/src/main.vue";var Vo=Fo.exports;Vo.install=function(e){e.component(Vo.name,Vo)};var zo=Vo,Ro=function(){var e=this.$createElement;return(this._self._c||e)("div",{staticClass:"el-steps",class:[!this.simple&&"el-steps--"+this.direction,this.simple&&"el-steps--simple"]},[this._t("default")],2)};Ro._withStripped=!0;var Bo=r({name:"ElSteps",mixins:[k.a],props:{space:[Number,String],active:Number,direction:{type:String,default:"horizontal"},alignCenter:Boolean,simple:Boolean,finishStatus:{type:String,default:"finish"},processStatus:{type:String,default:"process"}},data:function(){return{steps:[],stepOffset:0}},methods:{getMigratingConfig:function(){return{props:{center:"center is removed."}}}},watch:{active:function(e,t){this.$emit("change",e,t)},steps:function(e){e.forEach((function(e,t){e.index=t}))}}},Ro,[],!1,null,null,null);Bo.options.__file="packages/steps/src/steps.vue";var Ho=Bo.exports;Ho.install=function(e){e.component(Ho.name,Ho)};var Wo=Ho,qo=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{staticClass:"el-step",class:[!e.isSimple&&"is-"+e.$parent.direction,e.isSimple&&"is-simple",e.isLast&&!e.space&&!e.isCenter&&"is-flex",e.isCenter&&!e.isVertical&&!e.isSimple&&"is-center"],style:e.style},[i("div",{staticClass:"el-step__head",class:"is-"+e.currentStatus},[i("div",{staticClass:"el-step__line",style:e.isLast?"":{marginRight:e.$parent.stepOffset+"px"}},[i("i",{staticClass:"el-step__line-inner",style:e.lineStyle})]),i("div",{staticClass:"el-step__icon",class:"is-"+(e.icon?"icon":"text")},["success"!==e.currentStatus&&"error"!==e.currentStatus?e._t("icon",[e.icon?i("i",{staticClass:"el-step__icon-inner",class:[e.icon]}):e._e(),e.icon||e.isSimple?e._e():i("div",{staticClass:"el-step__icon-inner"},[e._v(e._s(e.index+1))])]):i("i",{staticClass:"el-step__icon-inner is-status",class:["el-icon-"+("success"===e.currentStatus?"check":"close")]})],2)]),i("div",{staticClass:"el-step__main"},[i("div",{ref:"title",staticClass:"el-step__title",class:["is-"+e.currentStatus]},[e._t("title",[e._v(e._s(e.title))])],2),e.isSimple?i("div",{staticClass:"el-step__arrow"}):i("div",{staticClass:"el-step__description",class:["is-"+e.currentStatus]},[e._t("description",[e._v(e._s(e.description))])],2)])])};qo._withStripped=!0;var Uo=r({name:"ElStep",props:{title:String,icon:String,description:String,status:String},data:function(){return{index:-1,lineStyle:{},internalStatus:""}},beforeCreate:function(){this.$parent.steps.push(this)},beforeDestroy:function(){var e=this.$parent.steps,t=e.indexOf(this);t>=0&&e.splice(t,1)},computed:{currentStatus:function(){return this.status||this.internalStatus},prevStatus:function(){var e=this.$parent.steps[this.index-1];return e?e.currentStatus:"wait"},isCenter:function(){return this.$parent.alignCenter},isVertical:function(){return"vertical"===this.$parent.direction},isSimple:function(){return this.$parent.simple},isLast:function(){var e=this.$parent;return e.steps[e.steps.length-1]===this},stepsCount:function(){return this.$parent.steps.length},space:function(){var e=this.isSimple,t=this.$parent.space;return e?"":t},style:function(){var e={},t=this.$parent.steps.length,i="number"==typeof this.space?this.space+"px":this.space?this.space:100/(t-(this.isCenter?0:1))+"%";return e.flexBasis=i,this.isVertical||(this.isLast?e.maxWidth=100/this.stepsCount+"%":e.marginRight=-this.$parent.stepOffset+"px"),e}},methods:{updateStatus:function(e){var t=this.$parent.$children[this.index-1];e>this.index?this.internalStatus=this.$parent.finishStatus:e===this.index&&"error"!==this.prevStatus?this.internalStatus=this.$parent.processStatus:this.internalStatus="wait",t&&t.calcProgress(this.internalStatus)},calcProgress:function(e){var t=100,i={};i.transitionDelay=150*this.index+"ms",e===this.$parent.processStatus?(this.currentStatus,t=0):"wait"===e&&(t=0,i.transitionDelay=-150*this.index+"ms"),i.borderWidth=t&&!this.isSimple?"1px":0,"vertical"===this.$parent.direction?i.height=t+"%":i.width=t+"%",this.lineStyle=i}},mounted:function(){var e=this,t=this.$watch("index",(function(i){e.$watch("$parent.active",e.updateStatus,{immediate:!0}),e.$watch("$parent.processStatus",(function(){var t=e.$parent.active;e.updateStatus(t)}),{immediate:!0}),t()}))}},qo,[],!1,null,null,null);Uo.options.__file="packages/steps/src/step.vue";var Go=Uo.exports;Go.install=function(e){e.component(Go.name,Go)};var Yo=Go,Ko=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{class:e.carouselClasses,on:{mouseenter:function(t){return t.stopPropagation(),e.handleMouseEnter(t)},mouseleave:function(t){return t.stopPropagation(),e.handleMouseLeave(t)}}},[i("div",{staticClass:"el-carousel__container",style:{height:e.height}},[e.arrowDisplay?i("transition",{attrs:{name:"carousel-arrow-left"}},[i("button",{directives:[{name:"show",rawName:"v-show",value:("always"===e.arrow||e.hover)&&(e.loop||e.activeIndex>0),expression:"(arrow === 'always' || hover) && (loop || activeIndex > 0)"}],staticClass:"el-carousel__arrow el-carousel__arrow--left",attrs:{type:"button"},on:{mouseenter:function(t){e.handleButtonEnter("left")},mouseleave:e.handleButtonLeave,click:function(t){t.stopPropagation(),e.throttledArrowClick(e.activeIndex-1)}}},[i("i",{staticClass:"el-icon-arrow-left"})])]):e._e(),e.arrowDisplay?i("transition",{attrs:{name:"carousel-arrow-right"}},[i("button",{directives:[{name:"show",rawName:"v-show",value:("always"===e.arrow||e.hover)&&(e.loop||e.activeIndex0}))},carouselClasses:function(){var e=["el-carousel","el-carousel--"+this.direction];return"card"===this.type&&e.push("el-carousel--card"),e},indicatorsClasses:function(){var e=["el-carousel__indicators","el-carousel__indicators--"+this.direction];return this.hasLabel&&e.push("el-carousel__indicators--labels"),"outside"!==this.indicatorPosition&&"card"!==this.type||e.push("el-carousel__indicators--outside"),e}},watch:{items:function(e){e.length>0&&this.setActiveItem(this.initialIndex)},activeIndex:function(e,t){this.resetItemPosition(t),t>-1&&this.$emit("change",e,t)},autoplay:function(e){e?this.startTimer():this.pauseTimer()},loop:function(){this.setActiveItem(this.activeIndex)},interval:function(){this.pauseTimer(),this.startTimer()}},methods:{handleMouseEnter:function(){this.hover=!0,this.pauseTimer()},handleMouseLeave:function(){this.hover=!1,this.startTimer()},itemInStage:function(e,t){var i=this.items.length;return t===i-1&&e.inStage&&this.items[0].active||e.inStage&&this.items[t+1]&&this.items[t+1].active?"left":!!(0===t&&e.inStage&&this.items[i-1].active||e.inStage&&this.items[t-1]&&this.items[t-1].active)&&"right"},handleButtonEnter:function(e){var t=this;"vertical"!==this.direction&&this.items.forEach((function(i,n){e===t.itemInStage(i,n)&&(i.hover=!0)}))},handleButtonLeave:function(){"vertical"!==this.direction&&this.items.forEach((function(e){e.hover=!1}))},updateItems:function(){this.items=this.$children.filter((function(e){return"ElCarouselItem"===e.$options.name}))},resetItemPosition:function(e){var t=this;this.items.forEach((function(i,n){i.translateItem(n,t.activeIndex,e)}))},playSlides:function(){this.activeIndex0&&(e=this.items.indexOf(t[0]))}if(e=Number(e),isNaN(e)||e!==Math.floor(e))console.warn("[Element Warn][Carousel]index must be an integer.");else{var i=this.items.length,n=this.activeIndex;this.activeIndex=e<0?this.loop?i-1:0:e>=i?this.loop?0:i-1:e,n===this.activeIndex&&this.resetItemPosition(n),this.resetTimer()}},prev:function(){this.setActiveItem(this.activeIndex-1)},next:function(){this.setActiveItem(this.activeIndex+1)},handleIndicatorClick:function(e){this.activeIndex=e},handleIndicatorHover:function(e){"hover"===this.trigger&&e!==this.activeIndex&&(this.activeIndex=e)}},created:function(){var e=this;this.throttledArrowClick=Zo()(300,!0,(function(t){e.setActiveItem(t)})),this.throttledIndicatorHover=Zo()(300,(function(t){e.handleIndicatorHover(t)}))},mounted:function(){var e=this;this.updateItems(),this.$nextTick((function(){Object(Lt.addResizeListener)(e.$el,e.resetItemPosition),e.initialIndex=0&&(e.activeIndex=e.initialIndex),e.startTimer()}))},beforeDestroy:function(){this.$el&&Object(Lt.removeResizeListener)(this.$el,this.resetItemPosition),this.pauseTimer()}},Ko,[],!1,null,null,null);Qo.options.__file="packages/carousel/src/main.vue";var Jo=Qo.exports;Jo.install=function(e){e.component(Jo.name,Jo)};var el=Jo,tl={vertical:{offset:"offsetHeight",scroll:"scrollTop",scrollSize:"scrollHeight",size:"height",key:"vertical",axis:"Y",client:"clientY",direction:"top"},horizontal:{offset:"offsetWidth",scroll:"scrollLeft",scrollSize:"scrollWidth",size:"width",key:"horizontal",axis:"X",client:"clientX",direction:"left"}};function il(e){var t=e.move,i=e.size,n=e.bar,r={},s="translate"+n.axis+"("+t+"%)";return r[n.size]=i,r.transform=s,r.msTransform=s,r.webkitTransform=s,r}var nl={name:"Bar",props:{vertical:Boolean,size:String,move:Number},computed:{bar:function(){return tl[this.vertical?"vertical":"horizontal"]},wrap:function(){return this.$parent.wrap}},render:function(e){var t=this.size,i=this.move,n=this.bar;return e("div",{class:["el-scrollbar__bar","is-"+n.key],on:{mousedown:this.clickTrackHandler}},[e("div",{ref:"thumb",class:"el-scrollbar__thumb",on:{mousedown:this.clickThumbHandler},style:il({size:t,move:i,bar:n})})])},methods:{clickThumbHandler:function(e){e.ctrlKey||2===e.button||(this.startDrag(e),this[this.bar.axis]=e.currentTarget[this.bar.offset]-(e[this.bar.client]-e.currentTarget.getBoundingClientRect()[this.bar.direction]))},clickTrackHandler:function(e){var t=100*(Math.abs(e.target.getBoundingClientRect()[this.bar.direction]-e[this.bar.client])-this.$refs.thumb[this.bar.offset]/2)/this.$el[this.bar.offset];this.wrap[this.bar.scroll]=t*this.wrap[this.bar.scrollSize]/100},startDrag:function(e){e.stopImmediatePropagation(),this.cursorDown=!0,Object(fe.on)(document,"mousemove",this.mouseMoveDocumentHandler),Object(fe.on)(document,"mouseup",this.mouseUpDocumentHandler),document.onselectstart=function(){return!1}},mouseMoveDocumentHandler:function(e){if(!1!==this.cursorDown){var t=this[this.bar.axis];if(t){var i=100*(-1*(this.$el.getBoundingClientRect()[this.bar.direction]-e[this.bar.client])-(this.$refs.thumb[this.bar.offset]-t))/this.$el[this.bar.offset];this.wrap[this.bar.scroll]=i*this.wrap[this.bar.scrollSize]/100}}},mouseUpDocumentHandler:function(e){this.cursorDown=!1,this[this.bar.axis]=0,Object(fe.off)(document,"mousemove",this.mouseMoveDocumentHandler),document.onselectstart=null}},destroyed:function(){Object(fe.off)(document,"mouseup",this.mouseUpDocumentHandler)}},rl={name:"ElScrollbar",components:{Bar:nl},props:{native:Boolean,wrapStyle:{},wrapClass:{},viewClass:{},viewStyle:{},noresize:Boolean,tag:{type:String,default:"div"}},data:function(){return{sizeWidth:"0",sizeHeight:"0",moveX:0,moveY:0}},computed:{wrap:function(){return this.$refs.wrap}},render:function(e){var t=Mi()(),i=this.wrapStyle;if(t){var n="-"+t+"px",r="margin-bottom: "+n+"; margin-right: "+n+";";Array.isArray(this.wrapStyle)?(i=Object(m.toObject)(this.wrapStyle)).marginRight=i.marginBottom=n:"string"==typeof this.wrapStyle?i+=r:i=r}var s=e(this.tag,{class:["el-scrollbar__view",this.viewClass],style:this.viewStyle,ref:"resize"},this.$slots.default),a=e("div",{ref:"wrap",style:i,on:{scroll:this.handleScroll},class:[this.wrapClass,"el-scrollbar__wrap",t?"":"el-scrollbar__wrap--hidden-default"]},[[s]]),o=void 0;return o=this.native?[e("div",{ref:"wrap",class:[this.wrapClass,"el-scrollbar__wrap"],style:i},[[s]])]:[a,e(nl,{attrs:{move:this.moveX,size:this.sizeWidth}}),e(nl,{attrs:{vertical:!0,move:this.moveY,size:this.sizeHeight}})],e("div",{class:"el-scrollbar"},o)},methods:{handleScroll:function(){var e=this.wrap;this.moveY=100*e.scrollTop/e.clientHeight,this.moveX=100*e.scrollLeft/e.clientWidth},update:function(){var e,t,i=this.wrap;i&&(e=100*i.clientHeight/i.scrollHeight,t=100*i.clientWidth/i.scrollWidth,this.sizeHeight=e<100?e+"%":"",this.sizeWidth=t<100?t+"%":"")}},mounted:function(){this.native||(this.$nextTick(this.update),!this.noresize&&Object(Lt.addResizeListener)(this.$refs.resize,this.update))},beforeDestroy:function(){this.native||!this.noresize&&Object(Lt.removeResizeListener)(this.$refs.resize,this.update)},install:function(e){e.component(rl.name,rl)}},sl=rl,al=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{directives:[{name:"show",rawName:"v-show",value:e.ready,expression:"ready"}],staticClass:"el-carousel__item",class:{"is-active":e.active,"el-carousel__item--card":"card"===e.$parent.type,"is-in-stage":e.inStage,"is-hover":e.hover,"is-animating":e.animating},style:e.itemStyle,on:{click:e.handleItemClick}},["card"===e.$parent.type?i("div",{directives:[{name:"show",rawName:"v-show",value:!e.active,expression:"!active"}],staticClass:"el-carousel__mask"}):e._e(),e._t("default")],2)};al._withStripped=!0;var ol=r({name:"ElCarouselItem",props:{name:String,label:{type:[String,Number],default:""}},data:function(){return{hover:!1,translate:0,scale:1,active:!1,ready:!1,inStage:!1,animating:!1}},methods:{processIndex:function(e,t,i){return 0===t&&e===i-1?-1:t===i-1&&0===e?i:e=i/2?i+1:e>t+1&&e-t>=i/2?-2:e},calcCardTranslate:function(e,t){var i=this.$parent.$el.offsetWidth;return this.inStage?i*(1.17*(e-t)+1)/4:e2&&this.$parent.loop&&(e=this.processIndex(e,t,s)),"card"===n)"vertical"===r&&console.warn("[Element Warn][Carousel]vertical direction is not supported in card mode"),this.inStage=Math.round(Math.abs(e-t))<=1,this.active=e===t,this.translate=this.calcCardTranslate(e,t),this.scale=this.active?1:.83;else{this.active=e===t;var a="vertical"===r;this.translate=this.calcTranslate(e,t,a),this.scale=1}this.ready=!0},handleItemClick:function(){var e=this.$parent;if(e&&"card"===e.type){var t=e.items.indexOf(this);e.setActiveItem(t)}}},computed:{parentDirection:function(){return this.$parent.direction},itemStyle:function(){var e={transform:("vertical"===this.parentDirection?"translateY":"translateX")+"("+this.translate+"px) scale("+this.scale+")"};return Object(m.autoprefixer)(e)}},created:function(){this.$parent&&this.$parent.updateItems()},destroyed:function(){this.$parent&&this.$parent.updateItems()}},al,[],!1,null,null,null);ol.options.__file="packages/carousel/src/item.vue";var ll=ol.exports;ll.install=function(e){e.component(ll.name,ll)};var ul=ll,cl=function(){var e=this.$createElement;return(this._self._c||e)("div",{staticClass:"el-collapse",attrs:{role:"tablist","aria-multiselectable":"true"}},[this._t("default")],2)};cl._withStripped=!0;var dl=r({name:"ElCollapse",componentName:"ElCollapse",props:{accordion:Boolean,value:{type:[Array,String,Number],default:function(){return[]}}},data:function(){return{activeNames:[].concat(this.value)}},provide:function(){return{collapse:this}},watch:{value:function(e){this.activeNames=[].concat(e)}},methods:{setActiveNames:function(e){e=[].concat(e);var t=this.accordion?e[0]:e;this.activeNames=e,this.$emit("input",t),this.$emit("change",t)},handleItemClick:function(e){if(this.accordion)this.setActiveNames(!this.activeNames[0]&&0!==this.activeNames[0]||this.activeNames[0]!==e.name?e.name:"");else{var t=this.activeNames.slice(0),i=t.indexOf(e.name);i>-1?t.splice(i,1):t.push(e.name),this.setActiveNames(t)}}},created:function(){this.$on("item-click",this.handleItemClick)}},cl,[],!1,null,null,null);dl.options.__file="packages/collapse/src/collapse.vue";var hl=dl.exports;hl.install=function(e){e.component(hl.name,hl)};var pl=hl,fl=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{staticClass:"el-collapse-item",class:{"is-active":e.isActive,"is-disabled":e.disabled}},[i("div",{attrs:{role:"tab","aria-expanded":e.isActive,"aria-controls":"el-collapse-content-"+e.id,"aria-describedby":"el-collapse-content-"+e.id}},[i("div",{staticClass:"el-collapse-item__header",class:{focusing:e.focusing,"is-active":e.isActive},attrs:{role:"button",id:"el-collapse-head-"+e.id,tabindex:e.disabled?void 0:0},on:{click:e.handleHeaderClick,keyup:function(t){return!("button"in t)&&e._k(t.keyCode,"space",32,t.key,[" ","Spacebar"])&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:(t.stopPropagation(),e.handleEnterClick(t))},focus:e.handleFocus,blur:function(t){e.focusing=!1}}},[e._t("title",[e._v(e._s(e.title))]),i("i",{staticClass:"el-collapse-item__arrow el-icon-arrow-right",class:{"is-active":e.isActive}})],2)]),i("el-collapse-transition",[i("div",{directives:[{name:"show",rawName:"v-show",value:e.isActive,expression:"isActive"}],staticClass:"el-collapse-item__wrap",attrs:{role:"tabpanel","aria-hidden":!e.isActive,"aria-labelledby":"el-collapse-head-"+e.id,id:"el-collapse-content-"+e.id}},[i("div",{staticClass:"el-collapse-item__content"},[e._t("default")],2)])])],1)};fl._withStripped=!0;var ml=r({name:"ElCollapseItem",componentName:"ElCollapseItem",mixins:[C.a],components:{ElCollapseTransition:be.a},data:function(){return{contentWrapStyle:{height:"auto",display:"block"},contentHeight:0,focusing:!1,isClick:!1,id:Object(m.generateId)()}},inject:["collapse"],props:{title:String,name:{type:[String,Number],default:function(){return this._uid}},disabled:Boolean},computed:{isActive:function(){return this.collapse.activeNames.indexOf(this.name)>-1}},methods:{handleFocus:function(){var e=this;setTimeout((function(){e.isClick?e.isClick=!1:e.focusing=!0}),50)},handleHeaderClick:function(){this.disabled||(this.dispatch("ElCollapse","item-click",this),this.focusing=!1,this.isClick=!0)},handleEnterClick:function(){this.dispatch("ElCollapse","item-click",this)}}},fl,[],!1,null,null,null);ml.options.__file="packages/collapse/src/collapse-item.vue";var vl=ml.exports;vl.install=function(e){e.component(vl.name,vl)};var gl=vl,_l=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{directives:[{name:"clickoutside",rawName:"v-clickoutside",value:function(){return e.toggleDropDownVisible(!1)},expression:"() => toggleDropDownVisible(false)"}],ref:"reference",class:["el-cascader",e.realSize&&"el-cascader--"+e.realSize,{"is-disabled":e.isDisabled}],on:{mouseenter:function(t){e.inputHover=!0},mouseleave:function(t){e.inputHover=!1},click:function(){return e.toggleDropDownVisible(!e.readonly||void 0)},keydown:e.handleKeyDown}},[i("el-input",{ref:"input",class:{"is-focus":e.dropDownVisible},attrs:{size:e.realSize,placeholder:e.placeholder,readonly:e.readonly,disabled:e.isDisabled,"validate-event":!1},on:{focus:e.handleFocus,blur:e.handleBlur,input:e.handleInput},model:{value:e.multiple?e.presentText:e.inputValue,callback:function(t){e.multiple?e.presentText:e.inputValue=t},expression:"multiple ? presentText : inputValue"}},[i("template",{slot:"suffix"},[e.clearBtnVisible?i("i",{key:"clear",staticClass:"el-input__icon el-icon-circle-close",on:{click:function(t){return t.stopPropagation(),e.handleClear(t)}}}):i("i",{key:"arrow-down",class:["el-input__icon","el-icon-arrow-down",e.dropDownVisible&&"is-reverse"],on:{click:function(t){t.stopPropagation(),e.toggleDropDownVisible()}}})])],2),e.multiple?i("div",{staticClass:"el-cascader__tags"},[e._l(e.presentTags,(function(t){return i("el-tag",{key:t.key,attrs:{type:"info",size:e.tagSize,hit:t.hitState,closable:t.closable,"disable-transitions":""},on:{close:function(i){e.deleteTag(t)}}},[i("span",[e._v(e._s(t.text))])])})),e.filterable&&!e.isDisabled?i("input",{directives:[{name:"model",rawName:"v-model.trim",value:e.inputValue,expression:"inputValue",modifiers:{trim:!0}}],staticClass:"el-cascader__search-input",attrs:{type:"text",placeholder:e.presentTags.length?"":e.placeholder},domProps:{value:e.inputValue},on:{input:[function(t){t.target.composing||(e.inputValue=t.target.value.trim())},function(t){return e.handleInput(e.inputValue,t)}],click:function(t){t.stopPropagation(),e.toggleDropDownVisible(!0)},keydown:function(t){return!("button"in t)&&e._k(t.keyCode,"delete",[8,46],t.key,["Backspace","Delete","Del"])?null:e.handleDelete(t)},blur:function(t){e.$forceUpdate()}}}):e._e()],2):e._e(),i("transition",{attrs:{name:"el-zoom-in-top"},on:{"after-leave":e.handleDropdownLeave}},[i("div",{directives:[{name:"show",rawName:"v-show",value:e.dropDownVisible,expression:"dropDownVisible"}],ref:"popper",class:["el-popper","el-cascader__dropdown",e.popperClass]},[i("el-cascader-panel",{directives:[{name:"show",rawName:"v-show",value:!e.filtering,expression:"!filtering"}],ref:"panel",attrs:{options:e.options,props:e.config,border:!1,"render-label":e.$scopedSlots.default},on:{"expand-change":e.handleExpandChange,close:function(t){e.toggleDropDownVisible(!1)}},model:{value:e.checkedValue,callback:function(t){e.checkedValue=t},expression:"checkedValue"}}),e.filterable?i("el-scrollbar",{directives:[{name:"show",rawName:"v-show",value:e.filtering,expression:"filtering"}],ref:"suggestionPanel",staticClass:"el-cascader__suggestion-panel",attrs:{tag:"ul","view-class":"el-cascader__suggestion-list"},nativeOn:{keydown:function(t){return e.handleSuggestionKeyDown(t)}}},[e.suggestions.length?e._l(e.suggestions,(function(t,n){return i("li",{key:t.uid,class:["el-cascader__suggestion-item",t.checked&&"is-checked"],attrs:{tabindex:-1},on:{click:function(t){e.handleSuggestionClick(n)}}},[i("span",[e._v(e._s(t.text))]),t.checked?i("i",{staticClass:"el-icon-check"}):e._e()])})):e._t("empty",[i("li",{staticClass:"el-cascader__empty-text"},[e._v(e._s(e.t("el.cascader.noMatch")))])])],2):e._e()],1)])],1)};_l._withStripped=!0;var bl=i(42),yl=i.n(bl),xl=i(34),kl=i.n(xl),wl=kl.a.keys,Cl={expandTrigger:{newProp:"expandTrigger",type:String},changeOnSelect:{newProp:"checkStrictly",type:Boolean},hoverThreshold:{newProp:"hoverThreshold",type:Number}},Sl={props:{placement:{type:String,default:"bottom-start"},appendToBody:A.a.props.appendToBody,visibleArrow:{type:Boolean,default:!0},arrowOffset:A.a.props.arrowOffset,offset:A.a.props.offset,boundariesPadding:A.a.props.boundariesPadding,popperOptions:A.a.props.popperOptions},methods:A.a.methods,data:A.a.data,beforeDestroy:A.a.beforeDestroy},Ol={medium:36,small:32,mini:28},Dl=r({name:"ElCascader",directives:{Clickoutside:j.a},mixins:[Sl,C.a,f.a,k.a],inject:{elForm:{default:""},elFormItem:{default:""}},components:{ElInput:h.a,ElTag:Nt.a,ElScrollbar:L.a,ElCascaderPanel:yl.a},props:{value:{},options:Array,props:Object,size:String,placeholder:{type:String,default:function(){return Object(Ir.t)("el.cascader.placeholder")}},disabled:Boolean,clearable:Boolean,filterable:Boolean,filterMethod:Function,separator:{type:String,default:" / "},showAllLevels:{type:Boolean,default:!0},collapseTags:Boolean,debounce:{type:Number,default:300},beforeFilter:{type:Function,default:function(){return function(){}}},popperClass:String},data:function(){return{dropDownVisible:!1,checkedValue:this.value,inputHover:!1,inputValue:null,presentText:null,presentTags:[],checkedNodes:[],filtering:!1,suggestions:[],inputInitialHeight:0,pressDeleteCount:0}},computed:{realSize:function(){var e=(this.elFormItem||{}).elFormItemSize;return this.size||e||(this.$ELEMENT||{}).size},tagSize:function(){return["small","mini"].indexOf(this.realSize)>-1?"mini":"small"},isDisabled:function(){return this.disabled||(this.elForm||{}).disabled},config:function(){var e=this.props||{},t=this.$attrs;return Object.keys(Cl).forEach((function(i){var n=Cl[i],r=n.newProp,s=n.type,a=t[i]||t[Object(m.kebabCase)(i)];Object(He.isDef)(i)&&!Object(He.isDef)(e[r])&&(s===Boolean&&""===a&&(a=!0),e[r]=a)})),e},multiple:function(){return this.config.multiple},leafOnly:function(){return!this.config.checkStrictly},readonly:function(){return!this.filterable||this.multiple},clearBtnVisible:function(){return!(!this.clearable||this.isDisabled||this.filtering||!this.inputHover)&&(this.multiple?!!this.checkedNodes.filter((function(e){return!e.isDisabled})).length:!!this.presentText)},panel:function(){return this.$refs.panel}},watch:{disabled:function(){this.computePresentContent()},value:function(e){Object(m.isEqual)(e,this.checkedValue)||(this.checkedValue=e,this.computePresentContent())},checkedValue:function(e){var t=this.value,i=this.dropDownVisible,n=this.config,r=n.checkStrictly,s=n.multiple;Object(m.isEqual)(e,t)&&!Object(xo.isUndefined)(t)||(this.computePresentContent(),s||r||!i||this.toggleDropDownVisible(!1),this.$emit("input",e),this.$emit("change",e),this.dispatch("ElFormItem","el.form.change",[e]))},options:{handler:function(){this.$nextTick(this.computePresentContent)},deep:!0},presentText:function(e){this.inputValue=e},presentTags:function(e,t){this.multiple&&(e.length||t.length)&&this.$nextTick(this.updateStyle)},filtering:function(e){this.$nextTick(this.updatePopper)}},mounted:function(){var e=this,t=this.$refs.input;t&&t.$el&&(this.inputInitialHeight=t.$el.offsetHeight||Ol[this.realSize]||40),this.isEmptyValue(this.value)||this.computePresentContent(),this.filterHandler=$()(this.debounce,(function(){var t=e.inputValue;if(t){var i=e.beforeFilter(t);i&&i.then?i.then(e.getSuggestions):!1!==i?e.getSuggestions():e.filtering=!1}else e.filtering=!1})),Object(Lt.addResizeListener)(this.$el,this.updateStyle)},beforeDestroy:function(){Object(Lt.removeResizeListener)(this.$el,this.updateStyle)},methods:{getMigratingConfig:function(){return{props:{"expand-trigger":"expand-trigger is removed, use `props.expandTrigger` instead.","change-on-select":"change-on-select is removed, use `props.checkStrictly` instead.","hover-threshold":"hover-threshold is removed, use `props.hoverThreshold` instead"},events:{"active-item-change":"active-item-change is renamed to expand-change"}}},toggleDropDownVisible:function(e){var t=this;if(!this.isDisabled){var i=this.dropDownVisible,n=this.$refs.input;(e=Object(He.isDef)(e)?e:!i)!==i&&(this.dropDownVisible=e,e&&this.$nextTick((function(){t.updatePopper(),t.panel.scrollIntoView()})),n.$refs.input.setAttribute("aria-expanded",e),this.$emit("visible-change",e))}},handleDropdownLeave:function(){this.filtering=!1,this.inputValue=this.presentText,this.doDestroy()},handleKeyDown:function(e){switch(e.keyCode){case wl.enter:this.toggleDropDownVisible();break;case wl.down:this.toggleDropDownVisible(!0),this.focusFirstNode(),e.preventDefault();break;case wl.esc:case wl.tab:this.toggleDropDownVisible(!1)}},handleFocus:function(e){this.$emit("focus",e)},handleBlur:function(e){this.$emit("blur",e)},handleInput:function(e,t){!this.dropDownVisible&&this.toggleDropDownVisible(!0),t&&t.isComposing||(e?this.filterHandler():this.filtering=!1)},handleClear:function(){this.presentText="",this.panel.clearCheckedNodes()},handleExpandChange:function(e){this.$nextTick(this.updatePopper.bind(this)),this.$emit("expand-change",e),this.$emit("active-item-change",e)},focusFirstNode:function(){var e=this;this.$nextTick((function(){var t=e.filtering,i=e.$refs,n=i.popper,r=i.suggestionPanel,s=null;t&&r?s=r.$el.querySelector(".el-cascader__suggestion-item"):s=n.querySelector(".el-cascader-menu").querySelector('.el-cascader-node[tabindex="-1"]');s&&(s.focus(),!t&&s.click())}))},computePresentContent:function(){var e=this;this.$nextTick((function(){e.config.multiple?(e.computePresentTags(),e.presentText=e.presentTags.length?" ":null):e.computePresentText()}))},isEmptyValue:function(e){var t=this.multiple,i=this.panel.config.emitPath;return!(!t&&!i)&&Object(m.isEmpty)(e)},computePresentText:function(){var e=this.checkedValue,t=this.config;if(!this.isEmptyValue(e)){var i=this.panel.getNodeByValue(e);if(i&&(t.checkStrictly||i.isLeaf))return void(this.presentText=i.getText(this.showAllLevels,this.separator))}this.presentText=null},computePresentTags:function(){var e=this.isDisabled,t=this.leafOnly,i=this.showAllLevels,n=this.separator,r=this.collapseTags,s=this.getCheckedNodes(t),a=[],o=function(t){return{node:t,key:t.uid,text:t.getText(i,n),hitState:!1,closable:!e&&!t.isDisabled}};if(s.length){var l=s[0],u=s.slice(1),c=u.length;a.push(o(l)),c&&(r?a.push({key:-1,text:"+ "+c,closable:!1}):u.forEach((function(e){return a.push(o(e))})))}this.checkedNodes=s,this.presentTags=a},getSuggestions:function(){var e=this,t=this.filterMethod;Object(xo.isFunction)(t)||(t=function(e,t){return e.text.includes(t)});var i=this.panel.getFlattedNodes(this.leafOnly).filter((function(i){return!i.isDisabled&&(i.text=i.getText(e.showAllLevels,e.separator)||"",t(i,e.inputValue))}));this.multiple?this.presentTags.forEach((function(e){e.hitState=!1})):i.forEach((function(t){t.checked=Object(m.isEqual)(e.checkedValue,t.getValueByOption())})),this.filtering=!0,this.suggestions=i,this.$nextTick(this.updatePopper)},handleSuggestionKeyDown:function(e){var t=e.keyCode,i=e.target;switch(t){case wl.enter:i.click();break;case wl.up:var n=i.previousElementSibling;n&&n.focus();break;case wl.down:var r=i.nextElementSibling;r&&r.focus();break;case wl.esc:case wl.tab:this.toggleDropDownVisible(!1)}},handleDelete:function(){var e=this.inputValue,t=this.pressDeleteCount,i=this.presentTags,n=i[i.length-1];this.pressDeleteCount=e?0:t+1,n&&this.pressDeleteCount&&(n.hitState?this.deleteTag(n):n.hitState=!0)},handleSuggestionClick:function(e){var t=this.multiple,i=this.suggestions[e];if(t){var n=i.checked;i.doCheck(!n),this.panel.calculateMultiCheckedValue()}else this.checkedValue=i.getValueByOption(),this.toggleDropDownVisible(!1)},deleteTag:function(e){var t=this.checkedValue,i=e.node.getValueByOption(),n=t.find((function(e){return Object(m.isEqual)(e,i)}));this.checkedValue=t.filter((function(e){return!Object(m.isEqual)(e,i)})),this.$emit("remove-tag",n)},updateStyle:function(){var e=this.$el,t=this.inputInitialHeight;if(!this.$isServer&&e){var i=this.$refs.suggestionPanel,n=e.querySelector(".el-input__inner");if(n){var r=e.querySelector(".el-cascader__tags"),s=null;if(i&&(s=i.$el))s.querySelector(".el-cascader__suggestion-list").style.minWidth=n.offsetWidth+"px";if(r){var a=Math.round(r.getBoundingClientRect().height),o=Math.max(a+6,t)+"px";n.style.height=o,this.dropDownVisible&&this.updatePopper()}}}},getCheckedNodes:function(e){return this.panel.getCheckedNodes(e)}}},_l,[],!1,null,null,null);Dl.options.__file="packages/cascader/src/cascader.vue";var El=Dl.exports;El.install=function(e){e.component(El.name,El)};var Tl=El,$l=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{directives:[{name:"clickoutside",rawName:"v-clickoutside",value:e.hide,expression:"hide"}],class:["el-color-picker",e.colorDisabled?"is-disabled":"",e.colorSize?"el-color-picker--"+e.colorSize:""]},[e.colorDisabled?i("div",{staticClass:"el-color-picker__mask"}):e._e(),i("div",{staticClass:"el-color-picker__trigger",on:{click:e.handleTrigger}},[i("span",{staticClass:"el-color-picker__color",class:{"is-alpha":e.showAlpha}},[i("span",{staticClass:"el-color-picker__color-inner",style:{backgroundColor:e.displayedColor}}),e.value||e.showPanelColor?e._e():i("span",{staticClass:"el-color-picker__empty el-icon-close"})]),i("span",{directives:[{name:"show",rawName:"v-show",value:e.value||e.showPanelColor,expression:"value || showPanelColor"}],staticClass:"el-color-picker__icon el-icon-arrow-down"})]),i("picker-dropdown",{ref:"dropdown",class:["el-color-picker__panel",e.popperClass||""],attrs:{color:e.color,"show-alpha":e.showAlpha,predefine:e.predefine},on:{pick:e.confirmValue,clear:e.clearValue},model:{value:e.showPicker,callback:function(t){e.showPicker=t},expression:"showPicker"}})],1)};$l._withStripped=!0;var Pl="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};var jl=function(e,t,i){return[e,t*i/((e=(2-t)*i)<1?e:2-e)||0,e/2]},Ml=function(e,t){var i;"string"==typeof(i=e)&&-1!==i.indexOf(".")&&1===parseFloat(i)&&(e="100%");var n=function(e){return"string"==typeof e&&-1!==e.indexOf("%")}(e);return e=Math.min(t,Math.max(0,parseFloat(e))),n&&(e=parseInt(e*t,10)/100),Math.abs(e-t)<1e-6?1:e%t/parseFloat(t)},Il={10:"A",11:"B",12:"C",13:"D",14:"E",15:"F"},Al={A:10,B:11,C:12,D:13,E:14,F:15},Nl=function(e){return 2===e.length?16*(Al[e[0].toUpperCase()]||+e[0])+(Al[e[1].toUpperCase()]||+e[1]):Al[e[1].toUpperCase()]||+e[1]},Ll=function(e,t,i){e=Ml(e,255),t=Ml(t,255),i=Ml(i,255);var n,r=Math.max(e,t,i),s=Math.min(e,t,i),a=void 0,o=r,l=r-s;if(n=0===r?0:l/r,r===s)a=0;else{switch(r){case e:a=(t-i)/l+(t2?parseFloat(e):parseInt(e,10)}));if(4===n.length?this._alpha=Math.floor(100*parseFloat(n[3])):3===n.length&&(this._alpha=100),n.length>=3){var r=function(e,t,i){i/=100;var n=t/=100,r=Math.max(i,.01);return t*=(i*=2)<=1?i:2-i,n*=r<=1?r:2-r,{h:e,s:100*(0===i?2*n/(r+n):2*t/(i+t)),v:100*((i+t)/2)}}(n[0],n[1],n[2]);i(r.h,r.s,r.v)}}else if(-1!==e.indexOf("hsv")){var s=e.replace(/hsva|hsv|\(|\)/gm,"").split(/\s|,/g).filter((function(e){return""!==e})).map((function(e,t){return t>2?parseFloat(e):parseInt(e,10)}));4===s.length?this._alpha=Math.floor(100*parseFloat(s[3])):3===s.length&&(this._alpha=100),s.length>=3&&i(s[0],s[1],s[2])}else if(-1!==e.indexOf("rgb")){var a=e.replace(/rgba|rgb|\(|\)/gm,"").split(/\s|,/g).filter((function(e){return""!==e})).map((function(e,t){return t>2?parseFloat(e):parseInt(e,10)}));if(4===a.length?this._alpha=Math.floor(100*parseFloat(a[3])):3===a.length&&(this._alpha=100),a.length>=3){var o=Ll(a[0],a[1],a[2]);i(o.h,o.s,o.v)}}else if(-1!==e.indexOf("#")){var l=e.replace("#","").trim();if(!/^(?:[0-9a-fA-F]{3}){1,2}|[0-9a-fA-F]{8}$/.test(l))return;var u=void 0,c=void 0,d=void 0;3===l.length?(u=Nl(l[0]+l[0]),c=Nl(l[1]+l[1]),d=Nl(l[2]+l[2])):6!==l.length&&8!==l.length||(u=Nl(l.substring(0,2)),c=Nl(l.substring(2,4)),d=Nl(l.substring(4,6))),8===l.length?this._alpha=Math.floor(Nl(l.substring(6))/255*100):3!==l.length&&6!==l.length||(this._alpha=100);var h=Ll(u,c,d);i(h.h,h.s,h.v)}},e.prototype.compare=function(e){return Math.abs(e._hue-this._hue)<2&&Math.abs(e._saturation-this._saturation)<1&&Math.abs(e._value-this._value)<1&&Math.abs(e._alpha-this._alpha)<1},e.prototype.doOnChange=function(){var e=this._hue,t=this._saturation,i=this._value,n=this._alpha,r=this.format;if(this.enableAlpha)switch(r){case"hsl":var s=jl(e,t/100,i/100);this.value="hsla("+e+", "+Math.round(100*s[1])+"%, "+Math.round(100*s[2])+"%, "+n/100+")";break;case"hsv":this.value="hsva("+e+", "+Math.round(t)+"%, "+Math.round(i)+"%, "+n/100+")";break;default:var a=Fl(e,t,i),o=a.r,l=a.g,u=a.b;this.value="rgba("+o+", "+l+", "+u+", "+n/100+")"}else switch(r){case"hsl":var c=jl(e,t/100,i/100);this.value="hsl("+e+", "+Math.round(100*c[1])+"%, "+Math.round(100*c[2])+"%)";break;case"hsv":this.value="hsv("+e+", "+Math.round(t)+"%, "+Math.round(i)+"%)";break;case"rgb":var d=Fl(e,t,i),h=d.r,p=d.g,f=d.b;this.value="rgb("+h+", "+p+", "+f+")";break;default:this.value=function(e){var t=e.r,i=e.g,n=e.b,r=function(e){e=Math.min(Math.round(e),255);var t=Math.floor(e/16),i=e%16;return""+(Il[t]||t)+(Il[i]||i)};return isNaN(t)||isNaN(i)||isNaN(n)?"":"#"+r(t)+r(i)+r(n)}(Fl(e,t,i))}},e}(),zl=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("transition",{attrs:{name:"el-zoom-in-top"},on:{"after-leave":e.doDestroy}},[i("div",{directives:[{name:"show",rawName:"v-show",value:e.showPopper,expression:"showPopper"}],staticClass:"el-color-dropdown"},[i("div",{staticClass:"el-color-dropdown__main-wrapper"},[i("hue-slider",{ref:"hue",staticStyle:{float:"right"},attrs:{color:e.color,vertical:""}}),i("sv-panel",{ref:"sl",attrs:{color:e.color}})],1),e.showAlpha?i("alpha-slider",{ref:"alpha",attrs:{color:e.color}}):e._e(),e.predefine?i("predefine",{attrs:{color:e.color,colors:e.predefine}}):e._e(),i("div",{staticClass:"el-color-dropdown__btns"},[i("span",{staticClass:"el-color-dropdown__value"},[i("el-input",{attrs:{"validate-event":!1,size:"mini"},on:{blur:e.handleConfirm},nativeOn:{keyup:function(t){return!("button"in t)&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:e.handleConfirm(t)}},model:{value:e.customInput,callback:function(t){e.customInput=t},expression:"customInput"}})],1),i("el-button",{staticClass:"el-color-dropdown__link-btn",attrs:{size:"mini",type:"text"},on:{click:function(t){e.$emit("clear")}}},[e._v("\n "+e._s(e.t("el.colorpicker.clear"))+"\n ")]),i("el-button",{staticClass:"el-color-dropdown__btn",attrs:{plain:"",size:"mini"},on:{click:e.confirmValue}},[e._v("\n "+e._s(e.t("el.colorpicker.confirm"))+"\n ")])],1)],1)])};zl._withStripped=!0;var Rl=function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"el-color-svpanel",style:{backgroundColor:this.background}},[t("div",{staticClass:"el-color-svpanel__white"}),t("div",{staticClass:"el-color-svpanel__black"}),t("div",{staticClass:"el-color-svpanel__cursor",style:{top:this.cursorTop+"px",left:this.cursorLeft+"px"}},[t("div")])])};Rl._withStripped=!0;var Bl=!1,Hl=function(e,t){if(!di.a.prototype.$isServer){var i=function(e){t.drag&&t.drag(e)},n=function e(n){document.removeEventListener("mousemove",i),document.removeEventListener("mouseup",e),document.onselectstart=null,document.ondragstart=null,Bl=!1,t.end&&t.end(n)};e.addEventListener("mousedown",(function(e){Bl||(document.onselectstart=function(){return!1},document.ondragstart=function(){return!1},document.addEventListener("mousemove",i),document.addEventListener("mouseup",n),Bl=!0,t.start&&t.start(e))}))}},Wl=r({name:"el-sl-panel",props:{color:{required:!0}},computed:{colorValue:function(){return{hue:this.color.get("hue"),value:this.color.get("value")}}},watch:{colorValue:function(){this.update()}},methods:{update:function(){var e=this.color.get("saturation"),t=this.color.get("value"),i=this.$el,n=i.clientWidth,r=i.clientHeight;this.cursorLeft=e*n/100,this.cursorTop=(100-t)*r/100,this.background="hsl("+this.color.get("hue")+", 100%, 50%)"},handleDrag:function(e){var t=this.$el.getBoundingClientRect(),i=e.clientX-t.left,n=e.clientY-t.top;i=Math.max(0,i),i=Math.min(i,t.width),n=Math.max(0,n),n=Math.min(n,t.height),this.cursorLeft=i,this.cursorTop=n,this.color.set({saturation:i/t.width*100,value:100-n/t.height*100})}},mounted:function(){var e=this;Hl(this.$el,{drag:function(t){e.handleDrag(t)},end:function(t){e.handleDrag(t)}}),this.update()},data:function(){return{cursorTop:0,cursorLeft:0,background:"hsl(0, 100%, 50%)"}}},Rl,[],!1,null,null,null);Wl.options.__file="packages/color-picker/src/components/sv-panel.vue";var ql=Wl.exports,Ul=function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"el-color-hue-slider",class:{"is-vertical":this.vertical}},[t("div",{ref:"bar",staticClass:"el-color-hue-slider__bar",on:{click:this.handleClick}}),t("div",{ref:"thumb",staticClass:"el-color-hue-slider__thumb",style:{left:this.thumbLeft+"px",top:this.thumbTop+"px"}})])};Ul._withStripped=!0;var Gl=r({name:"el-color-hue-slider",props:{color:{required:!0},vertical:Boolean},data:function(){return{thumbLeft:0,thumbTop:0}},computed:{hueValue:function(){return this.color.get("hue")}},watch:{hueValue:function(){this.update()}},methods:{handleClick:function(e){var t=this.$refs.thumb;e.target!==t&&this.handleDrag(e)},handleDrag:function(e){var t=this.$el.getBoundingClientRect(),i=this.$refs.thumb,n=void 0;if(this.vertical){var r=e.clientY-t.top;r=Math.min(r,t.height-i.offsetHeight/2),r=Math.max(i.offsetHeight/2,r),n=Math.round((r-i.offsetHeight/2)/(t.height-i.offsetHeight)*360)}else{var s=e.clientX-t.left;s=Math.min(s,t.width-i.offsetWidth/2),s=Math.max(i.offsetWidth/2,s),n=Math.round((s-i.offsetWidth/2)/(t.width-i.offsetWidth)*360)}this.color.set("hue",n)},getThumbLeft:function(){if(this.vertical)return 0;var e=this.$el,t=this.color.get("hue");if(!e)return 0;var i=this.$refs.thumb;return Math.round(t*(e.offsetWidth-i.offsetWidth/2)/360)},getThumbTop:function(){if(!this.vertical)return 0;var e=this.$el,t=this.color.get("hue");if(!e)return 0;var i=this.$refs.thumb;return Math.round(t*(e.offsetHeight-i.offsetHeight/2)/360)},update:function(){this.thumbLeft=this.getThumbLeft(),this.thumbTop=this.getThumbTop()}},mounted:function(){var e=this,t=this.$refs,i=t.bar,n=t.thumb,r={drag:function(t){e.handleDrag(t)},end:function(t){e.handleDrag(t)}};Hl(i,r),Hl(n,r),this.update()}},Ul,[],!1,null,null,null);Gl.options.__file="packages/color-picker/src/components/hue-slider.vue";var Yl=Gl.exports,Kl=function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"el-color-alpha-slider",class:{"is-vertical":this.vertical}},[t("div",{ref:"bar",staticClass:"el-color-alpha-slider__bar",style:{background:this.background},on:{click:this.handleClick}}),t("div",{ref:"thumb",staticClass:"el-color-alpha-slider__thumb",style:{left:this.thumbLeft+"px",top:this.thumbTop+"px"}})])};Kl._withStripped=!0;var Xl=r({name:"el-color-alpha-slider",props:{color:{required:!0},vertical:Boolean},watch:{"color._alpha":function(){this.update()},"color.value":function(){this.update()}},methods:{handleClick:function(e){var t=this.$refs.thumb;e.target!==t&&this.handleDrag(e)},handleDrag:function(e){var t=this.$el.getBoundingClientRect(),i=this.$refs.thumb;if(this.vertical){var n=e.clientY-t.top;n=Math.max(i.offsetHeight/2,n),n=Math.min(n,t.height-i.offsetHeight/2),this.color.set("alpha",Math.round((n-i.offsetHeight/2)/(t.height-i.offsetHeight)*100))}else{var r=e.clientX-t.left;r=Math.max(i.offsetWidth/2,r),r=Math.min(r,t.width-i.offsetWidth/2),this.color.set("alpha",Math.round((r-i.offsetWidth/2)/(t.width-i.offsetWidth)*100))}},getThumbLeft:function(){if(this.vertical)return 0;var e=this.$el,t=this.color._alpha;if(!e)return 0;var i=this.$refs.thumb;return Math.round(t*(e.offsetWidth-i.offsetWidth/2)/100)},getThumbTop:function(){if(!this.vertical)return 0;var e=this.$el,t=this.color._alpha;if(!e)return 0;var i=this.$refs.thumb;return Math.round(t*(e.offsetHeight-i.offsetHeight/2)/100)},getBackground:function(){if(this.color&&this.color.value){var e=this.color.toRgb(),t=e.r,i=e.g,n=e.b;return"linear-gradient(to right, rgba("+t+", "+i+", "+n+", 0) 0%, rgba("+t+", "+i+", "+n+", 1) 100%)"}return null},update:function(){this.thumbLeft=this.getThumbLeft(),this.thumbTop=this.getThumbTop(),this.background=this.getBackground()}},data:function(){return{thumbLeft:0,thumbTop:0,background:null}},mounted:function(){var e=this,t=this.$refs,i=t.bar,n=t.thumb,r={drag:function(t){e.handleDrag(t)},end:function(t){e.handleDrag(t)}};Hl(i,r),Hl(n,r),this.update()}},Kl,[],!1,null,null,null);Xl.options.__file="packages/color-picker/src/components/alpha-slider.vue";var Zl=Xl.exports,Ql=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{staticClass:"el-color-predefine"},[i("div",{staticClass:"el-color-predefine__colors"},e._l(e.rgbaColors,(function(t,n){return i("div",{key:e.colors[n],staticClass:"el-color-predefine__color-selector",class:{selected:t.selected,"is-alpha":t._alpha<100},on:{click:function(t){e.handleSelect(n)}}},[i("div",{style:{"background-color":t.value}})])})),0)])};Ql._withStripped=!0;var Jl=r({props:{colors:{type:Array,required:!0},color:{required:!0}},data:function(){return{rgbaColors:this.parseColors(this.colors,this.color)}},methods:{handleSelect:function(e){this.color.fromString(this.colors[e])},parseColors:function(e,t){return e.map((function(e){var i=new Vl;return i.enableAlpha=!0,i.format="rgba",i.fromString(e),i.selected=i.value===t.value,i}))}},watch:{"$parent.currentColor":function(e){var t=new Vl;t.fromString(e),this.rgbaColors.forEach((function(e){e.selected=t.compare(e)}))},colors:function(e){this.rgbaColors=this.parseColors(e,this.color)},color:function(e){this.rgbaColors=this.parseColors(this.colors,e)}}},Ql,[],!1,null,null,null);Jl.options.__file="packages/color-picker/src/components/predefine.vue";var eu=Jl.exports,tu=r({name:"el-color-picker-dropdown",mixins:[A.a,f.a],components:{SvPanel:ql,HueSlider:Yl,AlphaSlider:Zl,ElInput:h.a,ElButton:U.a,Predefine:eu},props:{color:{required:!0},showAlpha:Boolean,predefine:Array},data:function(){return{customInput:""}},computed:{currentColor:function(){var e=this.$parent;return e.value||e.showPanelColor?e.color.value:""}},methods:{confirmValue:function(){this.$emit("pick")},handleConfirm:function(){this.color.fromString(this.customInput)}},mounted:function(){this.$parent.popperElm=this.popperElm=this.$el,this.referenceElm=this.$parent.$el},watch:{showPopper:function(e){var t=this;!0===e&&this.$nextTick((function(){var e=t.$refs,i=e.sl,n=e.hue,r=e.alpha;i&&i.update(),n&&n.update(),r&&r.update()}))},currentColor:{immediate:!0,handler:function(e){this.customInput=e}}}},zl,[],!1,null,null,null);tu.options.__file="packages/color-picker/src/components/picker-dropdown.vue";var iu=tu.exports,nu=r({name:"ElColorPicker",mixins:[C.a],props:{value:String,showAlpha:Boolean,colorFormat:String,disabled:Boolean,size:String,popperClass:String,predefine:Array},inject:{elForm:{default:""},elFormItem:{default:""}},directives:{Clickoutside:j.a},computed:{displayedColor:function(){return this.value||this.showPanelColor?this.displayedRgb(this.color,this.showAlpha):"transparent"},_elFormItemSize:function(){return(this.elFormItem||{}).elFormItemSize},colorSize:function(){return this.size||this._elFormItemSize||(this.$ELEMENT||{}).size},colorDisabled:function(){return this.disabled||(this.elForm||{}).disabled}},watch:{value:function(e){e?e&&e!==this.color.value&&this.color.fromString(e):this.showPanelColor=!1},color:{deep:!0,handler:function(){this.showPanelColor=!0}},displayedColor:function(e){if(this.showPicker){var t=new Vl({enableAlpha:this.showAlpha,format:this.colorFormat});t.fromString(this.value),e!==this.displayedRgb(t,this.showAlpha)&&this.$emit("active-change",e)}}},methods:{handleTrigger:function(){this.colorDisabled||(this.showPicker=!this.showPicker)},confirmValue:function(){var e=this.color.value;this.$emit("input",e),this.$emit("change",e),this.dispatch("ElFormItem","el.form.change",e),this.showPicker=!1},clearValue:function(){this.$emit("input",null),this.$emit("change",null),null!==this.value&&this.dispatch("ElFormItem","el.form.change",null),this.showPanelColor=!1,this.showPicker=!1,this.resetColor()},hide:function(){this.showPicker=!1,this.resetColor()},resetColor:function(){var e=this;this.$nextTick((function(t){e.value?e.color.fromString(e.value):e.showPanelColor=!1}))},displayedRgb:function(e,t){if(!(e instanceof Vl))throw Error("color should be instance of Color Class");var i=e.toRgb(),n=i.r,r=i.g,s=i.b;return t?"rgba("+n+", "+r+", "+s+", "+e.get("alpha")/100+")":"rgb("+n+", "+r+", "+s+")"}},mounted:function(){var e=this.value;e&&this.color.fromString(e),this.popperElm=this.$refs.dropdown.$el},data:function(){return{color:new Vl({enableAlpha:this.showAlpha,format:this.colorFormat}),showPicker:!1,showPanelColor:!1}},components:{PickerDropdown:iu}},$l,[],!1,null,null,null);nu.options.__file="packages/color-picker/src/main.vue";var ru=nu.exports;ru.install=function(e){e.component(ru.name,ru)};var su=ru,au=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{staticClass:"el-transfer"},[i("transfer-panel",e._b({ref:"leftPanel",attrs:{data:e.sourceData,title:e.titles[0]||e.t("el.transfer.titles.0"),"default-checked":e.leftDefaultChecked,placeholder:e.filterPlaceholder||e.t("el.transfer.filterPlaceholder")},on:{"checked-change":e.onSourceCheckedChange}},"transfer-panel",e.$props,!1),[e._t("left-footer")],2),i("div",{staticClass:"el-transfer__buttons"},[i("el-button",{class:["el-transfer__button",e.hasButtonTexts?"is-with-texts":""],attrs:{type:"primary",disabled:0===e.rightChecked.length},nativeOn:{click:function(t){return e.addToLeft(t)}}},[i("i",{staticClass:"el-icon-arrow-left"}),void 0!==e.buttonTexts[0]?i("span",[e._v(e._s(e.buttonTexts[0]))]):e._e()]),i("el-button",{class:["el-transfer__button",e.hasButtonTexts?"is-with-texts":""],attrs:{type:"primary",disabled:0===e.leftChecked.length},nativeOn:{click:function(t){return e.addToRight(t)}}},[void 0!==e.buttonTexts[1]?i("span",[e._v(e._s(e.buttonTexts[1]))]):e._e(),i("i",{staticClass:"el-icon-arrow-right"})])],1),i("transfer-panel",e._b({ref:"rightPanel",attrs:{data:e.targetData,title:e.titles[1]||e.t("el.transfer.titles.1"),"default-checked":e.rightDefaultChecked,placeholder:e.filterPlaceholder||e.t("el.transfer.filterPlaceholder")},on:{"checked-change":e.onTargetCheckedChange}},"transfer-panel",e.$props,!1),[e._t("right-footer")],2)],1)};au._withStripped=!0;var ou=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{staticClass:"el-transfer-panel"},[i("p",{staticClass:"el-transfer-panel__header"},[i("el-checkbox",{attrs:{indeterminate:e.isIndeterminate},on:{change:e.handleAllCheckedChange},model:{value:e.allChecked,callback:function(t){e.allChecked=t},expression:"allChecked"}},[e._v("\n "+e._s(e.title)+"\n "),i("span",[e._v(e._s(e.checkedSummary))])])],1),i("div",{class:["el-transfer-panel__body",e.hasFooter?"is-with-footer":""]},[e.filterable?i("el-input",{staticClass:"el-transfer-panel__filter",attrs:{size:"small",placeholder:e.placeholder},nativeOn:{mouseenter:function(t){e.inputHover=!0},mouseleave:function(t){e.inputHover=!1}},model:{value:e.query,callback:function(t){e.query=t},expression:"query"}},[i("i",{class:["el-input__icon","el-icon-"+e.inputIcon],attrs:{slot:"prefix"},on:{click:e.clearQuery},slot:"prefix"})]):e._e(),i("el-checkbox-group",{directives:[{name:"show",rawName:"v-show",value:!e.hasNoMatch&&e.data.length>0,expression:"!hasNoMatch && data.length > 0"}],staticClass:"el-transfer-panel__list",class:{"is-filterable":e.filterable},model:{value:e.checked,callback:function(t){e.checked=t},expression:"checked"}},e._l(e.filteredData,(function(t){return i("el-checkbox",{key:t[e.keyProp],staticClass:"el-transfer-panel__item",attrs:{label:t[e.keyProp],disabled:t[e.disabledProp]}},[i("option-content",{attrs:{option:t}})],1)})),1),i("p",{directives:[{name:"show",rawName:"v-show",value:e.hasNoMatch,expression:"hasNoMatch"}],staticClass:"el-transfer-panel__empty"},[e._v(e._s(e.t("el.transfer.noMatch")))]),i("p",{directives:[{name:"show",rawName:"v-show",value:0===e.data.length&&!e.hasNoMatch,expression:"data.length === 0 && !hasNoMatch"}],staticClass:"el-transfer-panel__empty"},[e._v(e._s(e.t("el.transfer.noData")))])],1),e.hasFooter?i("p",{staticClass:"el-transfer-panel__footer"},[e._t("default")],2):e._e()])};ou._withStripped=!0;var lu=r({mixins:[f.a],name:"ElTransferPanel",componentName:"ElTransferPanel",components:{ElCheckboxGroup:Wi.a,ElCheckbox:ri.a,ElInput:h.a,OptionContent:{props:{option:Object},render:function(e){var t=function e(t){return"ElTransferPanel"===t.$options.componentName?t:t.$parent?e(t.$parent):t}(this),i=t.$parent||t;return t.renderContent?t.renderContent(e,this.option):i.$scopedSlots.default?i.$scopedSlots.default({option:this.option}):e("span",[this.option[t.labelProp]||this.option[t.keyProp]])}}},props:{data:{type:Array,default:function(){return[]}},renderContent:Function,placeholder:String,title:String,filterable:Boolean,format:Object,filterMethod:Function,defaultChecked:Array,props:Object},data:function(){return{checked:[],allChecked:!1,query:"",inputHover:!1,checkChangeByUser:!0}},watch:{checked:function(e,t){if(this.updateAllChecked(),this.checkChangeByUser){var i=e.concat(t).filter((function(i){return-1===e.indexOf(i)||-1===t.indexOf(i)}));this.$emit("checked-change",e,i)}else this.$emit("checked-change",e),this.checkChangeByUser=!0},data:function(){var e=this,t=[],i=this.filteredData.map((function(t){return t[e.keyProp]}));this.checked.forEach((function(e){i.indexOf(e)>-1&&t.push(e)})),this.checkChangeByUser=!1,this.checked=t},checkableData:function(){this.updateAllChecked()},defaultChecked:{immediate:!0,handler:function(e,t){var i=this;if(!t||e.length!==t.length||!e.every((function(e){return t.indexOf(e)>-1}))){var n=[],r=this.checkableData.map((function(e){return e[i.keyProp]}));e.forEach((function(e){r.indexOf(e)>-1&&n.push(e)})),this.checkChangeByUser=!1,this.checked=n}}}},computed:{filteredData:function(){var e=this;return this.data.filter((function(t){return"function"==typeof e.filterMethod?e.filterMethod(e.query,t):(t[e.labelProp]||t[e.keyProp].toString()).toLowerCase().indexOf(e.query.toLowerCase())>-1}))},checkableData:function(){var e=this;return this.filteredData.filter((function(t){return!t[e.disabledProp]}))},checkedSummary:function(){var e=this.checked.length,t=this.data.length,i=this.format,n=i.noChecked,r=i.hasChecked;return n&&r?e>0?r.replace(/\${checked}/g,e).replace(/\${total}/g,t):n.replace(/\${total}/g,t):e+"/"+t},isIndeterminate:function(){var e=this.checked.length;return e>0&&e0&&0===this.filteredData.length},inputIcon:function(){return this.query.length>0&&this.inputHover?"circle-close":"search"},labelProp:function(){return this.props.label||"label"},keyProp:function(){return this.props.key||"key"},disabledProp:function(){return this.props.disabled||"disabled"},hasFooter:function(){return!!this.$slots.default}},methods:{updateAllChecked:function(){var e=this,t=this.checkableData.map((function(t){return t[e.keyProp]}));this.allChecked=t.length>0&&t.every((function(t){return e.checked.indexOf(t)>-1}))},handleAllCheckedChange:function(e){var t=this;this.checked=e?this.checkableData.map((function(e){return e[t.keyProp]})):[]},clearQuery:function(){"circle-close"===this.inputIcon&&(this.query="")}}},ou,[],!1,null,null,null);lu.options.__file="packages/transfer/src/transfer-panel.vue";var uu=lu.exports,cu=r({name:"ElTransfer",mixins:[C.a,f.a,k.a],components:{TransferPanel:uu,ElButton:U.a},props:{data:{type:Array,default:function(){return[]}},titles:{type:Array,default:function(){return[]}},buttonTexts:{type:Array,default:function(){return[]}},filterPlaceholder:{type:String,default:""},filterMethod:Function,leftDefaultChecked:{type:Array,default:function(){return[]}},rightDefaultChecked:{type:Array,default:function(){return[]}},renderContent:Function,value:{type:Array,default:function(){return[]}},format:{type:Object,default:function(){return{}}},filterable:Boolean,props:{type:Object,default:function(){return{label:"label",key:"key",disabled:"disabled"}}},targetOrder:{type:String,default:"original"}},data:function(){return{leftChecked:[],rightChecked:[]}},computed:{dataObj:function(){var e=this.props.key;return this.data.reduce((function(t,i){return(t[i[e]]=i)&&t}),{})},sourceData:function(){var e=this;return this.data.filter((function(t){return-1===e.value.indexOf(t[e.props.key])}))},targetData:function(){var e=this;return"original"===this.targetOrder?this.data.filter((function(t){return e.value.indexOf(t[e.props.key])>-1})):this.value.reduce((function(t,i){var n=e.dataObj[i];return n&&t.push(n),t}),[])},hasButtonTexts:function(){return 2===this.buttonTexts.length}},watch:{value:function(e){this.dispatch("ElFormItem","el.form.change",e)}},methods:{getMigratingConfig:function(){return{props:{"footer-format":"footer-format is renamed to format."}}},onSourceCheckedChange:function(e,t){this.leftChecked=e,void 0!==t&&this.$emit("left-check-change",e,t)},onTargetCheckedChange:function(e,t){this.rightChecked=e,void 0!==t&&this.$emit("right-check-change",e,t)},addToLeft:function(){var e=this.value.slice();this.rightChecked.forEach((function(t){var i=e.indexOf(t);i>-1&&e.splice(i,1)})),this.$emit("input",e),this.$emit("change",e,"left",this.rightChecked)},addToRight:function(){var e=this,t=this.value.slice(),i=[],n=this.props.key;this.data.forEach((function(t){var r=t[n];e.leftChecked.indexOf(r)>-1&&-1===e.value.indexOf(r)&&i.push(r)})),t="unshift"===this.targetOrder?i.concat(t):t.concat(i),this.$emit("input",t),this.$emit("change",t,"right",this.leftChecked)},clearQuery:function(e){"left"===e?this.$refs.leftPanel.query="":"right"===e&&(this.$refs.rightPanel.query="")}}},au,[],!1,null,null,null);cu.options.__file="packages/transfer/src/main.vue";var du=cu.exports;du.install=function(e){e.component(du.name,du)};var hu=du,pu=function(){var e=this.$createElement;return(this._self._c||e)("section",{staticClass:"el-container",class:{"is-vertical":this.isVertical}},[this._t("default")],2)};pu._withStripped=!0;var fu=r({name:"ElContainer",componentName:"ElContainer",props:{direction:String},computed:{isVertical:function(){return"vertical"===this.direction||"horizontal"!==this.direction&&(!(!this.$slots||!this.$slots.default)&&this.$slots.default.some((function(e){var t=e.componentOptions&&e.componentOptions.tag;return"el-header"===t||"el-footer"===t})))}}},pu,[],!1,null,null,null);fu.options.__file="packages/container/src/main.vue";var mu=fu.exports;mu.install=function(e){e.component(mu.name,mu)};var vu=mu,gu=function(){var e=this.$createElement;return(this._self._c||e)("header",{staticClass:"el-header",style:{height:this.height}},[this._t("default")],2)};gu._withStripped=!0;var _u=r({name:"ElHeader",componentName:"ElHeader",props:{height:{type:String,default:"60px"}}},gu,[],!1,null,null,null);_u.options.__file="packages/header/src/main.vue";var bu=_u.exports;bu.install=function(e){e.component(bu.name,bu)};var yu=bu,xu=function(){var e=this.$createElement;return(this._self._c||e)("aside",{staticClass:"el-aside",style:{width:this.width}},[this._t("default")],2)};xu._withStripped=!0;var ku=r({name:"ElAside",componentName:"ElAside",props:{width:{type:String,default:"300px"}}},xu,[],!1,null,null,null);ku.options.__file="packages/aside/src/main.vue";var wu=ku.exports;wu.install=function(e){e.component(wu.name,wu)};var Cu=wu,Su=function(){var e=this.$createElement;return(this._self._c||e)("main",{staticClass:"el-main"},[this._t("default")],2)};Su._withStripped=!0;var Ou=r({name:"ElMain",componentName:"ElMain"},Su,[],!1,null,null,null);Ou.options.__file="packages/main/src/main.vue";var Du=Ou.exports;Du.install=function(e){e.component(Du.name,Du)};var Eu=Du,Tu=function(){var e=this.$createElement;return(this._self._c||e)("footer",{staticClass:"el-footer",style:{height:this.height}},[this._t("default")],2)};Tu._withStripped=!0;var $u=r({name:"ElFooter",componentName:"ElFooter",props:{height:{type:String,default:"60px"}}},Tu,[],!1,null,null,null);$u.options.__file="packages/footer/src/main.vue";var Pu=$u.exports;Pu.install=function(e){e.component(Pu.name,Pu)};var ju=Pu,Mu=r({name:"ElTimeline",props:{reverse:{type:Boolean,default:!1}},provide:function(){return{timeline:this}},render:function(){var e=arguments[0],t=this.reverse,i={"el-timeline":!0,"is-reverse":t},n=this.$slots.default||[];return t&&(n=n.reverse()),e("ul",{class:i},[n])}},void 0,void 0,!1,null,null,null);Mu.options.__file="packages/timeline/src/main.vue";var Iu=Mu.exports;Iu.install=function(e){e.component(Iu.name,Iu)};var Au=Iu,Nu=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("li",{staticClass:"el-timeline-item"},[i("div",{staticClass:"el-timeline-item__tail"}),e.$slots.dot?e._e():i("div",{staticClass:"el-timeline-item__node",class:["el-timeline-item__node--"+(e.size||""),"el-timeline-item__node--"+(e.type||"")],style:{backgroundColor:e.color}},[e.icon?i("i",{staticClass:"el-timeline-item__icon",class:e.icon}):e._e()]),e.$slots.dot?i("div",{staticClass:"el-timeline-item__dot"},[e._t("dot")],2):e._e(),i("div",{staticClass:"el-timeline-item__wrapper"},[e.hideTimestamp||"top"!==e.placement?e._e():i("div",{staticClass:"el-timeline-item__timestamp is-top"},[e._v("\n "+e._s(e.timestamp)+"\n ")]),i("div",{staticClass:"el-timeline-item__content"},[e._t("default")],2),e.hideTimestamp||"bottom"!==e.placement?e._e():i("div",{staticClass:"el-timeline-item__timestamp is-bottom"},[e._v("\n "+e._s(e.timestamp)+"\n ")])])])};Nu._withStripped=!0;var Lu=r({name:"ElTimelineItem",inject:["timeline"],props:{timestamp:String,hideTimestamp:{type:Boolean,default:!1},placement:{type:String,default:"bottom"},type:String,color:String,size:{type:String,default:"normal"},icon:String}},Nu,[],!1,null,null,null);Lu.options.__file="packages/timeline/src/item.vue";var Fu=Lu.exports;Fu.install=function(e){e.component(Fu.name,Fu)};var Vu=Fu,zu=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("a",e._b({class:["el-link",e.type?"el-link--"+e.type:"",e.disabled&&"is-disabled",e.underline&&!e.disabled&&"is-underline"],attrs:{href:e.disabled?null:e.href},on:{click:e.handleClick}},"a",e.$attrs,!1),[e.icon?i("i",{class:e.icon}):e._e(),e.$slots.default?i("span",{staticClass:"el-link--inner"},[e._t("default")],2):e._e(),e.$slots.icon?[e.$slots.icon?e._t("icon"):e._e()]:e._e()],2)};zu._withStripped=!0;var Ru=r({name:"ElLink",props:{type:{type:String,default:"default"},underline:{type:Boolean,default:!0},disabled:Boolean,href:String,icon:String},methods:{handleClick:function(e){this.disabled||this.href||this.$emit("click",e)}}},zu,[],!1,null,null,null);Ru.options.__file="packages/link/src/main.vue";var Bu=Ru.exports;Bu.install=function(e){e.component(Bu.name,Bu)};var Hu=Bu,Wu=function(e,t){var i=t._c;return i("div",t._g(t._b({class:[t.data.staticClass,"el-divider","el-divider--"+t.props.direction]},"div",t.data.attrs,!1),t.listeners),[t.slots().default&&"vertical"!==t.props.direction?i("div",{class:["el-divider__text","is-"+t.props.contentPosition]},[t._t("default")],2):t._e()])};Wu._withStripped=!0;var qu=r({name:"ElDivider",props:{direction:{type:String,default:"horizontal",validator:function(e){return-1!==["horizontal","vertical"].indexOf(e)}},contentPosition:{type:String,default:"center",validator:function(e){return-1!==["left","center","right"].indexOf(e)}}}},Wu,[],!0,null,null,null);qu.options.__file="packages/divider/src/main.vue";var Uu=qu.exports;Uu.install=function(e){e.component(Uu.name,Uu)};var Gu=Uu,Yu=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{staticClass:"el-image"},[e.loading?e._t("placeholder",[i("div",{staticClass:"el-image__placeholder"})]):e.error?e._t("error",[i("div",{staticClass:"el-image__error"},[e._v(e._s(e.t("el.image.error")))])]):i("img",e._g(e._b({staticClass:"el-image__inner",class:{"el-image__inner--center":e.alignCenter,"el-image__preview":e.preview},style:e.imageStyle,attrs:{src:e.src},on:{click:e.clickHandler}},"img",e.$attrs,!1),e.$listeners)),e.preview?[e.showViewer?i("image-viewer",{attrs:{"z-index":e.zIndex,"initial-index":e.imageIndex,"on-close":e.closeViewer,"url-list":e.previewSrcList}}):e._e()]:e._e()],2)};Yu._withStripped=!0;var Ku=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("transition",{attrs:{name:"viewer-fade"}},[i("div",{ref:"el-image-viewer__wrapper",staticClass:"el-image-viewer__wrapper",style:{"z-index":e.viewerZIndex},attrs:{tabindex:"-1"}},[i("div",{staticClass:"el-image-viewer__mask",on:{click:function(t){return t.target!==t.currentTarget?null:e.handleMaskClick(t)}}}),i("span",{staticClass:"el-image-viewer__btn el-image-viewer__close",on:{click:e.hide}},[i("i",{staticClass:"el-icon-close"})]),e.isSingle?e._e():[i("span",{staticClass:"el-image-viewer__btn el-image-viewer__prev",class:{"is-disabled":!e.infinite&&e.isFirst},on:{click:e.prev}},[i("i",{staticClass:"el-icon-arrow-left"})]),i("span",{staticClass:"el-image-viewer__btn el-image-viewer__next",class:{"is-disabled":!e.infinite&&e.isLast},on:{click:e.next}},[i("i",{staticClass:"el-icon-arrow-right"})])],i("div",{staticClass:"el-image-viewer__btn el-image-viewer__actions"},[i("div",{staticClass:"el-image-viewer__actions__inner"},[i("i",{staticClass:"el-icon-zoom-out",on:{click:function(t){e.handleActions("zoomOut")}}}),i("i",{staticClass:"el-icon-zoom-in",on:{click:function(t){e.handleActions("zoomIn")}}}),i("i",{staticClass:"el-image-viewer__actions__divider"}),i("i",{class:e.mode.icon,on:{click:e.toggleMode}}),i("i",{staticClass:"el-image-viewer__actions__divider"}),i("i",{staticClass:"el-icon-refresh-left",on:{click:function(t){e.handleActions("anticlocelise")}}}),i("i",{staticClass:"el-icon-refresh-right",on:{click:function(t){e.handleActions("clocelise")}}})])]),i("div",{staticClass:"el-image-viewer__canvas"},e._l(e.urlList,(function(t,n){return n===e.index?i("img",{key:t,ref:"img",refInFor:!0,staticClass:"el-image-viewer__img",style:e.imgStyle,attrs:{src:e.currentImg},on:{load:e.handleImgLoad,error:e.handleImgError,mousedown:e.handleMouseDown}}):e._e()})),0)],2)])};Ku._withStripped=!0;var Xu=Object.assign||function(e){for(var t=1;te?this.zIndex:e}},watch:{index:{handler:function(e){this.reset(),this.onSwitch(e)}},currentImg:function(e){var t=this;this.$nextTick((function(e){t.$refs.img[0].complete||(t.loading=!0)}))}},methods:{hide:function(){this.deviceSupportUninstall(),this.onClose()},deviceSupportInstall:function(){var e=this;this._keyDownHandler=function(t){switch(t.stopPropagation(),t.keyCode){case 27:e.hide();break;case 32:e.toggleMode();break;case 37:e.prev();break;case 38:e.handleActions("zoomIn");break;case 39:e.next();break;case 40:e.handleActions("zoomOut")}},this._mouseWheelHandler=Object(m.rafThrottle)((function(t){(t.wheelDelta?t.wheelDelta:-t.detail)>0?e.handleActions("zoomIn",{zoomRate:.015,enableTransition:!1}):e.handleActions("zoomOut",{zoomRate:.015,enableTransition:!1})})),Object(fe.on)(document,"keydown",this._keyDownHandler),Object(fe.on)(document,Qu,this._mouseWheelHandler)},deviceSupportUninstall:function(){Object(fe.off)(document,"keydown",this._keyDownHandler),Object(fe.off)(document,Qu,this._mouseWheelHandler),this._keyDownHandler=null,this._mouseWheelHandler=null},handleImgLoad:function(e){this.loading=!1},handleImgError:function(e){this.loading=!1,e.target.alt="加载失败"},handleMouseDown:function(e){var t=this;if(!this.loading&&0===e.button){var i=this.transform,n=i.offsetX,r=i.offsetY,s=e.pageX,a=e.pageY;this._dragHandler=Object(m.rafThrottle)((function(e){t.transform.offsetX=n+e.pageX-s,t.transform.offsetY=r+e.pageY-a})),Object(fe.on)(document,"mousemove",this._dragHandler),Object(fe.on)(document,"mouseup",(function(e){Object(fe.off)(document,"mousemove",t._dragHandler)})),e.preventDefault()}},handleMaskClick:function(){this.maskClosable&&this.hide()},reset:function(){this.transform={scale:1,deg:0,offsetX:0,offsetY:0,enableTransition:!1}},toggleMode:function(){if(!this.loading){var e=Object.keys(Zu),t=(Object.values(Zu).indexOf(this.mode)+1)%e.length;this.mode=Zu[e[t]],this.reset()}},prev:function(){if(!this.isFirst||this.infinite){var e=this.urlList.length;this.index=(this.index-1+e)%e}},next:function(){if(!this.isLast||this.infinite){var e=this.urlList.length;this.index=(this.index+1)%e}},handleActions:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!this.loading){var i=Xu({zoomRate:.2,rotateDeg:90,enableTransition:!0},t),n=i.zoomRate,r=i.rotateDeg,s=i.enableTransition,a=this.transform;switch(e){case"zoomOut":a.scale>.2&&(a.scale=parseFloat((a.scale-n).toFixed(3)));break;case"zoomIn":a.scale=parseFloat((a.scale+n).toFixed(3));break;case"clocelise":a.deg+=r;break;case"anticlocelise":a.deg-=r}a.enableTransition=s}}},mounted:function(){this.deviceSupportInstall(),this.appendToBody&&document.body.appendChild(this.$el),this.$refs["el-image-viewer__wrapper"].focus()},destroyed:function(){this.appendToBody&&this.$el&&this.$el.parentNode&&this.$el.parentNode.removeChild(this.$el)}},Ku,[],!1,null,null,null);Ju.options.__file="packages/image/src/image-viewer.vue";var ec=Ju.exports,tc=function(){return void 0!==document.documentElement.style.objectFit},ic="none",nc="contain",rc="cover",sc="fill",ac="scale-down",oc="",lc=r({name:"ElImage",mixins:[f.a],inheritAttrs:!1,components:{ImageViewer:ec},props:{src:String,fit:String,lazy:Boolean,scrollContainer:{},previewSrcList:{type:Array,default:function(){return[]}},zIndex:{type:Number,default:2e3}},data:function(){return{loading:!0,error:!1,show:!this.lazy,imageWidth:0,imageHeight:0,showViewer:!1}},computed:{imageStyle:function(){var e=this.fit;return!this.$isServer&&e?tc()?{"object-fit":e}:this.getImageStyle(e):{}},alignCenter:function(){return!this.$isServer&&!tc()&&this.fit!==sc},preview:function(){var e=this.previewSrcList;return Array.isArray(e)&&e.length>0},imageIndex:function(){var e=0,t=this.previewSrcList.indexOf(this.src);return t>=0&&(e=t),e}},watch:{src:function(e){this.show&&this.loadImage()},show:function(e){e&&this.loadImage()}},mounted:function(){this.lazy?this.addLazyLoadListener():this.loadImage()},beforeDestroy:function(){this.lazy&&this.removeLazyLoadListener()},methods:{loadImage:function(){var e=this;if(!this.$isServer){this.loading=!0,this.error=!1;var t=new Image;t.onload=function(i){return e.handleLoad(i,t)},t.onerror=this.handleError.bind(this),Object.keys(this.$attrs).forEach((function(i){var n=e.$attrs[i];t.setAttribute(i,n)})),t.src=this.src}},handleLoad:function(e,t){this.imageWidth=t.width,this.imageHeight=t.height,this.loading=!1,this.error=!1},handleError:function(e){this.loading=!1,this.error=!0,this.$emit("error",e)},handleLazyLoad:function(){Object(fe.isInContainer)(this.$el,this._scrollContainer)&&(this.show=!0,this.removeLazyLoadListener())},addLazyLoadListener:function(){if(!this.$isServer){var e=this.scrollContainer,t=null;(t=Object(xo.isHtmlElement)(e)?e:Object(xo.isString)(e)?document.querySelector(e):Object(fe.getScrollContainer)(this.$el))&&(this._scrollContainer=t,this._lazyLoadHandler=Zo()(200,this.handleLazyLoad),Object(fe.on)(t,"scroll",this._lazyLoadHandler),this.handleLazyLoad())}},removeLazyLoadListener:function(){var e=this._scrollContainer,t=this._lazyLoadHandler;!this.$isServer&&e&&t&&(Object(fe.off)(e,"scroll",t),this._scrollContainer=null,this._lazyLoadHandler=null)},getImageStyle:function(e){var t=this.imageWidth,i=this.imageHeight,n=this.$el,r=n.clientWidth,s=n.clientHeight;if(!(t&&i&&r&&s))return{};var a=t/i,o=r/s;e===ac&&(e=tr)return console.warn("[ElementCalendar]end time should be greater than start time"),[];if(Object(hn.validateRangeInOneMonth)(n,r))return[[n,r]];var s=[],a=new Date(n.getFullYear(),n.getMonth()+1,1),o=this.toDate(a.getTime()-864e5);if(!Object(hn.validateRangeInOneMonth)(a,r))return console.warn("[ElementCalendar]start time and end time interval must not exceed two months"),[];s.push([n,o]);var l=this.realFirstDayOfWeek,u=a.getDay(),c=0;return u!==l&&(c=0===l?7-u:(c=l-u)>0?c:7+c),(a=this.toDate(a.getTime()+864e5*c)).getDate()6?0:Math.floor(this.firstDayOfWeek)}},data:function(){return{selectedDay:"",now:new Date}}},dc,[],!1,null,null,null);_c.options.__file="packages/calendar/src/main.vue";var bc=_c.exports;bc.install=function(e){e.component(bc.name,bc)};var yc=bc,xc=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("transition",{attrs:{name:"el-fade-in"}},[e.visible?i("div",{staticClass:"el-backtop",style:{right:e.styleRight,bottom:e.styleBottom},on:{click:function(t){return t.stopPropagation(),e.handleClick(t)}}},[e._t("default",[i("el-icon",{attrs:{name:"caret-top"}})])],2):e._e()])};xc._withStripped=!0;var kc=function(e){return Math.pow(e,3)},wc=r({name:"ElBacktop",props:{visibilityHeight:{type:Number,default:200},target:[String],right:{type:Number,default:40},bottom:{type:Number,default:40}},data:function(){return{el:null,container:null,visible:!1}},computed:{styleBottom:function(){return this.bottom+"px"},styleRight:function(){return this.right+"px"}},mounted:function(){this.init(),this.throttledScrollHandler=Zo()(300,this.onScroll),this.container.addEventListener("scroll",this.throttledScrollHandler)},methods:{init:function(){if(this.container=document,this.el=document.documentElement,this.target){if(this.el=document.querySelector(this.target),!this.el)throw new Error("target is not existed: "+this.target);this.container=this.el}},onScroll:function(){var e=this.el.scrollTop;this.visible=e>=this.visibilityHeight},handleClick:function(e){this.scrollToTop(),this.$emit("click",e)},scrollToTop:function(){var e=this.el,t=Date.now(),i=e.scrollTop,n=window.requestAnimationFrame||function(e){return setTimeout(e,16)};n((function r(){var s,a=(Date.now()-t)/500;a<1?(e.scrollTop=i*(1-((s=a)<.5?kc(2*s)/2:1-kc(2*(1-s))/2)),n(r)):e.scrollTop=0}))}},beforeDestroy:function(){this.container.removeEventListener("scroll",this.throttledScrollHandler)}},xc,[],!1,null,null,null);wc.options.__file="packages/backtop/src/main.vue";var Cc=wc.exports;Cc.install=function(e){e.component(Cc.name,Cc)};var Sc=Cc,Oc=function(e,t){return e===window||e===document?document.documentElement[t]:e[t]},Dc=function(e){return Oc(e,"offsetHeight")},Ec="ElInfiniteScroll",Tc={delay:{type:Number,default:200},distance:{type:Number,default:0},disabled:{type:Boolean,default:!1},immediate:{type:Boolean,default:!0}},$c=function(e,t){return Object(xo.isHtmlElement)(e)?(i=Tc,Object.keys(i||{}).map((function(e){return[e,i[e]]}))).reduce((function(i,n){var r=n[0],s=n[1],a=s.type,o=s.default,l=e.getAttribute("infinite-scroll-"+r);switch(l=Object(xo.isUndefined)(t[l])?l:t[l],a){case Number:l=Number(l),l=Number.isNaN(l)?o:l;break;case Boolean:l=Object(xo.isDefined)(l)?"false"!==l&&Boolean(l):o;break;default:l=a(l)}return i[r]=l,i}),{}):{};var i},Pc=function(e){return e.getBoundingClientRect().top},jc=function(e){var t=this[Ec],i=t.el,n=t.vm,r=t.container,s=t.observer,a=$c(i,n),o=a.distance;if(!a.disabled){var l=r.getBoundingClientRect();if(l.width||l.height){var u=!1;if(r===i){var c=r.scrollTop+function(e){return Oc(e,"clientHeight")}(r);u=r.scrollHeight-c<=o}else{u=Dc(i)+Pc(i)-Pc(r)-Dc(r)+Number.parseFloat(function(e,t){if(e===window&&(e=document.documentElement),1!==e.nodeType)return[];var i=window.getComputedStyle(e,null);return t?i[t]:i}(r,"borderBottomWidth"))<=o}u&&Object(xo.isFunction)(e)?e.call(n):s&&(s.disconnect(),this[Ec].observer=null)}}},Mc={name:"InfiniteScroll",inserted:function(e,t,i){var n=t.value,r=i.context,s=Object(fe.getScrollContainer)(e,!0),a=$c(e,r),o=a.delay,l=a.immediate,u=$()(o,jc.bind(e,n));(e[Ec]={el:e,vm:r,container:s,onScroll:u},s)&&(s.addEventListener("scroll",u),l&&((e[Ec].observer=new MutationObserver(u)).observe(s,{childList:!0,subtree:!0}),u()))},unbind:function(e){var t=e[Ec],i=t.container,n=t.onScroll;i&&i.removeEventListener("scroll",n)},install:function(e){e.directive(Mc.name,Mc)}},Ic=Mc,Ac=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{staticClass:"el-page-header"},[i("div",{staticClass:"el-page-header__left",on:{click:function(t){e.$emit("back")}}},[i("i",{staticClass:"el-icon-back"}),i("div",{staticClass:"el-page-header__title"},[e._t("title",[e._v(e._s(e.title))])],2)]),i("div",{staticClass:"el-page-header__content"},[e._t("content",[e._v(e._s(e.content))])],2)])};Ac._withStripped=!0;var Nc=r({name:"ElPageHeader",props:{title:{type:String,default:function(){return Object(Ir.t)("el.pageHeader.title")}},content:String}},Ac,[],!1,null,null,null);Nc.options.__file="packages/page-header/src/main.vue";var Lc=Nc.exports;Lc.install=function(e){e.component(Lc.name,Lc)};var Fc=Lc,Vc=function(){var e=this.$createElement,t=this._self._c||e;return t("div",{class:["el-cascader-panel",this.border&&"is-bordered"],on:{keydown:this.handleKeyDown}},this._l(this.menus,(function(e,i){return t("cascader-menu",{key:i,ref:"menu",refInFor:!0,attrs:{index:i,nodes:e}})})),1)};Vc._withStripped=!0;var zc=i(43),Rc=i.n(zc),Bc=function(e){return e.stopPropagation()},Hc=r({inject:["panel"],components:{ElCheckbox:ri.a,ElRadio:Rc.a},props:{node:{required:!0},nodeId:String},computed:{config:function(){return this.panel.config},isLeaf:function(){return this.node.isLeaf},isDisabled:function(){return this.node.isDisabled},checkedValue:function(){return this.panel.checkedValue},isChecked:function(){return this.node.isSameNode(this.checkedValue)},inActivePath:function(){return this.isInPath(this.panel.activePath)},inCheckedPath:function(){var e=this;return!!this.config.checkStrictly&&this.panel.checkedNodePaths.some((function(t){return e.isInPath(t)}))},value:function(){return this.node.getValueByOption()}},methods:{handleExpand:function(){var e=this,t=this.panel,i=this.node,n=this.isDisabled,r=this.config,s=r.multiple;!r.checkStrictly&&n||i.loading||(r.lazy&&!i.loaded?t.lazyLoad(i,(function(){var t=e.isLeaf;if(t||e.handleExpand(),s){var n=!!t&&i.checked;e.handleMultiCheckChange(n)}})):t.handleExpand(i))},handleCheckChange:function(){var e=this.panel,t=this.value,i=this.node;e.handleCheckChange(t),e.handleExpand(i)},handleMultiCheckChange:function(e){this.node.doCheck(e),this.panel.calculateMultiCheckedValue()},isInPath:function(e){var t=this.node;return(e[t.level-1]||{}).uid===t.uid},renderPrefix:function(e){var t=this.isLeaf,i=this.isChecked,n=this.config,r=n.checkStrictly;return n.multiple?this.renderCheckbox(e):r?this.renderRadio(e):t&&i?this.renderCheckIcon(e):null},renderPostfix:function(e){var t=this.node,i=this.isLeaf;return t.loading?this.renderLoadingIcon(e):i?null:this.renderExpandIcon(e)},renderCheckbox:function(e){var t=this.node,i=this.config,n=this.isDisabled,r={on:{change:this.handleMultiCheckChange},nativeOn:{}};return i.checkStrictly&&(r.nativeOn.click=Bc),e("el-checkbox",Ja()([{attrs:{value:t.checked,indeterminate:t.indeterminate,disabled:n}},r]))},renderRadio:function(e){var t=this.checkedValue,i=this.value,n=this.isDisabled;return Object(m.isEqual)(i,t)&&(i=t),e("el-radio",{attrs:{value:t,label:i,disabled:n},on:{change:this.handleCheckChange},nativeOn:{click:Bc}},[e("span")])},renderCheckIcon:function(e){return e("i",{class:"el-icon-check el-cascader-node__prefix"})},renderLoadingIcon:function(e){return e("i",{class:"el-icon-loading el-cascader-node__postfix"})},renderExpandIcon:function(e){return e("i",{class:"el-icon-arrow-right el-cascader-node__postfix"})},renderContent:function(e){var t=this.panel,i=this.node,n=t.renderLabelFn;return e("span",{class:"el-cascader-node__label"},[(n?n({node:i,data:i.data}):null)||i.label])}},render:function(e){var t=this,i=this.inActivePath,n=this.inCheckedPath,r=this.isChecked,s=this.isLeaf,a=this.isDisabled,o=this.config,l=this.nodeId,u=o.expandTrigger,c=o.checkStrictly,d=o.multiple,h=!c&&a,p={on:{}};return"click"===u?p.on.click=this.handleExpand:(p.on.mouseenter=function(e){t.handleExpand(),t.$emit("expand",e)},p.on.focus=function(e){t.handleExpand(),t.$emit("expand",e)}),!s||a||c||d||(p.on.click=this.handleCheckChange),e("li",Ja()([{attrs:{role:"menuitem",id:l,"aria-expanded":i,tabindex:h?null:-1},class:{"el-cascader-node":!0,"is-selectable":c,"in-active-path":i,"in-checked-path":n,"is-active":r,"is-disabled":h}},p]),[this.renderPrefix(e),this.renderContent(e),this.renderPostfix(e)])}},void 0,void 0,!1,null,null,null);Hc.options.__file="packages/cascader-panel/src/cascader-node.vue";var Wc=Hc.exports,qc=r({name:"ElCascaderMenu",mixins:[f.a],inject:["panel"],components:{ElScrollbar:L.a,CascaderNode:Wc},props:{nodes:{type:Array,required:!0},index:Number},data:function(){return{activeNode:null,hoverTimer:null,id:Object(m.generateId)()}},computed:{isEmpty:function(){return!this.nodes.length},menuId:function(){return"cascader-menu-"+this.id+"-"+this.index}},methods:{handleExpand:function(e){this.activeNode=e.target},handleMouseMove:function(e){var t=this.activeNode,i=this.hoverTimer,n=this.$refs.hoverZone;if(t&&n)if(t.contains(e.target)){clearTimeout(i);var r=this.$el.getBoundingClientRect().left,s=e.clientX-r,a=this.$el,o=a.offsetWidth,l=a.offsetHeight,u=t.offsetTop,c=u+t.offsetHeight;n.innerHTML='\n \n \n '}else i||(this.hoverTimer=setTimeout(this.clearHoverZone,this.panel.config.hoverThreshold))},clearHoverZone:function(){var e=this.$refs.hoverZone;e&&(e.innerHTML="")},renderEmptyText:function(e){return e("div",{class:"el-cascader-menu__empty-text"},[this.t("el.cascader.noData")])},renderNodeList:function(e){var t=this.menuId,i=this.panel.isHoverMenu,n={on:{}};i&&(n.on.expand=this.handleExpand);var r=this.nodes.map((function(i,r){var s=i.hasChildren;return e("cascader-node",Ja()([{key:i.uid,attrs:{node:i,"node-id":t+"-"+r,"aria-haspopup":s,"aria-owns":s?t:null}},n]))}));return[].concat(r,[i?e("svg",{ref:"hoverZone",class:"el-cascader-menu__hover-zone"}):null])}},render:function(e){var t=this.isEmpty,i=this.menuId,n={nativeOn:{}};return this.panel.isHoverMenu&&(n.nativeOn.mousemove=this.handleMouseMove),e("el-scrollbar",Ja()([{attrs:{tag:"ul",role:"menu",id:i,"wrap-class":"el-cascader-menu__wrap","view-class":{"el-cascader-menu__list":!0,"is-empty":t}},class:"el-cascader-menu"},n]),[t?this.renderEmptyText(e):this.renderNodeList(e)])}},void 0,void 0,!1,null,null,null);qc.options.__file="packages/cascader-panel/src/cascader-menu.vue";var Uc=qc.exports,Gc=function(){function e(e,t){for(var i=0;i1?t-1:0),n=1;n1?n-1:0),s=1;s0},e.prototype.syncCheckState=function(e){var t=this.getValueByOption(),i=this.isSameNode(e,t);this.doCheck(i)},e.prototype.doCheck=function(e){this.checked!==e&&(this.config.checkStrictly?this.checked=e:(this.broadcast("check",e),this.setCheckState(e),this.emit("check")))},Gc(e,[{key:"isDisabled",get:function(){var e=this.data,t=this.parent,i=this.config,n=i.disabled,r=i.checkStrictly;return e[n]||!r&&t&&t.isDisabled}},{key:"isLeaf",get:function(){var e=this.data,t=this.loaded,i=this.hasChildren,n=this.children,r=this.config,s=r.lazy,a=r.leaf;if(s){var o=Object(He.isDef)(e[a])?e[a]:!!t&&!n.length;return this.hasChildren=!o,o}return!i}}]),e}();var Xc=function e(t,i){return t.reduce((function(t,n){return n.isLeaf?t.push(n):(!i&&t.push(n),t=t.concat(e(n.children,i))),t}),[])},Zc=function(){function e(t,i){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.config=i,this.initNodes(t)}return e.prototype.initNodes=function(e){var t=this;e=Object(m.coerceTruthyValueToArray)(e),this.nodes=e.map((function(e){return new Kc(e,t.config)})),this.flattedNodes=this.getFlattedNodes(!1,!1),this.leafNodes=this.getFlattedNodes(!0,!1)},e.prototype.appendNode=function(e,t){var i=new Kc(e,this.config,t);(t?t.children:this.nodes).push(i)},e.prototype.appendNodes=function(e,t){var i=this;(e=Object(m.coerceTruthyValueToArray)(e)).forEach((function(e){return i.appendNode(e,t)}))},e.prototype.getNodes=function(){return this.nodes},e.prototype.getFlattedNodes=function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=e?this.leafNodes:this.flattedNodes;return t?i:Xc(this.nodes,e)},e.prototype.getNodeByValue=function(e){var t=this.getFlattedNodes(!1,!this.config.lazy).filter((function(t){return Object(m.valueEquals)(t.path,e)||t.value===e}));return t&&t.length?t[0]:null},e}(),Qc=Object.assign||function(e){for(var t=1;t0){var l=i.store.getNodeByValue(s);l.data[o]||i.lazyLoad(l,(function(){i.handleExpand(l)})),i.loadCount===i.checkedValue.length&&i.$parent.computePresentText()}}t&&t(n)}))},calculateMultiCheckedValue:function(){this.checkedValue=this.getCheckedNodes(this.leafOnly).map((function(e){return e.getValueByOption()}))},scrollIntoView:function(){this.$isServer||(this.$refs.menu||[]).forEach((function(e){var t=e.$el;if(t){var i=t.querySelector(".el-scrollbar__wrap"),n=t.querySelector(".el-cascader-node.is-active")||t.querySelector(".el-cascader-node.in-active-path");Vt()(i,n)}}))},getNodeByValue:function(e){return this.store.getNodeByValue(e)},getFlattedNodes:function(e){var t=!this.config.lazy;return this.store.getFlattedNodes(e,t)},getCheckedNodes:function(e){var t=this.checkedValue;return this.multiple?this.getFlattedNodes(e).filter((function(e){return e.checked})):this.isEmptyValue(t)?[]:[this.getNodeByValue(t)]},clearCheckedNodes:function(){var e=this.config,t=this.leafOnly,i=e.multiple,n=e.emitPath;i?(this.getCheckedNodes(t).filter((function(e){return!e.isDisabled})).forEach((function(e){return e.doCheck(!1)})),this.calculateMultiCheckedValue()):this.checkedValue=n?[]:null}}},Vc,[],!1,null,null,null);sd.options.__file="packages/cascader-panel/src/cascader-panel.vue";var ad=sd.exports;ad.install=function(e){e.component(ad.name,ad)};var od=ad,ld=r({name:"ElAvatar",props:{size:{type:[Number,String],validator:function(e){return"string"==typeof e?["large","medium","small"].includes(e):"number"==typeof e}},shape:{type:String,default:"circle",validator:function(e){return["circle","square"].includes(e)}},icon:String,src:String,alt:String,srcSet:String,error:Function,fit:{type:String,default:"cover"}},data:function(){return{isImageExist:!0}},computed:{avatarClass:function(){var e=this.size,t=this.icon,i=this.shape,n=["el-avatar"];return e&&"string"==typeof e&&n.push("el-avatar--"+e),t&&n.push("el-avatar--icon"),i&&n.push("el-avatar--"+i),n.join(" ")}},methods:{handleError:function(){var e=this.error;!1!==(e?e():void 0)&&(this.isImageExist=!1)},renderAvatar:function(){var e=this.$createElement,t=this.icon,i=this.src,n=this.alt,r=this.isImageExist,s=this.srcSet,a=this.fit;return r&&i?e("img",{attrs:{src:i,alt:n,srcSet:s},on:{error:this.handleError},style:{"object-fit":a}}):t?e("i",{class:t}):this.$slots.default}},render:function(){var e=arguments[0],t=this.avatarClass,i=this.size,n="number"==typeof i?{height:i+"px",width:i+"px",lineHeight:i+"px"}:{};return e("span",{class:t,style:n},[this.renderAvatar()])}},void 0,void 0,!1,null,null,null);ld.options.__file="packages/avatar/src/main.vue";var ud=ld.exports;ud.install=function(e){e.component(ud.name,ud)};var cd=ud,dd=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("transition",{attrs:{name:"el-drawer-fade"},on:{"after-enter":e.afterEnter,"after-leave":e.afterLeave}},[i("div",{directives:[{name:"show",rawName:"v-show",value:e.visible,expression:"visible"}],staticClass:"el-drawer__wrapper",attrs:{tabindex:"-1"}},[i("div",{staticClass:"el-drawer__container",class:e.visible&&"el-drawer__open",attrs:{role:"document",tabindex:"-1"},on:{click:function(t){return t.target!==t.currentTarget?null:e.handleWrapperClick(t)}}},[i("div",{ref:"drawer",staticClass:"el-drawer",class:[e.direction,e.customClass],style:e.isHorizontal?"width: "+e.drawerSize:"height: "+e.drawerSize,attrs:{"aria-modal":"true","aria-labelledby":"el-drawer__title","aria-label":e.title,role:"dialog",tabindex:"-1"}},[e.withHeader?i("header",{staticClass:"el-drawer__header",attrs:{id:"el-drawer__title"}},[e._t("title",[i("span",{attrs:{role:"heading",title:e.title}},[e._v(e._s(e.title))])]),e.showClose?i("button",{staticClass:"el-drawer__close-btn",attrs:{"aria-label":"close "+(e.title||"drawer"),type:"button"},on:{click:e.closeDrawer}},[i("i",{staticClass:"el-dialog__close el-icon el-icon-close"})]):e._e()],2):e._e(),e.rendered?i("section",{staticClass:"el-drawer__body"},[e._t("default")],2):e._e()])])])])};dd._withStripped=!0;var hd=r({name:"ElDrawer",mixins:[y.a,C.a],props:{appendToBody:{type:Boolean,default:!1},beforeClose:{type:Function},customClass:{type:String,default:""},closeOnPressEscape:{type:Boolean,default:!0},destroyOnClose:{type:Boolean,default:!1},modal:{type:Boolean,default:!0},direction:{type:String,default:"rtl",validator:function(e){return-1!==["ltr","rtl","ttb","btt"].indexOf(e)}},modalAppendToBody:{type:Boolean,default:!0},showClose:{type:Boolean,default:!0},size:{type:[Number,String],default:"30%"},title:{type:String,default:""},visible:{type:Boolean},wrapperClosable:{type:Boolean,default:!0},withHeader:{type:Boolean,default:!0}},computed:{isHorizontal:function(){return"rtl"===this.direction||"ltr"===this.direction},drawerSize:function(){return"number"==typeof this.size?this.size+"px":this.size}},data:function(){return{closed:!1,prevActiveElement:null}},watch:{visible:function(e){var t=this;e?(this.closed=!1,this.$emit("open"),this.appendToBody&&document.body.appendChild(this.$el),this.prevActiveElement=document.activeElement):(this.closed||(this.$emit("close"),!0===this.destroyOnClose&&(this.rendered=!1)),this.$nextTick((function(){t.prevActiveElement&&t.prevActiveElement.focus()})))}},methods:{afterEnter:function(){this.$emit("opened")},afterLeave:function(){this.$emit("closed")},hide:function(e){!1!==e&&(this.$emit("update:visible",!1),this.$emit("close"),!0===this.destroyOnClose&&(this.rendered=!1),this.closed=!0)},handleWrapperClick:function(){this.wrapperClosable&&this.closeDrawer()},closeDrawer:function(){"function"==typeof this.beforeClose?this.beforeClose(this.hide):this.hide()},handleClose:function(){this.closeDrawer()}},mounted:function(){this.visible&&(this.rendered=!0,this.open(),this.appendToBody&&document.body.appendChild(this.$el))},destroyed:function(){this.appendToBody&&this.$el&&this.$el.parentNode&&this.$el.parentNode.removeChild(this.$el)}},dd,[],!1,null,null,null);hd.options.__file="packages/drawer/src/main.vue";var pd=hd.exports;pd.install=function(e){e.component(pd.name,pd)};var fd=pd,md=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("el-popover",e._b({attrs:{trigger:"click"},model:{value:e.visible,callback:function(t){e.visible=t},expression:"visible"}},"el-popover",e.$attrs,!1),[i("div",{staticClass:"el-popconfirm"},[i("p",{staticClass:"el-popconfirm__main"},[e.hideIcon?e._e():i("i",{staticClass:"el-popconfirm__icon",class:e.icon,style:{color:e.iconColor}}),e._v("\n "+e._s(e.title)+"\n ")]),i("div",{staticClass:"el-popconfirm__action"},[i("el-button",{attrs:{size:"mini",type:e.cancelButtonType},on:{click:e.cancel}},[e._v("\n "+e._s(e.displayCancelButtonText)+"\n ")]),i("el-button",{attrs:{size:"mini",type:e.confirmButtonType},on:{click:e.confirm}},[e._v("\n "+e._s(e.displayConfirmButtonText)+"\n ")])],1)]),e._t("reference",null,{slot:"reference"})],2)};md._withStripped=!0;var vd=i(44),gd=r({name:"ElPopconfirm",props:{title:{type:String},confirmButtonText:{type:String},cancelButtonText:{type:String},confirmButtonType:{type:String,default:"primary"},cancelButtonType:{type:String,default:"text"},icon:{type:String,default:"el-icon-question"},iconColor:{type:String,default:"#f90"},hideIcon:{type:Boolean,default:!1}},components:{ElPopover:i.n(vd).a,ElButton:U.a},data:function(){return{visible:!1}},computed:{displayConfirmButtonText:function(){return this.confirmButtonText||Object(Ir.t)("el.popconfirm.confirmButtonText")},displayCancelButtonText:function(){return this.cancelButtonText||Object(Ir.t)("el.popconfirm.cancelButtonText")}},methods:{confirm:function(){this.visible=!1,this.$emit("confirm")},cancel:function(){this.visible=!1,this.$emit("cancel")}}},md,[],!1,null,null,null);gd.options.__file="packages/popconfirm/src/main.vue";var _d=gd.exports;_d.install=function(e){e.component(_d.name,_d)};var bd=_d,yd=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",[e.uiLoading?[i("div",e._b({class:["el-skeleton",e.animated?"is-animated":""]},"div",e.$attrs,!1),[e._l(e.count,(function(t){return[e.loading?e._t("template",e._l(e.rows,(function(n){return i("el-skeleton-item",{key:t+"-"+n,class:{"el-skeleton__paragraph":1!==n,"is-first":1===n,"is-last":n===e.rows&&e.rows>1},attrs:{variant:"p"}})}))):e._e()]}))],2)]:[e._t("default",null,null,e.$attrs)]],2)};yd._withStripped=!0;var xd=r({name:"ElSkeleton",props:{animated:{type:Boolean,default:!1},count:{type:Number,default:1},rows:{type:Number,default:4},loading:{type:Boolean,default:!0},throttle:{type:Number,default:0}},watch:{loading:{handler:function(e){var t=this;this.throttle<=0?this.uiLoading=e:e?(clearTimeout(this.timeoutHandle),this.timeoutHandle=setTimeout((function(){t.uiLoading=t.loading}),this.throttle)):this.uiLoading=e},immediate:!0}},data:function(){return{uiLoading:this.throttle<=0&&this.loading}}},yd,[],!1,null,null,null);xd.options.__file="packages/skeleton/src/index.vue";var kd=xd.exports;kd.install=function(e){e.component(kd.name,kd)};var wd=kd,Cd=function(){var e=this.$createElement,t=this._self._c||e;return t("div",{class:["el-skeleton__item","el-skeleton__"+this.variant]},["image"===this.variant?t("img-placeholder"):this._e()],1)};Cd._withStripped=!0;var Sd=function(){var e=this.$createElement,t=this._self._c||e;return t("svg",{attrs:{viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"}},[t("path",{attrs:{d:"M64 896V128h896v768H64z m64-128l192-192 116.352 116.352L640 448l256 307.2V192H128v576z m224-480a96 96 0 1 1-0.064 192.064A96 96 0 0 1 352 288z"}})])};Sd._withStripped=!0;var Od=r({name:"ImgPlaceholder"},Sd,[],!1,null,null,null);Od.options.__file="packages/skeleton/src/img-placeholder.vue";var Dd,Ed=Od.exports,Td=r({name:"ElSkeletonItem",props:{variant:{type:String,default:"text"}},components:(Dd={},Dd[Ed.name]=Ed,Dd)},Cd,[],!1,null,null,null);Td.options.__file="packages/skeleton/src/item.vue";var $d=Td.exports;$d.install=function(e){e.component($d.name,$d)};var Pd=$d,jd=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{staticClass:"el-empty"},[i("div",{staticClass:"el-empty__image",style:e.imageStyle},[e.image?i("img",{attrs:{src:e.image,ondragstart:"return false"}}):e._t("image",[i("img-empty")])],2),i("div",{staticClass:"el-empty__description"},[e.$slots.description?e._t("description"):i("p",[e._v(e._s(e.emptyDescription))])],2),e.$slots.default?i("div",{staticClass:"el-empty__bottom"},[e._t("default")],2):e._e()])};jd._withStripped=!0;var Md=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("svg",{attrs:{viewBox:"0 0 79 86",version:"1.1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink"}},[i("defs",[i("linearGradient",{attrs:{id:"linearGradient-1-"+e.id,x1:"38.8503086%",y1:"0%",x2:"61.1496914%",y2:"100%"}},[i("stop",{attrs:{"stop-color":"#FCFCFD",offset:"0%"}}),i("stop",{attrs:{"stop-color":"#EEEFF3",offset:"100%"}})],1),i("linearGradient",{attrs:{id:"linearGradient-2-"+e.id,x1:"0%",y1:"9.5%",x2:"100%",y2:"90.5%"}},[i("stop",{attrs:{"stop-color":"#FCFCFD",offset:"0%"}}),i("stop",{attrs:{"stop-color":"#E9EBEF",offset:"100%"}})],1),i("rect",{attrs:{id:"path-3-"+e.id,x:"0",y:"0",width:"17",height:"36"}})],1),i("g",{attrs:{id:"Illustrations",stroke:"none","stroke-width":"1",fill:"none","fill-rule":"evenodd"}},[i("g",{attrs:{id:"B-type",transform:"translate(-1268.000000, -535.000000)"}},[i("g",{attrs:{id:"Group-2",transform:"translate(1268.000000, 535.000000)"}},[i("path",{attrs:{id:"Oval-Copy-2",d:"M39.5,86 C61.3152476,86 79,83.9106622 79,81.3333333 C79,78.7560045 57.3152476,78 35.5,78 C13.6847524,78 0,78.7560045 0,81.3333333 C0,83.9106622 17.6847524,86 39.5,86 Z",fill:"#F7F8FC"}}),i("polygon",{attrs:{id:"Rectangle-Copy-14",fill:"#E5E7E9",transform:"translate(27.500000, 51.500000) scale(1, -1) translate(-27.500000, -51.500000) ",points:"13 58 53 58 42 45 2 45"}}),i("g",{attrs:{id:"Group-Copy",transform:"translate(34.500000, 31.500000) scale(-1, 1) rotate(-25.000000) translate(-34.500000, -31.500000) translate(7.000000, 10.000000)"}},[i("polygon",{attrs:{id:"Rectangle-Copy-10",fill:"#E5E7E9",transform:"translate(11.500000, 5.000000) scale(1, -1) translate(-11.500000, -5.000000) ",points:"2.84078316e-14 3 18 3 23 7 5 7"}}),i("polygon",{attrs:{id:"Rectangle-Copy-11",fill:"#EDEEF2",points:"-3.69149156e-15 7 38 7 38 43 -3.69149156e-15 43"}}),i("rect",{attrs:{id:"Rectangle-Copy-12",fill:"url(#linearGradient-1-"+e.id+")",transform:"translate(46.500000, 25.000000) scale(-1, 1) translate(-46.500000, -25.000000) ",x:"38",y:"7",width:"17",height:"36"}}),i("polygon",{attrs:{id:"Rectangle-Copy-13",fill:"#F8F9FB",transform:"translate(39.500000, 3.500000) scale(-1, 1) translate(-39.500000, -3.500000) ",points:"24 7 41 7 55 -3.63806207e-12 38 -3.63806207e-12"}})]),i("rect",{attrs:{id:"Rectangle-Copy-15",fill:"url(#linearGradient-2-"+e.id+")",x:"13",y:"45",width:"40",height:"36"}}),i("g",{attrs:{id:"Rectangle-Copy-17",transform:"translate(53.000000, 45.000000)"}},[i("mask",{attrs:{id:"mask-4-"+e.id,fill:"white"}},[i("use",{attrs:{"xlink:href":"#path-3-"+e.id}})]),i("use",{attrs:{id:"Mask",fill:"#E0E3E9",transform:"translate(8.500000, 18.000000) scale(-1, 1) translate(-8.500000, -18.000000) ","xlink:href":"#path-3-"+e.id}}),i("polygon",{attrs:{id:"Rectangle-Copy",fill:"#D5D7DE",mask:"url(#mask-4-"+e.id+")",transform:"translate(12.000000, 9.000000) scale(-1, 1) translate(-12.000000, -9.000000) ",points:"7 0 24 0 20 18 -1.70530257e-13 16"}})]),i("polygon",{attrs:{id:"Rectangle-Copy-18",fill:"#F8F9FB",transform:"translate(66.000000, 51.500000) scale(-1, 1) translate(-66.000000, -51.500000) ",points:"62 45 79 45 70 58 53 58"}})])])])])};Md._withStripped=!0;var Id=0,Ad=r({name:"ImgEmpty",data:function(){return{id:++Id}}},Md,[],!1,null,null,null);Ad.options.__file="packages/empty/src/img-empty.vue";var Nd,Ld=Ad.exports,Fd=r({name:"ElEmpty",components:(Nd={},Nd[Ld.name]=Ld,Nd),props:{image:{type:String,default:""},imageSize:Number,description:{type:String,default:""}},computed:{emptyDescription:function(){return this.description||Object(Ir.t)("el.empty.description")},imageStyle:function(){return{width:this.imageSize?this.imageSize+"px":""}}}},jd,[],!1,null,null,null);Fd.options.__file="packages/empty/src/index.vue";var Vd=Fd.exports;Vd.install=function(e){e.component(Vd.name,Vd)};var zd,Rd=Vd,Bd=Object.assign||function(e){for(var t=1;t3&&void 0!==arguments[3]&&arguments[3];return e.props||(e.props={}),t>i&&(e.props.span=i),n&&(e.props.span=i),e},getRows:function(){var e=this,t=(this.$slots.default||[]).filter((function(e){return e.tag&&e.componentOptions&&"ElDescriptionsItem"===e.componentOptions.Ctor.options.name})),i=t.map((function(t){return{props:e.getOptionProps(t),slots:e.getSlots(t),vnode:t}})),n=[],r=[],s=this.column;return i.forEach((function(i,a){var o=i.props.span||1;if(a===t.length-1)return r.push(e.filledNode(i,o,s,!0)),void n.push(r);o1&&void 0!==arguments[1]?arguments[1]:{};Ar.a.use(t.locale),Ar.a.i18n(t.i18n),ph.forEach((function(t){e.component(t.name,t)})),e.use(Ic),e.use(La.directive),e.prototype.$ELEMENT={size:t.size||"",zIndex:t.zIndex||2e3},e.prototype.$loading=La.service,e.prototype.$msgbox=Qr,e.prototype.$alert=Qr.alert,e.prototype.$confirm=Qr.confirm,e.prototype.$prompt=Qr.prompt,e.prototype.$notify=pa,e.prototype.$message=Eo};"undefined"!=typeof window&&window.Vue&&fh(window.Vue);t.default={version:"2.15.6",locale:Ar.a.use,i18n:Ar.a.i18n,install:fh,CollapseTransition:be.a,Loading:La,Pagination:g,Dialog:D,Autocomplete:W,Dropdown:Z,DropdownMenu:te,DropdownItem:se,Menu:ge,Submenu:Ce,MenuItem:$e,MenuItemGroup:Ie,Input:Ue,InputNumber:Ze,Radio:tt,RadioGroup:at,RadioButton:ct,Checkbox:ft,CheckboxButton:_t,CheckboxGroup:kt,Switch:Ot,Select:Bt,Option:Ht,OptionGroup:Gt,Button:Zt,ButtonGroup:ti,Table:nn,TableColumn:cn,DatePicker:or,TimeSelect:mr,TimePicker:Cr,Popover:$r,Tooltip:jr,MessageBox:Qr,Breadcrumb:is,BreadcrumbItem:as,Form:cs,FormItem:_s,Tabs:Ds,TabPane:Ps,Tag:Is,Tree:Qs,Alert:na,Notification:pa,Slider:wa,Icon:Ra,Row:Ha,Col:Ua,Upload:oo,Progress:ho,Spinner:vo,Message:Eo,Badge:jo,Card:No,Rate:zo,Steps:Wo,Step:Yo,Carousel:el,Scrollbar:sl,CarouselItem:ul,Collapse:pl,CollapseItem:gl,Cascader:Tl,ColorPicker:su,Transfer:hu,Container:vu,Header:yu,Aside:Cu,Main:Eu,Footer:ju,Timeline:Au,TimelineItem:Vu,Link:Hu,Divider:Gu,Image:cc,Calendar:yc,Backtop:Sc,InfiniteScroll:Ic,PageHeader:Fc,CascaderPanel:od,Avatar:cd,Drawer:fd,Popconfirm:bd,Skeleton:wd,SkeletonItem:Pd,Empty:Rd,Descriptions:Ud,DescriptionsItem:Yd,Result:hh}}]).default},function(e){e.exports=JSON.parse('{"selection":{"domain":{"template":"Domain","characteristics":{"Agent":"MultiAgent","Concurrency":"Parallel","Constraints":"(none)","Dynamics":"Environment","Events":"Events","Goals":"(none)","Initialization":"(none)","Memory":"History","Observability":"PartiallyObservable","Renderability":"(none)","Value":"Rewards"},"showFinetunedOnly":true,"simplifySignatures":true},"solver":{"template":"Solver","characteristics":{"Assessability":"(none)","Parallelability":"(none)","Policy":"(none)","Restorability":"(none)"},"showFinetunedOnly":true}},"templates":{"domain":[{"name":"Domain","characteristics":{"Agent":"MultiAgent","Concurrency":"Parallel","Constraints":"(none)","Dynamics":"Environment","Events":"Events","Goals":"(none)","Initialization":"(none)","Memory":"History","Observability":"PartiallyObservable","Renderability":"(none)","Value":"Rewards"}},{"name":"RLDomain","characteristics":{"Agent":"SingleAgent","Concurrency":"Sequential","Constraints":"(none)","Dynamics":"Environment","Events":"Actions","Goals":"(none)","Initialization":"Initializable","Memory":"Markovian","Observability":"TransformedObservable","Renderability":"(none)","Value":"Rewards"}},{"name":"MultiAgentRLDomain","characteristics":{"Agent":"MultiAgent","Concurrency":"Sequential","Constraints":"(none)","Dynamics":"Environment","Events":"Actions","Goals":"(none)","Initialization":"Initializable","Memory":"Markovian","Observability":"TransformedObservable","Renderability":"(none)","Value":"Rewards"}},{"name":"StatelessSimulatorDomain","characteristics":{"Agent":"SingleAgent","Concurrency":"Sequential","Constraints":"(none)","Dynamics":"Simulation","Events":"Actions","Goals":"(none)","Initialization":"(none)","Memory":"Markovian","Observability":"TransformedObservable","Renderability":"(none)","Value":"Rewards"}},{"name":"MDPDomain","characteristics":{"Agent":"SingleAgent","Concurrency":"Sequential","Constraints":"(none)","Dynamics":"EnumerableTransitions","Events":"Actions","Goals":"(none)","Initialization":"DeterministicInitialized","Memory":"Markovian","Observability":"FullyObservable","Renderability":"(none)","Value":"Rewards"}},{"name":"POMDPDomain","characteristics":{"Agent":"SingleAgent","Concurrency":"Sequential","Constraints":"(none)","Dynamics":"EnumerableTransitions","Events":"Actions","Goals":"(none)","Initialization":"UncertainInitialized","Memory":"Markovian","Observability":"PartiallyObservable","Renderability":"(none)","Value":"Rewards"}},{"name":"GoalMDPDomain","characteristics":{"Agent":"SingleAgent","Concurrency":"Sequential","Constraints":"(none)","Dynamics":"EnumerableTransitions","Events":"Actions","Goals":"Goals","Initialization":"DeterministicInitialized","Memory":"Markovian","Observability":"FullyObservable","Renderability":"(none)","Value":"PositiveCosts"}},{"name":"GoalPOMDPDomain","characteristics":{"Agent":"SingleAgent","Concurrency":"Sequential","Constraints":"(none)","Dynamics":"EnumerableTransitions","Events":"Actions","Goals":"Goals","Initialization":"UncertainInitialized","Memory":"Markovian","Observability":"PartiallyObservable","Renderability":"(none)","Value":"PositiveCosts"}},{"name":"DeterministicPlanningDomain","characteristics":{"Agent":"SingleAgent","Concurrency":"Sequential","Constraints":"(none)","Dynamics":"DeterministicTransitions","Events":"Actions","Goals":"Goals","Initialization":"DeterministicInitialized","Memory":"Markovian","Observability":"FullyObservable","Renderability":"(none)","Value":"PositiveCosts"}}],"solver":[{"name":"Solver","characteristics":{"Assessability":"(none)","Parallelability":"(none)","Policy":"(none)","Restorability":"(none)"}},{"name":"DeterministicPolicySolver","characteristics":{"Assessability":"(none)","Parallelability":"(none)","Policy":"DeterministicPolicies","Restorability":"(none)"}}]},"characteristics":{"domain":[{"name":"Agent","levels":["MultiAgent","SingleAgent"]},{"name":"Concurrency","levels":["Parallel","Sequential"]},{"name":"Constraints","levels":["(none)","Constrained"]},{"name":"Dynamics","levels":["Environment","Simulation","UncertainTransitions","EnumerableTransitions","DeterministicTransitions"]},{"name":"Events","levels":["Events","Actions","UnrestrictedActions"]},{"name":"Goals","levels":["(none)","Goals"]},{"name":"Initialization","levels":["(none)","Initializable","UncertainInitialized","DeterministicInitialized"]},{"name":"Memory","levels":["History","FiniteHistory","Markovian","Memoryless"]},{"name":"Observability","levels":["PartiallyObservable","TransformedObservable","FullyObservable"]},{"name":"Renderability","levels":["(none)","Renderable"]},{"name":"Value","levels":["Rewards","PositiveCosts"]}],"solver":[{"name":"Assessability","levels":["(none)","Utilities","QValues"]},{"name":"Parallelability","levels":["(none)","ParallelSolver"]},{"name":"Policy","levels":["(none)","Policies","UncertainPolicies","DeterministicPolicies"]},{"name":"Restorability","levels":["(none)","Restorable"]}]},"methods":{"domain":{"MultiAgent":[],"SingleAgent":[],"Parallel":[],"Sequential":[],"Constrained":["_get_constraints_"],"Environment":["_state_step"],"Simulation":["_state_sample"],"UncertainTransitions":["_get_transition_value","_get_next_state_distribution","_is_terminal"],"EnumerableTransitions":["_get_transition_value","_get_next_state_distribution","_is_terminal"],"DeterministicTransitions":["_get_next_state","_get_transition_value","_is_terminal"],"Events":["_get_action_space_","_get_applicable_actions_from","_get_enabled_events_from"],"Actions":["_get_action_space_","_get_applicable_actions_from"],"UnrestrictedActions":["_get_action_space_"],"Goals":["_get_goals_"],"Initializable":["_state_reset"],"UncertainInitialized":["_get_initial_state_distribution_"],"DeterministicInitialized":["_get_initial_state_"],"History":[],"FiniteHistory":["_get_memory_maxlen_"],"Markovian":[],"Memoryless":[],"PartiallyObservable":["_get_observation_space_","_get_observation_distribution"],"TransformedObservable":["_get_observation","_get_observation_space_"],"FullyObservable":["_get_observation_space_"],"Renderable":["_render_from"],"Rewards":[],"PositiveCosts":[],"domain":[]},"solver":{"Utilities":["_get_utility"],"QValues":["_get_utility","_get_q_value"],"ParallelSolver":[],"Policies":["_sample_action","_is_policy_defined_for"],"UncertainPolicies":["_is_policy_defined_for","_get_next_action_distribution"],"DeterministicPolicies":["_is_policy_defined_for","_get_next_action"],"Restorable":["_load","_save"],"solver":["_solve_domain"]}},"types":{"domain":{"MultiAgent":{"T_agent":"skdecide.core.StrDict"},"SingleAgent":{"T_agent":"typing.Union"},"Parallel":{"T_concurrency":"typing.List"},"Sequential":{"T_concurrency":"typing.Union"},"Constrained":{},"Environment":{},"Simulation":{},"UncertainTransitions":{},"EnumerableTransitions":{},"DeterministicTransitions":{},"Events":{},"Actions":{},"UnrestrictedActions":{},"Goals":{},"Initializable":{},"UncertainInitialized":{},"DeterministicInitialized":{},"History":{"T_memory":"skdecide.core.Memory"},"FiniteHistory":{"T_memory":"skdecide.core.Memory"},"Markovian":{"T_memory":"typing.Union"},"Memoryless":{"T_memory":"typing.Union"},"PartiallyObservable":{},"TransformedObservable":{},"FullyObservable":{},"Renderable":{},"Rewards":{},"PositiveCosts":{}},"solver":{"Utilities":{},"QValues":{},"ParallelSolver":{},"Policies":{},"UncertainPolicies":{},"DeterministicPolicies":{},"Restorable":{}}},"signatures":{"domain":{"get_constraints":{"params":[{"name":"self"}],"return":"List[Constraint[D.T_memory[D.T_state], D.T_agent[D.T_concurrency[D.T_event]], D.T_state]]"},"_get_constraints":{"params":[{"name":"self"}],"return":"List[Constraint[D.T_memory[D.T_state], D.T_agent[D.T_concurrency[D.T_event]], D.T_state]]"},"_get_constraints_":{"params":[{"name":"self"}],"return":"List[Constraint[D.T_memory[D.T_state], D.T_agent[D.T_concurrency[D.T_event]], D.T_state]]"},"step":{"params":[{"name":"self"},{"name":"action","annotation":"D.T_agent[D.T_concurrency[D.T_event]]"}],"return":"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"},"_step":{"params":[{"name":"self"},{"name":"action","annotation":"D.T_agent[D.T_concurrency[D.T_event]]"}],"return":"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"},"_state_step":{"params":[{"name":"self"},{"name":"action","annotation":"D.T_agent[D.T_concurrency[D.T_event]]"}],"return":"TransitionOutcome[D.T_state, D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"},"set_memory":{"params":[{"name":"self"},{"name":"memory","annotation":"D.T_memory[D.T_state]"}],"return":"None"},"_set_memory":{"params":[{"name":"self"},{"name":"memory","annotation":"D.T_memory[D.T_state]"}],"return":"None"},"sample":{"params":[{"name":"self"},{"name":"memory","annotation":"D.T_memory[D.T_state]"},{"name":"action","annotation":"D.T_agent[D.T_concurrency[D.T_event]]"}],"return":"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"},"_sample":{"params":[{"name":"self"},{"name":"memory","annotation":"D.T_memory[D.T_state]"},{"name":"action","annotation":"D.T_agent[D.T_concurrency[D.T_event]]"}],"return":"EnvironmentOutcome[D.T_agent[D.T_observation], D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"},"_state_sample":{"params":[{"name":"self"},{"name":"memory","annotation":"D.T_memory[D.T_state]"},{"name":"action","annotation":"D.T_agent[D.T_concurrency[D.T_event]]"}],"return":"TransitionOutcome[D.T_state, D.T_agent[Value[D.T_value]], D.T_agent[D.T_predicate], D.T_agent[D.T_info]]"},"get_next_state_distribution":{"params":[{"name":"self"},{"name":"memory","annotation":"D.T_memory[D.T_state]"},{"name":"action","annotation":"D.T_agent[D.T_concurrency[D.T_event]]"}],"return":"DiscreteDistribution[D.T_state]"},"_get_next_state_distribution":{"params":[{"name":"self"},{"name":"memory","annotation":"D.T_memory[D.T_state]"},{"name":"action","annotation":"D.T_agent[D.T_concurrency[D.T_event]]"}],"return":"SingleValueDistribution[D.T_state]"},"get_transition_value":{"params":[{"name":"self"},{"name":"memory","annotation":"D.T_memory[D.T_state]"},{"name":"action","annotation":"D.T_agent[D.T_concurrency[D.T_event]]"},{"name":"next_state","default":"None","annotation":"Optional[D.T_state]"}],"return":"D.T_agent[Value[D.T_value]]"},"_get_transition_value":{"params":[{"name":"self"},{"name":"memory","annotation":"D.T_memory[D.T_state]"},{"name":"action","annotation":"D.T_agent[D.T_concurrency[D.T_event]]"},{"name":"next_state","default":"None","annotation":"Optional[D.T_state]"}],"return":"D.T_agent[Value[D.T_value]]"},"is_transition_value_dependent_on_next_state":{"params":[{"name":"self"}],"return":"bool"},"_is_transition_value_dependent_on_next_state":{"params":[{"name":"self"}],"return":"bool"},"_is_transition_value_dependent_on_next_state_":{"params":[{"name":"self"}],"return":"bool"},"is_terminal":{"params":[{"name":"self"},{"name":"state","annotation":"D.T_state"}],"return":"D.T_agent[D.T_predicate]"},"_is_terminal":{"params":[{"name":"self"},{"name":"state","annotation":"D.T_state"}],"return":"D.T_agent[D.T_predicate]"},"get_next_state":{"params":[{"name":"self"},{"name":"memory","annotation":"D.T_memory[D.T_state]"},{"name":"action","annotation":"D.T_agent[D.T_concurrency[D.T_event]]"}],"return":"D.T_state"},"_get_next_state":{"params":[{"name":"self"},{"name":"memory","annotation":"D.T_memory[D.T_state]"},{"name":"action","annotation":"D.T_agent[D.T_concurrency[D.T_event]]"}],"return":"D.T_state"},"get_enabled_events":{"params":[{"name":"self"},{"name":"memory","default":"None","annotation":"Optional[D.T_memory[D.T_state]]"}],"return":"Space[D.T_event]"},"_get_enabled_events":{"params":[{"name":"self"},{"name":"memory","default":"None","annotation":"Optional[D.T_memory[D.T_state]]"}],"return":"Space[D.T_event]"},"_get_enabled_events_from":{"params":[{"name":"self"},{"name":"memory","annotation":"D.T_memory[D.T_state]"}],"return":"Space[D.T_event]"},"is_enabled_event":{"params":[{"name":"self"},{"name":"event","annotation":"D.T_event"},{"name":"memory","default":"None","annotation":"Optional[D.T_memory[D.T_state]]"}],"return":"bool"},"_is_enabled_event":{"params":[{"name":"self"},{"name":"event","annotation":"D.T_event"},{"name":"memory","default":"None","annotation":"Optional[D.T_memory[D.T_state]]"}],"return":"bool"},"_is_enabled_event_from":{"params":[{"name":"self"},{"name":"event","annotation":"D.T_event"},{"name":"memory","annotation":"D.T_memory[D.T_state]"}],"return":"bool"},"get_action_space":{"params":[{"name":"self"}],"return":"D.T_agent[Space[D.T_event]]"},"_get_action_space":{"params":[{"name":"self"}],"return":"D.T_agent[Space[D.T_event]]"},"_get_action_space_":{"params":[{"name":"self"}],"return":"D.T_agent[Space[D.T_event]]"},"is_action":{"params":[{"name":"self"},{"name":"event","annotation":"D.T_event"}],"return":"bool"},"_is_action":{"params":[{"name":"self"},{"name":"event","annotation":"D.T_event"}],"return":"bool"},"get_applicable_actions":{"params":[{"name":"self"},{"name":"memory","default":"None","annotation":"Optional[D.T_memory[D.T_state]]"}],"return":"D.T_agent[Space[D.T_event]]"},"_get_applicable_actions":{"params":[{"name":"self"},{"name":"memory","default":"None","annotation":"Optional[D.T_memory[D.T_state]]"}],"return":"D.T_agent[Space[D.T_event]]"},"_get_applicable_actions_from":{"params":[{"name":"self"},{"name":"memory","annotation":"D.T_memory[D.T_state]"}],"return":"D.T_agent[Space[D.T_event]]"},"is_applicable_action":{"params":[{"name":"self"},{"name":"action","annotation":"D.T_agent[D.T_event]"},{"name":"memory","default":"None","annotation":"Optional[D.T_memory[D.T_state]]"}],"return":"bool"},"_is_applicable_action":{"params":[{"name":"self"},{"name":"action","annotation":"D.T_agent[D.T_event]"},{"name":"memory","default":"None","annotation":"Optional[D.T_memory[D.T_state]]"}],"return":"bool"},"_is_applicable_action_from":{"params":[{"name":"self"},{"name":"action","annotation":"D.T_agent[D.T_event]"},{"name":"memory","annotation":"D.T_memory[D.T_state]"}],"return":"bool"},"get_goals":{"params":[{"name":"self"}],"return":"D.T_agent[Space[D.T_observation]]"},"_get_goals":{"params":[{"name":"self"}],"return":"D.T_agent[Space[D.T_observation]]"},"_get_goals_":{"params":[{"name":"self"}],"return":"D.T_agent[Space[D.T_observation]]"},"is_goal":{"params":[{"name":"self"},{"name":"observation","annotation":"D.T_agent[D.T_observation]"}],"return":"D.T_agent[D.T_predicate]"},"_is_goal":{"params":[{"name":"self"},{"name":"observation","annotation":"D.T_agent[D.T_observation]"}],"return":"D.T_agent[D.T_predicate]"},"reset":{"params":[{"name":"self"}],"return":"D.T_agent[D.T_observation]"},"_reset":{"params":[{"name":"self"}],"return":"D.T_agent[D.T_observation]"},"_state_reset":{"params":[{"name":"self"}],"return":"D.T_state"},"get_initial_state_distribution":{"params":[{"name":"self"}],"return":"Distribution[D.T_state]"},"_get_initial_state_distribution":{"params":[{"name":"self"}],"return":"Distribution[D.T_state]"},"_get_initial_state_distribution_":{"params":[{"name":"self"}],"return":"Distribution[D.T_state]"},"get_initial_state":{"params":[{"name":"self"}],"return":"D.T_state"},"_get_initial_state":{"params":[{"name":"self"}],"return":"D.T_state"},"_get_initial_state_":{"params":[{"name":"self"}],"return":"D.T_state"},"_init_memory":{"params":[{"name":"self"},{"name":"state","default":"None","annotation":"Optional[D.T_state]"}],"return":"D.T_memory[D.T_state]"},"_get_memory_maxlen":{"params":[{"name":"self"}],"return":"int"},"_get_memory_maxlen_":{"params":[{"name":"self"}],"return":"int"},"get_observation_space":{"params":[{"name":"self"}],"return":"D.T_agent[Space[D.T_observation]]"},"_get_observation_space":{"params":[{"name":"self"}],"return":"D.T_agent[Space[D.T_observation]]"},"_get_observation_space_":{"params":[{"name":"self"}],"return":"D.T_agent[Space[D.T_observation]]"},"is_observation":{"params":[{"name":"self"},{"name":"observation","annotation":"D.T_agent[D.T_observation]"}],"return":"bool"},"_is_observation":{"params":[{"name":"self"},{"name":"observation","annotation":"D.T_agent[D.T_observation]"}],"return":"bool"},"get_observation_distribution":{"params":[{"name":"self"},{"name":"state","annotation":"D.T_state"},{"name":"action","default":"None","annotation":"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],"return":"Distribution[D.T_agent[D.T_observation]]"},"_get_observation_distribution":{"params":[{"name":"self"},{"name":"state","annotation":"D.T_state"},{"name":"action","default":"None","annotation":"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],"return":"Distribution[D.T_agent[D.T_observation]]"},"get_observation":{"params":[{"name":"self"},{"name":"state","annotation":"D.T_state"},{"name":"action","default":"None","annotation":"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],"return":"D.T_agent[D.T_observation]"},"_get_observation":{"params":[{"name":"self"},{"name":"state","annotation":"D.T_state"},{"name":"action","default":"None","annotation":"Optional[D.T_agent[D.T_concurrency[D.T_event]]]"}],"return":"D.T_agent[D.T_observation]"},"render":{"params":[{"name":"self"},{"name":"memory","default":"None","annotation":"Optional[D.T_memory[D.T_state]]"},{"name":"**kwargs","annotation":"Any"}],"return":"Any"},"_render":{"params":[{"name":"self"},{"name":"memory","default":"None","annotation":"Optional[D.T_memory[D.T_state]]"},{"name":"**kwargs","annotation":"Any"}],"return":"Any"},"_render_from":{"params":[{"name":"self"},{"name":"memory","annotation":"D.T_memory[D.T_state]"},{"name":"**kwargs","annotation":"Any"}],"return":"Any"},"check_value":{"params":[{"name":"self"},{"name":"value","annotation":"Value[D.T_value]"}],"return":"bool"},"_check_value":{"params":[{"name":"self"},{"name":"value","annotation":"Value[D.T_value]"}],"return":"bool"},"_is_positive":{"params":[{"name":"self"},{"name":"cost","annotation":"D.T_value"}],"return":"bool"}},"solver":{"get_utility":{"params":[{"name":"self"},{"name":"observation","annotation":"D.T_agent[D.T_observation]"}],"return":"D.T_value"},"_get_utility":{"params":[{"name":"self"},{"name":"observation","annotation":"D.T_agent[D.T_observation]"}],"return":"D.T_value"},"get_q_value":{"params":[{"name":"self"},{"name":"observation","annotation":"D.T_agent[D.T_observation]"},{"name":"action","annotation":"D.T_agent[D.T_concurrency[D.T_event]]"}],"return":"D.T_value"},"_get_q_value":{"params":[{"name":"self"},{"name":"observation","annotation":"D.T_agent[D.T_observation]"},{"name":"action","annotation":"D.T_agent[D.T_concurrency[D.T_event]]"}],"return":"D.T_value"},"ParallelSolver":{"params":[{"name":"domain_factory","annotation":"Callable[[], Domain]"},{"name":"parallel","default":"False","annotation":"bool"},{"name":"shared_memory_proxy","default":"None"}]},"_initialize":{"params":[{"name":"self"}]},"close":{"params":[{"name":"self"}]},"get_domain":{"params":[{"name":"self"}]},"call_domain_method":{"params":[{"name":"self"},{"name":"name"},{"name":"*args"}]},"sample_action":{"params":[{"name":"self"},{"name":"observation","annotation":"D.T_agent[D.T_observation]"}],"return":"D.T_agent[D.T_concurrency[D.T_event]]"},"_sample_action":{"params":[{"name":"self"},{"name":"observation","annotation":"D.T_agent[D.T_observation]"}],"return":"D.T_agent[D.T_concurrency[D.T_event]]"},"is_policy_defined_for":{"params":[{"name":"self"},{"name":"observation","annotation":"D.T_agent[D.T_observation]"}],"return":"bool"},"_is_policy_defined_for":{"params":[{"name":"self"},{"name":"observation","annotation":"D.T_agent[D.T_observation]"}],"return":"bool"},"get_next_action_distribution":{"params":[{"name":"self"},{"name":"observation","annotation":"D.T_agent[D.T_observation]"}],"return":"Distribution[D.T_agent[D.T_concurrency[D.T_event]]]"},"_get_next_action_distribution":{"params":[{"name":"self"},{"name":"observation","annotation":"D.T_agent[D.T_observation]"}],"return":"Distribution[D.T_agent[D.T_concurrency[D.T_event]]]"},"get_next_action":{"params":[{"name":"self"},{"name":"observation","annotation":"D.T_agent[D.T_observation]"}],"return":"D.T_agent[D.T_concurrency[D.T_event]]"},"_get_next_action":{"params":[{"name":"self"},{"name":"observation","annotation":"D.T_agent[D.T_observation]"}],"return":"D.T_agent[D.T_concurrency[D.T_event]]"},"save":{"params":[{"name":"self"},{"name":"path","annotation":"str"}],"return":"None"},"_save":{"params":[{"name":"self"},{"name":"path","annotation":"str"}],"return":"None"},"load":{"params":[{"name":"self"},{"name":"path","annotation":"str"},{"name":"domain_factory","annotation":"Callable[[], D]"}],"return":"None"},"_load":{"params":[{"name":"self"},{"name":"path","annotation":"str"},{"name":"domain_factory","annotation":"Callable[[], D]"}],"return":"None"},"_solve_domain":{"params":[{"name":"self"},{"name":"domain_factory","annotation":"Callable[[], D]"}],"return":"None"}}},"objects":{"Space":"/reference/_skdecide.core.html#space","ImplicitSpace":"/reference/_skdecide.core.html#implicitspace","EnumerableSpace":"/reference/_skdecide.core.html#enumerablespace","EmptySpace":"/reference/_skdecide.core.html#emptyspace","SamplableSpace":"/reference/_skdecide.core.html#samplablespace","SerializableSpace":"/reference/_skdecide.core.html#serializablespace","Distribution":"/reference/_skdecide.core.html#distribution","ImplicitDistribution":"/reference/_skdecide.core.html#implicitdistribution","DiscreteDistribution":"/reference/_skdecide.core.html#discretedistribution","SingleValueDistribution":"/reference/_skdecide.core.html#singlevaluedistribution","Value":"/reference/_skdecide.core.html#value","EnvironmentOutcome":"/reference/_skdecide.core.html#environmentoutcome","TransitionOutcome":"/reference/_skdecide.core.html#transitionoutcome","StrDict":"/reference/_skdecide.core.html#strdict","Constraint":"/reference/_skdecide.core.html#constraint","ImplicitConstraint":"/reference/_skdecide.core.html#implicitconstraint","BoundConstraint":"/reference/_skdecide.core.html#boundconstraint"}}')},function(e,t,i){function n(t){return"function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?(e.exports=n=function(e){return typeof e},e.exports.default=e.exports,e.exports.__esModule=!0):(e.exports=n=function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e.exports.default=e.exports,e.exports.__esModule=!0),n(t)}i(42),i(52),i(14),i(82),i(18),i(23),e.exports=n,e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t,i){"use strict";var n=i(1),r=i(104).indexOf,s=i(40),a=[].indexOf,o=!!a&&1/[1].indexOf(1,-0)<0,l=s("indexOf");n({target:"Array",proto:!0,forced:o||!l},{indexOf:function(e){return o?a.apply(this,arguments)||0:r(this,e,arguments.length>1?arguments[1]:void 0)}})},function(e,t,i){var n=i(8),r=i(34),s=i(4)("match");e.exports=function(e){var t;return n(e)&&(void 0!==(t=e[s])?!!t:"RegExp"==r(e))}},function(e,t,i){var n=i(2),r=i(3).RegExp;t.UNSUPPORTED_Y=n((function(){var e=r("a","y");return e.lastIndex=2,null!=e.exec("abcd")})),t.BROKEN_CARET=n((function(){var e=r("^r","gy");return e.lastIndex=2,null!=e.exec("str")}))},function(e,t,i){"use strict";i(56);var n=i(13),r=i(97),s=i(2),a=i(4),o=i(32),l=a("species"),u=RegExp.prototype;e.exports=function(e,t,i,c){var d=a(e),h=!s((function(){var t={};return t[d]=function(){return 7},7!=""[e](t)})),p=h&&!s((function(){var t=!1,i=/a/;return"split"===e&&((i={}).constructor={},i.constructor[l]=function(){return i},i.flags="",i[d]=/./[d]),i.exec=function(){return t=!0,null},i[d](""),!t}));if(!h||!p||i){var f=/./[d],m=t(d,""[e],(function(e,t,i,n,s){var a=t.exec;return a===r||a===u.exec?h&&!s?{done:!0,value:f.call(t,i,n)}:{done:!0,value:e.call(i,t,n)}:{done:!1}}));n(String.prototype,e,m[0]),n(u,d,m[1])}c&&o(u[d],"sham",!0)}},function(e,t,i){"use strict";var n=i(162).charAt;e.exports=function(e,t,i){return t+(i?n(e,t).length:1)}},function(e,t,i){var n=i(9),r=i(5),s=i(34),a=i(97);e.exports=function(e,t){var i=e.exec;if(r(i)){var o=i.call(e,t);return null!==o&&n(o),o}if("RegExp"===s(e))return a.call(e,t);throw TypeError("RegExp#exec called on incompatible receiver")}},function(e,t,i){"use strict";var n=i(1),r=i(47),s=i(16),a=i(40),o=[].join,l=r!=Object,u=a("join",",");n({target:"Array",proto:!0,forced:l||!u},{join:function(e){return o.call(s(this),void 0===e?",":e)}})},function(e,t,i){"use strict";var n,r=i(1),s=i(26).f,a=i(21),o=i(20),l=i(135),u=i(28),c=i(136),d=i(30),h="".startsWith,p=Math.min,f=c("startsWith");r({target:"String",proto:!0,forced:!!(d||f||(n=s(String.prototype,"startsWith"),!n||n.writable))&&!f},{startsWith:function(e){var t=o(u(this));l(e);var i=a(p(arguments.length>1?arguments[1]:void 0,t.length)),n=o(e);return h?h.call(t,n,i):t.slice(i,i+n.length)===n}})},function(e,t,i){var n=i(28),r=i(20),s="["+i(224)+"]",a=RegExp("^"+s+s+"*"),o=RegExp(s+s+"*$"),l=function(e){return function(t){var i=r(n(t));return 1&e&&(i=i.replace(a,"")),2&e&&(i=i.replace(o,"")),i}};e.exports={start:l(1),end:l(2),trim:l(3)}},function(e,t){e.exports="\t\n\v\f\r                 \u2028\u2029\ufeff"},function(e,t,i){"use strict";var n=i(62).PROPER,r=i(13),s=i(9),a=i(20),o=i(2),l=i(137),u=RegExp.prototype,c=u.toString,d=o((function(){return"/a/b"!=c.call({source:"a",flags:"b"})})),h=n&&"toString"!=c.name;(d||h)&&r(RegExp.prototype,"toString",(function(){var e=s(this),t=a(e.source),i=e.flags;return"/"+t+"/"+a(void 0===i&&e instanceof RegExp&&!("flags"in u)?l.call(e):i)}),{unsafe:!0})},function(e,t,i){"use strict";var n=i(17),r=i(11),s=i(4),a=i(7),o=s("species");e.exports=function(e){var t=n(e),i=r.f;a&&t&&!t[o]&&i(t,o,{configurable:!0,get:function(){return this}})}},function(e,t,i){var n=i(2),r=i(3).RegExp;e.exports=n((function(){var e=r(".","s");return!(e.dotAll&&e.exec("\n")&&"s"===e.flags)}))},function(e,t,i){var n=i(2),r=i(3).RegExp;e.exports=n((function(){var e=r("(?b)","g");return"b"!==e.exec("b").groups.a||"bc"!=="b".replace(e,"$c")}))},function(e,t,i){"use strict";var n=i(1),r=i(104).includes,s=i(99);n({target:"Array",proto:!0},{includes:function(e){return r(this,e,arguments.length>1?arguments[1]:void 0)}}),s("includes")},function(e,t,i){"use strict";var n=i(1),r=i(135),s=i(28),a=i(20);n({target:"String",proto:!0,forced:!i(136)("includes")},{includes:function(e){return!!~a(s(this)).indexOf(a(r(e)),arguments.length>1?arguments[1]:void 0)}})},function(e,t,i){var n=i(194);e.exports=function(e,t,i){var r=null==e?void 0:n(e,t);return void 0===r?i:r}},function(e,t){e.exports=function(e){var t=null==e?0:e.length;return t?e[t-1]:void 0}},function(e,t,i){var n=i(7),r=i(48),s=i(16),a=i(72).f,o=function(e){return function(t){for(var i,o=s(t),l=r(o),u=l.length,c=0,d=[];u>c;)i=l[c++],n&&!a.call(o,i)||d.push(e?[i,o[i]]:o[i]);return d}};e.exports={entries:o(!0),values:o(!1)}},function(e,t,i){var n=i(5),r=i(8),s=i(74);e.exports=function(e,t,i){var a,o;return s&&n(a=t.constructor)&&a!==i&&r(o=a.prototype)&&o!==i.prototype&&s(e,o),e}},function(e,t,i){e.exports=i(421)},function(e,t,i){var n=i(5),r=i(8);e.exports=function(e,t){var i,s;if("string"===t&&n(i=e.toString)&&!r(s=i.call(e)))return s;if(n(i=e.valueOf)&&!r(s=i.call(e)))return s;if("string"!==t&&n(i=e.toString)&&!r(s=i.call(e)))return s;throw TypeError("Can't convert object to primitive value")}},function(e,t,i){var n=i(3),r=i(5),s=i(71),a=n.WeakMap;e.exports=r(a)&&/native code/.test(s(a))},function(e,t,i){"use strict";var n=i(150).IteratorPrototype,r=i(27),s=i(51),a=i(73),o=i(50),l=function(){return this};e.exports=function(e,t,i){var u=t+" Iterator";return e.prototype=r(n,{next:s(1,i)}),a(e,u,!1,!0),o[u]=l,e}},function(e,t,i){var n=i(5);e.exports=function(e){if("object"==typeof e||n(e))return e;throw TypeError("Can't set "+String(e)+" as a prototype")}},function(e,t,i){"use strict";var n,r,s,a,o=i(1),l=i(30),u=i(3),c=i(17),d=i(152),h=i(13),p=i(241),f=i(74),m=i(73),v=i(226),g=i(31),_=i(5),b=i(8),y=i(242),x=i(71),k=i(243),w=i(156),C=i(131),S=i(158).set,O=i(244),D=i(160),E=i(247),T=i(161),$=i(248),P=i(39),j=i(100),M=i(4),I=i(249),A=i(78),N=i(44),L=M("species"),F="Promise",V=P.get,z=P.set,R=P.getterFor(F),B=d&&d.prototype,H=d,W=B,q=u.TypeError,U=u.document,G=u.process,Y=T.f,K=Y,X=!!(U&&U.createEvent&&u.dispatchEvent),Z=_(u.PromiseRejectionEvent),Q=!1,J=j(F,(function(){var e=x(H),t=e!==String(H);if(!t&&66===N)return!0;if(l&&!W.finally)return!0;if(N>=51&&/native code/.test(e))return!1;var i=new H((function(e){e(1)})),n=function(e){e((function(){}),(function(){}))};return(i.constructor={})[L]=n,!(Q=i.then((function(){}))instanceof n)||!t&&I&&!Z})),ee=J||!w((function(e){H.all(e).catch((function(){}))})),te=function(e){var t;return!(!b(e)||!_(t=e.then))&&t},ie=function(e,t){if(!e.notified){e.notified=!0;var i=e.reactions;O((function(){for(var n=e.value,r=1==e.state,s=0;i.length>s;){var a,o,l,u=i[s++],c=r?u.ok:u.fail,d=u.resolve,h=u.reject,p=u.domain;try{c?(r||(2===e.rejection&&ae(e),e.rejection=1),!0===c?a=n:(p&&p.enter(),a=c(n),p&&(p.exit(),l=!0)),a===u.promise?h(q("Promise-chain cycle")):(o=te(a))?o.call(a,d,h):d(a)):h(n)}catch(e){p&&!l&&p.exit(),h(e)}}e.reactions=[],e.notified=!1,t&&!e.rejection&&re(e)}))}},ne=function(e,t,i){var n,r;X?((n=U.createEvent("Event")).promise=t,n.reason=i,n.initEvent(e,!1,!0),u.dispatchEvent(n)):n={promise:t,reason:i},!Z&&(r=u["on"+e])?r(n):"unhandledrejection"===e&&E("Unhandled promise rejection",i)},re=function(e){S.call(u,(function(){var t,i=e.facade,n=e.value;if(se(e)&&(t=$((function(){A?G.emit("unhandledRejection",n,i):ne("unhandledrejection",i,n)})),e.rejection=A||se(e)?2:1,t.error))throw t.value}))},se=function(e){return 1!==e.rejection&&!e.parent},ae=function(e){S.call(u,(function(){var t=e.facade;A?G.emit("rejectionHandled",t):ne("rejectionhandled",t,e.value)}))},oe=function(e,t,i){return function(n){e(t,n,i)}},le=function(e,t,i){e.done||(e.done=!0,i&&(e=i),e.value=t,e.state=2,ie(e,!0))},ue=function(e,t,i){if(!e.done){e.done=!0,i&&(e=i);try{if(e.facade===t)throw q("Promise can't be resolved itself");var n=te(t);n?O((function(){var i={done:!1};try{n.call(t,oe(ue,i,e),oe(le,i,e))}catch(t){le(i,t,e)}})):(e.value=t,e.state=1,ie(e,!1))}catch(t){le({done:!1},t,e)}}};if(J&&(W=(H=function(e){y(this,H,F),g(e),n.call(this);var t=V(this);try{e(oe(ue,t),oe(le,t))}catch(e){le(t,e)}}).prototype,(n=function(e){z(this,{type:F,done:!1,notified:!1,parent:!1,reactions:[],rejection:!1,state:0,value:void 0})}).prototype=p(W,{then:function(e,t){var i=R(this),n=Y(C(this,H));return n.ok=!_(e)||e,n.fail=_(t)&&t,n.domain=A?G.domain:void 0,i.parent=!0,i.reactions.push(n),0!=i.state&&ie(i,!1),n.promise},catch:function(e){return this.then(void 0,e)}}),r=function(){var e=new n,t=V(e);this.promise=e,this.resolve=oe(ue,t),this.reject=oe(le,t)},T.f=Y=function(e){return e===H||e===s?new r(e):K(e)},!l&&_(d)&&B!==Object.prototype)){a=B.then,Q||(h(B,"then",(function(e,t){var i=this;return new H((function(e,t){a.call(i,e,t)})).then(e,t)}),{unsafe:!0}),h(B,"catch",W.catch,{unsafe:!0}));try{delete B.constructor}catch(e){}f&&f(B,W)}o({global:!0,wrap:!0,forced:J},{Promise:H}),m(H,F,!1,!0),v(F),s=c(F),o({target:F,stat:!0,forced:J},{reject:function(e){var t=Y(this);return t.reject.call(void 0,e),t.promise}}),o({target:F,stat:!0,forced:l||J},{resolve:function(e){return D(l&&this===s?H:this,e)}}),o({target:F,stat:!0,forced:ee},{all:function(e){var t=this,i=Y(t),n=i.resolve,r=i.reject,s=$((function(){var i=g(t.resolve),s=[],a=0,o=1;k(e,(function(e){var l=a++,u=!1;s.push(void 0),o++,i.call(t,e).then((function(e){u||(u=!0,s[l]=e,--o||n(s))}),r)})),--o||n(s)}));return s.error&&r(s.value),i.promise},race:function(e){var t=this,i=Y(t),n=i.reject,r=$((function(){var r=g(t.resolve);k(e,(function(e){r.call(t,e).then(i.resolve,n)}))}));return r.error&&n(r.value),i.promise}})},function(e,t,i){var n=i(13);e.exports=function(e,t,i){for(var r in t)n(e,r,t[r],i);return e}},function(e,t){e.exports=function(e,t,i){if(e instanceof t)return e;throw TypeError("Incorrect "+(i?i+" ":"")+"invocation")}},function(e,t,i){var n=i(9),r=i(153),s=i(21),a=i(75),o=i(154),l=i(108),u=i(155),c=function(e,t){this.stopped=e,this.result=t};e.exports=function(e,t,i){var d,h,p,f,m,v,g,_=i&&i.that,b=!(!i||!i.AS_ENTRIES),y=!(!i||!i.IS_ITERATOR),x=!(!i||!i.INTERRUPTED),k=a(t,_,1+b+x),w=function(e){return d&&u(d,"normal",e),new c(!0,e)},C=function(e){return b?(n(e),x?k(e[0],e[1],w):k(e[0],e[1])):x?k(e,w):k(e)};if(y)d=e;else{if(!(h=l(e)))throw TypeError(String(e)+" is not iterable");if(r(h)){for(p=0,f=s(e.length);f>p;p++)if((m=C(e[p]))&&m instanceof c)return m;return new c(!1)}d=o(e,h)}for(v=d.next;!(g=v.call(d)).done;){try{m=C(g.value)}catch(e){u(d,"throw",e)}if("object"==typeof m&&m&&m instanceof c)return m}return new c(!1)}},function(e,t,i){var n,r,s,a,o,l,u,c,d=i(3),h=i(26).f,p=i(158).set,f=i(159),m=i(245),v=i(246),g=i(78),_=d.MutationObserver||d.WebKitMutationObserver,b=d.document,y=d.process,x=d.Promise,k=h(d,"queueMicrotask"),w=k&&k.value;w||(n=function(){var e,t;for(g&&(e=y.domain)&&e.exit();r;){t=r.fn,r=r.next;try{t()}catch(e){throw r?a():s=void 0,e}}s=void 0,e&&e.enter()},f||g||v||!_||!b?!m&&x&&x.resolve?((u=x.resolve(void 0)).constructor=x,c=u.then,a=function(){c.call(u,n)}):a=g?function(){y.nextTick(n)}:function(){p.call(d,n)}:(o=!0,l=b.createTextNode(""),new _(n).observe(l,{characterData:!0}),a=function(){l.data=o=!o})),e.exports=w||function(e){var t={fn:e,next:void 0};s&&(s.next=t),r||(r=t,a()),s=t}},function(e,t,i){var n=i(60),r=i(3);e.exports=/ipad|iphone|ipod/i.test(n)&&void 0!==r.Pebble},function(e,t,i){var n=i(60);e.exports=/web0s(?!.*chrome)/i.test(n)},function(e,t,i){var n=i(3);e.exports=function(e,t){var i=n.console;i&&i.error&&(1===arguments.length?i.error(e):i.error(e,t))}},function(e,t){e.exports=function(e){try{return{error:!1,value:e()}}catch(e){return{error:!0,value:e}}}},function(e,t){e.exports="object"==typeof window},function(e,t,i){var n=i(1),r=i(251);n({target:"Object",stat:!0,forced:Object.assign!==r},{assign:r})},function(e,t,i){"use strict";var n=i(7),r=i(2),s=i(48),a=i(106),o=i(72),l=i(15),u=i(47),c=Object.assign,d=Object.defineProperty;e.exports=!c||r((function(){if(n&&1!==c({b:1},c(d({},"a",{enumerable:!0,get:function(){d(this,"b",{value:3,enumerable:!1})}}),{b:2})).b)return!0;var e={},t={},i=Symbol();return e[i]=7,"abcdefghijklmnopqrst".split("").forEach((function(e){t[e]=e})),7!=c({},e)[i]||"abcdefghijklmnopqrst"!=s(c({},t)).join("")}))?function(e,t){for(var i=l(e),r=arguments.length,c=1,d=a.f,h=o.f;r>c;)for(var p,f=u(arguments[c++]),m=d?s(f).concat(d(f)):s(f),v=m.length,g=0;v>g;)p=m[g++],n&&!h.call(f,p)||(i[p]=f[p]);return i}:c},function(e,t,i){"use strict";var n=i(1),r=i(30),s=i(152),a=i(2),o=i(17),l=i(5),u=i(131),c=i(160),d=i(13);if(n({target:"Promise",proto:!0,real:!0,forced:!!s&&a((function(){s.prototype.finally.call({then:function(){}},(function(){}))}))},{finally:function(e){var t=u(this,o("Promise")),i=l(e);return this.then(i?function(i){return c(t,e()).then((function(){return i}))}:e,i?function(i){return c(t,e()).then((function(){throw i}))}:e)}}),!r&&l(s)){var h=o("Promise").prototype.finally;s.prototype.finally!==h&&d(s.prototype,"finally",h,{unsafe:!0})}},function(e,t,i){"use strict";var n=i(109),r=i(76);e.exports=n?{}.toString:function(){return"[object "+r(this)+"]"}},function(e,t,i){var n=i(43),r=i(77),s=i(8),a=i(4)("species");e.exports=function(e){var t;return n(e)&&(t=e.constructor,(r(t)&&(t===Array||n(t.prototype))||s(t)&&null===(t=t[a]))&&(t=void 0)),void 0===t?Array:t}},function(e,t,i){"use strict";var n=i(1),r=i(256).left,s=i(40),a=i(44),o=i(78);n({target:"Array",proto:!0,forced:!s("reduce")||!o&&a>79&&a<83},{reduce:function(e){return r(this,e,arguments.length,arguments.length>1?arguments[1]:void 0)}})},function(e,t,i){var n=i(31),r=i(15),s=i(47),a=i(21),o=function(e){return function(t,i,o,l){n(i);var u=r(t),c=s(u),d=a(u.length),h=e?d-1:0,p=e?-1:1;if(o<2)for(;;){if(h in c){l=c[h],h+=p;break}if(h+=p,e?h<0:d<=h)throw TypeError("Reduce of empty array with no initial value")}for(;e?h>=0:d>h;h+=p)h in c&&(l=i(l,c[h],h,u));return l}};e.exports={left:o(!1),right:o(!0)}},function(e,t,i){var n=i(1),r=i(169),s=i(2),a=i(8),o=i(258).onFreeze,l=Object.freeze;n({target:"Object",stat:!0,forced:s((function(){l(1)})),sham:!r},{freeze:function(e){return l&&a(e)?l(o(e)):e}})},function(e,t,i){var n=i(1),r=i(49),s=i(8),a=i(10),o=i(11).f,l=i(45),u=i(170),c=i(65),d=i(169),h=!1,p=c("meta"),f=0,m=Object.isExtensible||function(){return!0},v=function(e){o(e,p,{value:{objectID:"O"+f++,weakData:{}}})},g=e.exports={enable:function(){g.enable=function(){},h=!0;var e=l.f,t=[].splice,i={};i[p]=1,e(i).length&&(l.f=function(i){for(var n=e(i),r=0,s=n.length;r1?arguments[1]:void 0,f=void 0!==p;f&&(p=n(p,h>2?arguments[2]:void 0,2));var m,v,g,_,b,y,x=d(t),k=0;if(!x||this==Array&&a(x))for(m=l(t.length),v=i?new this(m):Array(m);m>k;k++)y=f?p(t[k],k):t[k],u(v,k,y);else for(b=(_=c(t,x)).next,v=i?new this:[];!(g=b.call(_)).done;k++)y=f?s(_,p,[g.value,k],!0):g.value,u(v,k,y);return v.length=k,v}},function(e,t,i){var n=i(9),r=i(155);e.exports=function(e,t,i,s){try{return s?t(n(i)[0],i[1]):t(i)}catch(t){r(e,"throw",t)}}},function(e,t,i){var n=i(15),r=Math.floor,s="".replace,a=/\$([$&'`]|\d{1,2}|<[^>]*>)/g,o=/\$([$&'`]|\d{1,2})/g;e.exports=function(e,t,i,l,u,c){var d=i+e.length,h=l.length,p=o;return void 0!==u&&(u=n(u),p=a),s.call(c,p,(function(n,s){var a;switch(s.charAt(0)){case"$":return"$";case"&":return e;case"`":return t.slice(0,i);case"'":return t.slice(d);case"<":a=u[s.slice(1,-1)];break;default:var o=+s;if(0===o)return n;if(o>h){var c=r(o/10);return 0===c?n:c<=h?void 0===l[c-1]?s.charAt(1):l[c-1]+s.charAt(1):n}a=l[o-1]}return void 0===a?"":a}))}},function(e,t,i){var n=i(175),r=i(264);e.exports=function e(t,i,s,a,o){var l=-1,u=t.length;for(s||(s=r),o||(o=[]);++l0&&s(c)?i>1?e(c,i-1,s,a,o):n(o,c):a||(o[o.length]=c)}return o}},function(e,t,i){var n=i(53),r=i(110),s=i(22),a=n?n.isConcatSpreadable:void 0;e.exports=function(e){return s(e)||r(e)||!!(a&&e&&e[a])}},function(e,t,i){var n=i(46),r=i(41);e.exports=function(e){return r(e)&&"[object Arguments]"==n(e)}},function(e,t,i){var n=i(53),r=Object.prototype,s=r.hasOwnProperty,a=r.toString,o=n?n.toStringTag:void 0;e.exports=function(e){var t=s.call(e,o),i=e[o];try{e[o]=void 0;var n=!0}catch(e){}var r=a.call(e);return n&&(t?e[o]=i:delete e[o]),r}},function(e,t){var i=Object.prototype.toString;e.exports=function(e){return i.call(e)}},function(e,t,i){var n=i(269),r=i(325),s=i(118),a=i(22),o=i(335);e.exports=function(e){return"function"==typeof e?e:null==e?s:"object"==typeof e?a(e)?r(e[0],e[1]):n(e):o(e)}},function(e,t,i){var n=i(270),r=i(324),s=i(193);e.exports=function(e){var t=r(e);return 1==t.length&&t[0][2]?s(t[0][0],t[0][1]):function(i){return i===e||n(i,e,t)}}},function(e,t,i){var n=i(177),r=i(181);e.exports=function(e,t,i,s){var a=i.length,o=a,l=!s;if(null==e)return!o;for(e=Object(e);a--;){var u=i[a];if(l&&u[2]?u[1]!==e[u[0]]:!(u[0]in e))return!1}for(;++a-1}},function(e,t,i){var n=i(84);e.exports=function(e,t){var i=this.__data__,r=n(i,e);return r<0?(++this.size,i.push([e,t])):i[r][1]=t,this}},function(e,t,i){var n=i(83);e.exports=function(){this.__data__=new n,this.size=0}},function(e,t){e.exports=function(e){var t=this.__data__,i=t.delete(e);return this.size=t.size,i}},function(e,t){e.exports=function(e){return this.__data__.get(e)}},function(e,t){e.exports=function(e){return this.__data__.has(e)}},function(e,t,i){var n=i(83),r=i(111),s=i(113);e.exports=function(e,t){var i=this.__data__;if(i instanceof n){var a=i.__data__;if(!r||a.length<199)return a.push([e,t]),this.size=++i.size,this;i=this.__data__=new s(a)}return i.set(e,t),this.size=i.size,this}},function(e,t,i){var n=i(179),r=i(282),s=i(112),a=i(180),o=/^\[object .+?Constructor\]$/,l=Function.prototype,u=Object.prototype,c=l.toString,d=u.hasOwnProperty,h=RegExp("^"+c.call(d).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");e.exports=function(e){return!(!s(e)||r(e))&&(n(e)?h:o).test(a(e))}},function(e,t,i){var n,r=i(283),s=(n=/[^.]+$/.exec(r&&r.keys&&r.keys.IE_PROTO||""))?"Symbol(src)_1."+n:"";e.exports=function(e){return!!s&&s in e}},function(e,t,i){var n=i(24)["__core-js_shared__"];e.exports=n},function(e,t){e.exports=function(e,t){return null==e?void 0:e[t]}},function(e,t,i){var n=i(286),r=i(83),s=i(111);e.exports=function(){this.size=0,this.__data__={hash:new n,map:new(s||r),string:new n}}},function(e,t,i){var n=i(287),r=i(288),s=i(289),a=i(290),o=i(291);function l(e){var t=-1,i=null==e?0:e.length;for(this.clear();++t0){if(++t>=800)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}},function(e,t,i){var n=i(183),r=i(347),s=i(352),a=i(184),o=i(353),l=i(114);e.exports=function(e,t,i){var u=-1,c=r,d=e.length,h=!0,p=[],f=p;if(i)h=!1,c=s;else if(d>=200){var m=t?null:o(e);if(m)return l(m);h=!1,c=a,f=new n}else f=t?[]:p;e:for(;++u-1}},function(e,t,i){var n=i(349),r=i(350),s=i(351);e.exports=function(e,t,i){return t==t?s(e,t,i):n(e,r,i)}},function(e,t){e.exports=function(e,t,i,n){for(var r=e.length,s=i+(n?1:-1);n?s--:++s1?arguments[1]:void 0)}}),s("findIndex")},function(e,t,i){var n=i(1),r=i(233).values;n({target:"Object",stat:!0},{values:function(e){return r(e)}})},function(e,t,i){"use strict";t.__esModule=!0,t.validateRangeInOneMonth=t.extractTimeFormat=t.extractDateFormat=t.nextYear=t.prevYear=t.nextMonth=t.prevMonth=t.changeYearMonthAndClampDate=t.timeWithinRange=t.limitTimeRange=t.clearMilliseconds=t.clearTime=t.modifyWithTimeString=t.modifyTime=t.modifyDate=t.range=t.getRangeMinutes=t.getMonthDays=t.getPrevMonthLastDays=t.getRangeHours=t.getWeekNumber=t.getStartDateOfMonth=t.nextDate=t.prevDate=t.getFirstDayOfMonth=t.getDayCountOfYear=t.getDayCountOfMonth=t.parseDate=t.formatDate=t.isDateObject=t.isDate=t.toDate=t.getI18nSettings=void 0;var n,r=i(196),s=(n=r)&&n.__esModule?n:{default:n},a=i(120);var o=["sun","mon","tue","wed","thu","fri","sat"],l=["jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec"],u=t.getI18nSettings=function(){return{dayNamesShort:o.map((function(e){return(0,a.t)("el.datepicker.weeks."+e)})),dayNames:o.map((function(e){return(0,a.t)("el.datepicker.weeks."+e)})),monthNamesShort:l.map((function(e){return(0,a.t)("el.datepicker.months."+e)})),monthNames:l.map((function(e,t){return(0,a.t)("el.datepicker.month"+(t+1))})),amPm:["am","pm"]}},c=t.toDate=function(e){return d(e)?new Date(e):null},d=t.isDate=function(e){return null!=e&&(!isNaN(new Date(e).getTime())&&!Array.isArray(e))},h=(t.isDateObject=function(e){return e instanceof Date},t.formatDate=function(e,t){return(e=c(e))?s.default.format(e,t||"yyyy-MM-dd",u()):""},t.parseDate=function(e,t){return s.default.parse(e,t||"yyyy-MM-dd",u())}),p=t.getDayCountOfMonth=function(e,t){return 3===t||5===t||8===t||10===t?30:1===t?e%4==0&&e%100!=0||e%400==0?29:28:31},f=(t.getDayCountOfYear=function(e){return e%400==0||e%100!=0&&e%4==0?366:365},t.getFirstDayOfMonth=function(e){var t=new Date(e.getTime());return t.setDate(1),t.getDay()},t.prevDate=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;return new Date(e.getFullYear(),e.getMonth(),e.getDate()-t)});t.nextDate=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;return new Date(e.getFullYear(),e.getMonth(),e.getDate()+t)},t.getStartDateOfMonth=function(e,t){var i=new Date(e,t,1),n=i.getDay();return f(i,0===n?7:n)},t.getWeekNumber=function(e){if(!d(e))return null;var t=new Date(e.getTime());t.setHours(0,0,0,0),t.setDate(t.getDate()+3-(t.getDay()+6)%7);var i=new Date(t.getFullYear(),0,4);return 1+Math.round(((t.getTime()-i.getTime())/864e5-3+(i.getDay()+6)%7)/7)},t.getRangeHours=function(e){var t=[],i=[];if((e||[]).forEach((function(e){var t=e.map((function(e){return e.getHours()}));i=i.concat(function(e,t){for(var i=[],n=e;n<=t;n++)i.push(n);return i}(t[0],t[1]))})),i.length)for(var n=0;n<24;n++)t[n]=-1===i.indexOf(n);else for(var r=0;r<24;r++)t[r]=!1;return t},t.getPrevMonthLastDays=function(e,t){if(t<=0)return[];var i=new Date(e.getTime());i.setDate(0);var n=i.getDate();return v(t).map((function(e,i){return n-(t-i-1)}))},t.getMonthDays=function(e){var t=new Date(e.getFullYear(),e.getMonth()+1,0).getDate();return v(t).map((function(e,t){return t+1}))};function m(e,t,i,n){for(var r=t;r0?e.forEach((function(e){var n=e[0],r=e[1],s=n.getHours(),a=n.getMinutes(),o=r.getHours(),l=r.getMinutes();s===t&&o!==t?m(i,a,60,!0):s===t&&o===t?m(i,a,l+1,!0):s!==t&&o===t?m(i,0,l+1,!0):st&&m(i,0,60,!0)})):m(i,0,60,!0),i};var v=t.range=function(e){return Array.apply(null,{length:e}).map((function(e,t){return t}))},g=t.modifyDate=function(e,t,i,n){return new Date(t,i,n,e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds())},_=t.modifyTime=function(e,t,i,n){return new Date(e.getFullYear(),e.getMonth(),e.getDate(),t,i,n,e.getMilliseconds())},b=(t.modifyWithTimeString=function(e,t){return null!=e&&t?(t=h(t,"HH:mm:ss"),_(e,t.getHours(),t.getMinutes(),t.getSeconds())):e},t.clearTime=function(e){return new Date(e.getFullYear(),e.getMonth(),e.getDate())},t.clearMilliseconds=function(e){return new Date(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours(),e.getMinutes(),e.getSeconds(),0)},t.limitTimeRange=function(e,t){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"HH:mm:ss";if(0===t.length)return e;var n=function(e){return s.default.parse(s.default.format(e,i),i)},r=n(e),a=t.map((function(e){return e.map(n)}));if(a.some((function(e){return r>=e[0]&&r<=e[1]})))return e;var o=a[0][0],l=a[0][0];a.forEach((function(e){o=new Date(Math.min(e[0],o)),l=new Date(Math.max(e[1],o))}));var u=r1&&void 0!==arguments[1]?arguments[1]:1,i=e.getFullYear(),n=e.getMonth();return y(e,i-t,n)},t.nextYear=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,i=e.getFullYear(),n=e.getMonth();return y(e,i+t,n)},t.extractDateFormat=function(e){return e.replace(/\W?m{1,2}|\W?ZZ/g,"").replace(/\W?h{1,2}|\W?s{1,3}|\W?a/gi,"").trim()},t.extractTimeFormat=function(e){return e.replace(/\W?D{1,2}|\W?Do|\W?d{1,4}|\W?M{1,4}|\W?y{2,4}/g,"").trim()},t.validateRangeInOneMonth=function(e,t){return e.getMonth()===t.getMonth()&&e.getFullYear()===t.getFullYear()}},function(e,t,i){"use strict";t.__esModule=!0,t.default={el:{colorpicker:{confirm:"确定",clear:"清空"},datepicker:{now:"此刻",today:"今天",cancel:"取消",clear:"清空",confirm:"确定",selectDate:"选择日期",selectTime:"选择时间",startDate:"开始日期",startTime:"开始时间",endDate:"结束日期",endTime:"结束时间",prevYear:"前一年",nextYear:"后一年",prevMonth:"上个月",nextMonth:"下个月",year:"年",month1:"1 月",month2:"2 月",month3:"3 月",month4:"4 月",month5:"5 月",month6:"6 月",month7:"7 月",month8:"8 月",month9:"9 月",month10:"10 月",month11:"11 月",month12:"12 月",weeks:{sun:"日",mon:"一",tue:"二",wed:"三",thu:"四",fri:"五",sat:"六"},months:{jan:"一月",feb:"二月",mar:"三月",apr:"四月",may:"五月",jun:"六月",jul:"七月",aug:"八月",sep:"九月",oct:"十月",nov:"十一月",dec:"十二月"}},select:{loading:"加载中",noMatch:"无匹配数据",noData:"无数据",placeholder:"请选择"},cascader:{noMatch:"无匹配数据",loading:"加载中",placeholder:"请选择",noData:"暂无数据"},pagination:{goto:"前往",pagesize:"条/页",total:"共 {total} 条",pageClassifier:"页"},messagebox:{title:"提示",confirm:"确定",cancel:"取消",error:"输入的数据不合法!"},upload:{deleteTip:"按 delete 键可删除",delete:"删除",preview:"查看图片",continue:"继续上传"},table:{emptyText:"暂无数据",confirmFilter:"筛选",resetFilter:"重置",clearFilter:"全部",sumText:"合计"},tree:{emptyText:"暂无数据"},transfer:{noMatch:"无匹配数据",noData:"无数据",titles:["列表 1","列表 2"],filterPlaceholder:"请输入搜索内容",noCheckedFormat:"共 {total} 项",hasCheckedFormat:"已选 {checked}/{total} 项"},image:{error:"加载失败"},pageHeader:{title:"返回"},popconfirm:{confirmButtonText:"确定",cancelButtonText:"取消"},empty:{description:"暂无数据"}}}},function(e,t,i){"use strict";var n=function(e){return function(e){return!!e&&"object"==typeof e}(e)&&!function(e){var t=Object.prototype.toString.call(e);return"[object RegExp]"===t||"[object Date]"===t||function(e){return e.$$typeof===r}(e)}(e)};var r="function"==typeof Symbol&&Symbol.for?Symbol.for("react.element"):60103;function s(e,t){var i;return t&&!0===t.clone&&n(e)?o((i=e,Array.isArray(i)?[]:{}),e,t):e}function a(e,t,i){var r=e.slice();return t.forEach((function(t,a){void 0===r[a]?r[a]=s(t,i):n(t)?r[a]=o(e[a],t,i):-1===e.indexOf(t)&&r.push(s(t,i))})),r}function o(e,t,i){var r=Array.isArray(t);return r===Array.isArray(e)?r?((i||{arrayMerge:a}).arrayMerge||a)(e,t,i):function(e,t,i){var r={};return n(e)&&Object.keys(e).forEach((function(t){r[t]=s(e[t],i)})),Object.keys(t).forEach((function(a){n(t[a])&&e[a]?r[a]=o(e[a],t[a],i):r[a]=s(t[a],i)})),r}(e,t,i):s(t,i)}o.all=function(e,t){if(!Array.isArray(e)||e.length<2)throw new Error("first argument should be an array with at least two elements");return e.reduce((function(e,i){return o(e,i,t)}))};var l=o;e.exports=l},function(e,t,i){"use strict";t.__esModule=!0;var n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};t.default=function(e){return function(e){for(var t=arguments.length,i=Array(t>1?t-1:0),a=1;a0){var n=t[t.length-1];if(n.id===e){if(n.modalClass)n.modalClass.trim().split(/\s+/).forEach((function(e){return(0,a.removeClass)(i,e)}));t.pop(),t.length>0&&(i.style.zIndex=t[t.length-1].zIndex)}else for(var r=t.length-1;r>=0;r--)if(t[r].id===e){t.splice(r,1);break}}0===t.length&&(this.modalFade&&(0,a.addClass)(i,"v-modal-leave"),setTimeout((function(){0===t.length&&(i.parentNode&&i.parentNode.removeChild(i),i.style.display="none",h.modalDom=void 0),(0,a.removeClass)(i,"v-modal-leave")}),200))}};Object.defineProperty(h,"zIndex",{configurable:!0,get:function(){return l||(u=u||(s.default.prototype.$ELEMENT||{}).zIndex||2e3,l=!0),u},set:function(e){u=e}});s.default.prototype.$isServer||window.addEventListener("keydown",(function(e){if(27===e.keyCode){var t=function(){if(!s.default.prototype.$isServer&&h.modalStack.length>0){var e=h.modalStack[h.modalStack.length-1];if(!e)return;return h.getInstance(e.id)}}();t&&t.closeOnPressEscape&&(t.handleClose?t.handleClose():t.handleAction?t.handleAction("cancel"):t.close())}})),t.default=h},function(e,t,i){"use strict";var n,r;"function"==typeof Symbol&&Symbol.iterator;void 0===(r="function"==typeof(n=function(){var e=window,t={placement:"bottom",gpuAcceleration:!0,offset:0,boundariesElement:"viewport",boundariesPadding:5,preventOverflowOrder:["left","right","top","bottom"],flipBehavior:"flip",arrowElement:"[x-arrow]",arrowOffset:0,modifiers:["shift","offset","preventOverflow","keepTogether","arrow","flip","applyStyle"],modifiersIgnored:[],forceAbsolute:!1};function i(e,i,n){this._reference=e.jquery?e[0]:e,this.state={};var r=null==i,s=i&&"[object Object]"===Object.prototype.toString.call(i);return this._popper=r||s?this.parse(s?i:{}):i.jquery?i[0]:i,this._options=Object.assign({},t,n),this._options.modifiers=this._options.modifiers.map(function(e){if(-1===this._options.modifiersIgnored.indexOf(e))return"applyStyle"===e&&this._popper.setAttribute("x-placement",this._options.placement),this.modifiers[e]||e}.bind(this)),this.state.position=this._getPosition(this._popper,this._reference),c(this._popper,{position:this.state.position,top:0}),this.update(),this._setupEventListeners(),this}function n(t){var i=t.style.display,n=t.style.visibility;t.style.display="block",t.style.visibility="hidden",t.offsetWidth;var r=e.getComputedStyle(t),s=parseFloat(r.marginTop)+parseFloat(r.marginBottom),a=parseFloat(r.marginLeft)+parseFloat(r.marginRight),o={width:t.offsetWidth+a,height:t.offsetHeight+s};return t.style.display=i,t.style.visibility=n,o}function r(e){var t={left:"right",right:"left",bottom:"top",top:"bottom"};return e.replace(/left|right|bottom|top/g,(function(e){return t[e]}))}function s(e){var t=Object.assign({},e);return t.right=t.left+t.width,t.bottom=t.top+t.height,t}function a(e,t){var i,n=0;for(i in e){if(e[i]===t)return n;n++}return null}function o(t,i){return e.getComputedStyle(t,null)[i]}function l(t){var i=t.offsetParent;return i!==e.document.body&&i?i:e.document.documentElement}function u(t){var i=t.parentNode;return i?i===e.document?e.document.body.scrollTop||e.document.body.scrollLeft?e.document.body:e.document.documentElement:-1!==["scroll","auto"].indexOf(o(i,"overflow"))||-1!==["scroll","auto"].indexOf(o(i,"overflow-x"))||-1!==["scroll","auto"].indexOf(o(i,"overflow-y"))?i:u(t.parentNode):t}function c(e,t){Object.keys(t).forEach((function(i){var n,r="";-1!==["width","height","top","right","bottom","left"].indexOf(i)&&""!==(n=t[i])&&!isNaN(parseFloat(n))&&isFinite(n)&&(r="px"),e.style[i]=t[i]+r}))}function d(e){var t={width:e.offsetWidth,height:e.offsetHeight,left:e.offsetLeft,top:e.offsetTop};return t.right=t.left+t.width,t.bottom=t.top+t.height,t}function h(e){var t=e.getBoundingClientRect(),i=-1!=navigator.userAgent.indexOf("MSIE")&&"HTML"===e.tagName?-e.scrollTop:t.top;return{left:t.left,top:i,right:t.right,bottom:t.bottom,width:t.right-t.left,height:t.bottom-i}}function p(t){for(var i=["","ms","webkit","moz","o"],n=0;n1&&console.warn("WARNING: the given `parent` query("+t.parent+") matched more than one element, the first one will be used"),0===a.length)throw"ERROR: the given `parent` doesn't exists!";a=a[0]}return a.length>1&&a instanceof Element==0&&(console.warn("WARNING: you have passed as parent a list of elements, the first one will be used"),a=a[0]),a.appendChild(r),r;function o(e,t){t.forEach((function(t){e.classList.add(t)}))}function l(e,t){t.forEach((function(t){e.setAttribute(t.split(":")[0],t.split(":")[1]||"")}))}},i.prototype._getPosition=function(t,i){return l(i),this._options.forceAbsolute?"absolute":function t(i){return i!==e.document.body&&("fixed"===o(i,"position")||(i.parentNode?t(i.parentNode):i))}(i)?"fixed":"absolute"},i.prototype._getOffsets=function(e,t,i){i=i.split("-")[0];var r={};r.position=this.state.position;var s="fixed"===r.position,a=function(e,t,i){var n=h(e),r=h(t);if(i){var s=u(t);r.top+=s.scrollTop,r.bottom+=s.scrollTop,r.left+=s.scrollLeft,r.right+=s.scrollLeft}return{top:n.top-r.top,left:n.left-r.left,bottom:n.top-r.top+n.height,right:n.left-r.left+n.width,width:n.width,height:n.height}}(t,l(e),s),o=n(e);return-1!==["right","left"].indexOf(i)?(r.top=a.top+a.height/2-o.height/2,r.left="left"===i?a.left-o.width:a.right):(r.left=a.left+a.width/2-o.width/2,r.top="top"===i?a.top-o.height:a.bottom),r.width=o.width,r.height=o.height,{popper:r,reference:a}},i.prototype._setupEventListeners=function(){if(this.state.updateBound=this.update.bind(this),e.addEventListener("resize",this.state.updateBound),"window"!==this._options.boundariesElement){var t=u(this._reference);t!==e.document.body&&t!==e.document.documentElement||(t=e),t.addEventListener("scroll",this.state.updateBound),this.state.scrollTarget=t}},i.prototype._removeEventListeners=function(){e.removeEventListener("resize",this.state.updateBound),"window"!==this._options.boundariesElement&&this.state.scrollTarget&&(this.state.scrollTarget.removeEventListener("scroll",this.state.updateBound),this.state.scrollTarget=null),this.state.updateBound=null},i.prototype._getBoundaries=function(t,i,n){var r,s,a={};if("window"===n){var o=e.document.body,c=e.document.documentElement;r=Math.max(o.scrollHeight,o.offsetHeight,c.clientHeight,c.scrollHeight,c.offsetHeight),a={top:0,right:Math.max(o.scrollWidth,o.offsetWidth,c.clientWidth,c.scrollWidth,c.offsetWidth),bottom:r,left:0}}else if("viewport"===n){var h=l(this._popper),p=u(this._popper),f=d(h),m="fixed"===t.offsets.popper.position?0:(s=p)==document.body?Math.max(document.documentElement.scrollTop,document.body.scrollTop):s.scrollTop,v="fixed"===t.offsets.popper.position?0:function(e){return e==document.body?Math.max(document.documentElement.scrollLeft,document.body.scrollLeft):e.scrollLeft}(p);a={top:0-(f.top-m),right:e.document.documentElement.clientWidth-(f.left-v),bottom:e.document.documentElement.clientHeight-(f.top-m),left:0-(f.left-v)}}else a=l(this._popper)===n?{top:0,left:0,right:n.clientWidth,bottom:n.clientHeight}:d(n);return a.left+=i,a.right-=i,a.top=a.top+i,a.bottom=a.bottom-i,a},i.prototype.runModifiers=function(e,t,i){var n=t.slice();return void 0!==i&&(n=this._options.modifiers.slice(0,a(this._options.modifiers,i))),n.forEach(function(t){var i;(i=t)&&"[object Function]"==={}.toString.call(i)&&(e=t.call(this,e))}.bind(this)),e},i.prototype.isModifierRequired=function(e,t){var i=a(this._options.modifiers,e);return!!this._options.modifiers.slice(0,i).filter((function(e){return e===t})).length},i.prototype.modifiers={},i.prototype.modifiers.applyStyle=function(e){var t,i={position:e.offsets.popper.position},n=Math.round(e.offsets.popper.left),r=Math.round(e.offsets.popper.top);return this._options.gpuAcceleration&&(t=p("transform"))?(i[t]="translate3d("+n+"px, "+r+"px, 0)",i.top=0,i.left=0):(i.left=n,i.top=r),Object.assign(i,e.styles),c(this._popper,i),this._popper.setAttribute("x-placement",e.placement),this.isModifierRequired(this.modifiers.applyStyle,this.modifiers.arrow)&&e.offsets.arrow&&c(e.arrowElement,e.offsets.arrow),e},i.prototype.modifiers.shift=function(e){var t=e.placement,i=t.split("-")[0],n=t.split("-")[1];if(n){var r=e.offsets.reference,a=s(e.offsets.popper),o={y:{start:{top:r.top},end:{top:r.top+r.height-a.height}},x:{start:{left:r.left},end:{left:r.left+r.width-a.width}}},l=-1!==["bottom","top"].indexOf(i)?"x":"y";e.offsets.popper=Object.assign(a,o[l][n])}return e},i.prototype.modifiers.preventOverflow=function(e){var t=this._options.preventOverflowOrder,i=s(e.offsets.popper),n={left:function(){var t=i.left;return i.lefte.boundaries.right&&(t=Math.min(i.left,e.boundaries.right-i.width)),{left:t}},top:function(){var t=i.top;return i.tope.boundaries.bottom&&(t=Math.min(i.top,e.boundaries.bottom-i.height)),{top:t}}};return t.forEach((function(t){e.offsets.popper=Object.assign(i,n[t]())})),e},i.prototype.modifiers.keepTogether=function(e){var t=s(e.offsets.popper),i=e.offsets.reference,n=Math.floor;return t.rightn(i.right)&&(e.offsets.popper.left=n(i.right)),t.bottomn(i.bottom)&&(e.offsets.popper.top=n(i.bottom)),e},i.prototype.modifiers.flip=function(e){if(!this.isModifierRequired(this.modifiers.flip,this.modifiers.preventOverflow))return console.warn("WARNING: preventOverflow modifier is required by flip modifier in order to work, be sure to include it before flip!"),e;if(e.flipped&&e.placement===e._originalPlacement)return e;var t=e.placement.split("-")[0],i=r(t),n=e.placement.split("-")[1]||"",a=[];return(a="flip"===this._options.flipBehavior?[t,i]:this._options.flipBehavior).forEach(function(o,l){if(t===o&&a.length!==l+1){t=e.placement.split("-")[0],i=r(t);var u=s(e.offsets.popper),c=-1!==["right","bottom"].indexOf(t);(c&&Math.floor(e.offsets.reference[t])>Math.floor(u[i])||!c&&Math.floor(e.offsets.reference[t])o[p]&&(e.offsets.popper[d]+=l[d]+f-o[p]);var m=l[d]+(i||l[c]/2-f/2)-o[d];return m=Math.max(Math.min(o[c]-f-8,m),8),r[d]=m,r[h]="",e.offsets.arrow=r,e.arrowElement=t,e},Object.assign||Object.defineProperty(Object,"assign",{enumerable:!1,configurable:!0,writable:!0,value:function(e){if(null==e)throw new TypeError("Cannot convert first argument to object");for(var t=Object(e),i=1;i0},e.prototype.connect_=function(){r&&!this.connected_&&(document.addEventListener("transitionend",this.onTransitionEnd_),window.addEventListener("resize",this.refresh),l?(this.mutationsObserver_=new MutationObserver(this.refresh),this.mutationsObserver_.observe(document,{attributes:!0,childList:!0,characterData:!0,subtree:!0})):(document.addEventListener("DOMSubtreeModified",this.refresh),this.mutationEventsAdded_=!0),this.connected_=!0)},e.prototype.disconnect_=function(){r&&this.connected_&&(document.removeEventListener("transitionend",this.onTransitionEnd_),window.removeEventListener("resize",this.refresh),this.mutationsObserver_&&this.mutationsObserver_.disconnect(),this.mutationEventsAdded_&&document.removeEventListener("DOMSubtreeModified",this.refresh),this.mutationsObserver_=null,this.mutationEventsAdded_=!1,this.connected_=!1)},e.prototype.onTransitionEnd_=function(e){var t=e.propertyName,i=void 0===t?"":t;o.some((function(e){return!!~i.indexOf(e)}))&&this.refresh()},e.getInstance=function(){return this.instance_||(this.instance_=new e),this.instance_},e.instance_=null,e}(),c=function(e,t){for(var i=0,n=Object.keys(t);i0},e}(),k="undefined"!=typeof WeakMap?new WeakMap:new n,w=function e(t){if(!(this instanceof e))throw new TypeError("Cannot call a class as a function.");if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");var i=u.getInstance(),n=new x(t,i,this);k.set(this,n)};["observe","unobserve","disconnect"].forEach((function(e){w.prototype[e]=function(){var t;return(t=k.get(this))[e].apply(t,arguments)}}));var C=void 0!==s.ResizeObserver?s.ResizeObserver:w;t.default=C},function(e,t,i){"use strict";t.__esModule=!0;var n=i(25);var r=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e)}return e.prototype.beforeEnter=function(e){(0,n.addClass)(e,"collapse-transition"),e.dataset||(e.dataset={}),e.dataset.oldPaddingTop=e.style.paddingTop,e.dataset.oldPaddingBottom=e.style.paddingBottom,e.style.height="0",e.style.paddingTop=0,e.style.paddingBottom=0},e.prototype.enter=function(e){e.dataset.oldOverflow=e.style.overflow,0!==e.scrollHeight?(e.style.height=e.scrollHeight+"px",e.style.paddingTop=e.dataset.oldPaddingTop,e.style.paddingBottom=e.dataset.oldPaddingBottom):(e.style.height="",e.style.paddingTop=e.dataset.oldPaddingTop,e.style.paddingBottom=e.dataset.oldPaddingBottom),e.style.overflow="hidden"},e.prototype.afterEnter=function(e){(0,n.removeClass)(e,"collapse-transition"),e.style.height="",e.style.overflow=e.dataset.oldOverflow},e.prototype.beforeLeave=function(e){e.dataset||(e.dataset={}),e.dataset.oldPaddingTop=e.style.paddingTop,e.dataset.oldPaddingBottom=e.style.paddingBottom,e.dataset.oldOverflow=e.style.overflow,e.style.height=e.scrollHeight+"px",e.style.overflow="hidden"},e.prototype.leave=function(e){0!==e.scrollHeight&&((0,n.addClass)(e,"collapse-transition"),e.style.height=0,e.style.paddingTop=0,e.style.paddingBottom=0)},e.prototype.afterLeave=function(e){(0,n.removeClass)(e,"collapse-transition"),e.style.height="",e.style.overflow=e.dataset.oldOverflow,e.style.paddingTop=e.dataset.oldPaddingTop,e.style.paddingBottom=e.dataset.oldPaddingBottom},e}();t.default={name:"ElCollapseTransition",functional:!0,render:function(e,t){var i=t.children;return e("transition",{on:new r},i)}}},function(e,t,i){"use strict";t.__esModule=!0;var n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};t.isVNode=function(e){return null!==e&&"object"===(void 0===e?"undefined":n(e))&&(0,r.hasOwn)(e,"componentOptions")};var r=i(19)},function(e,t,i){e.exports=function(e){var t={};function i(n){if(t[n])return t[n].exports;var r=t[n]={i:n,l:!1,exports:{}};return e[n].call(r.exports,r,r.exports,i),r.l=!0,r.exports}return i.m=e,i.c=t,i.d=function(e,t,n){i.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},i.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.t=function(e,t){if(1&t&&(e=i(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(i.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)i.d(n,r,function(t){return e[t]}.bind(null,r));return n},i.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(t,"a",t),t},i.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},i.p="/dist/",i(i.s=140)}({140:function(e,t,i){"use strict";i.r(t);var n=i(5),r=i.n(n),s=i(18),a=i.n(s),o=i(2),l=i(3),u=i(7),c=i.n(u),d={name:"ElTooltip",mixins:[r.a],props:{openDelay:{type:Number,default:0},disabled:Boolean,manual:Boolean,effect:{type:String,default:"dark"},arrowOffset:{type:Number,default:0},popperClass:String,content:String,visibleArrow:{default:!0},transition:{type:String,default:"el-fade-in-linear"},popperOptions:{default:function(){return{boundariesPadding:10,gpuAcceleration:!1}}},enterable:{type:Boolean,default:!0},hideAfter:{type:Number,default:0},tabindex:{type:Number,default:0}},data:function(){return{tooltipId:"el-tooltip-"+Object(l.generateId)(),timeoutPending:null,focusing:!1}},beforeCreate:function(){var e=this;this.$isServer||(this.popperVM=new c.a({data:{node:""},render:function(e){return this.node}}).$mount(),this.debounceClose=a()(200,(function(){return e.handleClosePopper()})))},render:function(e){var t=this;this.popperVM&&(this.popperVM.node=e("transition",{attrs:{name:this.transition},on:{afterLeave:this.doDestroy}},[e("div",{on:{mouseleave:function(){t.setExpectedState(!1),t.debounceClose()},mouseenter:function(){t.setExpectedState(!0)}},ref:"popper",attrs:{role:"tooltip",id:this.tooltipId,"aria-hidden":this.disabled||!this.showPopper?"true":"false"},directives:[{name:"show",value:!this.disabled&&this.showPopper}],class:["el-tooltip__popper","is-"+this.effect,this.popperClass]},[this.$slots.content||this.content])]));var i=this.getFirstElement();if(!i)return null;var n=i.data=i.data||{};return n.staticClass=this.addTooltipClass(n.staticClass),i},mounted:function(){var e=this;this.referenceElm=this.$el,1===this.$el.nodeType&&(this.$el.setAttribute("aria-describedby",this.tooltipId),this.$el.setAttribute("tabindex",this.tabindex),Object(o.on)(this.referenceElm,"mouseenter",this.show),Object(o.on)(this.referenceElm,"mouseleave",this.hide),Object(o.on)(this.referenceElm,"focus",(function(){if(e.$slots.default&&e.$slots.default.length){var t=e.$slots.default[0].componentInstance;t&&t.focus?t.focus():e.handleFocus()}else e.handleFocus()})),Object(o.on)(this.referenceElm,"blur",this.handleBlur),Object(o.on)(this.referenceElm,"click",this.removeFocusing)),this.value&&this.popperVM&&this.popperVM.$nextTick((function(){e.value&&e.updatePopper()}))},watch:{focusing:function(e){e?Object(o.addClass)(this.referenceElm,"focusing"):Object(o.removeClass)(this.referenceElm,"focusing")}},methods:{show:function(){this.setExpectedState(!0),this.handleShowPopper()},hide:function(){this.setExpectedState(!1),this.debounceClose()},handleFocus:function(){this.focusing=!0,this.show()},handleBlur:function(){this.focusing=!1,this.hide()},removeFocusing:function(){this.focusing=!1},addTooltipClass:function(e){return e?"el-tooltip "+e.replace("el-tooltip",""):"el-tooltip"},handleShowPopper:function(){var e=this;this.expectedState&&!this.manual&&(clearTimeout(this.timeout),this.timeout=setTimeout((function(){e.showPopper=!0}),this.openDelay),this.hideAfter>0&&(this.timeoutPending=setTimeout((function(){e.showPopper=!1}),this.hideAfter)))},handleClosePopper:function(){this.enterable&&this.expectedState||this.manual||(clearTimeout(this.timeout),this.timeoutPending&&clearTimeout(this.timeoutPending),this.showPopper=!1,this.disabled&&this.doDestroy())},setExpectedState:function(e){!1===e&&clearTimeout(this.timeoutPending),this.expectedState=e},getFirstElement:function(){var e=this.$slots.default;if(!Array.isArray(e))return null;for(var t=null,i=0;i2&&void 0!==arguments[2]?arguments[2]:300,n=arguments.length>3&&void 0!==arguments[3]&&arguments[3];if(!e||!t)throw new Error("instance & callback is required");var r=!1,s=function(){r||(r=!0,t&&t.apply(null,arguments))};n?e.$once("after-leave",s):e.$on("after-leave",s),setTimeout((function(){s()}),i+100)}},function(e,t,i){e.exports=function(e){var t={};function i(n){if(t[n])return t[n].exports;var r=t[n]={i:n,l:!1,exports:{}};return e[n].call(r.exports,r,r.exports,i),r.l=!0,r.exports}return i.m=e,i.c=t,i.d=function(e,t,n){i.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},i.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.t=function(e,t){if(1&t&&(e=i(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(i.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)i.d(n,r,function(t){return e[t]}.bind(null,r));return n},i.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(t,"a",t),t},i.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},i.p="/dist/",i(i.s=90)}({0:function(e,t,i){"use strict";function n(e,t,i,n,r,s,a,o){var l,u="function"==typeof e?e.options:e;if(t&&(u.render=t,u.staticRenderFns=i,u._compiled=!0),n&&(u.functional=!0),s&&(u._scopeId="data-v-"+s),a?(l=function(e){(e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),r&&r.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(a)},u._ssrRegister=l):r&&(l=o?function(){r.call(this,this.$root.$options.shadowRoot)}:r),l)if(u.functional){u._injectStyles=l;var c=u.render;u.render=function(e,t){return l.call(t),c(e,t)}}else{var d=u.beforeCreate;u.beforeCreate=d?[].concat(d,l):[l]}return{exports:e,options:u}}i.d(t,"a",(function(){return n}))},90:function(e,t,i){"use strict";i.r(t);var n=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{staticClass:"el-progress",class:["el-progress--"+e.type,e.status?"is-"+e.status:"",{"el-progress--without-text":!e.showText,"el-progress--text-inside":e.textInside}],attrs:{role:"progressbar","aria-valuenow":e.percentage,"aria-valuemin":"0","aria-valuemax":"100"}},["line"===e.type?i("div",{staticClass:"el-progress-bar"},[i("div",{staticClass:"el-progress-bar__outer",style:{height:e.strokeWidth+"px"}},[i("div",{staticClass:"el-progress-bar__inner",style:e.barStyle},[e.showText&&e.textInside?i("div",{staticClass:"el-progress-bar__innerText"},[e._v(e._s(e.content))]):e._e()])])]):i("div",{staticClass:"el-progress-circle",style:{height:e.width+"px",width:e.width+"px"}},[i("svg",{attrs:{viewBox:"0 0 100 100"}},[i("path",{staticClass:"el-progress-circle__track",style:e.trailPathStyle,attrs:{d:e.trackPath,stroke:"#e5e9f2","stroke-width":e.relativeStrokeWidth,fill:"none"}}),i("path",{staticClass:"el-progress-circle__path",style:e.circlePathStyle,attrs:{d:e.trackPath,stroke:e.stroke,fill:"none","stroke-linecap":e.strokeLinecap,"stroke-width":e.percentage?e.relativeStrokeWidth:0}})])]),e.showText&&!e.textInside?i("div",{staticClass:"el-progress__text",style:{fontSize:e.progressTextSize+"px"}},[e.status?i("i",{class:e.iconClass}):[e._v(e._s(e.content))]],2):e._e()])};n._withStripped=!0;var r={name:"ElProgress",props:{type:{type:String,default:"line",validator:function(e){return["line","circle","dashboard"].indexOf(e)>-1}},percentage:{type:Number,default:0,required:!0,validator:function(e){return e>=0&&e<=100}},status:{type:String,validator:function(e){return["success","exception","warning"].indexOf(e)>-1}},strokeWidth:{type:Number,default:6},strokeLinecap:{type:String,default:"round"},textInside:{type:Boolean,default:!1},width:{type:Number,default:126},showText:{type:Boolean,default:!0},color:{type:[String,Array,Function],default:""},format:Function},computed:{barStyle:function(){var e={};return e.width=this.percentage+"%",e.backgroundColor=this.getCurrentColor(this.percentage),e},relativeStrokeWidth:function(){return(this.strokeWidth/this.width*100).toFixed(1)},radius:function(){return"circle"===this.type||"dashboard"===this.type?parseInt(50-parseFloat(this.relativeStrokeWidth)/2,10):0},trackPath:function(){var e=this.radius,t="dashboard"===this.type;return"\n M 50 50\n m 0 "+(t?"":"-")+e+"\n a "+e+" "+e+" 0 1 1 0 "+(t?"-":"")+2*e+"\n a "+e+" "+e+" 0 1 1 0 "+(t?"":"-")+2*e+"\n "},perimeter:function(){return 2*Math.PI*this.radius},rate:function(){return"dashboard"===this.type?.75:1},strokeDashoffset:function(){return-1*this.perimeter*(1-this.rate)/2+"px"},trailPathStyle:function(){return{strokeDasharray:this.perimeter*this.rate+"px, "+this.perimeter+"px",strokeDashoffset:this.strokeDashoffset}},circlePathStyle:function(){return{strokeDasharray:this.perimeter*this.rate*(this.percentage/100)+"px, "+this.perimeter+"px",strokeDashoffset:this.strokeDashoffset,transition:"stroke-dasharray 0.6s ease 0s, stroke 0.6s ease"}},stroke:function(){var e=void 0;if(this.color)e=this.getCurrentColor(this.percentage);else switch(this.status){case"success":e="#13ce66";break;case"exception":e="#ff4949";break;case"warning":e="#e6a23c";break;default:e="#20a0ff"}return e},iconClass:function(){return"warning"===this.status?"el-icon-warning":"line"===this.type?"success"===this.status?"el-icon-circle-check":"el-icon-circle-close":"success"===this.status?"el-icon-check":"el-icon-close"},progressTextSize:function(){return"line"===this.type?12+.4*this.strokeWidth:.111111*this.width+2},content:function(){return"function"==typeof this.format?this.format(this.percentage)||"":this.percentage+"%"}},methods:{getCurrentColor:function(e){return"function"==typeof this.color?this.color(e):"string"==typeof this.color?this.color:this.getLevelColor(e)},getLevelColor:function(e){for(var t=this.getColorArray().sort((function(e,t){return e.percentage-t.percentage})),i=0;ie)return t[i].color;return t[t.length-1].color},getColorArray:function(){var e=this.color,t=100/e.length;return e.map((function(e,i){return"string"==typeof e?{color:e,percentage:(i+1)*t}:e}))}}},s=i(0),a=Object(s.a)(r,n,[],!1,null,null,null);a.options.__file="packages/progress/src/progress.vue";var o=a.exports;o.install=function(e){e.component(o.name,o)};t.default=o}})},function(e,t,i){var n=i(125),r=i(91);e.exports={throttle:n,debounce:r}},function(e,t,i){e.exports=function(e){var t={};function i(n){if(t[n])return t[n].exports;var r=t[n]={i:n,l:!1,exports:{}};return e[n].call(r.exports,r,r.exports,i),r.l=!0,r.exports}return i.m=e,i.c=t,i.d=function(e,t,n){i.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},i.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.t=function(e,t){if(1&t&&(e=i(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(i.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)i.d(n,r,function(t){return e[t]}.bind(null,r));return n},i.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(t,"a",t),t},i.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},i.p="/dist/",i(i.s=61)}({0:function(e,t,i){"use strict";function n(e,t,i,n,r,s,a,o){var l,u="function"==typeof e?e.options:e;if(t&&(u.render=t,u.staticRenderFns=i,u._compiled=!0),n&&(u.functional=!0),s&&(u._scopeId="data-v-"+s),a?(l=function(e){(e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),r&&r.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(a)},u._ssrRegister=l):r&&(l=o?function(){r.call(this,this.$root.$options.shadowRoot)}:r),l)if(u.functional){u._injectStyles=l;var c=u.render;u.render=function(e,t){return l.call(t),c(e,t)}}else{var d=u.beforeCreate;u.beforeCreate=d?[].concat(d,l):[l]}return{exports:e,options:u}}i.d(t,"a",(function(){return n}))},10:function(e,t){e.exports=i(123)},12:function(e,t){e.exports=i(200)},15:function(e,t){e.exports=i(126)},16:function(e,t){e.exports=i(124)},18:function(e,t){e.exports=i(91)},21:function(e,t){e.exports=i(90)},22:function(e,t){e.exports=i(127)},3:function(e,t){e.exports=i(19)},31:function(e,t){e.exports=i(128)},33:function(e,t,i){"use strict";var n=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("li",{directives:[{name:"show",rawName:"v-show",value:e.visible,expression:"visible"}],staticClass:"el-select-dropdown__item",class:{selected:e.itemSelected,"is-disabled":e.disabled||e.groupDisabled||e.limitReached,hover:e.hover},on:{mouseenter:e.hoverItem,click:function(t){return t.stopPropagation(),e.selectOptionClick(t)}}},[e._t("default",[i("span",[e._v(e._s(e.currentLabel))])])],2)};n._withStripped=!0;var r=i(4),s=i.n(r),a=i(3),o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},l={mixins:[s.a],name:"ElOption",componentName:"ElOption",inject:["select"],props:{value:{required:!0},label:[String,Number],created:Boolean,disabled:{type:Boolean,default:!1}},data:function(){return{index:-1,groupDisabled:!1,visible:!0,hitState:!1,hover:!1}},computed:{isObject:function(){return"[object object]"===Object.prototype.toString.call(this.value).toLowerCase()},currentLabel:function(){return this.label||(this.isObject?"":this.value)},currentValue:function(){return this.value||this.label||""},itemSelected:function(){return this.select.multiple?this.contains(this.select.value,this.value):this.isEqual(this.value,this.select.value)},limitReached:function(){return!!this.select.multiple&&(!this.itemSelected&&(this.select.value||[]).length>=this.select.multipleLimit&&this.select.multipleLimit>0)}},watch:{currentLabel:function(){this.created||this.select.remote||this.dispatch("ElSelect","setSelected")},value:function(e,t){var i=this.select,n=i.remote,r=i.valueKey;if(!this.created&&!n){if(r&&"object"===(void 0===e?"undefined":o(e))&&"object"===(void 0===t?"undefined":o(t))&&e[r]===t[r])return;this.dispatch("ElSelect","setSelected")}}},methods:{isEqual:function(e,t){if(this.isObject){var i=this.select.valueKey;return Object(a.getValueByPath)(e,i)===Object(a.getValueByPath)(t,i)}return e===t},contains:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments[1];if(this.isObject){var i=this.select.valueKey;return e&&e.some((function(e){return Object(a.getValueByPath)(e,i)===Object(a.getValueByPath)(t,i)}))}return e&&e.indexOf(t)>-1},handleGroupDisabled:function(e){this.groupDisabled=e},hoverItem:function(){this.disabled||this.groupDisabled||(this.select.hoverIndex=this.select.options.indexOf(this))},selectOptionClick:function(){!0!==this.disabled&&!0!==this.groupDisabled&&this.dispatch("ElSelect","handleOptionClick",[this,!0])},queryChange:function(e){this.visible=new RegExp(Object(a.escapeRegexpString)(e),"i").test(this.currentLabel)||this.created,this.visible||this.select.filteredOptionsCount--}},created:function(){this.select.options.push(this),this.select.cachedOptions.push(this),this.select.optionsCount++,this.select.filteredOptionsCount++,this.$on("queryChange",this.queryChange),this.$on("handleGroupDisabled",this.handleGroupDisabled)},beforeDestroy:function(){var e=this.select,t=e.selected,i=e.multiple?t:[t],n=this.select.cachedOptions.indexOf(this),r=i.indexOf(this);n>-1&&r<0&&this.select.cachedOptions.splice(n,1),this.select.onOptionDestroy(this.select.options.indexOf(this))}},u=i(0),c=Object(u.a)(l,n,[],!1,null,null,null);c.options.__file="packages/select/src/option.vue";t.a=c.exports},37:function(e,t){e.exports=i(203)},4:function(e,t){e.exports=i(36)},5:function(e,t){e.exports=i(88)},6:function(e,t){e.exports=i(121)},61:function(e,t,i){"use strict";i.r(t);var n=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{directives:[{name:"clickoutside",rawName:"v-clickoutside",value:e.handleClose,expression:"handleClose"}],staticClass:"el-select",class:[e.selectSize?"el-select--"+e.selectSize:""],on:{click:function(t){return t.stopPropagation(),e.toggleMenu(t)}}},[e.multiple?i("div",{ref:"tags",staticClass:"el-select__tags",style:{"max-width":e.inputWidth-32+"px",width:"100%"}},[e.collapseTags&&e.selected.length?i("span",[i("el-tag",{attrs:{closable:!e.selectDisabled,size:e.collapseTagSize,hit:e.selected[0].hitState,type:"info","disable-transitions":""},on:{close:function(t){e.deleteTag(t,e.selected[0])}}},[i("span",{staticClass:"el-select__tags-text"},[e._v(e._s(e.selected[0].currentLabel))])]),e.selected.length>1?i("el-tag",{attrs:{closable:!1,size:e.collapseTagSize,type:"info","disable-transitions":""}},[i("span",{staticClass:"el-select__tags-text"},[e._v("+ "+e._s(e.selected.length-1))])]):e._e()],1):e._e(),e.collapseTags?e._e():i("transition-group",{on:{"after-leave":e.resetInputHeight}},e._l(e.selected,(function(t){return i("el-tag",{key:e.getValueKey(t),attrs:{closable:!e.selectDisabled,size:e.collapseTagSize,hit:t.hitState,type:"info","disable-transitions":""},on:{close:function(i){e.deleteTag(i,t)}}},[i("span",{staticClass:"el-select__tags-text"},[e._v(e._s(t.currentLabel))])])})),1),e.filterable?i("input",{directives:[{name:"model",rawName:"v-model",value:e.query,expression:"query"}],ref:"input",staticClass:"el-select__input",class:[e.selectSize?"is-"+e.selectSize:""],style:{"flex-grow":"1",width:e.inputLength/(e.inputWidth-32)+"%","max-width":e.inputWidth-42+"px"},attrs:{type:"text",disabled:e.selectDisabled,autocomplete:e.autoComplete||e.autocomplete},domProps:{value:e.query},on:{focus:e.handleFocus,blur:function(t){e.softFocus=!1},keyup:e.managePlaceholder,keydown:[e.resetInputState,function(t){if(!("button"in t)&&e._k(t.keyCode,"down",40,t.key,["Down","ArrowDown"]))return null;t.preventDefault(),e.navigateOptions("next")},function(t){if(!("button"in t)&&e._k(t.keyCode,"up",38,t.key,["Up","ArrowUp"]))return null;t.preventDefault(),e.navigateOptions("prev")},function(t){return!("button"in t)&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:(t.preventDefault(),e.selectOption(t))},function(t){if(!("button"in t)&&e._k(t.keyCode,"esc",27,t.key,["Esc","Escape"]))return null;t.stopPropagation(),t.preventDefault(),e.visible=!1},function(t){return!("button"in t)&&e._k(t.keyCode,"delete",[8,46],t.key,["Backspace","Delete","Del"])?null:e.deletePrevTag(t)},function(t){if(!("button"in t)&&e._k(t.keyCode,"tab",9,t.key,"Tab"))return null;e.visible=!1}],compositionstart:e.handleComposition,compositionupdate:e.handleComposition,compositionend:e.handleComposition,input:[function(t){t.target.composing||(e.query=t.target.value)},e.debouncedQueryChange]}}):e._e()],1):e._e(),i("el-input",{ref:"reference",class:{"is-focus":e.visible},attrs:{type:"text",placeholder:e.currentPlaceholder,name:e.name,id:e.id,autocomplete:e.autoComplete||e.autocomplete,size:e.selectSize,disabled:e.selectDisabled,readonly:e.readonly,"validate-event":!1,tabindex:e.multiple&&e.filterable?"-1":null},on:{focus:e.handleFocus,blur:e.handleBlur,input:e.debouncedOnInputChange},nativeOn:{keydown:[function(t){if(!("button"in t)&&e._k(t.keyCode,"down",40,t.key,["Down","ArrowDown"]))return null;t.stopPropagation(),t.preventDefault(),e.navigateOptions("next")},function(t){if(!("button"in t)&&e._k(t.keyCode,"up",38,t.key,["Up","ArrowUp"]))return null;t.stopPropagation(),t.preventDefault(),e.navigateOptions("prev")},function(t){return!("button"in t)&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:(t.preventDefault(),e.selectOption(t))},function(t){if(!("button"in t)&&e._k(t.keyCode,"esc",27,t.key,["Esc","Escape"]))return null;t.stopPropagation(),t.preventDefault(),e.visible=!1},function(t){if(!("button"in t)&&e._k(t.keyCode,"tab",9,t.key,"Tab"))return null;e.visible=!1}],mouseenter:function(t){e.inputHovering=!0},mouseleave:function(t){e.inputHovering=!1}},model:{value:e.selectedLabel,callback:function(t){e.selectedLabel=t},expression:"selectedLabel"}},[e.$slots.prefix?i("template",{slot:"prefix"},[e._t("prefix")],2):e._e(),i("template",{slot:"suffix"},[i("i",{directives:[{name:"show",rawName:"v-show",value:!e.showClose,expression:"!showClose"}],class:["el-select__caret","el-input__icon","el-icon-"+e.iconClass]}),e.showClose?i("i",{staticClass:"el-select__caret el-input__icon el-icon-circle-close",on:{click:e.handleClearClick}}):e._e()])],2),i("transition",{attrs:{name:"el-zoom-in-top"},on:{"before-enter":e.handleMenuEnter,"after-leave":e.doDestroy}},[i("el-select-menu",{directives:[{name:"show",rawName:"v-show",value:e.visible&&!1!==e.emptyText,expression:"visible && emptyText !== false"}],ref:"popper",attrs:{"append-to-body":e.popperAppendToBody}},[i("el-scrollbar",{directives:[{name:"show",rawName:"v-show",value:e.options.length>0&&!e.loading,expression:"options.length > 0 && !loading"}],ref:"scrollbar",class:{"is-empty":!e.allowCreate&&e.query&&0===e.filteredOptionsCount},attrs:{tag:"ul","wrap-class":"el-select-dropdown__wrap","view-class":"el-select-dropdown__list"}},[e.showNewOption?i("el-option",{attrs:{value:e.query,created:""}}):e._e(),e._t("default")],2),e.emptyText&&(!e.allowCreate||e.loading||e.allowCreate&&0===e.options.length)?[e.$slots.empty?e._t("empty"):i("p",{staticClass:"el-select-dropdown__empty"},[e._v("\n "+e._s(e.emptyText)+"\n ")])]:e._e()],2)],1)],1)};n._withStripped=!0;var r=i(4),s=i.n(r),a=i(22),o=i.n(a),l=i(6),u=i.n(l),c=i(10),d=i.n(c),h=function(){var e=this.$createElement;return(this._self._c||e)("div",{staticClass:"el-select-dropdown el-popper",class:[{"is-multiple":this.$parent.multiple},this.popperClass],style:{minWidth:this.minWidth}},[this._t("default")],2)};h._withStripped=!0;var p=i(5),f={name:"ElSelectDropdown",componentName:"ElSelectDropdown",mixins:[i.n(p).a],props:{placement:{default:"bottom-start"},boundariesPadding:{default:0},popperOptions:{default:function(){return{gpuAcceleration:!1}}},visibleArrow:{default:!0},appendToBody:{type:Boolean,default:!0}},data:function(){return{minWidth:""}},computed:{popperClass:function(){return this.$parent.popperClass}},watch:{"$parent.inputWidth":function(){this.minWidth=this.$parent.$el.getBoundingClientRect().width+"px"}},mounted:function(){var e=this;this.referenceElm=this.$parent.$refs.reference.$el,this.$parent.popperElm=this.popperElm=this.$el,this.$on("updatePopper",(function(){e.$parent.visible&&e.updatePopper()})),this.$on("destroyPopper",this.destroyPopper)}},m=i(0),v=Object(m.a)(f,h,[],!1,null,null,null);v.options.__file="packages/select/src/select-dropdown.vue";var g=v.exports,_=i(33),b=i(37),y=i.n(b),x=i(15),k=i.n(x),w=i(18),C=i.n(w),S=i(12),O=i.n(S),D=i(16),E=i(31),T=i.n(E),$=i(3),P=i(21),j={mixins:[s.a,u.a,o()("reference"),{data:function(){return{hoverOption:-1}},computed:{optionsAllDisabled:function(){return this.options.filter((function(e){return e.visible})).every((function(e){return e.disabled}))}},watch:{hoverIndex:function(e){var t=this;"number"==typeof e&&e>-1&&(this.hoverOption=this.options[e]||{}),this.options.forEach((function(e){e.hover=t.hoverOption===e}))}},methods:{navigateOptions:function(e){var t=this;if(this.visible){if(0!==this.options.length&&0!==this.filteredOptionsCount&&!this.optionsAllDisabled){"next"===e?(this.hoverIndex++,this.hoverIndex===this.options.length&&(this.hoverIndex=0)):"prev"===e&&(this.hoverIndex--,this.hoverIndex<0&&(this.hoverIndex=this.options.length-1));var i=this.options[this.hoverIndex];!0!==i.disabled&&!0!==i.groupDisabled&&i.visible||this.navigateOptions(e),this.$nextTick((function(){return t.scrollToOption(t.hoverOption)}))}}else this.visible=!0}}}],name:"ElSelect",componentName:"ElSelect",inject:{elForm:{default:""},elFormItem:{default:""}},provide:function(){return{select:this}},computed:{_elFormItemSize:function(){return(this.elFormItem||{}).elFormItemSize},readonly:function(){return!this.filterable||this.multiple||!Object($.isIE)()&&!Object($.isEdge)()&&!this.visible},showClose:function(){var e=this.multiple?Array.isArray(this.value)&&this.value.length>0:void 0!==this.value&&null!==this.value&&""!==this.value;return this.clearable&&!this.selectDisabled&&this.inputHovering&&e},iconClass:function(){return this.remote&&this.filterable?"":this.visible?"arrow-up is-reverse":"arrow-up"},debounce:function(){return this.remote?300:0},emptyText:function(){return this.loading?this.loadingText||this.t("el.select.loading"):(!this.remote||""!==this.query||0!==this.options.length)&&(this.filterable&&this.query&&this.options.length>0&&0===this.filteredOptionsCount?this.noMatchText||this.t("el.select.noMatch"):0===this.options.length?this.noDataText||this.t("el.select.noData"):null)},showNewOption:function(){var e=this,t=this.options.filter((function(e){return!e.created})).some((function(t){return t.currentLabel===e.query}));return this.filterable&&this.allowCreate&&""!==this.query&&!t},selectSize:function(){return this.size||this._elFormItemSize||(this.$ELEMENT||{}).size},selectDisabled:function(){return this.disabled||(this.elForm||{}).disabled},collapseTagSize:function(){return["small","mini"].indexOf(this.selectSize)>-1?"mini":"small"},propPlaceholder:function(){return void 0!==this.placeholder?this.placeholder:this.t("el.select.placeholder")}},components:{ElInput:d.a,ElSelectMenu:g,ElOption:_.a,ElTag:y.a,ElScrollbar:k.a},directives:{Clickoutside:O.a},props:{name:String,id:String,value:{required:!0},autocomplete:{type:String,default:"off"},autoComplete:{type:String,validator:function(e){return!0}},automaticDropdown:Boolean,size:String,disabled:Boolean,clearable:Boolean,filterable:Boolean,allowCreate:Boolean,loading:Boolean,popperClass:String,remote:Boolean,loadingText:String,noMatchText:String,noDataText:String,remoteMethod:Function,filterMethod:Function,multiple:Boolean,multipleLimit:{type:Number,default:0},placeholder:{type:String,required:!1},defaultFirstOption:Boolean,reserveKeyword:Boolean,valueKey:{type:String,default:"value"},collapseTags:Boolean,popperAppendToBody:{type:Boolean,default:!0}},data:function(){return{options:[],cachedOptions:[],createdLabel:null,createdSelected:!1,selected:this.multiple?[]:{},inputLength:20,inputWidth:0,initialInputHeight:0,cachedPlaceHolder:"",optionsCount:0,filteredOptionsCount:0,visible:!1,softFocus:!1,selectedLabel:"",hoverIndex:-1,query:"",previousQuery:null,inputHovering:!1,currentPlaceholder:"",menuVisibleOnFocus:!1,isOnComposition:!1,isSilentBlur:!1}},watch:{selectDisabled:function(){var e=this;this.$nextTick((function(){e.resetInputHeight()}))},propPlaceholder:function(e){this.cachedPlaceHolder=this.currentPlaceholder=e},value:function(e,t){this.multiple&&(this.resetInputHeight(),e&&e.length>0||this.$refs.input&&""!==this.query?this.currentPlaceholder="":this.currentPlaceholder=this.cachedPlaceHolder,this.filterable&&!this.reserveKeyword&&(this.query="",this.handleQueryChange(this.query))),this.setSelected(),this.filterable&&!this.multiple&&(this.inputLength=20),Object($.valueEquals)(e,t)||this.dispatch("ElFormItem","el.form.change",e)},visible:function(e){var t=this;e?(this.broadcast("ElSelectDropdown","updatePopper"),this.filterable&&(this.query=this.remote?"":this.selectedLabel,this.handleQueryChange(this.query),this.multiple?this.$refs.input.focus():(this.remote||(this.broadcast("ElOption","queryChange",""),this.broadcast("ElOptionGroup","queryChange")),this.selectedLabel&&(this.currentPlaceholder=this.selectedLabel,this.selectedLabel="")))):(this.broadcast("ElSelectDropdown","destroyPopper"),this.$refs.input&&this.$refs.input.blur(),this.query="",this.previousQuery=null,this.selectedLabel="",this.inputLength=20,this.menuVisibleOnFocus=!1,this.resetHoverIndex(),this.$nextTick((function(){t.$refs.input&&""===t.$refs.input.value&&0===t.selected.length&&(t.currentPlaceholder=t.cachedPlaceHolder)})),this.multiple||(this.selected&&(this.filterable&&this.allowCreate&&this.createdSelected&&this.createdLabel?this.selectedLabel=this.createdLabel:this.selectedLabel=this.selected.currentLabel,this.filterable&&(this.query=this.selectedLabel)),this.filterable&&(this.currentPlaceholder=this.cachedPlaceHolder))),this.$emit("visible-change",e)},options:function(){var e=this;if(!this.$isServer){this.$nextTick((function(){e.broadcast("ElSelectDropdown","updatePopper")})),this.multiple&&this.resetInputHeight();var t=this.$el.querySelectorAll("input");-1===[].indexOf.call(t,document.activeElement)&&this.setSelected(),this.defaultFirstOption&&(this.filterable||this.remote)&&this.filteredOptionsCount&&this.checkDefaultFirstOption()}}},methods:{handleComposition:function(e){var t=this,i=e.target.value;if("compositionend"===e.type)this.isOnComposition=!1,this.$nextTick((function(e){return t.handleQueryChange(i)}));else{var n=i[i.length-1]||"";this.isOnComposition=!Object(P.isKorean)(n)}},handleQueryChange:function(e){var t=this;this.previousQuery===e||this.isOnComposition||(null!==this.previousQuery||"function"!=typeof this.filterMethod&&"function"!=typeof this.remoteMethod?(this.previousQuery=e,this.$nextTick((function(){t.visible&&t.broadcast("ElSelectDropdown","updatePopper")})),this.hoverIndex=-1,this.multiple&&this.filterable&&this.$nextTick((function(){var e=15*t.$refs.input.value.length+20;t.inputLength=t.collapseTags?Math.min(50,e):e,t.managePlaceholder(),t.resetInputHeight()})),this.remote&&"function"==typeof this.remoteMethod?(this.hoverIndex=-1,this.remoteMethod(e)):"function"==typeof this.filterMethod?(this.filterMethod(e),this.broadcast("ElOptionGroup","queryChange")):(this.filteredOptionsCount=this.optionsCount,this.broadcast("ElOption","queryChange",e),this.broadcast("ElOptionGroup","queryChange")),this.defaultFirstOption&&(this.filterable||this.remote)&&this.filteredOptionsCount&&this.checkDefaultFirstOption()):this.previousQuery=e)},scrollToOption:function(e){var t=Array.isArray(e)&&e[0]?e[0].$el:e.$el;if(this.$refs.popper&&t){var i=this.$refs.popper.$el.querySelector(".el-select-dropdown__wrap");T()(i,t)}this.$refs.scrollbar&&this.$refs.scrollbar.handleScroll()},handleMenuEnter:function(){var e=this;this.$nextTick((function(){return e.scrollToOption(e.selected)}))},emitChange:function(e){Object($.valueEquals)(this.value,e)||this.$emit("change",e)},getOption:function(e){for(var t=void 0,i="[object object]"===Object.prototype.toString.call(e).toLowerCase(),n="[object null]"===Object.prototype.toString.call(e).toLowerCase(),r="[object undefined]"===Object.prototype.toString.call(e).toLowerCase(),s=this.cachedOptions.length-1;s>=0;s--){var a=this.cachedOptions[s];if(i?Object($.getValueByPath)(a.value,this.valueKey)===Object($.getValueByPath)(e,this.valueKey):a.value===e){t=a;break}}if(t)return t;var o={value:e,currentLabel:i||n||r?"":String(e)};return this.multiple&&(o.hitState=!1),o},setSelected:function(){var e=this;if(!this.multiple){var t=this.getOption(this.value);return t.created?(this.createdLabel=t.currentLabel,this.createdSelected=!0):this.createdSelected=!1,this.selectedLabel=t.currentLabel,this.selected=t,void(this.filterable&&(this.query=this.selectedLabel))}var i=[];Array.isArray(this.value)&&this.value.forEach((function(t){i.push(e.getOption(t))})),this.selected=i,this.$nextTick((function(){e.resetInputHeight()}))},handleFocus:function(e){this.softFocus?this.softFocus=!1:((this.automaticDropdown||this.filterable)&&(this.visible=!0,this.filterable&&(this.menuVisibleOnFocus=!0)),this.$emit("focus",e))},blur:function(){this.visible=!1,this.$refs.reference.blur()},handleBlur:function(e){var t=this;setTimeout((function(){t.isSilentBlur?t.isSilentBlur=!1:t.$emit("blur",e)}),50),this.softFocus=!1},handleClearClick:function(e){this.deleteSelected(e)},doDestroy:function(){this.$refs.popper&&this.$refs.popper.doDestroy()},handleClose:function(){this.visible=!1},toggleLastOptionHitState:function(e){if(Array.isArray(this.selected)){var t=this.selected[this.selected.length-1];if(t)return!0===e||!1===e?(t.hitState=e,e):(t.hitState=!t.hitState,t.hitState)}},deletePrevTag:function(e){if(e.target.value.length<=0&&!this.toggleLastOptionHitState()){var t=this.value.slice();t.pop(),this.$emit("input",t),this.emitChange(t)}},managePlaceholder:function(){""!==this.currentPlaceholder&&(this.currentPlaceholder=this.$refs.input.value?"":this.cachedPlaceHolder)},resetInputState:function(e){8!==e.keyCode&&this.toggleLastOptionHitState(!1),this.inputLength=15*this.$refs.input.value.length+20,this.resetInputHeight()},resetInputHeight:function(){var e=this;this.collapseTags&&!this.filterable||this.$nextTick((function(){if(e.$refs.reference){var t=e.$refs.reference.$el.childNodes,i=[].filter.call(t,(function(e){return"INPUT"===e.tagName}))[0],n=e.$refs.tags,r=n?Math.round(n.getBoundingClientRect().height):0,s=e.initialInputHeight||40;i.style.height=0===e.selected.length?s+"px":Math.max(n?r+(r>s?6:0):0,s)+"px",e.visible&&!1!==e.emptyText&&e.broadcast("ElSelectDropdown","updatePopper")}}))},resetHoverIndex:function(){var e=this;setTimeout((function(){e.multiple?e.selected.length>0?e.hoverIndex=Math.min.apply(null,e.selected.map((function(t){return e.options.indexOf(t)}))):e.hoverIndex=-1:e.hoverIndex=e.options.indexOf(e.selected)}),300)},handleOptionSelect:function(e,t){var i=this;if(this.multiple){var n=(this.value||[]).slice(),r=this.getValueIndex(n,e.value);r>-1?n.splice(r,1):(this.multipleLimit<=0||n.length0&&void 0!==arguments[0]?arguments[0]:[],t=arguments[1],i="[object object]"===Object.prototype.toString.call(t).toLowerCase();if(i){var n=this.valueKey,r=-1;return e.some((function(e,i){return Object($.getValueByPath)(e,n)===Object($.getValueByPath)(t,n)&&(r=i,!0)})),r}return e.indexOf(t)},toggleMenu:function(){this.selectDisabled||(this.menuVisibleOnFocus?this.menuVisibleOnFocus=!1:this.visible=!this.visible,this.visible&&(this.$refs.input||this.$refs.reference).focus())},selectOption:function(){this.visible?this.options[this.hoverIndex]&&this.handleOptionSelect(this.options[this.hoverIndex]):this.toggleMenu()},deleteSelected:function(e){e.stopPropagation();var t=this.multiple?[]:"";this.$emit("input",t),this.emitChange(t),this.visible=!1,this.$emit("clear")},deleteTag:function(e,t){var i=this.selected.indexOf(t);if(i>-1&&!this.selectDisabled){var n=this.value.slice();n.splice(i,1),this.$emit("input",n),this.emitChange(n),this.$emit("remove-tag",t.value)}e.stopPropagation()},onInputChange:function(){this.filterable&&this.query!==this.selectedLabel&&(this.query=this.selectedLabel,this.handleQueryChange(this.query))},onOptionDestroy:function(e){e>-1&&(this.optionsCount--,this.filteredOptionsCount--,this.options.splice(e,1))},resetInputWidth:function(){this.inputWidth=this.$refs.reference.$el.getBoundingClientRect().width},handleResize:function(){this.resetInputWidth(),this.multiple&&this.resetInputHeight()},checkDefaultFirstOption:function(){this.hoverIndex=-1;for(var e=!1,t=this.options.length-1;t>=0;t--)if(this.options[t].created){e=!0,this.hoverIndex=t;break}if(!e)for(var i=0;i!==this.options.length;++i){var n=this.options[i];if(this.query){if(!n.disabled&&!n.groupDisabled&&n.visible){this.hoverIndex=i;break}}else if(n.itemSelected){this.hoverIndex=i;break}}},getValueKey:function(e){return"[object object]"!==Object.prototype.toString.call(e.value).toLowerCase()?e.value:Object($.getValueByPath)(e.value,this.valueKey)}},created:function(){var e=this;this.cachedPlaceHolder=this.currentPlaceholder=this.propPlaceholder,this.multiple&&!Array.isArray(this.value)&&this.$emit("input",[]),!this.multiple&&Array.isArray(this.value)&&this.$emit("input",""),this.debouncedOnInputChange=C()(this.debounce,(function(){e.onInputChange()})),this.debouncedQueryChange=C()(this.debounce,(function(t){e.handleQueryChange(t.target.value)})),this.$on("handleOptionClick",this.handleOptionSelect),this.$on("setSelected",this.setSelected)},mounted:function(){var e=this;this.multiple&&Array.isArray(this.value)&&this.value.length>0&&(this.currentPlaceholder=""),Object(D.addResizeListener)(this.$el,this.handleResize);var t=this.$refs.reference;if(t&&t.$el){var i=t.$el.querySelector("input");this.initialInputHeight=i.getBoundingClientRect().height||{medium:36,small:32,mini:28}[this.selectSize]}this.remote&&this.multiple&&this.resetInputHeight(),this.$nextTick((function(){t&&t.$el&&(e.inputWidth=t.$el.getBoundingClientRect().width)})),this.setSelected()},beforeDestroy:function(){this.$el&&this.handleResize&&Object(D.removeResizeListener)(this.$el,this.handleResize)}},M=Object(m.a)(j,n,[],!1,null,null,null);M.options.__file="packages/select/src/select.vue";var I=M.exports;I.install=function(e){e.component(I.name,I)};t.default=I}})},function(e,t,i){e.exports=function(e){var t={};function i(n){if(t[n])return t[n].exports;var r=t[n]={i:n,l:!1,exports:{}};return e[n].call(r.exports,r,r.exports,i),r.l=!0,r.exports}return i.m=e,i.c=t,i.d=function(e,t,n){i.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},i.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.t=function(e,t){if(1&t&&(e=i(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(i.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)i.d(n,r,function(t){return e[t]}.bind(null,r));return n},i.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(t,"a",t),t},i.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},i.p="/dist/",i(i.s=53)}({0:function(e,t,i){"use strict";function n(e,t,i,n,r,s,a,o){var l,u="function"==typeof e?e.options:e;if(t&&(u.render=t,u.staticRenderFns=i,u._compiled=!0),n&&(u.functional=!0),s&&(u._scopeId="data-v-"+s),a?(l=function(e){(e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),r&&r.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(a)},u._ssrRegister=l):r&&(l=o?function(){r.call(this,this.$root.$options.shadowRoot)}:r),l)if(u.functional){u._injectStyles=l;var c=u.render;u.render=function(e,t){return l.call(t),c(e,t)}}else{var d=u.beforeCreate;u.beforeCreate=d?[].concat(d,l):[l]}return{exports:e,options:u}}i.d(t,"a",(function(){return n}))},3:function(e,t){e.exports=i(19)},33:function(e,t,i){"use strict";var n=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("li",{directives:[{name:"show",rawName:"v-show",value:e.visible,expression:"visible"}],staticClass:"el-select-dropdown__item",class:{selected:e.itemSelected,"is-disabled":e.disabled||e.groupDisabled||e.limitReached,hover:e.hover},on:{mouseenter:e.hoverItem,click:function(t){return t.stopPropagation(),e.selectOptionClick(t)}}},[e._t("default",[i("span",[e._v(e._s(e.currentLabel))])])],2)};n._withStripped=!0;var r=i(4),s=i.n(r),a=i(3),o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},l={mixins:[s.a],name:"ElOption",componentName:"ElOption",inject:["select"],props:{value:{required:!0},label:[String,Number],created:Boolean,disabled:{type:Boolean,default:!1}},data:function(){return{index:-1,groupDisabled:!1,visible:!0,hitState:!1,hover:!1}},computed:{isObject:function(){return"[object object]"===Object.prototype.toString.call(this.value).toLowerCase()},currentLabel:function(){return this.label||(this.isObject?"":this.value)},currentValue:function(){return this.value||this.label||""},itemSelected:function(){return this.select.multiple?this.contains(this.select.value,this.value):this.isEqual(this.value,this.select.value)},limitReached:function(){return!!this.select.multiple&&(!this.itemSelected&&(this.select.value||[]).length>=this.select.multipleLimit&&this.select.multipleLimit>0)}},watch:{currentLabel:function(){this.created||this.select.remote||this.dispatch("ElSelect","setSelected")},value:function(e,t){var i=this.select,n=i.remote,r=i.valueKey;if(!this.created&&!n){if(r&&"object"===(void 0===e?"undefined":o(e))&&"object"===(void 0===t?"undefined":o(t))&&e[r]===t[r])return;this.dispatch("ElSelect","setSelected")}}},methods:{isEqual:function(e,t){if(this.isObject){var i=this.select.valueKey;return Object(a.getValueByPath)(e,i)===Object(a.getValueByPath)(t,i)}return e===t},contains:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments[1];if(this.isObject){var i=this.select.valueKey;return e&&e.some((function(e){return Object(a.getValueByPath)(e,i)===Object(a.getValueByPath)(t,i)}))}return e&&e.indexOf(t)>-1},handleGroupDisabled:function(e){this.groupDisabled=e},hoverItem:function(){this.disabled||this.groupDisabled||(this.select.hoverIndex=this.select.options.indexOf(this))},selectOptionClick:function(){!0!==this.disabled&&!0!==this.groupDisabled&&this.dispatch("ElSelect","handleOptionClick",[this,!0])},queryChange:function(e){this.visible=new RegExp(Object(a.escapeRegexpString)(e),"i").test(this.currentLabel)||this.created,this.visible||this.select.filteredOptionsCount--}},created:function(){this.select.options.push(this),this.select.cachedOptions.push(this),this.select.optionsCount++,this.select.filteredOptionsCount++,this.$on("queryChange",this.queryChange),this.$on("handleGroupDisabled",this.handleGroupDisabled)},beforeDestroy:function(){var e=this.select,t=e.selected,i=e.multiple?t:[t],n=this.select.cachedOptions.indexOf(this),r=i.indexOf(this);n>-1&&r<0&&this.select.cachedOptions.splice(n,1),this.select.onOptionDestroy(this.select.options.indexOf(this))}},u=i(0),c=Object(u.a)(l,n,[],!1,null,null,null);c.options.__file="packages/select/src/option.vue";t.a=c.exports},4:function(e,t){e.exports=i(36)},53:function(e,t,i){"use strict";i.r(t);var n=i(33);n.a.install=function(e){e.component(n.a.name,n.a)},t.default=n.a}})},function(e,t,i){e.exports=i(379)},function(e,t,i){"use strict";var n=i(380),r=i(381);function s(e){var t=0,i=0,n=0,r=0;return"detail"in e&&(i=e.detail),"wheelDelta"in e&&(i=-e.wheelDelta/120),"wheelDeltaY"in e&&(i=-e.wheelDeltaY/120),"wheelDeltaX"in e&&(t=-e.wheelDeltaX/120),"axis"in e&&e.axis===e.HORIZONTAL_AXIS&&(t=i,i=0),n=10*t,r=10*i,"deltaY"in e&&(r=e.deltaY),"deltaX"in e&&(n=e.deltaX),(n||r)&&e.deltaMode&&(1==e.deltaMode?(n*=40,r*=40):(n*=800,r*=800)),n&&!t&&(t=n<1?-1:1),r&&!i&&(i=r<1?-1:1),{spinX:t,spinY:i,pixelX:n,pixelY:r}}s.getEventType=function(){return n.firefox()?"DOMMouseScroll":r("wheel")?"wheel":"mousewheel"},e.exports=s},function(e,t){var i,n,r,s,a,o,l,u,c,d,h,p,f,m,v,g=!1;function _(){if(!g){g=!0;var e=navigator.userAgent,t=/(?:MSIE.(\d+\.\d+))|(?:(?:Firefox|GranParadiso|Iceweasel).(\d+\.\d+))|(?:Opera(?:.+Version.|.)(\d+\.\d+))|(?:AppleWebKit.(\d+(?:\.\d+)?))|(?:Trident\/\d+\.\d+.*rv:(\d+\.\d+))/.exec(e),_=/(Mac OS X)|(Windows)|(Linux)/.exec(e);if(p=/\b(iPhone|iP[ao]d)/.exec(e),f=/\b(iP[ao]d)/.exec(e),d=/Android/i.exec(e),m=/FBAN\/\w+;/i.exec(e),v=/Mobile/i.exec(e),h=!!/Win64/.exec(e),t){(i=t[1]?parseFloat(t[1]):t[5]?parseFloat(t[5]):NaN)&&document&&document.documentMode&&(i=document.documentMode);var b=/(?:Trident\/(\d+.\d+))/.exec(e);o=b?parseFloat(b[1])+4:i,n=t[2]?parseFloat(t[2]):NaN,r=t[3]?parseFloat(t[3]):NaN,(s=t[4]?parseFloat(t[4]):NaN)?(t=/(?:Chrome\/(\d+\.\d+))/.exec(e),a=t&&t[1]?parseFloat(t[1]):NaN):a=NaN}else i=n=r=a=s=NaN;if(_){if(_[1]){var y=/(?:Mac OS X (\d+(?:[._]\d+)?))/.exec(e);l=!y||parseFloat(y[1].replace("_","."))}else l=!1;u=!!_[2],c=!!_[3]}else l=u=c=!1}}var b={ie:function(){return _()||i},ieCompatibilityMode:function(){return _()||o>i},ie64:function(){return b.ie()&&h},firefox:function(){return _()||n},opera:function(){return _()||r},webkit:function(){return _()||s},safari:function(){return b.webkit()},chrome:function(){return _()||a},windows:function(){return _()||u},osx:function(){return _()||l},linux:function(){return _()||c},iphone:function(){return _()||p},mobile:function(){return _()||p||f||d||v},nativeApp:function(){return _()||m},android:function(){return _()||d},ipad:function(){return _()||f}};e.exports=b},function(e,t,i){"use strict";var n,r=i(382);r.canUseDOM&&(n=document.implementation&&document.implementation.hasFeature&&!0!==document.implementation.hasFeature("","")) /** * Checks if an event is supported in the current execution environment. * @@ -20,10 +20,10 @@ var n=Object.freeze({});function r(e){return null==e}function s(e){return null!= * @return {boolean} True if the event is supported. * @internal * @license Modernizr 3.0.0pre (Custom Build) | MIT - */,e.exports=function(e,t){if(!r.canUseDOM||t&&!("addEventListener"in document))return!1;var i="on"+e,s=i in document;if(!s){var a=document.createElement("div");a.setAttribute(i,"return;"),s="function"==typeof a[i]}return!s&&n&&"wheel"===e&&(s=document.implementation.hasFeature("Events.wheel","3.0")),s}},function(e,t,i){"use strict";var n=!("undefined"==typeof window||!window.document||!window.document.createElement),r={canUseDOM:n,canUseWorkers:"undefined"!=typeof Worker,canUseEventListeners:n&&!(!window.addEventListener&&!window.attachEvent),canUseViewport:n&&!!window.screen,isInWorker:!n};e.exports=r},function(e,t,i){"use strict";t.__esModule=!0;var n,r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},s=i(129),a=(n=s)&&n.__esModule?n:{default:n};var o,l=l||{};l.Dialog=function(e,t,i){var n=this;if(this.dialogNode=e,null===this.dialogNode||"dialog"!==this.dialogNode.getAttribute("role"))throw new Error("Dialog() requires a DOM element with ARIA role of dialog.");"string"==typeof t?this.focusAfterClosed=document.getElementById(t):"object"===(void 0===t?"undefined":r(t))?this.focusAfterClosed=t:this.focusAfterClosed=null,"string"==typeof i?this.focusFirst=document.getElementById(i):"object"===(void 0===i?"undefined":r(i))?this.focusFirst=i:this.focusFirst=null,this.focusFirst?this.focusFirst.focus():a.default.focusFirstDescendant(this.dialogNode),this.lastFocus=document.activeElement,o=function(e){n.trapFocus(e)},this.addListeners()},l.Dialog.prototype.addListeners=function(){document.addEventListener("focus",o,!0)},l.Dialog.prototype.removeListeners=function(){document.removeEventListener("focus",o,!0)},l.Dialog.prototype.closeDialog=function(){var e=this;this.removeListeners(),this.focusAfterClosed&&setTimeout((function(){e.focusAfterClosed.focus()}))},l.Dialog.prototype.trapFocus=function(e){a.default.IgnoreUtilFocusChanges||(this.dialogNode.contains(e.target)?this.lastFocus=e.target:(a.default.focusFirstDescendant(this.dialogNode),this.lastFocus===document.activeElement&&a.default.focusLastDescendant(this.dialogNode),this.lastFocus=document.activeElement))},t.default=l.Dialog},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n,r=Object.assign||function(e){for(var t=1;t1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:function(){},o=e,l=i,d=n;if("function"==typeof l&&(d=l,l={}),!this.rules||0===Object.keys(this.rules).length)return d&&d(),Promise.resolve();function h(e){var t,i,n=void 0,r=[],s={};for(n=0;n0&&void 0!==arguments[0]?arguments[0]:[],u=s;if(Array.isArray(u)||(u=[u]),!l.suppressWarning&&u.length&&c.warning("async-validator:",u),u.length&&i.message&&(u=[].concat(i.message)),u=u.map((0,a.complementError)(i)),l.first&&u.length)return _[i.field]=1,t(u);if(n){if(i.required&&!e.value)return u=i.message?[].concat(i.message).map((0,a.complementError)(i)):l.error?[l.error(i,(0,a.format)(l.messages.required,i.field))]:[],t(u);var d={};if(i.defaultField)for(var h in e.value)e.value.hasOwnProperty(h)&&(d[h]=i.defaultField);for(var p in d=r({},d,e.rule.fields))if(d.hasOwnProperty(p)){var f=Array.isArray(d[p])?d[p]:[d[p]];d[p]=f.map(o.bind(null,p))}var m=new c(d);m.messages(l.messages),e.rule.options&&(e.rule.options.messages=l.messages,e.rule.options.error=l.error),m.validate(e.value,e.rule.options||l,(function(e){var i=[];u&&u.length&&i.push.apply(i,u),e&&e.length&&i.push.apply(i,e),t(i.length?i:null)}))}else t(u)}n=n&&(i.required||!i.required&&e.value),i.field=e.field;var d=void 0;i.asyncValidator?d=i.asyncValidator(i,e.value,u,e.source,l):i.validator&&(!0===(d=i.validator(i,e.value,u,e.source,l))?u():!1===d?u(i.message||i.field+" fails"):d instanceof Array?u(d):d instanceof Error&&u(d.message)),d&&d.then&&d.then((function(){return u()}),(function(e){return u(e)}))}),(function(e){h(e)}))},getType:function(e){if(void 0===e.type&&e.pattern instanceof RegExp&&(e.type="pattern"),"function"!=typeof e.validator&&e.type&&!l.default.hasOwnProperty(e.type))throw new Error((0,a.format)("Unknown rule type %s",e.type));return e.type||"string"},getValidationMethod:function(e){if("function"==typeof e.validator)return e.validator;var t=Object.keys(e),i=t.indexOf("message");return-1!==i&&t.splice(i,1),1===t.length&&"required"===t[0]?l.default.required:l.default[this.getType(e)]||!1}},c.register=function(e,t){if("function"!=typeof t)throw new Error("Cannot register a validator by type, validator is not a function");l.default[e]=t},c.warning=a.warning,c.messages=u.messages,t.default=c},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=g(i(386)),r=g(i(392)),s=g(i(393)),a=g(i(394)),o=g(i(395)),l=g(i(396)),u=g(i(397)),c=g(i(398)),d=g(i(399)),h=g(i(400)),p=g(i(401)),f=g(i(402)),m=g(i(403)),v=g(i(404));function g(e){return e&&e.__esModule?e:{default:e}}t.default={string:n.default,method:r.default,number:s.default,boolean:a.default,regexp:o.default,integer:l.default,float:u.default,array:c.default,object:d.default,enum:h.default,pattern:p.default,date:f.default,url:v.default,hex:v.default,email:v.default,required:m.default}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n,r=i(12),s=(n=r)&&n.__esModule?n:{default:n},a=i(6);t.default=function(e,t,i,n,r){var o=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if((0,a.isEmptyValue)(t,"string")&&!e.required)return i();s.default.required(e,t,n,o,r,"string"),(0,a.isEmptyValue)(t,"string")||(s.default.type(e,t,n,o,r),s.default.range(e,t,n,o,r),s.default.pattern(e,t,n,o,r),!0===e.whitespace&&s.default.whitespace(e,t,n,o,r))}i(o)}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&(t[i]=e[i]);return t.default=e,t}(i(6));t.default=function(e,t,i,r,s){(/^\s+$/.test(t)||""===t)&&r.push(n.format(s.messages.whitespace,e.fullField))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n,r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},s=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&(t[i]=e[i]);return t.default=e,t}(i(6)),a=i(204),o=(n=a)&&n.__esModule?n:{default:n};var l={email:/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/,url:new RegExp("^(?!mailto:)(?:(?:http|https|ftp)://|//)(?:\\S+(?::\\S*)?@)?(?:(?:(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[0-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u00a1-\\uffff0-9]+-?)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]+-?)*[a-z\\u00a1-\\uffff0-9]+)*(?:\\.(?:[a-z\\u00a1-\\uffff]{2,})))|localhost)(?::\\d{2,5})?(?:(/|\\?|#)[^\\s]*)?$","i"),hex:/^#?([a-f0-9]{6}|[a-f0-9]{3})$/i},u={integer:function(e){return u.number(e)&&parseInt(e,10)===e},float:function(e){return u.number(e)&&!u.integer(e)},array:function(e){return Array.isArray(e)},regexp:function(e){if(e instanceof RegExp)return!0;try{return!!new RegExp(e)}catch(e){return!1}},date:function(e){return"function"==typeof e.getTime&&"function"==typeof e.getMonth&&"function"==typeof e.getYear},number:function(e){return!isNaN(e)&&"number"==typeof e},object:function(e){return"object"===(void 0===e?"undefined":r(e))&&!u.array(e)},method:function(e){return"function"==typeof e},email:function(e){return"string"==typeof e&&!!e.match(l.email)&&e.length<255},url:function(e){return"string"==typeof e&&!!e.match(l.url)},hex:function(e){return"string"==typeof e&&!!e.match(l.hex)}};t.default=function(e,t,i,n,a){if(e.required&&void 0===t)(0,o.default)(e,t,i,n,a);else{var l=e.type;["integer","float","array","regexp","object","method","email","number","date","url","hex"].indexOf(l)>-1?u[l](t)||n.push(s.format(a.messages.types[l],e.fullField,e.type)):l&&(void 0===t?"undefined":r(t))!==e.type&&n.push(s.format(a.messages.types[l],e.fullField,e.type))}}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&(t[i]=e[i]);return t.default=e,t}(i(6));t.default=function(e,t,i,r,s){var a="number"==typeof e.len,o="number"==typeof e.min,l="number"==typeof e.max,u=t,c=null,d="number"==typeof t,h="string"==typeof t,p=Array.isArray(t);if(d?c="number":h?c="string":p&&(c="array"),!c)return!1;p&&(u=t.length),h&&(u=t.replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,"_").length),a?u!==e.len&&r.push(n.format(s.messages[c].len,e.fullField,e.len)):o&&!l&&ue.max?r.push(n.format(s.messages[c].max,e.fullField,e.max)):o&&l&&(ue.max)&&r.push(n.format(s.messages[c].range,e.fullField,e.min,e.max))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&(t[i]=e[i]);return t.default=e,t}(i(6));t.default=function(e,t,i,r,s){e.enum=Array.isArray(e.enum)?e.enum:[],-1===e.enum.indexOf(t)&&r.push(n.format(s.messages.enum,e.fullField,e.enum.join(", ")))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&(t[i]=e[i]);return t.default=e,t}(i(6));t.default=function(e,t,i,r,s){if(e.pattern)if(e.pattern instanceof RegExp)e.pattern.lastIndex=0,e.pattern.test(t)||r.push(n.format(s.messages.pattern.mismatch,e.fullField,t,e.pattern));else if("string"==typeof e.pattern){new RegExp(e.pattern).test(t)||r.push(n.format(s.messages.pattern.mismatch,e.fullField,t,e.pattern))}}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n,r=i(12),s=(n=r)&&n.__esModule?n:{default:n},a=i(6);t.default=function(e,t,i,n,r){var o=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if((0,a.isEmptyValue)(t)&&!e.required)return i();s.default.required(e,t,n,o,r),void 0!==t&&s.default.type(e,t,n,o,r)}i(o)}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n,r=i(12),s=(n=r)&&n.__esModule?n:{default:n},a=i(6);t.default=function(e,t,i,n,r){var o=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(""===t&&(t=void 0),(0,a.isEmptyValue)(t)&&!e.required)return i();s.default.required(e,t,n,o,r),void 0!==t&&(s.default.type(e,t,n,o,r),s.default.range(e,t,n,o,r))}i(o)}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n,r=i(6),s=i(12),a=(n=s)&&n.__esModule?n:{default:n};t.default=function(e,t,i,n,s){var o=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if((0,r.isEmptyValue)(t)&&!e.required)return i();a.default.required(e,t,n,o,s),void 0!==t&&a.default.type(e,t,n,o,s)}i(o)}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n,r=i(12),s=(n=r)&&n.__esModule?n:{default:n},a=i(6);t.default=function(e,t,i,n,r){var o=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if((0,a.isEmptyValue)(t)&&!e.required)return i();s.default.required(e,t,n,o,r),(0,a.isEmptyValue)(t)||s.default.type(e,t,n,o,r)}i(o)}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n,r=i(12),s=(n=r)&&n.__esModule?n:{default:n},a=i(6);t.default=function(e,t,i,n,r){var o=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if((0,a.isEmptyValue)(t)&&!e.required)return i();s.default.required(e,t,n,o,r),void 0!==t&&(s.default.type(e,t,n,o,r),s.default.range(e,t,n,o,r))}i(o)}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n,r=i(12),s=(n=r)&&n.__esModule?n:{default:n},a=i(6);t.default=function(e,t,i,n,r){var o=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if((0,a.isEmptyValue)(t)&&!e.required)return i();s.default.required(e,t,n,o,r),void 0!==t&&(s.default.type(e,t,n,o,r),s.default.range(e,t,n,o,r))}i(o)}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n,r=i(12),s=(n=r)&&n.__esModule?n:{default:n},a=i(6);t.default=function(e,t,i,n,r){var o=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if((0,a.isEmptyValue)(t,"array")&&!e.required)return i();s.default.required(e,t,n,o,r,"array"),(0,a.isEmptyValue)(t,"array")||(s.default.type(e,t,n,o,r),s.default.range(e,t,n,o,r))}i(o)}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n,r=i(12),s=(n=r)&&n.__esModule?n:{default:n},a=i(6);t.default=function(e,t,i,n,r){var o=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if((0,a.isEmptyValue)(t)&&!e.required)return i();s.default.required(e,t,n,o,r),void 0!==t&&s.default.type(e,t,n,o,r)}i(o)}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n,r=i(12),s=(n=r)&&n.__esModule?n:{default:n},a=i(6);t.default=function(e,t,i,n,r){var o=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if((0,a.isEmptyValue)(t)&&!e.required)return i();s.default.required(e,t,n,o,r),t&&s.default.enum(e,t,n,o,r)}i(o)}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n,r=i(12),s=(n=r)&&n.__esModule?n:{default:n},a=i(6);t.default=function(e,t,i,n,r){var o=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if((0,a.isEmptyValue)(t,"string")&&!e.required)return i();s.default.required(e,t,n,o,r),(0,a.isEmptyValue)(t,"string")||s.default.pattern(e,t,n,o,r)}i(o)}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n,r=i(12),s=(n=r)&&n.__esModule?n:{default:n},a=i(6);t.default=function(e,t,i,n,r){var o=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if((0,a.isEmptyValue)(t)&&!e.required)return i();if(s.default.required(e,t,n,o,r),!(0,a.isEmptyValue)(t)){var l=void 0;l="number"==typeof t?new Date(t):t,s.default.type(e,l,n,o,r),l&&s.default.range(e,l.getTime(),n,o,r)}}i(o)}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n,r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},s=i(12),a=(n=s)&&n.__esModule?n:{default:n};t.default=function(e,t,i,n,s){var o=[],l=Array.isArray(t)?"array":void 0===t?"undefined":r(t);a.default.required(e,t,n,o,s,l),i(o)}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n,r=i(12),s=(n=r)&&n.__esModule?n:{default:n},a=i(6);t.default=function(e,t,i,n,r){var o=e.type,l=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if((0,a.isEmptyValue)(t,o)&&!e.required)return i();s.default.required(e,t,n,l,r,o),(0,a.isEmptyValue)(t,o)||s.default.type(e,t,n,l,r)}i(l)}},function(e,t,i){"use strict";function n(){return{default:"Validation error on field %s",required:"%s is required",enum:"%s must be one of %s",whitespace:"%s cannot be empty",date:{format:"%s date %s is invalid for format %s",parse:"%s date could not be parsed, %s is invalid ",invalid:"%s date %s is invalid"},types:{string:"%s is not a %s",method:"%s is not a %s (function)",array:"%s is not an %s",object:"%s is not an %s",number:"%s is not a %s",date:"%s is not a %s",boolean:"%s is not a %s",integer:"%s is not an %s",float:"%s is not a %s",regexp:"%s is not a valid %s",email:"%s is not a valid %s",url:"%s is not a valid %s",hex:"%s is not a valid %s"},string:{len:"%s must be exactly %s characters",min:"%s must be at least %s characters",max:"%s cannot be longer than %s characters",range:"%s must be between %s and %s characters"},number:{len:"%s must equal %s",min:"%s cannot be less than %s",max:"%s cannot be greater than %s",range:"%s must be between %s and %s"},array:{len:"%s must be exactly %s in length",min:"%s cannot be less than %s in length",max:"%s cannot be greater than %s in length",range:"%s must be between %s and %s in length"},pattern:{mismatch:"%s value %s does not match pattern %s"},clone:function(){var e=JSON.parse(JSON.stringify(this));return e.clone=this.clone,e}}}Object.defineProperty(t,"__esModule",{value:!0}),t.newMessages=n;t.messages=n()},function(e,t,i){e.exports=function(e){var t={};function i(n){if(t[n])return t[n].exports;var r=t[n]={i:n,l:!1,exports:{}};return e[n].call(r.exports,r,r.exports,i),r.l=!0,r.exports}return i.m=e,i.c=t,i.d=function(e,t,n){i.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},i.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.t=function(e,t){if(1&t&&(e=i(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(i.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)i.d(n,r,function(t){return e[t]}.bind(null,r));return n},i.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(t,"a",t),t},i.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},i.p="/dist/",i(i.s=104)}({0:function(e,t,i){"use strict";function n(e,t,i,n,r,s,a,o){var l,u="function"==typeof e?e.options:e;if(t&&(u.render=t,u.staticRenderFns=i,u._compiled=!0),n&&(u.functional=!0),s&&(u._scopeId="data-v-"+s),a?(l=function(e){(e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),r&&r.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(a)},u._ssrRegister=l):r&&(l=o?function(){r.call(this,this.$root.$options.shadowRoot)}:r),l)if(u.functional){u._injectStyles=l;var c=u.render;u.render=function(e,t){return l.call(t),c(e,t)}}else{var d=u.beforeCreate;u.beforeCreate=d?[].concat(d,l):[l]}return{exports:e,options:u}}i.d(t,"a",(function(){return n}))},10:function(e,t){e.exports=i(123)},104:function(e,t,i){"use strict";i.r(t);var n=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{class:["el-input-number",e.inputNumberSize?"el-input-number--"+e.inputNumberSize:"",{"is-disabled":e.inputNumberDisabled},{"is-without-controls":!e.controls},{"is-controls-right":e.controlsAtRight}],on:{dragstart:function(e){e.preventDefault()}}},[e.controls?i("span",{directives:[{name:"repeat-click",rawName:"v-repeat-click",value:e.decrease,expression:"decrease"}],staticClass:"el-input-number__decrease",class:{"is-disabled":e.minDisabled},attrs:{role:"button"},on:{keydown:function(t){return!("button"in t)&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:e.decrease(t)}}},[i("i",{class:"el-icon-"+(e.controlsAtRight?"arrow-down":"minus")})]):e._e(),e.controls?i("span",{directives:[{name:"repeat-click",rawName:"v-repeat-click",value:e.increase,expression:"increase"}],staticClass:"el-input-number__increase",class:{"is-disabled":e.maxDisabled},attrs:{role:"button"},on:{keydown:function(t){return!("button"in t)&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:e.increase(t)}}},[i("i",{class:"el-icon-"+(e.controlsAtRight?"arrow-up":"plus")})]):e._e(),i("el-input",{ref:"input",attrs:{value:e.displayValue,placeholder:e.placeholder,disabled:e.inputNumberDisabled,size:e.inputNumberSize,max:e.max,min:e.min,name:e.name,label:e.label},on:{blur:e.handleBlur,focus:e.handleFocus,input:e.handleInput,change:e.handleInputChange},nativeOn:{keydown:[function(t){return!("button"in t)&&e._k(t.keyCode,"up",38,t.key,["Up","ArrowUp"])?null:(t.preventDefault(),e.increase(t))},function(t){return!("button"in t)&&e._k(t.keyCode,"down",40,t.key,["Down","ArrowDown"])?null:(t.preventDefault(),e.decrease(t))}]}})],1)};n._withStripped=!0;var r=i(10),s=i.n(r),a=i(22),o=i.n(a),l=i(30),u={name:"ElInputNumber",mixins:[o()("input")],inject:{elForm:{default:""},elFormItem:{default:""}},directives:{repeatClick:l.a},components:{ElInput:s.a},props:{step:{type:Number,default:1},stepStrictly:{type:Boolean,default:!1},max:{type:Number,default:1/0},min:{type:Number,default:-1/0},value:{},disabled:Boolean,size:String,controls:{type:Boolean,default:!0},controlsPosition:{type:String,default:""},name:String,label:String,placeholder:String,precision:{type:Number,validator:function(e){return e>=0&&e===parseInt(e,10)}}},data:function(){return{currentValue:0,userInput:null}},watch:{value:{immediate:!0,handler:function(e){var t=void 0===e?e:Number(e);if(void 0!==t){if(isNaN(t))return;if(this.stepStrictly){var i=this.getPrecision(this.step),n=Math.pow(10,i);t=Math.round(t/this.step)*n*this.step/n}void 0!==this.precision&&(t=this.toPrecision(t,this.precision))}t>=this.max&&(t=this.max),t<=this.min&&(t=this.min),this.currentValue=t,this.userInput=null,this.$emit("input",t)}}},computed:{minDisabled:function(){return this._decrease(this.value,this.step)this.max},numPrecision:function(){var e=this.value,t=this.step,i=this.getPrecision,n=this.precision,r=i(t);return void 0!==n?(r>n&&console.warn("[Element Warn][InputNumber]precision should not be less than the decimal places of step"),n):Math.max(i(e),r)},controlsAtRight:function(){return this.controls&&"right"===this.controlsPosition},_elFormItemSize:function(){return(this.elFormItem||{}).elFormItemSize},inputNumberSize:function(){return this.size||this._elFormItemSize||(this.$ELEMENT||{}).size},inputNumberDisabled:function(){return this.disabled||!!(this.elForm||{}).disabled},displayValue:function(){if(null!==this.userInput)return this.userInput;var e=this.currentValue;if("number"==typeof e){if(this.stepStrictly){var t=this.getPrecision(this.step),i=Math.pow(10,t);e=Math.round(e/this.step)*i*this.step/i}void 0!==this.precision&&(e=e.toFixed(this.precision))}return e}},methods:{toPrecision:function(e,t){return void 0===t&&(t=this.numPrecision),parseFloat(Math.round(e*Math.pow(10,t))/Math.pow(10,t))},getPrecision:function(e){if(void 0===e)return 0;var t=e.toString(),i=t.indexOf("."),n=0;return-1!==i&&(n=t.length-i-1),n},_increase:function(e,t){if("number"!=typeof e&&void 0!==e)return this.currentValue;var i=Math.pow(10,this.numPrecision);return this.toPrecision((i*e+i*t)/i)},_decrease:function(e,t){if("number"!=typeof e&&void 0!==e)return this.currentValue;var i=Math.pow(10,this.numPrecision);return this.toPrecision((i*e-i*t)/i)},increase:function(){if(!this.inputNumberDisabled&&!this.maxDisabled){var e=this.value||0,t=this._increase(e,this.step);this.setCurrentValue(t)}},decrease:function(){if(!this.inputNumberDisabled&&!this.minDisabled){var e=this.value||0,t=this._decrease(e,this.step);this.setCurrentValue(t)}},handleBlur:function(e){this.$emit("blur",e)},handleFocus:function(e){this.$emit("focus",e)},setCurrentValue:function(e){var t=this.currentValue;"number"==typeof e&&void 0!==this.precision&&(e=this.toPrecision(e,this.precision)),e>=this.max&&(e=this.max),e<=this.min&&(e=this.min),t!==e&&(this.userInput=null,this.$emit("input",e),this.$emit("change",e,t),this.currentValue=e)},handleInput:function(e){this.userInput=e},handleInputChange:function(e){var t=""===e?void 0:Number(e);isNaN(t)&&""!==e||this.setCurrentValue(t),this.userInput=null},select:function(){this.$refs.input.select()}},mounted:function(){var e=this.$refs.input.$refs.input;e.setAttribute("role","spinbutton"),e.setAttribute("aria-valuemax",this.max),e.setAttribute("aria-valuemin",this.min),e.setAttribute("aria-valuenow",this.currentValue),e.setAttribute("aria-disabled",this.inputNumberDisabled)},updated:function(){this.$refs&&this.$refs.input&&this.$refs.input.$refs.input.setAttribute("aria-valuenow",this.currentValue)}},c=i(0),d=Object(c.a)(u,n,[],!1,null,null,null);d.options.__file="packages/input-number/src/input-number.vue";var h=d.exports;h.install=function(e){e.component(h.name,h)};t.default=h},2:function(e,t){e.exports=i(25)},22:function(e,t){e.exports=i(127)},30:function(e,t,i){"use strict";var n=i(2);t.a={bind:function(e,t,i){var r=null,s=void 0,a=function(){return i.context[t.expression].apply()},o=function(){Date.now()-s<100&&a(),clearInterval(r),r=null};Object(n.on)(e,"mousedown",(function(e){0===e.button&&(s=Date.now(),Object(n.once)(document,"mouseup",o),clearInterval(r),r=setInterval(a,100))}))}}}})},function(e,t,i){e.exports=function(e){var t={};function i(n){if(t[n])return t[n].exports;var r=t[n]={i:n,l:!1,exports:{}};return e[n].call(r.exports,r,r.exports,i),r.l=!0,r.exports}return i.m=e,i.c=t,i.d=function(e,t,n){i.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},i.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.t=function(e,t){if(1&t&&(e=i(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(i.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)i.d(n,r,function(t){return e[t]}.bind(null,r));return n},i.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(t,"a",t),t},i.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},i.p="/dist/",i(i.s=59)}({0:function(e,t,i){"use strict";function n(e,t,i,n,r,s,a,o){var l,u="function"==typeof e?e.options:e;if(t&&(u.render=t,u.staticRenderFns=i,u._compiled=!0),n&&(u.functional=!0),s&&(u._scopeId="data-v-"+s),a?(l=function(e){(e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),r&&r.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(a)},u._ssrRegister=l):r&&(l=o?function(){r.call(this,this.$root.$options.shadowRoot)}:r),l)if(u.functional){u._injectStyles=l;var c=u.render;u.render=function(e,t){return l.call(t),c(e,t)}}else{var d=u.beforeCreate;u.beforeCreate=d?[].concat(d,l):[l]}return{exports:e,options:u}}i.d(t,"a",(function(){return n}))},15:function(e,t){e.exports=i(126)},19:function(e,t){e.exports=i(201)},21:function(e,t){e.exports=i(90)},26:function(e,t){e.exports=i(202)},3:function(e,t){e.exports=i(19)},31:function(e,t){e.exports=i(128)},40:function(e,t){e.exports=i(129)},51:function(e,t){e.exports=i(205)},59:function(e,t,i){"use strict";i.r(t);var n=function(){var e=this.$createElement,t=this._self._c||e;return t("div",{class:["el-cascader-panel",this.border&&"is-bordered"],on:{keydown:this.handleKeyDown}},this._l(this.menus,(function(e,i){return t("cascader-menu",{key:i,ref:"menu",refInFor:!0,attrs:{index:i,nodes:e}})})),1)};n._withStripped=!0;var r=i(26),s=i.n(r),a=i(15),o=i.n(a),l=i(19),u=i.n(l),c=i(51),d=i.n(c),h=i(3),p=function(e){return e.stopPropagation()},f={inject:["panel"],components:{ElCheckbox:u.a,ElRadio:d.a},props:{node:{required:!0},nodeId:String},computed:{config:function(){return this.panel.config},isLeaf:function(){return this.node.isLeaf},isDisabled:function(){return this.node.isDisabled},checkedValue:function(){return this.panel.checkedValue},isChecked:function(){return this.node.isSameNode(this.checkedValue)},inActivePath:function(){return this.isInPath(this.panel.activePath)},inCheckedPath:function(){var e=this;return!!this.config.checkStrictly&&this.panel.checkedNodePaths.some((function(t){return e.isInPath(t)}))},value:function(){return this.node.getValueByOption()}},methods:{handleExpand:function(){var e=this,t=this.panel,i=this.node,n=this.isDisabled,r=this.config,s=r.multiple;!r.checkStrictly&&n||i.loading||(r.lazy&&!i.loaded?t.lazyLoad(i,(function(){var t=e.isLeaf;if(t||e.handleExpand(),s){var n=!!t&&i.checked;e.handleMultiCheckChange(n)}})):t.handleExpand(i))},handleCheckChange:function(){var e=this.panel,t=this.value,i=this.node;e.handleCheckChange(t),e.handleExpand(i)},handleMultiCheckChange:function(e){this.node.doCheck(e),this.panel.calculateMultiCheckedValue()},isInPath:function(e){var t=this.node;return(e[t.level-1]||{}).uid===t.uid},renderPrefix:function(e){var t=this.isLeaf,i=this.isChecked,n=this.config,r=n.checkStrictly;return n.multiple?this.renderCheckbox(e):r?this.renderRadio(e):t&&i?this.renderCheckIcon(e):null},renderPostfix:function(e){var t=this.node,i=this.isLeaf;return t.loading?this.renderLoadingIcon(e):i?null:this.renderExpandIcon(e)},renderCheckbox:function(e){var t=this.node,i=this.config,n=this.isDisabled,r={on:{change:this.handleMultiCheckChange},nativeOn:{}};return i.checkStrictly&&(r.nativeOn.click=p),e("el-checkbox",s()([{attrs:{value:t.checked,indeterminate:t.indeterminate,disabled:n}},r]))},renderRadio:function(e){var t=this.checkedValue,i=this.value,n=this.isDisabled;return Object(h.isEqual)(i,t)&&(i=t),e("el-radio",{attrs:{value:t,label:i,disabled:n},on:{change:this.handleCheckChange},nativeOn:{click:p}},[e("span")])},renderCheckIcon:function(e){return e("i",{class:"el-icon-check el-cascader-node__prefix"})},renderLoadingIcon:function(e){return e("i",{class:"el-icon-loading el-cascader-node__postfix"})},renderExpandIcon:function(e){return e("i",{class:"el-icon-arrow-right el-cascader-node__postfix"})},renderContent:function(e){var t=this.panel,i=this.node,n=t.renderLabelFn;return e("span",{class:"el-cascader-node__label"},[(n?n({node:i,data:i.data}):null)||i.label])}},render:function(e){var t=this,i=this.inActivePath,n=this.inCheckedPath,r=this.isChecked,a=this.isLeaf,o=this.isDisabled,l=this.config,u=this.nodeId,c=l.expandTrigger,d=l.checkStrictly,h=l.multiple,p=!d&&o,f={on:{}};return"click"===c?f.on.click=this.handleExpand:(f.on.mouseenter=function(e){t.handleExpand(),t.$emit("expand",e)},f.on.focus=function(e){t.handleExpand(),t.$emit("expand",e)}),!a||o||d||h||(f.on.click=this.handleCheckChange),e("li",s()([{attrs:{role:"menuitem",id:u,"aria-expanded":i,tabindex:p?null:-1},class:{"el-cascader-node":!0,"is-selectable":d,"in-active-path":i,"in-checked-path":n,"is-active":r,"is-disabled":p}},f]),[this.renderPrefix(e),this.renderContent(e),this.renderPostfix(e)])}},m=i(0),v=Object(m.a)(f,void 0,void 0,!1,null,null,null);v.options.__file="packages/cascader-panel/src/cascader-node.vue";var g=v.exports,_=i(6),b={name:"ElCascaderMenu",mixins:[i.n(_).a],inject:["panel"],components:{ElScrollbar:o.a,CascaderNode:g},props:{nodes:{type:Array,required:!0},index:Number},data:function(){return{activeNode:null,hoverTimer:null,id:Object(h.generateId)()}},computed:{isEmpty:function(){return!this.nodes.length},menuId:function(){return"cascader-menu-"+this.id+"-"+this.index}},methods:{handleExpand:function(e){this.activeNode=e.target},handleMouseMove:function(e){var t=this.activeNode,i=this.hoverTimer,n=this.$refs.hoverZone;if(t&&n)if(t.contains(e.target)){clearTimeout(i);var r=this.$el.getBoundingClientRect().left,s=e.clientX-r,a=this.$el,o=a.offsetWidth,l=a.offsetHeight,u=t.offsetTop,c=u+t.offsetHeight;n.innerHTML='\n \n \n '}else i||(this.hoverTimer=setTimeout(this.clearHoverZone,this.panel.config.hoverThreshold))},clearHoverZone:function(){var e=this.$refs.hoverZone;e&&(e.innerHTML="")},renderEmptyText:function(e){return e("div",{class:"el-cascader-menu__empty-text"},[this.t("el.cascader.noData")])},renderNodeList:function(e){var t=this.menuId,i=this.panel.isHoverMenu,n={on:{}};i&&(n.on.expand=this.handleExpand);var r=this.nodes.map((function(i,r){var a=i.hasChildren;return e("cascader-node",s()([{key:i.uid,attrs:{node:i,"node-id":t+"-"+r,"aria-haspopup":a,"aria-owns":a?t:null}},n]))}));return[].concat(r,[i?e("svg",{ref:"hoverZone",class:"el-cascader-menu__hover-zone"}):null])}},render:function(e){var t=this.isEmpty,i=this.menuId,n={nativeOn:{}};return this.panel.isHoverMenu&&(n.nativeOn.mousemove=this.handleMouseMove),e("el-scrollbar",s()([{attrs:{tag:"ul",role:"menu",id:i,"wrap-class":"el-cascader-menu__wrap","view-class":{"el-cascader-menu__list":!0,"is-empty":t}},class:"el-cascader-menu"},n]),[t?this.renderEmptyText(e):this.renderNodeList(e)])}},y=Object(m.a)(b,void 0,void 0,!1,null,null,null);y.options.__file="packages/cascader-panel/src/cascader-menu.vue";var x=y.exports,k=i(21),w=function(){function e(e,t){for(var i=0;i1?t-1:0),n=1;n1?n-1:0),s=1;s0},e.prototype.syncCheckState=function(e){var t=this.getValueByOption(),i=this.isSameNode(e,t);this.doCheck(i)},e.prototype.doCheck=function(e){this.checked!==e&&(this.config.checkStrictly?this.checked=e:(this.broadcast("check",e),this.setCheckState(e),this.emit("check")))},w(e,[{key:"isDisabled",get:function(){var e=this.data,t=this.parent,i=this.config,n=i.disabled,r=i.checkStrictly;return e[n]||!r&&t&&t.isDisabled}},{key:"isLeaf",get:function(){var e=this.data,t=this.loaded,i=this.hasChildren,n=this.children,r=this.config,s=r.lazy,a=r.leaf;if(s){var o=Object(k.isDef)(e[a])?e[a]:!!t&&!n.length;return this.hasChildren=!o,o}return!i}}]),e}();var O=function e(t,i){return t.reduce((function(t,n){return n.isLeaf?t.push(n):(!i&&t.push(n),t=t.concat(e(n.children,i))),t}),[])},D=function(){function e(t,i){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.config=i,this.initNodes(t)}return e.prototype.initNodes=function(e){var t=this;e=Object(h.coerceTruthyValueToArray)(e),this.nodes=e.map((function(e){return new S(e,t.config)})),this.flattedNodes=this.getFlattedNodes(!1,!1),this.leafNodes=this.getFlattedNodes(!0,!1)},e.prototype.appendNode=function(e,t){var i=new S(e,this.config,t);(t?t.children:this.nodes).push(i)},e.prototype.appendNodes=function(e,t){var i=this;(e=Object(h.coerceTruthyValueToArray)(e)).forEach((function(e){return i.appendNode(e,t)}))},e.prototype.getNodes=function(){return this.nodes},e.prototype.getFlattedNodes=function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=e?this.leafNodes:this.flattedNodes;return t?i:O(this.nodes,e)},e.prototype.getNodeByValue=function(e){var t=this.getFlattedNodes(!1,!this.config.lazy).filter((function(t){return Object(h.valueEquals)(t.path,e)||t.value===e}));return t&&t.length?t[0]:null},e}(),E=i(9),T=i.n(E),$=i(40),P=i.n($),j=i(31),M=i.n(j),I=Object.assign||function(e){for(var t=1;t0){var l=i.store.getNodeByValue(s);l.data[o]||i.lazyLoad(l,(function(){i.handleExpand(l)})),i.loadCount===i.checkedValue.length&&i.$parent.computePresentText()}}t&&t(n)}))},calculateMultiCheckedValue:function(){this.checkedValue=this.getCheckedNodes(this.leafOnly).map((function(e){return e.getValueByOption()}))},scrollIntoView:function(){this.$isServer||(this.$refs.menu||[]).forEach((function(e){var t=e.$el;if(t){var i=t.querySelector(".el-scrollbar__wrap"),n=t.querySelector(".el-cascader-node.is-active")||t.querySelector(".el-cascader-node.in-active-path");M()(i,n)}}))},getNodeByValue:function(e){return this.store.getNodeByValue(e)},getFlattedNodes:function(e){var t=!this.config.lazy;return this.store.getFlattedNodes(e,t)},getCheckedNodes:function(e){var t=this.checkedValue;return this.multiple?this.getFlattedNodes(e).filter((function(e){return e.checked})):this.isEmptyValue(t)?[]:[this.getNodeByValue(t)]},clearCheckedNodes:function(){var e=this.config,t=this.leafOnly,i=e.multiple,n=e.emitPath;i?(this.getCheckedNodes(t).filter((function(e){return!e.isDisabled})).forEach((function(e){return e.doCheck(!1)})),this.calculateMultiCheckedValue()):this.checkedValue=n?[]:null}}},B=Object(m.a)(R,n,[],!1,null,null,null);B.options.__file="packages/cascader-panel/src/cascader-panel.vue";var H=B.exports;H.install=function(e){e.component(H.name,H)};t.default=H},6:function(e,t){e.exports=i(121)},9:function(e,t){e.exports=i(89)}})},function(e,t,i){e.exports=function(e){var t={};function i(n){if(t[n])return t[n].exports;var r=t[n]={i:n,l:!1,exports:{}};return e[n].call(r.exports,r,r.exports,i),r.l=!0,r.exports}return i.m=e,i.c=t,i.d=function(e,t,n){i.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},i.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.t=function(e,t){if(1&t&&(e=i(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(i.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)i.d(n,r,function(t){return e[t]}.bind(null,r));return n},i.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(t,"a",t),t},i.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},i.p="/dist/",i(i.s=79)}({0:function(e,t,i){"use strict";function n(e,t,i,n,r,s,a,o){var l,u="function"==typeof e?e.options:e;if(t&&(u.render=t,u.staticRenderFns=i,u._compiled=!0),n&&(u.functional=!0),s&&(u._scopeId="data-v-"+s),a?(l=function(e){(e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),r&&r.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(a)},u._ssrRegister=l):r&&(l=o?function(){r.call(this,this.$root.$options.shadowRoot)}:r),l)if(u.functional){u._injectStyles=l;var c=u.render;u.render=function(e,t){return l.call(t),c(e,t)}}else{var d=u.beforeCreate;u.beforeCreate=d?[].concat(d,l):[l]}return{exports:e,options:u}}i.d(t,"a",(function(){return n}))},2:function(e,t){e.exports=i(25)},3:function(e,t){e.exports=i(19)},5:function(e,t){e.exports=i(88)},7:function(e,t){e.exports=i(0)},79:function(e,t,i){"use strict";i.r(t);var n=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("span",[i("transition",{attrs:{name:e.transition},on:{"after-enter":e.handleAfterEnter,"after-leave":e.handleAfterLeave}},[i("div",{directives:[{name:"show",rawName:"v-show",value:!e.disabled&&e.showPopper,expression:"!disabled && showPopper"}],ref:"popper",staticClass:"el-popover el-popper",class:[e.popperClass,e.content&&"el-popover--plain"],style:{width:e.width+"px"},attrs:{role:"tooltip",id:e.tooltipId,"aria-hidden":e.disabled||!e.showPopper?"true":"false"}},[e.title?i("div",{staticClass:"el-popover__title",domProps:{textContent:e._s(e.title)}}):e._e(),e._t("default",[e._v(e._s(e.content))])],2)]),i("span",{ref:"wrapper",staticClass:"el-popover__reference-wrapper"},[e._t("reference")],2)],1)};n._withStripped=!0;var r=i(5),s=i.n(r),a=i(2),o=i(3),l={name:"ElPopover",mixins:[s.a],props:{trigger:{type:String,default:"click",validator:function(e){return["click","focus","hover","manual"].indexOf(e)>-1}},openDelay:{type:Number,default:0},closeDelay:{type:Number,default:200},title:String,disabled:Boolean,content:String,reference:{},popperClass:String,width:{},visibleArrow:{default:!0},arrowOffset:{type:Number,default:0},transition:{type:String,default:"fade-in-linear"},tabindex:{type:Number,default:0}},computed:{tooltipId:function(){return"el-popover-"+Object(o.generateId)()}},watch:{showPopper:function(e){this.disabled||(e?this.$emit("show"):this.$emit("hide"))}},mounted:function(){var e=this,t=this.referenceElm=this.reference||this.$refs.reference,i=this.popper||this.$refs.popper;!t&&this.$refs.wrapper.children&&(t=this.referenceElm=this.$refs.wrapper.children[0]),t&&(Object(a.addClass)(t,"el-popover__reference"),t.setAttribute("aria-describedby",this.tooltipId),t.setAttribute("tabindex",this.tabindex),i.setAttribute("tabindex",0),"click"!==this.trigger&&(Object(a.on)(t,"focusin",(function(){e.handleFocus();var i=t.__vue__;i&&"function"==typeof i.focus&&i.focus()})),Object(a.on)(i,"focusin",this.handleFocus),Object(a.on)(t,"focusout",this.handleBlur),Object(a.on)(i,"focusout",this.handleBlur)),Object(a.on)(t,"keydown",this.handleKeydown),Object(a.on)(t,"click",this.handleClick)),"click"===this.trigger?(Object(a.on)(t,"click",this.doToggle),Object(a.on)(document,"click",this.handleDocumentClick)):"hover"===this.trigger?(Object(a.on)(t,"mouseenter",this.handleMouseEnter),Object(a.on)(i,"mouseenter",this.handleMouseEnter),Object(a.on)(t,"mouseleave",this.handleMouseLeave),Object(a.on)(i,"mouseleave",this.handleMouseLeave)):"focus"===this.trigger&&(this.tabindex<0&&console.warn("[Element Warn][Popover]a negative taindex means that the element cannot be focused by tab key"),t.querySelector("input, textarea")?(Object(a.on)(t,"focusin",this.doShow),Object(a.on)(t,"focusout",this.doClose)):(Object(a.on)(t,"mousedown",this.doShow),Object(a.on)(t,"mouseup",this.doClose)))},beforeDestroy:function(){this.cleanup()},deactivated:function(){this.cleanup()},methods:{doToggle:function(){this.showPopper=!this.showPopper},doShow:function(){this.showPopper=!0},doClose:function(){this.showPopper=!1},handleFocus:function(){Object(a.addClass)(this.referenceElm,"focusing"),"click"!==this.trigger&&"focus"!==this.trigger||(this.showPopper=!0)},handleClick:function(){Object(a.removeClass)(this.referenceElm,"focusing")},handleBlur:function(){Object(a.removeClass)(this.referenceElm,"focusing"),"click"!==this.trigger&&"focus"!==this.trigger||(this.showPopper=!1)},handleMouseEnter:function(){var e=this;clearTimeout(this._timer),this.openDelay?this._timer=setTimeout((function(){e.showPopper=!0}),this.openDelay):this.showPopper=!0},handleKeydown:function(e){27===e.keyCode&&"manual"!==this.trigger&&this.doClose()},handleMouseLeave:function(){var e=this;clearTimeout(this._timer),this.closeDelay?this._timer=setTimeout((function(){e.showPopper=!1}),this.closeDelay):this.showPopper=!1},handleDocumentClick:function(e){var t=this.reference||this.$refs.reference,i=this.popper||this.$refs.popper;!t&&this.$refs.wrapper.children&&(t=this.referenceElm=this.$refs.wrapper.children[0]),this.$el&&t&&!this.$el.contains(e.target)&&!t.contains(e.target)&&i&&!i.contains(e.target)&&(this.showPopper=!1)},handleAfterEnter:function(){this.$emit("after-enter")},handleAfterLeave:function(){this.$emit("after-leave"),this.doDestroy()},cleanup:function(){(this.openDelay||this.closeDelay)&&clearTimeout(this._timer)}},destroyed:function(){var e=this.reference;Object(a.off)(e,"click",this.doToggle),Object(a.off)(e,"mouseup",this.doClose),Object(a.off)(e,"mousedown",this.doShow),Object(a.off)(e,"focusin",this.doShow),Object(a.off)(e,"focusout",this.doClose),Object(a.off)(e,"mousedown",this.doShow),Object(a.off)(e,"mouseup",this.doClose),Object(a.off)(e,"mouseleave",this.handleMouseLeave),Object(a.off)(e,"mouseenter",this.handleMouseEnter),Object(a.off)(document,"click",this.handleDocumentClick)}},u=i(0),c=Object(u.a)(l,n,[],!1,null,null,null);c.options.__file="packages/popover/src/main.vue";var d=c.exports,h=function(e,t,i){var n=t.expression?t.value:t.arg,r=i.context.$refs[n];r&&(Array.isArray(r)?r[0].$refs.reference=e:r.$refs.reference=e)},p={bind:function(e,t,i){h(e,t,i)},inserted:function(e,t,i){h(e,t,i)}},f=i(7);i.n(f).a.directive("popover",p),d.install=function(e){e.directive("popover",p),e.component(d.name,d)},d.directive=p;t.default=d}})},function(e,t,i){},function(e,t,i){},function(e,t,i){},function(e,t,i){"use strict";var n=i(7),r=i(3),s=i(100),a=i(13),o=i(10),l=i(34),u=i(234),c=i(68),d=i(142),h=i(2),p=i(27),f=i(45).f,m=i(26).f,v=i(11).f,g=i(223).trim,_=r.Number,b=_.prototype,y="Number"==l(p(b)),x=function(e){if(c(e))throw TypeError("Cannot convert a Symbol value to a number");var t,i,n,r,s,a,o,l,u=d(e,"number");if("string"==typeof u&&u.length>2)if(43===(t=(u=g(u)).charCodeAt(0))||45===t){if(88===(i=u.charCodeAt(2))||120===i)return NaN}else if(48===t){switch(u.charCodeAt(1)){case 66:case 98:n=2,r=49;break;case 79:case 111:n=8,r=55;break;default:return+u}for(a=(s=u.slice(2)).length,o=0;or)return NaN;return parseInt(s,n)}return+u};if(s("Number",!_(" 0o1")||!_("0b1")||_("+0x1"))){for(var k,w=function(e){var t=arguments.length<1?0:e,i=this;return i instanceof w&&(y?h((function(){b.valueOf.call(i)})):"Number"!=l(i))?u(new _(x(t)),i,w):x(t)},C=n?f(_):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger,fromString,range".split(","),S=0;C.length>S;S++)o(_,k=C[S])&&!o(w,k)&&v(w,k,m(_,k));w.prototype=b,b.constructor=w,a(r,"Number",w)}},function(e,t,i){"use strict";i(206)},function(e,t,i){"use strict";var n=i(1),r=i(33).every;n({target:"Array",proto:!0,forced:!i(40)("every")},{every:function(e){return r(this,e,arguments.length>1?arguments[1]:void 0)}})},function(e,t,i){var n=i(13),r=Date.prototype,s=r.toString,a=r.getTime;"Invalid Date"!=String(new Date(NaN))&&n(r,"toString",(function(){var e=a.call(this);return e==e?s.call(this):"Invalid Date"}))},function(e,t,i){},function(e,t,i){},function(e,t,i){"use strict";var n=i(31),r=i(8),s=[].slice,a={},o=function(e,t,i){if(!(t in a)){for(var n=[],r=0;r=0&&(t=e.slice(n),e=e.slice(0,n));var r=e.indexOf("?");return r>=0&&(i=e.slice(r+1),e=e.slice(0,r)),{path:e,query:i,hash:t}}(r.path||""),c=t&&t.path||"/",p=u.path?S(u.path,c,i||r.append):c,f=function(e,t,i){void 0===t&&(t={});var n,r=i||h;try{n=r(e||"")}catch(e){n={}}for(var s in t){var a=t[s];n[s]=Array.isArray(a)?a.map(d):d(a)}return n}(u.query,r.query,n&&n.options.parseQuery),m=r.hash||u.hash;return m&&"#"!==m.charAt(0)&&(m="#"+m),{_normalized:!0,path:p,query:f,hash:m}}var U,G=function(){},Y={name:"RouterLink",props:{to:{type:[String,Object],required:!0},tag:{type:String,default:"a"},custom:Boolean,exact:Boolean,exactPath:Boolean,append:Boolean,replace:Boolean,activeClass:String,exactActiveClass:String,ariaCurrentValue:{type:String,default:"page"},event:{type:[String,Array],default:"click"}},render:function(e){var t=this,i=this.$router,n=this.$route,r=i.resolve(this.to,n,this.append),a=r.location,o=r.route,l=r.href,u={},c=i.options.linkActiveClass,d=i.options.linkExactActiveClass,h=null==c?"router-link-active":c,p=null==d?"router-link-exact-active":d,v=null==this.activeClass?h:this.activeClass,g=null==this.exactActiveClass?p:this.exactActiveClass,_=o.redirectedFrom?m(null,q(o.redirectedFrom),null,i):o;u[g]=y(n,_,this.exactPath),u[v]=this.exact||this.exactPath?u[g]:function(e,t){return 0===e.path.replace(f,"/").indexOf(t.path.replace(f,"/"))&&(!t.hash||e.hash===t.hash)&&function(e,t){for(var i in t)if(!(i in e))return!1;return!0}(e.query,t.query)}(n,_);var b=u[g]?this.ariaCurrentValue:null,x=function(e){K(e)&&(t.replace?i.replace(a,G):i.push(a,G))},k={click:K};Array.isArray(this.event)?this.event.forEach((function(e){k[e]=x})):k[this.event]=x;var w={class:u},C=!this.$scopedSlots.$hasNormal&&this.$scopedSlots.default&&this.$scopedSlots.default({href:l,route:o,navigate:x,isActive:u[v],isExactActive:u[g]});if(C){if(1===C.length)return C[0];if(C.length>1||!C.length)return 0===C.length?e():e("span",{},C)}if("a"===this.tag)w.on=k,w.attrs={href:l,"aria-current":b};else{var S=function e(t){var i;if(t)for(var n=0;n-1&&(o.params[h]=i.params[h]);return o.path=W(c.path,o.params),l(c,o,a)}if(o.path){o.params={};for(var p=0;p=e.length?i():e[r]?t(e[r],(function(){n(r+1)})):n(r+1)};n(0)}var xe={redirected:2,aborted:4,cancelled:8,duplicated:16};function ke(e,t){return Ce(e,t,xe.redirected,'Redirected when going from "'+e.fullPath+'" to "'+function(e){if("string"==typeof e)return e;if("path"in e)return e.path;var t={};return Se.forEach((function(i){i in e&&(t[i]=e[i])})),JSON.stringify(t,null,2)}(t)+'" via a navigation guard.')}function we(e,t){return Ce(e,t,xe.cancelled,'Navigation cancelled from "'+e.fullPath+'" to "'+t.fullPath+'" with a new navigation.')}function Ce(e,t,i,n){var r=new Error(n);return r._isRouter=!0,r.from=e,r.to=t,r.type=i,r}var Se=["params","query","hash"];function Oe(e){return Object.prototype.toString.call(e).indexOf("Error")>-1}function De(e,t){return Oe(e)&&e._isRouter&&(null==t||e.type===t)}function Ee(e){return function(t,i,n){var r=!1,s=0,a=null;Te(e,(function(e,t,i,o){if("function"==typeof e&&void 0===e.cid){r=!0,s++;var l,u=je((function(t){var r;((r=t).__esModule||Pe&&"Module"===r[Symbol.toStringTag])&&(t=t.default),e.resolved="function"==typeof t?t:U.extend(t),i.components[o]=t,--s<=0&&n()})),c=je((function(e){var t="Failed to resolve async component "+o+": "+e;a||(a=Oe(e)?e:new Error(t),n(a))}));try{l=e(u,c)}catch(e){c(e)}if(l)if("function"==typeof l.then)l.then(u,c);else{var d=l.component;d&&"function"==typeof d.then&&d.then(u,c)}}})),r||n()}}function Te(e,t){return $e(e.map((function(e){return Object.keys(e.components).map((function(i){return t(e.components[i],e.instances[i],e,i)}))})))}function $e(e){return Array.prototype.concat.apply([],e)}var Pe="function"==typeof Symbol&&"symbol"==typeof Symbol.toStringTag;function je(e){var t=!1;return function(){for(var i=[],n=arguments.length;n--;)i[n]=arguments[n];if(!t)return t=!0,e.apply(this,i)}}var Me=function(e,t){this.router=e,this.base=function(e){if(!e)if(X){var t=document.querySelector("base");e=(e=t&&t.getAttribute("href")||"/").replace(/^https?:\/\/[^\/]+/,"")}else e="/";"/"!==e.charAt(0)&&(e="/"+e);return e.replace(/\/$/,"")}(t),this.current=g,this.pending=null,this.ready=!1,this.readyCbs=[],this.readyErrorCbs=[],this.errorCbs=[],this.listeners=[]};function Ie(e,t,i,n){var r=Te(e,(function(e,n,r,s){var a=function(e,t){"function"!=typeof e&&(e=U.extend(e));return e.options[t]}(e,t);if(a)return Array.isArray(a)?a.map((function(e){return i(e,n,r,s)})):i(a,n,r,s)}));return $e(n?r.reverse():r)}function Ae(e,t){if(t)return function(){return e.apply(t,arguments)}}Me.prototype.listen=function(e){this.cb=e},Me.prototype.onReady=function(e,t){this.ready?e():(this.readyCbs.push(e),t&&this.readyErrorCbs.push(t))},Me.prototype.onError=function(e){this.errorCbs.push(e)},Me.prototype.transitionTo=function(e,t,i){var n,r=this;try{n=this.router.match(e,this.current)}catch(e){throw this.errorCbs.forEach((function(t){t(e)})),e}var s=this.current;this.confirmTransition(n,(function(){r.updateRoute(n),t&&t(n),r.ensureURL(),r.router.afterHooks.forEach((function(e){e&&e(n,s)})),r.ready||(r.ready=!0,r.readyCbs.forEach((function(e){e(n)})))}),(function(e){i&&i(e),e&&!r.ready&&(De(e,xe.redirected)&&s===g||(r.ready=!0,r.readyErrorCbs.forEach((function(t){t(e)}))))}))},Me.prototype.confirmTransition=function(e,t,i){var n=this,r=this.current;this.pending=e;var s,a,o=function(e){!De(e)&&Oe(e)&&(n.errorCbs.length?n.errorCbs.forEach((function(t){t(e)})):console.error(e)),i&&i(e)},l=e.matched.length-1,u=r.matched.length-1;if(y(e,r)&&l===u&&e.matched[l]===r.matched[u])return this.ensureURL(),o(((a=Ce(s=r,e,xe.duplicated,'Avoided redundant navigation to current location: "'+s.fullPath+'".')).name="NavigationDuplicated",a));var c=function(e,t){var i,n=Math.max(e.length,t.length);for(i=0;i0)){var t=this.router,i=t.options.scrollBehavior,n=ge&&i;n&&this.listeners.push(oe());var r=function(){var i=e.current,r=Le(e.base);e.current===g&&r===e._startLocation||e.transitionTo(r,(function(e){n&&le(t,e,i,!0)}))};window.addEventListener("popstate",r),this.listeners.push((function(){window.removeEventListener("popstate",r)}))}},t.prototype.go=function(e){window.history.go(e)},t.prototype.push=function(e,t,i){var n=this,r=this.current;this.transitionTo(e,(function(e){_e(O(n.base+e.fullPath)),le(n.router,e,r,!1),t&&t(e)}),i)},t.prototype.replace=function(e,t,i){var n=this,r=this.current;this.transitionTo(e,(function(e){be(O(n.base+e.fullPath)),le(n.router,e,r,!1),t&&t(e)}),i)},t.prototype.ensureURL=function(e){if(Le(this.base)!==this.current.fullPath){var t=O(this.base+this.current.fullPath);e?_e(t):be(t)}},t.prototype.getCurrentLocation=function(){return Le(this.base)},t}(Me);function Le(e){var t=window.location.pathname,i=t.toLowerCase(),n=e.toLowerCase();return!e||i!==n&&0!==i.indexOf(O(n+"/"))||(t=t.slice(e.length)),(t||"/")+window.location.search+window.location.hash}var Fe=function(e){function t(t,i,n){e.call(this,t,i),n&&function(e){var t=Le(e);if(!/^\/#/.test(t))return window.location.replace(O(e+"/#"+t)),!0}(this.base)||Ve()}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.setupListeners=function(){var e=this;if(!(this.listeners.length>0)){var t=this.router.options.scrollBehavior,i=ge&&t;i&&this.listeners.push(oe());var n=function(){var t=e.current;Ve()&&e.transitionTo(ze(),(function(n){i&&le(e.router,n,t,!0),ge||He(n.fullPath)}))},r=ge?"popstate":"hashchange";window.addEventListener(r,n),this.listeners.push((function(){window.removeEventListener(r,n)}))}},t.prototype.push=function(e,t,i){var n=this,r=this.current;this.transitionTo(e,(function(e){Be(e.fullPath),le(n.router,e,r,!1),t&&t(e)}),i)},t.prototype.replace=function(e,t,i){var n=this,r=this.current;this.transitionTo(e,(function(e){He(e.fullPath),le(n.router,e,r,!1),t&&t(e)}),i)},t.prototype.go=function(e){window.history.go(e)},t.prototype.ensureURL=function(e){var t=this.current.fullPath;ze()!==t&&(e?Be(t):He(t))},t.prototype.getCurrentLocation=function(){return ze()},t}(Me);function Ve(){var e=ze();return"/"===e.charAt(0)||(He("/"+e),!1)}function ze(){var e=window.location.href,t=e.indexOf("#");return t<0?"":e=e.slice(t+1)}function Re(e){var t=window.location.href,i=t.indexOf("#");return(i>=0?t.slice(0,i):t)+"#"+e}function Be(e){ge?_e(Re(e)):window.location.hash=e}function He(e){ge?be(Re(e)):window.location.replace(Re(e))}var We=function(e){function t(t,i){e.call(this,t,i),this.stack=[],this.index=-1}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.push=function(e,t,i){var n=this;this.transitionTo(e,(function(e){n.stack=n.stack.slice(0,n.index+1).concat(e),n.index++,t&&t(e)}),i)},t.prototype.replace=function(e,t,i){var n=this;this.transitionTo(e,(function(e){n.stack=n.stack.slice(0,n.index).concat(e),t&&t(e)}),i)},t.prototype.go=function(e){var t=this,i=this.index+e;if(!(i<0||i>=this.stack.length)){var n=this.stack[i];this.confirmTransition(n,(function(){var e=t.current;t.index=i,t.updateRoute(n),t.router.afterHooks.forEach((function(t){t&&t(n,e)}))}),(function(e){De(e,xe.duplicated)&&(t.index=i)}))}},t.prototype.getCurrentLocation=function(){var e=this.stack[this.stack.length-1];return e?e.fullPath:"/"},t.prototype.ensureURL=function(){},t}(Me),qe=function(e){void 0===e&&(e={}),this.app=null,this.apps=[],this.options=e,this.beforeHooks=[],this.resolveHooks=[],this.afterHooks=[],this.matcher=J(e.routes||[],this);var t=e.mode||"hash";switch(this.fallback="history"===t&&!ge&&!1!==e.fallback,this.fallback&&(t="hash"),X||(t="abstract"),this.mode=t,t){case"history":this.history=new Ne(this,e.base);break;case"hash":this.history=new Fe(this,e.base,this.fallback);break;case"abstract":this.history=new We(this,e.base);break;default:0}},Ue={currentRoute:{configurable:!0}};function Ge(e,t){return e.push(t),function(){var i=e.indexOf(t);i>-1&&e.splice(i,1)}}qe.prototype.match=function(e,t,i){return this.matcher.match(e,t,i)},Ue.currentRoute.get=function(){return this.history&&this.history.current},qe.prototype.init=function(e){var t=this;if(this.apps.push(e),e.$once("hook:destroyed",(function(){var i=t.apps.indexOf(e);i>-1&&t.apps.splice(i,1),t.app===e&&(t.app=t.apps[0]||null),t.app||t.history.teardown()})),!this.app){this.app=e;var i=this.history;if(i instanceof Ne||i instanceof Fe){var n=function(e){i.setupListeners(),function(e){var n=i.current,r=t.options.scrollBehavior;ge&&r&&"fullPath"in e&&le(t,e,n,!1)}(e)};i.transitionTo(i.getCurrentLocation(),n,n)}i.listen((function(e){t.apps.forEach((function(t){t._route=e}))}))}},qe.prototype.beforeEach=function(e){return Ge(this.beforeHooks,e)},qe.prototype.beforeResolve=function(e){return Ge(this.resolveHooks,e)},qe.prototype.afterEach=function(e){return Ge(this.afterHooks,e)},qe.prototype.onReady=function(e,t){this.history.onReady(e,t)},qe.prototype.onError=function(e){this.history.onError(e)},qe.prototype.push=function(e,t,i){var n=this;if(!t&&!i&&"undefined"!=typeof Promise)return new Promise((function(t,i){n.history.push(e,t,i)}));this.history.push(e,t,i)},qe.prototype.replace=function(e,t,i){var n=this;if(!t&&!i&&"undefined"!=typeof Promise)return new Promise((function(t,i){n.history.replace(e,t,i)}));this.history.replace(e,t,i)},qe.prototype.go=function(e){this.history.go(e)},qe.prototype.back=function(){this.go(-1)},qe.prototype.forward=function(){this.go(1)},qe.prototype.getMatchedComponents=function(e){var t=e?e.matched?e:this.resolve(e).route:this.currentRoute;return t?[].concat.apply([],t.matched.map((function(e){return Object.keys(e.components).map((function(t){return e.components[t]}))}))):[]},qe.prototype.resolve=function(e,t,i){var n=q(e,t=t||this.history.current,i,this),r=this.match(n,t),s=r.redirectedFrom||r.fullPath;return{location:n,route:r,href:function(e,t,i){var n="hash"===i?"#"+t:t;return e?O(e+"/"+n):n}(this.history.base,s,this.mode),normalizedTo:n,resolved:r}},qe.prototype.getRoutes=function(){return this.matcher.getRoutes()},qe.prototype.addRoute=function(e,t){this.matcher.addRoute(e,t),this.history.current!==g&&this.history.transitionTo(this.history.getCurrentLocation())},qe.prototype.addRoutes=function(e){this.matcher.addRoutes(e),this.history.current!==g&&this.history.transitionTo(this.history.getCurrentLocation())},Object.defineProperties(qe.prototype,Ue),qe.install=function e(t){if(!e.installed||U!==t){e.installed=!0,U=t;var i=function(e){return void 0!==e},n=function(e,t){var n=e.$options._parentVnode;i(n)&&i(n=n.data)&&i(n=n.registerRouteInstance)&&n(e,t)};t.mixin({beforeCreate:function(){i(this.$options.router)?(this._routerRoot=this,this._router=this.$options.router,this._router.init(this),t.util.defineReactive(this,"_route",this._router.history.current)):this._routerRoot=this.$parent&&this.$parent._routerRoot||this,n(this,this)},destroyed:function(){n(this)}}),Object.defineProperty(t.prototype,"$router",{get:function(){return this._routerRoot._router}}),Object.defineProperty(t.prototype,"$route",{get:function(){return this._routerRoot._route}}),t.component("RouterView",w),t.component("RouterLink",Y);var r=t.config.optionMergeStrategies;r.beforeRouteEnter=r.beforeRouteLeave=r.beforeRouteUpdate=r.created}},qe.version="3.5.2",qe.isNavigationFailure=De,qe.NavigationFailureType=xe,qe.START_LOCATION=g,X&&window.Vue&&window.Vue.use(qe);var Ye=qe;i(166),i(167),i(255),i(98),i(222),i(59),i(96),i(257);function Ke(e){e.locales&&Object.keys(e.locales).forEach((function(t){e.locales[t].path=t})),Object.freeze(e)}i(42),i(52),i(82);var Xe=i(37),Ze=(i(174),i(56),i(95),i(229),i(230),{NotFound:function(){return i.e(13).then(i.bind(null,523))},Layout:function(){return Promise.all([i.e(0),i.e(1),i.e(3),i.e(6)]).then(i.bind(null,522))}}),Qe={"v-6c53f528":function(){return i.e(14).then(i.bind(null,530))},"v-12ba3bb3":function(){return i.e(15).then(i.bind(null,531))},"v-39778893":function(){return i.e(16).then(i.bind(null,532))},"v-6a252d45":function(){return i.e(18).then(i.bind(null,533))},"v-56bc7428":function(){return i.e(17).then(i.bind(null,534))},"v-58f572e4":function(){return i.e(19).then(i.bind(null,535))},"v-19f50016":function(){return i.e(21).then(i.bind(null,536))},"v-4f51c953":function(){return i.e(20).then(i.bind(null,537))},"v-11d701b0":function(){return i.e(22).then(i.bind(null,538))},"v-ae3fc19a":function(){return i.e(23).then(i.bind(null,539))},"v-68042ff3":function(){return i.e(24).then(i.bind(null,540))},"v-0670ce5a":function(){return i.e(25).then(i.bind(null,541))},"v-5a12e669":function(){return i.e(26).then(i.bind(null,542))},"v-0cdcef91":function(){return i.e(29).then(i.bind(null,543))},"v-3a742ac2":function(){return i.e(27).then(i.bind(null,544))},"v-2335d15a":function(){return i.e(28).then(i.bind(null,545))},"v-fa79849a":function(){return i.e(31).then(i.bind(null,546))},"v-70e16acf":function(){return i.e(30).then(i.bind(null,547))},"v-0401205a":function(){return i.e(32).then(i.bind(null,548))},"v-2c2d5cdb":function(){return i.e(33).then(i.bind(null,549))},"v-6779dcc1":function(){return i.e(34).then(i.bind(null,550))},"v-00fd3d65":function(){return i.e(35).then(i.bind(null,551))},"v-04ba1293":function(){return i.e(36).then(i.bind(null,552))},"v-673913da":function(){return i.e(38).then(i.bind(null,553))},"v-5efa98ed":function(){return i.e(39).then(i.bind(null,554))},"v-82e6d25a":function(){return i.e(37).then(i.bind(null,555))},"v-6e3f1e13":function(){return i.e(40).then(i.bind(null,556))},"v-33e095f3":function(){return i.e(41).then(i.bind(null,557))},"v-66d83c29":function(){return i.e(42).then(i.bind(null,558))},"v-21ecd622":function(){return i.e(43).then(i.bind(null,559))},"v-0a8dba53":function(){return i.e(45).then(i.bind(null,560))},"v-531b3b1a":function(){return i.e(47).then(i.bind(null,561))},"v-733fd353":function(){return i.e(46).then(i.bind(null,562))},"v-dd2f48da":function(){return i.e(44).then(i.bind(null,563))},"v-8e6f27ae":function(){return i.e(48).then(i.bind(null,564))},"v-37c7ba37":function(){return i.e(49).then(i.bind(null,565))},"v-6c781c1a":function(){return i.e(51).then(i.bind(null,566))},"v-62315253":function(){return i.e(50).then(i.bind(null,567))},"v-58cd4fb3":function(){return i.e(52).then(i.bind(null,568))},"v-e776b66a":function(){return i.e(55).then(i.bind(null,569))},"v-47205bd3":function(){return i.e(54).then(i.bind(null,570))},"v-3a8b6533":function(){return i.e(53).then(i.bind(null,571))},"v-109f79da":function(){return i.e(56).then(i.bind(null,572))},"v-d1885d0a":function(){return i.e(57).then(i.bind(null,573))},"v-1091e99e":function(){return i.e(59).then(i.bind(null,574))},"v-1f1ab335":function(){return i.e(60).then(i.bind(null,575))},"v-2a31a573":function(){return i.e(61).then(i.bind(null,576))},"v-915cd0da":function(){return i.e(62).then(i.bind(null,577))},"v-2d0f5d02":function(){return i.e(64).then(i.bind(null,578))},"v-0dc527bf":function(){return i.e(65).then(i.bind(null,579))},"v-3cd4af93":function(){return i.e(66).then(i.bind(null,580))},"v-4d91676a":function(){return i.e(63).then(i.bind(null,581))},"v-dd48008e":function(){return i.e(67).then(i.bind(null,582))},"v-3bab3327":function(){return i.e(68).then(i.bind(null,583))},"v-2646021f":function(){return i.e(69).then(i.bind(null,584))},"v-00834891":function(){return i.e(71).then(i.bind(null,585))},"v-41e4a721":function(){return i.e(70).then(i.bind(null,586))},"v-470b6766":function(){return i.e(72).then(i.bind(null,587))},"v-ba66cabe":function(){return i.e(73).then(i.bind(null,588))},"v-10b7977f":function(){return i.e(75).then(i.bind(null,589))},"v-53edfe1a":function(){return i.e(58).then(i.bind(null,590))},"v-3a24bda3":function(){return i.e(76).then(i.bind(null,591))},"v-26272be9":function(){return i.e(74).then(i.bind(null,592))},"v-12d02db9":function(){return i.e(78).then(i.bind(null,593))},"v-bb252ada":function(){return i.e(77).then(i.bind(null,594))},"v-d193ea9a":function(){return i.e(79).then(i.bind(null,595))},"v-056fc51a":function(){return i.e(80).then(i.bind(null,596))},"v-3eaf113e":function(){return i.e(81).then(i.bind(null,597))},"v-430e4d1d":function(){return i.e(82).then(i.bind(null,598))},"v-2ba71c73":function(){return i.e(83).then(i.bind(null,599))},"v-63be8269":function(){return i.e(84).then(i.bind(null,600))},"v-5893f913":function(){return i.e(85).then(i.bind(null,601))},"v-39cfce57":function(){return i.e(86).then(i.bind(null,602))},"v-5676163e":function(){return i.e(87).then(i.bind(null,603))},"v-0d497ba1":function(){return i.e(88).then(i.bind(null,604))},"v-61357bbe":function(){return i.e(89).then(i.bind(null,605))},"v-60c8a861":function(){return i.e(90).then(i.bind(null,606))},"v-62b61eb1":function(){return i.e(91).then(i.bind(null,607))},"v-ee6c62be":function(){return i.e(92).then(i.bind(null,608))},"v-551c7ba1":function(){return i.e(93).then(i.bind(null,609))},"v-547c3061":function(){return i.e(95).then(i.bind(null,610))},"v-1ecbc9e1":function(){return i.e(94).then(i.bind(null,611))},"v-49c45526":function(){return i.e(96).then(i.bind(null,612))},"v-63e1089d":function(){return i.e(97).then(i.bind(null,613))},"v-186917a6":function(){return i.e(99).then(i.bind(null,614))},"v-7c9fc59a":function(){return i.e(98).then(i.bind(null,615))},"v-539b4fc1":function(){return i.e(100).then(i.bind(null,616))},"v-3f086ebe":function(){return i.e(102).then(i.bind(null,617))},"v-c6507cce":function(){return i.e(101).then(i.bind(null,618))},"v-2393ae36":function(){return i.e(103).then(i.bind(null,619))},"v-63121a73":function(){return i.e(105).then(i.bind(null,620))},"v-3349d5cb":function(){return i.e(106).then(i.bind(null,621))},"v-941099be":function(){return i.e(104).then(i.bind(null,622))},"v-1bca3f13":function(){return i.e(107).then(i.bind(null,623))},"v-681a3333":function(){return i.e(108).then(i.bind(null,624))}};function Je(e){var t=Object.create(null);return function(i){return t[i]||(t[i]=e(i))}}var et=/-(\w)/g,tt=Je((function(e){return e.replace(et,(function(e,t){return t?t.toUpperCase():""}))})),it=/\B([A-Z])/g,nt=Je((function(e){return e.replace(it,"-$1").toLowerCase()})),rt=Je((function(e){return e.charAt(0).toUpperCase()+e.slice(1)}));function st(e,t){if(t)return e(t)?e(t):t.includes("-")?e(rt(tt(t))):e(rt(t))||e(nt(t))}var at=Object.assign({},Ze,Qe),ot=function(e){return at[e]},lt=function(e){return Qe[e]},ut=function(e){return Ze[e]},ct=function(e){return r.default.component(e)};function dt(e){return st(lt,e)}function ht(e){return st(ut,e)}function pt(e){return st(ot,e)}function ft(e){return st(ct,e)}function mt(){for(var e=arguments.length,t=new Array(e),i=0;i"})).join("\n "):"",this.$ssrContext.canonicalLink=wt(this.$canonicalUrl)}var t},mounted:function(){this.currentMetaTags=Object(Xe.a)(document.querySelectorAll("meta")),this.updateMeta(),this.updateCanonicalLink()},methods:{updateMeta:function(){document.title=this.$title,document.documentElement.lang=this.$lang;var e=this.getMergedMetaTags();this.currentMetaTags=Ct(e,this.currentMetaTags)},getMergedMetaTags:function(){var e=this.$page.frontmatter.meta||[];return yt()([{name:"description",content:this.$description}],e,this.siteMeta,St)},updateCanonicalLink:function(){kt(),this.$canonicalUrl&&document.head.insertAdjacentHTML("beforeend",wt(this.$canonicalUrl))}},watch:{$page:function(){this.updateMeta(),this.updateCanonicalLink()}},beforeDestroy:function(){Ct(null,this.currentMetaTags),kt()}};function kt(){var e=document.querySelector("link[rel='canonical']");e&&e.remove()}function wt(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return e?''):""}function Ct(e,t){if(t&&Object(Xe.a)(t).filter((function(e){return e.parentNode===document.head})).forEach((function(e){return document.head.removeChild(e)})),e)return e.map((function(e){var t=document.createElement("meta");return Object.keys(e).forEach((function(i){t.setAttribute(i,e[i])})),document.head.appendChild(t),t}))}function St(e){for(var t=0,i=["name","property","itemprop"];t=o.parentElement.offsetTop+10&&(!l||n-1&&t.splice(i,1)}}function Kt(e,t){e._actions=Object.create(null),e._mutations=Object.create(null),e._wrappedGetters=Object.create(null),e._modulesNamespaceMap=Object.create(null);var i=e.state;Zt(e,i,[],e._modules.root,!0),Xt(e,i,t)}function Xt(e,t,i){var n=e._vm;e.getters={},e._makeLocalGettersCache=Object.create(null);var r=e._wrappedGetters,s={};zt(r,(function(t,i){s[i]=function(e,t){return function(){return e(t)}}(t,e),Object.defineProperty(e.getters,i,{get:function(){return e._vm[i]},enumerable:!0})}));var a=qt.config.silent;qt.config.silent=!0,e._vm=new qt({data:{$$state:t},computed:s}),qt.config.silent=a,e.strict&&function(e){e._vm.$watch((function(){return this._data.$$state}),(function(){0}),{deep:!0,sync:!0})}(e),n&&(i&&e._withCommit((function(){n._data.$$state=null})),qt.nextTick((function(){return n.$destroy()})))}function Zt(e,t,i,n,r){var s=!i.length,a=e._modules.getNamespace(i);if(n.namespaced&&(e._modulesNamespaceMap[a],e._modulesNamespaceMap[a]=n),!s&&!r){var o=Qt(t,i.slice(0,-1)),l=i[i.length-1];e._withCommit((function(){qt.set(o,l,n.state)}))}var u=n.context=function(e,t,i){var n=""===t,r={dispatch:n?e.dispatch:function(i,n,r){var s=Jt(i,n,r),a=s.payload,o=s.options,l=s.type;return o&&o.root||(l=t+l),e.dispatch(l,a)},commit:n?e.commit:function(i,n,r){var s=Jt(i,n,r),a=s.payload,o=s.options,l=s.type;o&&o.root||(l=t+l),e.commit(l,a,o)}};return Object.defineProperties(r,{getters:{get:n?function(){return e.getters}:function(){return function(e,t){if(!e._makeLocalGettersCache[t]){var i={},n=t.length;Object.keys(e.getters).forEach((function(r){if(r.slice(0,n)===t){var s=r.slice(n);Object.defineProperty(i,s,{get:function(){return e.getters[r]},enumerable:!0})}})),e._makeLocalGettersCache[t]=i}return e._makeLocalGettersCache[t]}(e,t)}},state:{get:function(){return Qt(e.state,i)}}}),r}(e,a,i);n.forEachMutation((function(t,i){!function(e,t,i,n){(e._mutations[t]||(e._mutations[t]=[])).push((function(t){i.call(e,n.state,t)}))}(e,a+i,t,u)})),n.forEachAction((function(t,i){var n=t.root?i:a+i,r=t.handler||t;!function(e,t,i,n){(e._actions[t]||(e._actions[t]=[])).push((function(t){var r,s=i.call(e,{dispatch:n.dispatch,commit:n.commit,getters:n.getters,state:n.state,rootGetters:e.getters,rootState:e.state},t);return(r=s)&&"function"==typeof r.then||(s=Promise.resolve(s)),e._devtoolHook?s.catch((function(t){throw e._devtoolHook.emit("vuex:error",t),t})):s}))}(e,n,r,u)})),n.forEachGetter((function(t,i){!function(e,t,i,n){if(e._wrappedGetters[t])return void 0;e._wrappedGetters[t]=function(e){return i(n.state,n.getters,e.state,e.getters)}}(e,a+i,t,u)})),n.forEachChild((function(n,s){Zt(e,t,i.concat(s),n,r)}))}function Qt(e,t){return t.reduce((function(e,t){return e[t]}),e)}function Jt(e,t,i){return Rt(e)&&e.type&&(i=t,t=e,e=e.type),{type:e,payload:t,options:i}}function ei(e){qt&&e===qt|| + */,e.exports=function(e,t){if(!r.canUseDOM||t&&!("addEventListener"in document))return!1;var i="on"+e,s=i in document;if(!s){var a=document.createElement("div");a.setAttribute(i,"return;"),s="function"==typeof a[i]}return!s&&n&&"wheel"===e&&(s=document.implementation.hasFeature("Events.wheel","3.0")),s}},function(e,t,i){"use strict";var n=!("undefined"==typeof window||!window.document||!window.document.createElement),r={canUseDOM:n,canUseWorkers:"undefined"!=typeof Worker,canUseEventListeners:n&&!(!window.addEventListener&&!window.attachEvent),canUseViewport:n&&!!window.screen,isInWorker:!n};e.exports=r},function(e,t,i){"use strict";t.__esModule=!0;var n,r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},s=i(129),a=(n=s)&&n.__esModule?n:{default:n};var o,l=l||{};l.Dialog=function(e,t,i){var n=this;if(this.dialogNode=e,null===this.dialogNode||"dialog"!==this.dialogNode.getAttribute("role"))throw new Error("Dialog() requires a DOM element with ARIA role of dialog.");"string"==typeof t?this.focusAfterClosed=document.getElementById(t):"object"===(void 0===t?"undefined":r(t))?this.focusAfterClosed=t:this.focusAfterClosed=null,"string"==typeof i?this.focusFirst=document.getElementById(i):"object"===(void 0===i?"undefined":r(i))?this.focusFirst=i:this.focusFirst=null,this.focusFirst?this.focusFirst.focus():a.default.focusFirstDescendant(this.dialogNode),this.lastFocus=document.activeElement,o=function(e){n.trapFocus(e)},this.addListeners()},l.Dialog.prototype.addListeners=function(){document.addEventListener("focus",o,!0)},l.Dialog.prototype.removeListeners=function(){document.removeEventListener("focus",o,!0)},l.Dialog.prototype.closeDialog=function(){var e=this;this.removeListeners(),this.focusAfterClosed&&setTimeout((function(){e.focusAfterClosed.focus()}))},l.Dialog.prototype.trapFocus=function(e){a.default.IgnoreUtilFocusChanges||(this.dialogNode.contains(e.target)?this.lastFocus=e.target:(a.default.focusFirstDescendant(this.dialogNode),this.lastFocus===document.activeElement&&a.default.focusLastDescendant(this.dialogNode),this.lastFocus=document.activeElement))},t.default=l.Dialog},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n,r=Object.assign||function(e){for(var t=1;t1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:function(){},o=e,l=i,d=n;if("function"==typeof l&&(d=l,l={}),!this.rules||0===Object.keys(this.rules).length)return d&&d(),Promise.resolve();function h(e){var t,i,n=void 0,r=[],s={};for(n=0;n0&&void 0!==arguments[0]?arguments[0]:[],u=s;if(Array.isArray(u)||(u=[u]),!l.suppressWarning&&u.length&&c.warning("async-validator:",u),u.length&&i.message&&(u=[].concat(i.message)),u=u.map((0,a.complementError)(i)),l.first&&u.length)return _[i.field]=1,t(u);if(n){if(i.required&&!e.value)return u=i.message?[].concat(i.message).map((0,a.complementError)(i)):l.error?[l.error(i,(0,a.format)(l.messages.required,i.field))]:[],t(u);var d={};if(i.defaultField)for(var h in e.value)e.value.hasOwnProperty(h)&&(d[h]=i.defaultField);for(var p in d=r({},d,e.rule.fields))if(d.hasOwnProperty(p)){var f=Array.isArray(d[p])?d[p]:[d[p]];d[p]=f.map(o.bind(null,p))}var m=new c(d);m.messages(l.messages),e.rule.options&&(e.rule.options.messages=l.messages,e.rule.options.error=l.error),m.validate(e.value,e.rule.options||l,(function(e){var i=[];u&&u.length&&i.push.apply(i,u),e&&e.length&&i.push.apply(i,e),t(i.length?i:null)}))}else t(u)}n=n&&(i.required||!i.required&&e.value),i.field=e.field;var d=void 0;i.asyncValidator?d=i.asyncValidator(i,e.value,u,e.source,l):i.validator&&(!0===(d=i.validator(i,e.value,u,e.source,l))?u():!1===d?u(i.message||i.field+" fails"):d instanceof Array?u(d):d instanceof Error&&u(d.message)),d&&d.then&&d.then((function(){return u()}),(function(e){return u(e)}))}),(function(e){h(e)}))},getType:function(e){if(void 0===e.type&&e.pattern instanceof RegExp&&(e.type="pattern"),"function"!=typeof e.validator&&e.type&&!l.default.hasOwnProperty(e.type))throw new Error((0,a.format)("Unknown rule type %s",e.type));return e.type||"string"},getValidationMethod:function(e){if("function"==typeof e.validator)return e.validator;var t=Object.keys(e),i=t.indexOf("message");return-1!==i&&t.splice(i,1),1===t.length&&"required"===t[0]?l.default.required:l.default[this.getType(e)]||!1}},c.register=function(e,t){if("function"!=typeof t)throw new Error("Cannot register a validator by type, validator is not a function");l.default[e]=t},c.warning=a.warning,c.messages=u.messages,t.default=c},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=g(i(386)),r=g(i(392)),s=g(i(393)),a=g(i(394)),o=g(i(395)),l=g(i(396)),u=g(i(397)),c=g(i(398)),d=g(i(399)),h=g(i(400)),p=g(i(401)),f=g(i(402)),m=g(i(403)),v=g(i(404));function g(e){return e&&e.__esModule?e:{default:e}}t.default={string:n.default,method:r.default,number:s.default,boolean:a.default,regexp:o.default,integer:l.default,float:u.default,array:c.default,object:d.default,enum:h.default,pattern:p.default,date:f.default,url:v.default,hex:v.default,email:v.default,required:m.default}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n,r=i(12),s=(n=r)&&n.__esModule?n:{default:n},a=i(6);t.default=function(e,t,i,n,r){var o=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if((0,a.isEmptyValue)(t,"string")&&!e.required)return i();s.default.required(e,t,n,o,r,"string"),(0,a.isEmptyValue)(t,"string")||(s.default.type(e,t,n,o,r),s.default.range(e,t,n,o,r),s.default.pattern(e,t,n,o,r),!0===e.whitespace&&s.default.whitespace(e,t,n,o,r))}i(o)}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&(t[i]=e[i]);return t.default=e,t}(i(6));t.default=function(e,t,i,r,s){(/^\s+$/.test(t)||""===t)&&r.push(n.format(s.messages.whitespace,e.fullField))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n,r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},s=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&(t[i]=e[i]);return t.default=e,t}(i(6)),a=i(204),o=(n=a)&&n.__esModule?n:{default:n};var l={email:/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/,url:new RegExp("^(?!mailto:)(?:(?:http|https|ftp)://|//)(?:\\S+(?::\\S*)?@)?(?:(?:(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[0-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u00a1-\\uffff0-9]+-?)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]+-?)*[a-z\\u00a1-\\uffff0-9]+)*(?:\\.(?:[a-z\\u00a1-\\uffff]{2,})))|localhost)(?::\\d{2,5})?(?:(/|\\?|#)[^\\s]*)?$","i"),hex:/^#?([a-f0-9]{6}|[a-f0-9]{3})$/i},u={integer:function(e){return u.number(e)&&parseInt(e,10)===e},float:function(e){return u.number(e)&&!u.integer(e)},array:function(e){return Array.isArray(e)},regexp:function(e){if(e instanceof RegExp)return!0;try{return!!new RegExp(e)}catch(e){return!1}},date:function(e){return"function"==typeof e.getTime&&"function"==typeof e.getMonth&&"function"==typeof e.getYear},number:function(e){return!isNaN(e)&&"number"==typeof e},object:function(e){return"object"===(void 0===e?"undefined":r(e))&&!u.array(e)},method:function(e){return"function"==typeof e},email:function(e){return"string"==typeof e&&!!e.match(l.email)&&e.length<255},url:function(e){return"string"==typeof e&&!!e.match(l.url)},hex:function(e){return"string"==typeof e&&!!e.match(l.hex)}};t.default=function(e,t,i,n,a){if(e.required&&void 0===t)(0,o.default)(e,t,i,n,a);else{var l=e.type;["integer","float","array","regexp","object","method","email","number","date","url","hex"].indexOf(l)>-1?u[l](t)||n.push(s.format(a.messages.types[l],e.fullField,e.type)):l&&(void 0===t?"undefined":r(t))!==e.type&&n.push(s.format(a.messages.types[l],e.fullField,e.type))}}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&(t[i]=e[i]);return t.default=e,t}(i(6));t.default=function(e,t,i,r,s){var a="number"==typeof e.len,o="number"==typeof e.min,l="number"==typeof e.max,u=t,c=null,d="number"==typeof t,h="string"==typeof t,p=Array.isArray(t);if(d?c="number":h?c="string":p&&(c="array"),!c)return!1;p&&(u=t.length),h&&(u=t.replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,"_").length),a?u!==e.len&&r.push(n.format(s.messages[c].len,e.fullField,e.len)):o&&!l&&ue.max?r.push(n.format(s.messages[c].max,e.fullField,e.max)):o&&l&&(ue.max)&&r.push(n.format(s.messages[c].range,e.fullField,e.min,e.max))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&(t[i]=e[i]);return t.default=e,t}(i(6));t.default=function(e,t,i,r,s){e.enum=Array.isArray(e.enum)?e.enum:[],-1===e.enum.indexOf(t)&&r.push(n.format(s.messages.enum,e.fullField,e.enum.join(", ")))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&(t[i]=e[i]);return t.default=e,t}(i(6));t.default=function(e,t,i,r,s){if(e.pattern)if(e.pattern instanceof RegExp)e.pattern.lastIndex=0,e.pattern.test(t)||r.push(n.format(s.messages.pattern.mismatch,e.fullField,t,e.pattern));else if("string"==typeof e.pattern){new RegExp(e.pattern).test(t)||r.push(n.format(s.messages.pattern.mismatch,e.fullField,t,e.pattern))}}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n,r=i(12),s=(n=r)&&n.__esModule?n:{default:n},a=i(6);t.default=function(e,t,i,n,r){var o=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if((0,a.isEmptyValue)(t)&&!e.required)return i();s.default.required(e,t,n,o,r),void 0!==t&&s.default.type(e,t,n,o,r)}i(o)}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n,r=i(12),s=(n=r)&&n.__esModule?n:{default:n},a=i(6);t.default=function(e,t,i,n,r){var o=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if(""===t&&(t=void 0),(0,a.isEmptyValue)(t)&&!e.required)return i();s.default.required(e,t,n,o,r),void 0!==t&&(s.default.type(e,t,n,o,r),s.default.range(e,t,n,o,r))}i(o)}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n,r=i(6),s=i(12),a=(n=s)&&n.__esModule?n:{default:n};t.default=function(e,t,i,n,s){var o=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if((0,r.isEmptyValue)(t)&&!e.required)return i();a.default.required(e,t,n,o,s),void 0!==t&&a.default.type(e,t,n,o,s)}i(o)}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n,r=i(12),s=(n=r)&&n.__esModule?n:{default:n},a=i(6);t.default=function(e,t,i,n,r){var o=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if((0,a.isEmptyValue)(t)&&!e.required)return i();s.default.required(e,t,n,o,r),(0,a.isEmptyValue)(t)||s.default.type(e,t,n,o,r)}i(o)}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n,r=i(12),s=(n=r)&&n.__esModule?n:{default:n},a=i(6);t.default=function(e,t,i,n,r){var o=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if((0,a.isEmptyValue)(t)&&!e.required)return i();s.default.required(e,t,n,o,r),void 0!==t&&(s.default.type(e,t,n,o,r),s.default.range(e,t,n,o,r))}i(o)}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n,r=i(12),s=(n=r)&&n.__esModule?n:{default:n},a=i(6);t.default=function(e,t,i,n,r){var o=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if((0,a.isEmptyValue)(t)&&!e.required)return i();s.default.required(e,t,n,o,r),void 0!==t&&(s.default.type(e,t,n,o,r),s.default.range(e,t,n,o,r))}i(o)}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n,r=i(12),s=(n=r)&&n.__esModule?n:{default:n},a=i(6);t.default=function(e,t,i,n,r){var o=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if((0,a.isEmptyValue)(t,"array")&&!e.required)return i();s.default.required(e,t,n,o,r,"array"),(0,a.isEmptyValue)(t,"array")||(s.default.type(e,t,n,o,r),s.default.range(e,t,n,o,r))}i(o)}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n,r=i(12),s=(n=r)&&n.__esModule?n:{default:n},a=i(6);t.default=function(e,t,i,n,r){var o=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if((0,a.isEmptyValue)(t)&&!e.required)return i();s.default.required(e,t,n,o,r),void 0!==t&&s.default.type(e,t,n,o,r)}i(o)}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n,r=i(12),s=(n=r)&&n.__esModule?n:{default:n},a=i(6);t.default=function(e,t,i,n,r){var o=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if((0,a.isEmptyValue)(t)&&!e.required)return i();s.default.required(e,t,n,o,r),t&&s.default.enum(e,t,n,o,r)}i(o)}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n,r=i(12),s=(n=r)&&n.__esModule?n:{default:n},a=i(6);t.default=function(e,t,i,n,r){var o=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if((0,a.isEmptyValue)(t,"string")&&!e.required)return i();s.default.required(e,t,n,o,r),(0,a.isEmptyValue)(t,"string")||s.default.pattern(e,t,n,o,r)}i(o)}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n,r=i(12),s=(n=r)&&n.__esModule?n:{default:n},a=i(6);t.default=function(e,t,i,n,r){var o=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if((0,a.isEmptyValue)(t)&&!e.required)return i();if(s.default.required(e,t,n,o,r),!(0,a.isEmptyValue)(t)){var l=void 0;l="number"==typeof t?new Date(t):t,s.default.type(e,l,n,o,r),l&&s.default.range(e,l.getTime(),n,o,r)}}i(o)}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n,r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},s=i(12),a=(n=s)&&n.__esModule?n:{default:n};t.default=function(e,t,i,n,s){var o=[],l=Array.isArray(t)?"array":void 0===t?"undefined":r(t);a.default.required(e,t,n,o,s,l),i(o)}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n,r=i(12),s=(n=r)&&n.__esModule?n:{default:n},a=i(6);t.default=function(e,t,i,n,r){var o=e.type,l=[];if(e.required||!e.required&&n.hasOwnProperty(e.field)){if((0,a.isEmptyValue)(t,o)&&!e.required)return i();s.default.required(e,t,n,l,r,o),(0,a.isEmptyValue)(t,o)||s.default.type(e,t,n,l,r)}i(l)}},function(e,t,i){"use strict";function n(){return{default:"Validation error on field %s",required:"%s is required",enum:"%s must be one of %s",whitespace:"%s cannot be empty",date:{format:"%s date %s is invalid for format %s",parse:"%s date could not be parsed, %s is invalid ",invalid:"%s date %s is invalid"},types:{string:"%s is not a %s",method:"%s is not a %s (function)",array:"%s is not an %s",object:"%s is not an %s",number:"%s is not a %s",date:"%s is not a %s",boolean:"%s is not a %s",integer:"%s is not an %s",float:"%s is not a %s",regexp:"%s is not a valid %s",email:"%s is not a valid %s",url:"%s is not a valid %s",hex:"%s is not a valid %s"},string:{len:"%s must be exactly %s characters",min:"%s must be at least %s characters",max:"%s cannot be longer than %s characters",range:"%s must be between %s and %s characters"},number:{len:"%s must equal %s",min:"%s cannot be less than %s",max:"%s cannot be greater than %s",range:"%s must be between %s and %s"},array:{len:"%s must be exactly %s in length",min:"%s cannot be less than %s in length",max:"%s cannot be greater than %s in length",range:"%s must be between %s and %s in length"},pattern:{mismatch:"%s value %s does not match pattern %s"},clone:function(){var e=JSON.parse(JSON.stringify(this));return e.clone=this.clone,e}}}Object.defineProperty(t,"__esModule",{value:!0}),t.newMessages=n;t.messages=n()},function(e,t,i){e.exports=function(e){var t={};function i(n){if(t[n])return t[n].exports;var r=t[n]={i:n,l:!1,exports:{}};return e[n].call(r.exports,r,r.exports,i),r.l=!0,r.exports}return i.m=e,i.c=t,i.d=function(e,t,n){i.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},i.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.t=function(e,t){if(1&t&&(e=i(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(i.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)i.d(n,r,function(t){return e[t]}.bind(null,r));return n},i.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(t,"a",t),t},i.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},i.p="/dist/",i(i.s=104)}({0:function(e,t,i){"use strict";function n(e,t,i,n,r,s,a,o){var l,u="function"==typeof e?e.options:e;if(t&&(u.render=t,u.staticRenderFns=i,u._compiled=!0),n&&(u.functional=!0),s&&(u._scopeId="data-v-"+s),a?(l=function(e){(e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),r&&r.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(a)},u._ssrRegister=l):r&&(l=o?function(){r.call(this,this.$root.$options.shadowRoot)}:r),l)if(u.functional){u._injectStyles=l;var c=u.render;u.render=function(e,t){return l.call(t),c(e,t)}}else{var d=u.beforeCreate;u.beforeCreate=d?[].concat(d,l):[l]}return{exports:e,options:u}}i.d(t,"a",(function(){return n}))},10:function(e,t){e.exports=i(123)},104:function(e,t,i){"use strict";i.r(t);var n=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{class:["el-input-number",e.inputNumberSize?"el-input-number--"+e.inputNumberSize:"",{"is-disabled":e.inputNumberDisabled},{"is-without-controls":!e.controls},{"is-controls-right":e.controlsAtRight}],on:{dragstart:function(e){e.preventDefault()}}},[e.controls?i("span",{directives:[{name:"repeat-click",rawName:"v-repeat-click",value:e.decrease,expression:"decrease"}],staticClass:"el-input-number__decrease",class:{"is-disabled":e.minDisabled},attrs:{role:"button"},on:{keydown:function(t){return!("button"in t)&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:e.decrease(t)}}},[i("i",{class:"el-icon-"+(e.controlsAtRight?"arrow-down":"minus")})]):e._e(),e.controls?i("span",{directives:[{name:"repeat-click",rawName:"v-repeat-click",value:e.increase,expression:"increase"}],staticClass:"el-input-number__increase",class:{"is-disabled":e.maxDisabled},attrs:{role:"button"},on:{keydown:function(t){return!("button"in t)&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:e.increase(t)}}},[i("i",{class:"el-icon-"+(e.controlsAtRight?"arrow-up":"plus")})]):e._e(),i("el-input",{ref:"input",attrs:{value:e.displayValue,placeholder:e.placeholder,disabled:e.inputNumberDisabled,size:e.inputNumberSize,max:e.max,min:e.min,name:e.name,label:e.label},on:{blur:e.handleBlur,focus:e.handleFocus,input:e.handleInput,change:e.handleInputChange},nativeOn:{keydown:[function(t){return!("button"in t)&&e._k(t.keyCode,"up",38,t.key,["Up","ArrowUp"])?null:(t.preventDefault(),e.increase(t))},function(t){return!("button"in t)&&e._k(t.keyCode,"down",40,t.key,["Down","ArrowDown"])?null:(t.preventDefault(),e.decrease(t))}]}})],1)};n._withStripped=!0;var r=i(10),s=i.n(r),a=i(22),o=i.n(a),l=i(30),u={name:"ElInputNumber",mixins:[o()("input")],inject:{elForm:{default:""},elFormItem:{default:""}},directives:{repeatClick:l.a},components:{ElInput:s.a},props:{step:{type:Number,default:1},stepStrictly:{type:Boolean,default:!1},max:{type:Number,default:1/0},min:{type:Number,default:-1/0},value:{},disabled:Boolean,size:String,controls:{type:Boolean,default:!0},controlsPosition:{type:String,default:""},name:String,label:String,placeholder:String,precision:{type:Number,validator:function(e){return e>=0&&e===parseInt(e,10)}}},data:function(){return{currentValue:0,userInput:null}},watch:{value:{immediate:!0,handler:function(e){var t=void 0===e?e:Number(e);if(void 0!==t){if(isNaN(t))return;if(this.stepStrictly){var i=this.getPrecision(this.step),n=Math.pow(10,i);t=Math.round(t/this.step)*n*this.step/n}void 0!==this.precision&&(t=this.toPrecision(t,this.precision))}t>=this.max&&(t=this.max),t<=this.min&&(t=this.min),this.currentValue=t,this.userInput=null,this.$emit("input",t)}}},computed:{minDisabled:function(){return this._decrease(this.value,this.step)this.max},numPrecision:function(){var e=this.value,t=this.step,i=this.getPrecision,n=this.precision,r=i(t);return void 0!==n?(r>n&&console.warn("[Element Warn][InputNumber]precision should not be less than the decimal places of step"),n):Math.max(i(e),r)},controlsAtRight:function(){return this.controls&&"right"===this.controlsPosition},_elFormItemSize:function(){return(this.elFormItem||{}).elFormItemSize},inputNumberSize:function(){return this.size||this._elFormItemSize||(this.$ELEMENT||{}).size},inputNumberDisabled:function(){return this.disabled||!!(this.elForm||{}).disabled},displayValue:function(){if(null!==this.userInput)return this.userInput;var e=this.currentValue;if("number"==typeof e){if(this.stepStrictly){var t=this.getPrecision(this.step),i=Math.pow(10,t);e=Math.round(e/this.step)*i*this.step/i}void 0!==this.precision&&(e=e.toFixed(this.precision))}return e}},methods:{toPrecision:function(e,t){return void 0===t&&(t=this.numPrecision),parseFloat(Math.round(e*Math.pow(10,t))/Math.pow(10,t))},getPrecision:function(e){if(void 0===e)return 0;var t=e.toString(),i=t.indexOf("."),n=0;return-1!==i&&(n=t.length-i-1),n},_increase:function(e,t){if("number"!=typeof e&&void 0!==e)return this.currentValue;var i=Math.pow(10,this.numPrecision);return this.toPrecision((i*e+i*t)/i)},_decrease:function(e,t){if("number"!=typeof e&&void 0!==e)return this.currentValue;var i=Math.pow(10,this.numPrecision);return this.toPrecision((i*e-i*t)/i)},increase:function(){if(!this.inputNumberDisabled&&!this.maxDisabled){var e=this.value||0,t=this._increase(e,this.step);this.setCurrentValue(t)}},decrease:function(){if(!this.inputNumberDisabled&&!this.minDisabled){var e=this.value||0,t=this._decrease(e,this.step);this.setCurrentValue(t)}},handleBlur:function(e){this.$emit("blur",e)},handleFocus:function(e){this.$emit("focus",e)},setCurrentValue:function(e){var t=this.currentValue;"number"==typeof e&&void 0!==this.precision&&(e=this.toPrecision(e,this.precision)),e>=this.max&&(e=this.max),e<=this.min&&(e=this.min),t!==e&&(this.userInput=null,this.$emit("input",e),this.$emit("change",e,t),this.currentValue=e)},handleInput:function(e){this.userInput=e},handleInputChange:function(e){var t=""===e?void 0:Number(e);isNaN(t)&&""!==e||this.setCurrentValue(t),this.userInput=null},select:function(){this.$refs.input.select()}},mounted:function(){var e=this.$refs.input.$refs.input;e.setAttribute("role","spinbutton"),e.setAttribute("aria-valuemax",this.max),e.setAttribute("aria-valuemin",this.min),e.setAttribute("aria-valuenow",this.currentValue),e.setAttribute("aria-disabled",this.inputNumberDisabled)},updated:function(){this.$refs&&this.$refs.input&&this.$refs.input.$refs.input.setAttribute("aria-valuenow",this.currentValue)}},c=i(0),d=Object(c.a)(u,n,[],!1,null,null,null);d.options.__file="packages/input-number/src/input-number.vue";var h=d.exports;h.install=function(e){e.component(h.name,h)};t.default=h},2:function(e,t){e.exports=i(25)},22:function(e,t){e.exports=i(127)},30:function(e,t,i){"use strict";var n=i(2);t.a={bind:function(e,t,i){var r=null,s=void 0,a=function(){return i.context[t.expression].apply()},o=function(){Date.now()-s<100&&a(),clearInterval(r),r=null};Object(n.on)(e,"mousedown",(function(e){0===e.button&&(s=Date.now(),Object(n.once)(document,"mouseup",o),clearInterval(r),r=setInterval(a,100))}))}}}})},function(e,t,i){e.exports=function(e){var t={};function i(n){if(t[n])return t[n].exports;var r=t[n]={i:n,l:!1,exports:{}};return e[n].call(r.exports,r,r.exports,i),r.l=!0,r.exports}return i.m=e,i.c=t,i.d=function(e,t,n){i.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},i.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.t=function(e,t){if(1&t&&(e=i(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(i.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)i.d(n,r,function(t){return e[t]}.bind(null,r));return n},i.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(t,"a",t),t},i.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},i.p="/dist/",i(i.s=59)}({0:function(e,t,i){"use strict";function n(e,t,i,n,r,s,a,o){var l,u="function"==typeof e?e.options:e;if(t&&(u.render=t,u.staticRenderFns=i,u._compiled=!0),n&&(u.functional=!0),s&&(u._scopeId="data-v-"+s),a?(l=function(e){(e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),r&&r.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(a)},u._ssrRegister=l):r&&(l=o?function(){r.call(this,this.$root.$options.shadowRoot)}:r),l)if(u.functional){u._injectStyles=l;var c=u.render;u.render=function(e,t){return l.call(t),c(e,t)}}else{var d=u.beforeCreate;u.beforeCreate=d?[].concat(d,l):[l]}return{exports:e,options:u}}i.d(t,"a",(function(){return n}))},15:function(e,t){e.exports=i(126)},19:function(e,t){e.exports=i(201)},21:function(e,t){e.exports=i(90)},26:function(e,t){e.exports=i(202)},3:function(e,t){e.exports=i(19)},31:function(e,t){e.exports=i(128)},40:function(e,t){e.exports=i(129)},51:function(e,t){e.exports=i(205)},59:function(e,t,i){"use strict";i.r(t);var n=function(){var e=this.$createElement,t=this._self._c||e;return t("div",{class:["el-cascader-panel",this.border&&"is-bordered"],on:{keydown:this.handleKeyDown}},this._l(this.menus,(function(e,i){return t("cascader-menu",{key:i,ref:"menu",refInFor:!0,attrs:{index:i,nodes:e}})})),1)};n._withStripped=!0;var r=i(26),s=i.n(r),a=i(15),o=i.n(a),l=i(19),u=i.n(l),c=i(51),d=i.n(c),h=i(3),p=function(e){return e.stopPropagation()},f={inject:["panel"],components:{ElCheckbox:u.a,ElRadio:d.a},props:{node:{required:!0},nodeId:String},computed:{config:function(){return this.panel.config},isLeaf:function(){return this.node.isLeaf},isDisabled:function(){return this.node.isDisabled},checkedValue:function(){return this.panel.checkedValue},isChecked:function(){return this.node.isSameNode(this.checkedValue)},inActivePath:function(){return this.isInPath(this.panel.activePath)},inCheckedPath:function(){var e=this;return!!this.config.checkStrictly&&this.panel.checkedNodePaths.some((function(t){return e.isInPath(t)}))},value:function(){return this.node.getValueByOption()}},methods:{handleExpand:function(){var e=this,t=this.panel,i=this.node,n=this.isDisabled,r=this.config,s=r.multiple;!r.checkStrictly&&n||i.loading||(r.lazy&&!i.loaded?t.lazyLoad(i,(function(){var t=e.isLeaf;if(t||e.handleExpand(),s){var n=!!t&&i.checked;e.handleMultiCheckChange(n)}})):t.handleExpand(i))},handleCheckChange:function(){var e=this.panel,t=this.value,i=this.node;e.handleCheckChange(t),e.handleExpand(i)},handleMultiCheckChange:function(e){this.node.doCheck(e),this.panel.calculateMultiCheckedValue()},isInPath:function(e){var t=this.node;return(e[t.level-1]||{}).uid===t.uid},renderPrefix:function(e){var t=this.isLeaf,i=this.isChecked,n=this.config,r=n.checkStrictly;return n.multiple?this.renderCheckbox(e):r?this.renderRadio(e):t&&i?this.renderCheckIcon(e):null},renderPostfix:function(e){var t=this.node,i=this.isLeaf;return t.loading?this.renderLoadingIcon(e):i?null:this.renderExpandIcon(e)},renderCheckbox:function(e){var t=this.node,i=this.config,n=this.isDisabled,r={on:{change:this.handleMultiCheckChange},nativeOn:{}};return i.checkStrictly&&(r.nativeOn.click=p),e("el-checkbox",s()([{attrs:{value:t.checked,indeterminate:t.indeterminate,disabled:n}},r]))},renderRadio:function(e){var t=this.checkedValue,i=this.value,n=this.isDisabled;return Object(h.isEqual)(i,t)&&(i=t),e("el-radio",{attrs:{value:t,label:i,disabled:n},on:{change:this.handleCheckChange},nativeOn:{click:p}},[e("span")])},renderCheckIcon:function(e){return e("i",{class:"el-icon-check el-cascader-node__prefix"})},renderLoadingIcon:function(e){return e("i",{class:"el-icon-loading el-cascader-node__postfix"})},renderExpandIcon:function(e){return e("i",{class:"el-icon-arrow-right el-cascader-node__postfix"})},renderContent:function(e){var t=this.panel,i=this.node,n=t.renderLabelFn;return e("span",{class:"el-cascader-node__label"},[(n?n({node:i,data:i.data}):null)||i.label])}},render:function(e){var t=this,i=this.inActivePath,n=this.inCheckedPath,r=this.isChecked,a=this.isLeaf,o=this.isDisabled,l=this.config,u=this.nodeId,c=l.expandTrigger,d=l.checkStrictly,h=l.multiple,p=!d&&o,f={on:{}};return"click"===c?f.on.click=this.handleExpand:(f.on.mouseenter=function(e){t.handleExpand(),t.$emit("expand",e)},f.on.focus=function(e){t.handleExpand(),t.$emit("expand",e)}),!a||o||d||h||(f.on.click=this.handleCheckChange),e("li",s()([{attrs:{role:"menuitem",id:u,"aria-expanded":i,tabindex:p?null:-1},class:{"el-cascader-node":!0,"is-selectable":d,"in-active-path":i,"in-checked-path":n,"is-active":r,"is-disabled":p}},f]),[this.renderPrefix(e),this.renderContent(e),this.renderPostfix(e)])}},m=i(0),v=Object(m.a)(f,void 0,void 0,!1,null,null,null);v.options.__file="packages/cascader-panel/src/cascader-node.vue";var g=v.exports,_=i(6),b={name:"ElCascaderMenu",mixins:[i.n(_).a],inject:["panel"],components:{ElScrollbar:o.a,CascaderNode:g},props:{nodes:{type:Array,required:!0},index:Number},data:function(){return{activeNode:null,hoverTimer:null,id:Object(h.generateId)()}},computed:{isEmpty:function(){return!this.nodes.length},menuId:function(){return"cascader-menu-"+this.id+"-"+this.index}},methods:{handleExpand:function(e){this.activeNode=e.target},handleMouseMove:function(e){var t=this.activeNode,i=this.hoverTimer,n=this.$refs.hoverZone;if(t&&n)if(t.contains(e.target)){clearTimeout(i);var r=this.$el.getBoundingClientRect().left,s=e.clientX-r,a=this.$el,o=a.offsetWidth,l=a.offsetHeight,u=t.offsetTop,c=u+t.offsetHeight;n.innerHTML='\n \n \n '}else i||(this.hoverTimer=setTimeout(this.clearHoverZone,this.panel.config.hoverThreshold))},clearHoverZone:function(){var e=this.$refs.hoverZone;e&&(e.innerHTML="")},renderEmptyText:function(e){return e("div",{class:"el-cascader-menu__empty-text"},[this.t("el.cascader.noData")])},renderNodeList:function(e){var t=this.menuId,i=this.panel.isHoverMenu,n={on:{}};i&&(n.on.expand=this.handleExpand);var r=this.nodes.map((function(i,r){var a=i.hasChildren;return e("cascader-node",s()([{key:i.uid,attrs:{node:i,"node-id":t+"-"+r,"aria-haspopup":a,"aria-owns":a?t:null}},n]))}));return[].concat(r,[i?e("svg",{ref:"hoverZone",class:"el-cascader-menu__hover-zone"}):null])}},render:function(e){var t=this.isEmpty,i=this.menuId,n={nativeOn:{}};return this.panel.isHoverMenu&&(n.nativeOn.mousemove=this.handleMouseMove),e("el-scrollbar",s()([{attrs:{tag:"ul",role:"menu",id:i,"wrap-class":"el-cascader-menu__wrap","view-class":{"el-cascader-menu__list":!0,"is-empty":t}},class:"el-cascader-menu"},n]),[t?this.renderEmptyText(e):this.renderNodeList(e)])}},y=Object(m.a)(b,void 0,void 0,!1,null,null,null);y.options.__file="packages/cascader-panel/src/cascader-menu.vue";var x=y.exports,k=i(21),w=function(){function e(e,t){for(var i=0;i1?t-1:0),n=1;n1?n-1:0),s=1;s0},e.prototype.syncCheckState=function(e){var t=this.getValueByOption(),i=this.isSameNode(e,t);this.doCheck(i)},e.prototype.doCheck=function(e){this.checked!==e&&(this.config.checkStrictly?this.checked=e:(this.broadcast("check",e),this.setCheckState(e),this.emit("check")))},w(e,[{key:"isDisabled",get:function(){var e=this.data,t=this.parent,i=this.config,n=i.disabled,r=i.checkStrictly;return e[n]||!r&&t&&t.isDisabled}},{key:"isLeaf",get:function(){var e=this.data,t=this.loaded,i=this.hasChildren,n=this.children,r=this.config,s=r.lazy,a=r.leaf;if(s){var o=Object(k.isDef)(e[a])?e[a]:!!t&&!n.length;return this.hasChildren=!o,o}return!i}}]),e}();var O=function e(t,i){return t.reduce((function(t,n){return n.isLeaf?t.push(n):(!i&&t.push(n),t=t.concat(e(n.children,i))),t}),[])},D=function(){function e(t,i){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.config=i,this.initNodes(t)}return e.prototype.initNodes=function(e){var t=this;e=Object(h.coerceTruthyValueToArray)(e),this.nodes=e.map((function(e){return new S(e,t.config)})),this.flattedNodes=this.getFlattedNodes(!1,!1),this.leafNodes=this.getFlattedNodes(!0,!1)},e.prototype.appendNode=function(e,t){var i=new S(e,this.config,t);(t?t.children:this.nodes).push(i)},e.prototype.appendNodes=function(e,t){var i=this;(e=Object(h.coerceTruthyValueToArray)(e)).forEach((function(e){return i.appendNode(e,t)}))},e.prototype.getNodes=function(){return this.nodes},e.prototype.getFlattedNodes=function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=e?this.leafNodes:this.flattedNodes;return t?i:O(this.nodes,e)},e.prototype.getNodeByValue=function(e){var t=this.getFlattedNodes(!1,!this.config.lazy).filter((function(t){return Object(h.valueEquals)(t.path,e)||t.value===e}));return t&&t.length?t[0]:null},e}(),E=i(9),T=i.n(E),$=i(40),P=i.n($),j=i(31),M=i.n(j),I=Object.assign||function(e){for(var t=1;t0){var l=i.store.getNodeByValue(s);l.data[o]||i.lazyLoad(l,(function(){i.handleExpand(l)})),i.loadCount===i.checkedValue.length&&i.$parent.computePresentText()}}t&&t(n)}))},calculateMultiCheckedValue:function(){this.checkedValue=this.getCheckedNodes(this.leafOnly).map((function(e){return e.getValueByOption()}))},scrollIntoView:function(){this.$isServer||(this.$refs.menu||[]).forEach((function(e){var t=e.$el;if(t){var i=t.querySelector(".el-scrollbar__wrap"),n=t.querySelector(".el-cascader-node.is-active")||t.querySelector(".el-cascader-node.in-active-path");M()(i,n)}}))},getNodeByValue:function(e){return this.store.getNodeByValue(e)},getFlattedNodes:function(e){var t=!this.config.lazy;return this.store.getFlattedNodes(e,t)},getCheckedNodes:function(e){var t=this.checkedValue;return this.multiple?this.getFlattedNodes(e).filter((function(e){return e.checked})):this.isEmptyValue(t)?[]:[this.getNodeByValue(t)]},clearCheckedNodes:function(){var e=this.config,t=this.leafOnly,i=e.multiple,n=e.emitPath;i?(this.getCheckedNodes(t).filter((function(e){return!e.isDisabled})).forEach((function(e){return e.doCheck(!1)})),this.calculateMultiCheckedValue()):this.checkedValue=n?[]:null}}},B=Object(m.a)(R,n,[],!1,null,null,null);B.options.__file="packages/cascader-panel/src/cascader-panel.vue";var H=B.exports;H.install=function(e){e.component(H.name,H)};t.default=H},6:function(e,t){e.exports=i(121)},9:function(e,t){e.exports=i(89)}})},function(e,t,i){e.exports=function(e){var t={};function i(n){if(t[n])return t[n].exports;var r=t[n]={i:n,l:!1,exports:{}};return e[n].call(r.exports,r,r.exports,i),r.l=!0,r.exports}return i.m=e,i.c=t,i.d=function(e,t,n){i.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},i.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.t=function(e,t){if(1&t&&(e=i(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(i.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)i.d(n,r,function(t){return e[t]}.bind(null,r));return n},i.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(t,"a",t),t},i.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},i.p="/dist/",i(i.s=79)}({0:function(e,t,i){"use strict";function n(e,t,i,n,r,s,a,o){var l,u="function"==typeof e?e.options:e;if(t&&(u.render=t,u.staticRenderFns=i,u._compiled=!0),n&&(u.functional=!0),s&&(u._scopeId="data-v-"+s),a?(l=function(e){(e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),r&&r.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(a)},u._ssrRegister=l):r&&(l=o?function(){r.call(this,this.$root.$options.shadowRoot)}:r),l)if(u.functional){u._injectStyles=l;var c=u.render;u.render=function(e,t){return l.call(t),c(e,t)}}else{var d=u.beforeCreate;u.beforeCreate=d?[].concat(d,l):[l]}return{exports:e,options:u}}i.d(t,"a",(function(){return n}))},2:function(e,t){e.exports=i(25)},3:function(e,t){e.exports=i(19)},5:function(e,t){e.exports=i(88)},7:function(e,t){e.exports=i(0)},79:function(e,t,i){"use strict";i.r(t);var n=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("span",[i("transition",{attrs:{name:e.transition},on:{"after-enter":e.handleAfterEnter,"after-leave":e.handleAfterLeave}},[i("div",{directives:[{name:"show",rawName:"v-show",value:!e.disabled&&e.showPopper,expression:"!disabled && showPopper"}],ref:"popper",staticClass:"el-popover el-popper",class:[e.popperClass,e.content&&"el-popover--plain"],style:{width:e.width+"px"},attrs:{role:"tooltip",id:e.tooltipId,"aria-hidden":e.disabled||!e.showPopper?"true":"false"}},[e.title?i("div",{staticClass:"el-popover__title",domProps:{textContent:e._s(e.title)}}):e._e(),e._t("default",[e._v(e._s(e.content))])],2)]),i("span",{ref:"wrapper",staticClass:"el-popover__reference-wrapper"},[e._t("reference")],2)],1)};n._withStripped=!0;var r=i(5),s=i.n(r),a=i(2),o=i(3),l={name:"ElPopover",mixins:[s.a],props:{trigger:{type:String,default:"click",validator:function(e){return["click","focus","hover","manual"].indexOf(e)>-1}},openDelay:{type:Number,default:0},closeDelay:{type:Number,default:200},title:String,disabled:Boolean,content:String,reference:{},popperClass:String,width:{},visibleArrow:{default:!0},arrowOffset:{type:Number,default:0},transition:{type:String,default:"fade-in-linear"},tabindex:{type:Number,default:0}},computed:{tooltipId:function(){return"el-popover-"+Object(o.generateId)()}},watch:{showPopper:function(e){this.disabled||(e?this.$emit("show"):this.$emit("hide"))}},mounted:function(){var e=this,t=this.referenceElm=this.reference||this.$refs.reference,i=this.popper||this.$refs.popper;!t&&this.$refs.wrapper.children&&(t=this.referenceElm=this.$refs.wrapper.children[0]),t&&(Object(a.addClass)(t,"el-popover__reference"),t.setAttribute("aria-describedby",this.tooltipId),t.setAttribute("tabindex",this.tabindex),i.setAttribute("tabindex",0),"click"!==this.trigger&&(Object(a.on)(t,"focusin",(function(){e.handleFocus();var i=t.__vue__;i&&"function"==typeof i.focus&&i.focus()})),Object(a.on)(i,"focusin",this.handleFocus),Object(a.on)(t,"focusout",this.handleBlur),Object(a.on)(i,"focusout",this.handleBlur)),Object(a.on)(t,"keydown",this.handleKeydown),Object(a.on)(t,"click",this.handleClick)),"click"===this.trigger?(Object(a.on)(t,"click",this.doToggle),Object(a.on)(document,"click",this.handleDocumentClick)):"hover"===this.trigger?(Object(a.on)(t,"mouseenter",this.handleMouseEnter),Object(a.on)(i,"mouseenter",this.handleMouseEnter),Object(a.on)(t,"mouseleave",this.handleMouseLeave),Object(a.on)(i,"mouseleave",this.handleMouseLeave)):"focus"===this.trigger&&(this.tabindex<0&&console.warn("[Element Warn][Popover]a negative taindex means that the element cannot be focused by tab key"),t.querySelector("input, textarea")?(Object(a.on)(t,"focusin",this.doShow),Object(a.on)(t,"focusout",this.doClose)):(Object(a.on)(t,"mousedown",this.doShow),Object(a.on)(t,"mouseup",this.doClose)))},beforeDestroy:function(){this.cleanup()},deactivated:function(){this.cleanup()},methods:{doToggle:function(){this.showPopper=!this.showPopper},doShow:function(){this.showPopper=!0},doClose:function(){this.showPopper=!1},handleFocus:function(){Object(a.addClass)(this.referenceElm,"focusing"),"click"!==this.trigger&&"focus"!==this.trigger||(this.showPopper=!0)},handleClick:function(){Object(a.removeClass)(this.referenceElm,"focusing")},handleBlur:function(){Object(a.removeClass)(this.referenceElm,"focusing"),"click"!==this.trigger&&"focus"!==this.trigger||(this.showPopper=!1)},handleMouseEnter:function(){var e=this;clearTimeout(this._timer),this.openDelay?this._timer=setTimeout((function(){e.showPopper=!0}),this.openDelay):this.showPopper=!0},handleKeydown:function(e){27===e.keyCode&&"manual"!==this.trigger&&this.doClose()},handleMouseLeave:function(){var e=this;clearTimeout(this._timer),this.closeDelay?this._timer=setTimeout((function(){e.showPopper=!1}),this.closeDelay):this.showPopper=!1},handleDocumentClick:function(e){var t=this.reference||this.$refs.reference,i=this.popper||this.$refs.popper;!t&&this.$refs.wrapper.children&&(t=this.referenceElm=this.$refs.wrapper.children[0]),this.$el&&t&&!this.$el.contains(e.target)&&!t.contains(e.target)&&i&&!i.contains(e.target)&&(this.showPopper=!1)},handleAfterEnter:function(){this.$emit("after-enter")},handleAfterLeave:function(){this.$emit("after-leave"),this.doDestroy()},cleanup:function(){(this.openDelay||this.closeDelay)&&clearTimeout(this._timer)}},destroyed:function(){var e=this.reference;Object(a.off)(e,"click",this.doToggle),Object(a.off)(e,"mouseup",this.doClose),Object(a.off)(e,"mousedown",this.doShow),Object(a.off)(e,"focusin",this.doShow),Object(a.off)(e,"focusout",this.doClose),Object(a.off)(e,"mousedown",this.doShow),Object(a.off)(e,"mouseup",this.doClose),Object(a.off)(e,"mouseleave",this.handleMouseLeave),Object(a.off)(e,"mouseenter",this.handleMouseEnter),Object(a.off)(document,"click",this.handleDocumentClick)}},u=i(0),c=Object(u.a)(l,n,[],!1,null,null,null);c.options.__file="packages/popover/src/main.vue";var d=c.exports,h=function(e,t,i){var n=t.expression?t.value:t.arg,r=i.context.$refs[n];r&&(Array.isArray(r)?r[0].$refs.reference=e:r.$refs.reference=e)},p={bind:function(e,t,i){h(e,t,i)},inserted:function(e,t,i){h(e,t,i)}},f=i(7);i.n(f).a.directive("popover",p),d.install=function(e){e.directive("popover",p),e.component(d.name,d)},d.directive=p;t.default=d}})},function(e,t,i){},function(e,t,i){},function(e,t,i){},function(e,t,i){"use strict";var n=i(7),r=i(3),s=i(100),a=i(13),o=i(10),l=i(34),u=i(234),c=i(68),d=i(142),h=i(2),p=i(27),f=i(45).f,m=i(26).f,v=i(11).f,g=i(223).trim,_=r.Number,b=_.prototype,y="Number"==l(p(b)),x=function(e){if(c(e))throw TypeError("Cannot convert a Symbol value to a number");var t,i,n,r,s,a,o,l,u=d(e,"number");if("string"==typeof u&&u.length>2)if(43===(t=(u=g(u)).charCodeAt(0))||45===t){if(88===(i=u.charCodeAt(2))||120===i)return NaN}else if(48===t){switch(u.charCodeAt(1)){case 66:case 98:n=2,r=49;break;case 79:case 111:n=8,r=55;break;default:return+u}for(a=(s=u.slice(2)).length,o=0;or)return NaN;return parseInt(s,n)}return+u};if(s("Number",!_(" 0o1")||!_("0b1")||_("+0x1"))){for(var k,w=function(e){var t=arguments.length<1?0:e,i=this;return i instanceof w&&(y?h((function(){b.valueOf.call(i)})):"Number"!=l(i))?u(new _(x(t)),i,w):x(t)},C=n?f(_):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger,fromString,range".split(","),S=0;C.length>S;S++)o(_,k=C[S])&&!o(w,k)&&v(w,k,m(_,k));w.prototype=b,b.constructor=w,a(r,"Number",w)}},function(e,t,i){"use strict";i(206)},function(e,t,i){"use strict";var n=i(1),r=i(33).every;n({target:"Array",proto:!0,forced:!i(40)("every")},{every:function(e){return r(this,e,arguments.length>1?arguments[1]:void 0)}})},function(e,t,i){var n=i(13),r=Date.prototype,s=r.toString,a=r.getTime;"Invalid Date"!=String(new Date(NaN))&&n(r,"toString",(function(){var e=a.call(this);return e==e?s.call(this):"Invalid Date"}))},function(e,t,i){},function(e,t,i){},function(e,t,i){"use strict";var n=i(31),r=i(8),s=[].slice,a={},o=function(e,t,i){if(!(t in a)){for(var n=[],r=0;r=0&&(t=e.slice(n),e=e.slice(0,n));var r=e.indexOf("?");return r>=0&&(i=e.slice(r+1),e=e.slice(0,r)),{path:e,query:i,hash:t}}(r.path||""),c=t&&t.path||"/",p=u.path?S(u.path,c,i||r.append):c,f=function(e,t,i){void 0===t&&(t={});var n,r=i||h;try{n=r(e||"")}catch(e){n={}}for(var s in t){var a=t[s];n[s]=Array.isArray(a)?a.map(d):d(a)}return n}(u.query,r.query,n&&n.options.parseQuery),m=r.hash||u.hash;return m&&"#"!==m.charAt(0)&&(m="#"+m),{_normalized:!0,path:p,query:f,hash:m}}var U,G=function(){},Y={name:"RouterLink",props:{to:{type:[String,Object],required:!0},tag:{type:String,default:"a"},custom:Boolean,exact:Boolean,exactPath:Boolean,append:Boolean,replace:Boolean,activeClass:String,exactActiveClass:String,ariaCurrentValue:{type:String,default:"page"},event:{type:[String,Array],default:"click"}},render:function(e){var t=this,i=this.$router,n=this.$route,r=i.resolve(this.to,n,this.append),a=r.location,o=r.route,l=r.href,u={},c=i.options.linkActiveClass,d=i.options.linkExactActiveClass,h=null==c?"router-link-active":c,p=null==d?"router-link-exact-active":d,v=null==this.activeClass?h:this.activeClass,g=null==this.exactActiveClass?p:this.exactActiveClass,_=o.redirectedFrom?m(null,q(o.redirectedFrom),null,i):o;u[g]=y(n,_,this.exactPath),u[v]=this.exact||this.exactPath?u[g]:function(e,t){return 0===e.path.replace(f,"/").indexOf(t.path.replace(f,"/"))&&(!t.hash||e.hash===t.hash)&&function(e,t){for(var i in t)if(!(i in e))return!1;return!0}(e.query,t.query)}(n,_);var b=u[g]?this.ariaCurrentValue:null,x=function(e){K(e)&&(t.replace?i.replace(a,G):i.push(a,G))},k={click:K};Array.isArray(this.event)?this.event.forEach((function(e){k[e]=x})):k[this.event]=x;var w={class:u},C=!this.$scopedSlots.$hasNormal&&this.$scopedSlots.default&&this.$scopedSlots.default({href:l,route:o,navigate:x,isActive:u[v],isExactActive:u[g]});if(C){if(1===C.length)return C[0];if(C.length>1||!C.length)return 0===C.length?e():e("span",{},C)}if("a"===this.tag)w.on=k,w.attrs={href:l,"aria-current":b};else{var S=function e(t){var i;if(t)for(var n=0;n-1&&(o.params[h]=i.params[h]);return o.path=W(c.path,o.params),l(c,o,a)}if(o.path){o.params={};for(var p=0;p=e.length?i():e[r]?t(e[r],(function(){n(r+1)})):n(r+1)};n(0)}var xe={redirected:2,aborted:4,cancelled:8,duplicated:16};function ke(e,t){return Ce(e,t,xe.redirected,'Redirected when going from "'+e.fullPath+'" to "'+function(e){if("string"==typeof e)return e;if("path"in e)return e.path;var t={};return Se.forEach((function(i){i in e&&(t[i]=e[i])})),JSON.stringify(t,null,2)}(t)+'" via a navigation guard.')}function we(e,t){return Ce(e,t,xe.cancelled,'Navigation cancelled from "'+e.fullPath+'" to "'+t.fullPath+'" with a new navigation.')}function Ce(e,t,i,n){var r=new Error(n);return r._isRouter=!0,r.from=e,r.to=t,r.type=i,r}var Se=["params","query","hash"];function Oe(e){return Object.prototype.toString.call(e).indexOf("Error")>-1}function De(e,t){return Oe(e)&&e._isRouter&&(null==t||e.type===t)}function Ee(e){return function(t,i,n){var r=!1,s=0,a=null;Te(e,(function(e,t,i,o){if("function"==typeof e&&void 0===e.cid){r=!0,s++;var l,u=je((function(t){var r;((r=t).__esModule||Pe&&"Module"===r[Symbol.toStringTag])&&(t=t.default),e.resolved="function"==typeof t?t:U.extend(t),i.components[o]=t,--s<=0&&n()})),c=je((function(e){var t="Failed to resolve async component "+o+": "+e;a||(a=Oe(e)?e:new Error(t),n(a))}));try{l=e(u,c)}catch(e){c(e)}if(l)if("function"==typeof l.then)l.then(u,c);else{var d=l.component;d&&"function"==typeof d.then&&d.then(u,c)}}})),r||n()}}function Te(e,t){return $e(e.map((function(e){return Object.keys(e.components).map((function(i){return t(e.components[i],e.instances[i],e,i)}))})))}function $e(e){return Array.prototype.concat.apply([],e)}var Pe="function"==typeof Symbol&&"symbol"==typeof Symbol.toStringTag;function je(e){var t=!1;return function(){for(var i=[],n=arguments.length;n--;)i[n]=arguments[n];if(!t)return t=!0,e.apply(this,i)}}var Me=function(e,t){this.router=e,this.base=function(e){if(!e)if(X){var t=document.querySelector("base");e=(e=t&&t.getAttribute("href")||"/").replace(/^https?:\/\/[^\/]+/,"")}else e="/";"/"!==e.charAt(0)&&(e="/"+e);return e.replace(/\/$/,"")}(t),this.current=g,this.pending=null,this.ready=!1,this.readyCbs=[],this.readyErrorCbs=[],this.errorCbs=[],this.listeners=[]};function Ie(e,t,i,n){var r=Te(e,(function(e,n,r,s){var a=function(e,t){"function"!=typeof e&&(e=U.extend(e));return e.options[t]}(e,t);if(a)return Array.isArray(a)?a.map((function(e){return i(e,n,r,s)})):i(a,n,r,s)}));return $e(n?r.reverse():r)}function Ae(e,t){if(t)return function(){return e.apply(t,arguments)}}Me.prototype.listen=function(e){this.cb=e},Me.prototype.onReady=function(e,t){this.ready?e():(this.readyCbs.push(e),t&&this.readyErrorCbs.push(t))},Me.prototype.onError=function(e){this.errorCbs.push(e)},Me.prototype.transitionTo=function(e,t,i){var n,r=this;try{n=this.router.match(e,this.current)}catch(e){throw this.errorCbs.forEach((function(t){t(e)})),e}var s=this.current;this.confirmTransition(n,(function(){r.updateRoute(n),t&&t(n),r.ensureURL(),r.router.afterHooks.forEach((function(e){e&&e(n,s)})),r.ready||(r.ready=!0,r.readyCbs.forEach((function(e){e(n)})))}),(function(e){i&&i(e),e&&!r.ready&&(De(e,xe.redirected)&&s===g||(r.ready=!0,r.readyErrorCbs.forEach((function(t){t(e)}))))}))},Me.prototype.confirmTransition=function(e,t,i){var n=this,r=this.current;this.pending=e;var s,a,o=function(e){!De(e)&&Oe(e)&&(n.errorCbs.length?n.errorCbs.forEach((function(t){t(e)})):console.error(e)),i&&i(e)},l=e.matched.length-1,u=r.matched.length-1;if(y(e,r)&&l===u&&e.matched[l]===r.matched[u])return this.ensureURL(),o(((a=Ce(s=r,e,xe.duplicated,'Avoided redundant navigation to current location: "'+s.fullPath+'".')).name="NavigationDuplicated",a));var c=function(e,t){var i,n=Math.max(e.length,t.length);for(i=0;i0)){var t=this.router,i=t.options.scrollBehavior,n=ge&&i;n&&this.listeners.push(oe());var r=function(){var i=e.current,r=Le(e.base);e.current===g&&r===e._startLocation||e.transitionTo(r,(function(e){n&&le(t,e,i,!0)}))};window.addEventListener("popstate",r),this.listeners.push((function(){window.removeEventListener("popstate",r)}))}},t.prototype.go=function(e){window.history.go(e)},t.prototype.push=function(e,t,i){var n=this,r=this.current;this.transitionTo(e,(function(e){_e(O(n.base+e.fullPath)),le(n.router,e,r,!1),t&&t(e)}),i)},t.prototype.replace=function(e,t,i){var n=this,r=this.current;this.transitionTo(e,(function(e){be(O(n.base+e.fullPath)),le(n.router,e,r,!1),t&&t(e)}),i)},t.prototype.ensureURL=function(e){if(Le(this.base)!==this.current.fullPath){var t=O(this.base+this.current.fullPath);e?_e(t):be(t)}},t.prototype.getCurrentLocation=function(){return Le(this.base)},t}(Me);function Le(e){var t=window.location.pathname,i=t.toLowerCase(),n=e.toLowerCase();return!e||i!==n&&0!==i.indexOf(O(n+"/"))||(t=t.slice(e.length)),(t||"/")+window.location.search+window.location.hash}var Fe=function(e){function t(t,i,n){e.call(this,t,i),n&&function(e){var t=Le(e);if(!/^\/#/.test(t))return window.location.replace(O(e+"/#"+t)),!0}(this.base)||Ve()}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.setupListeners=function(){var e=this;if(!(this.listeners.length>0)){var t=this.router.options.scrollBehavior,i=ge&&t;i&&this.listeners.push(oe());var n=function(){var t=e.current;Ve()&&e.transitionTo(ze(),(function(n){i&&le(e.router,n,t,!0),ge||He(n.fullPath)}))},r=ge?"popstate":"hashchange";window.addEventListener(r,n),this.listeners.push((function(){window.removeEventListener(r,n)}))}},t.prototype.push=function(e,t,i){var n=this,r=this.current;this.transitionTo(e,(function(e){Be(e.fullPath),le(n.router,e,r,!1),t&&t(e)}),i)},t.prototype.replace=function(e,t,i){var n=this,r=this.current;this.transitionTo(e,(function(e){He(e.fullPath),le(n.router,e,r,!1),t&&t(e)}),i)},t.prototype.go=function(e){window.history.go(e)},t.prototype.ensureURL=function(e){var t=this.current.fullPath;ze()!==t&&(e?Be(t):He(t))},t.prototype.getCurrentLocation=function(){return ze()},t}(Me);function Ve(){var e=ze();return"/"===e.charAt(0)||(He("/"+e),!1)}function ze(){var e=window.location.href,t=e.indexOf("#");return t<0?"":e=e.slice(t+1)}function Re(e){var t=window.location.href,i=t.indexOf("#");return(i>=0?t.slice(0,i):t)+"#"+e}function Be(e){ge?_e(Re(e)):window.location.hash=e}function He(e){ge?be(Re(e)):window.location.replace(Re(e))}var We=function(e){function t(t,i){e.call(this,t,i),this.stack=[],this.index=-1}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.push=function(e,t,i){var n=this;this.transitionTo(e,(function(e){n.stack=n.stack.slice(0,n.index+1).concat(e),n.index++,t&&t(e)}),i)},t.prototype.replace=function(e,t,i){var n=this;this.transitionTo(e,(function(e){n.stack=n.stack.slice(0,n.index).concat(e),t&&t(e)}),i)},t.prototype.go=function(e){var t=this,i=this.index+e;if(!(i<0||i>=this.stack.length)){var n=this.stack[i];this.confirmTransition(n,(function(){var e=t.current;t.index=i,t.updateRoute(n),t.router.afterHooks.forEach((function(t){t&&t(n,e)}))}),(function(e){De(e,xe.duplicated)&&(t.index=i)}))}},t.prototype.getCurrentLocation=function(){var e=this.stack[this.stack.length-1];return e?e.fullPath:"/"},t.prototype.ensureURL=function(){},t}(Me),qe=function(e){void 0===e&&(e={}),this.app=null,this.apps=[],this.options=e,this.beforeHooks=[],this.resolveHooks=[],this.afterHooks=[],this.matcher=J(e.routes||[],this);var t=e.mode||"hash";switch(this.fallback="history"===t&&!ge&&!1!==e.fallback,this.fallback&&(t="hash"),X||(t="abstract"),this.mode=t,t){case"history":this.history=new Ne(this,e.base);break;case"hash":this.history=new Fe(this,e.base,this.fallback);break;case"abstract":this.history=new We(this,e.base);break;default:0}},Ue={currentRoute:{configurable:!0}};function Ge(e,t){return e.push(t),function(){var i=e.indexOf(t);i>-1&&e.splice(i,1)}}qe.prototype.match=function(e,t,i){return this.matcher.match(e,t,i)},Ue.currentRoute.get=function(){return this.history&&this.history.current},qe.prototype.init=function(e){var t=this;if(this.apps.push(e),e.$once("hook:destroyed",(function(){var i=t.apps.indexOf(e);i>-1&&t.apps.splice(i,1),t.app===e&&(t.app=t.apps[0]||null),t.app||t.history.teardown()})),!this.app){this.app=e;var i=this.history;if(i instanceof Ne||i instanceof Fe){var n=function(e){i.setupListeners(),function(e){var n=i.current,r=t.options.scrollBehavior;ge&&r&&"fullPath"in e&&le(t,e,n,!1)}(e)};i.transitionTo(i.getCurrentLocation(),n,n)}i.listen((function(e){t.apps.forEach((function(t){t._route=e}))}))}},qe.prototype.beforeEach=function(e){return Ge(this.beforeHooks,e)},qe.prototype.beforeResolve=function(e){return Ge(this.resolveHooks,e)},qe.prototype.afterEach=function(e){return Ge(this.afterHooks,e)},qe.prototype.onReady=function(e,t){this.history.onReady(e,t)},qe.prototype.onError=function(e){this.history.onError(e)},qe.prototype.push=function(e,t,i){var n=this;if(!t&&!i&&"undefined"!=typeof Promise)return new Promise((function(t,i){n.history.push(e,t,i)}));this.history.push(e,t,i)},qe.prototype.replace=function(e,t,i){var n=this;if(!t&&!i&&"undefined"!=typeof Promise)return new Promise((function(t,i){n.history.replace(e,t,i)}));this.history.replace(e,t,i)},qe.prototype.go=function(e){this.history.go(e)},qe.prototype.back=function(){this.go(-1)},qe.prototype.forward=function(){this.go(1)},qe.prototype.getMatchedComponents=function(e){var t=e?e.matched?e:this.resolve(e).route:this.currentRoute;return t?[].concat.apply([],t.matched.map((function(e){return Object.keys(e.components).map((function(t){return e.components[t]}))}))):[]},qe.prototype.resolve=function(e,t,i){var n=q(e,t=t||this.history.current,i,this),r=this.match(n,t),s=r.redirectedFrom||r.fullPath;return{location:n,route:r,href:function(e,t,i){var n="hash"===i?"#"+t:t;return e?O(e+"/"+n):n}(this.history.base,s,this.mode),normalizedTo:n,resolved:r}},qe.prototype.getRoutes=function(){return this.matcher.getRoutes()},qe.prototype.addRoute=function(e,t){this.matcher.addRoute(e,t),this.history.current!==g&&this.history.transitionTo(this.history.getCurrentLocation())},qe.prototype.addRoutes=function(e){this.matcher.addRoutes(e),this.history.current!==g&&this.history.transitionTo(this.history.getCurrentLocation())},Object.defineProperties(qe.prototype,Ue),qe.install=function e(t){if(!e.installed||U!==t){e.installed=!0,U=t;var i=function(e){return void 0!==e},n=function(e,t){var n=e.$options._parentVnode;i(n)&&i(n=n.data)&&i(n=n.registerRouteInstance)&&n(e,t)};t.mixin({beforeCreate:function(){i(this.$options.router)?(this._routerRoot=this,this._router=this.$options.router,this._router.init(this),t.util.defineReactive(this,"_route",this._router.history.current)):this._routerRoot=this.$parent&&this.$parent._routerRoot||this,n(this,this)},destroyed:function(){n(this)}}),Object.defineProperty(t.prototype,"$router",{get:function(){return this._routerRoot._router}}),Object.defineProperty(t.prototype,"$route",{get:function(){return this._routerRoot._route}}),t.component("RouterView",w),t.component("RouterLink",Y);var r=t.config.optionMergeStrategies;r.beforeRouteEnter=r.beforeRouteLeave=r.beforeRouteUpdate=r.created}},qe.version="3.5.2",qe.isNavigationFailure=De,qe.NavigationFailureType=xe,qe.START_LOCATION=g,X&&window.Vue&&window.Vue.use(qe);var Ye=qe;i(166),i(167),i(255),i(98),i(222),i(59),i(96),i(257);function Ke(e){e.locales&&Object.keys(e.locales).forEach((function(t){e.locales[t].path=t})),Object.freeze(e)}i(42),i(52),i(82);var Xe=i(37),Ze=(i(174),i(56),i(95),i(229),i(230),{NotFound:function(){return i.e(13).then(i.bind(null,523))},Layout:function(){return Promise.all([i.e(0),i.e(1),i.e(3),i.e(6)]).then(i.bind(null,522))}}),Qe={"v-6c53f528":function(){return i.e(14).then(i.bind(null,530))},"v-12ba3bb3":function(){return i.e(15).then(i.bind(null,531))},"v-39778893":function(){return i.e(16).then(i.bind(null,532))},"v-56bc7428":function(){return i.e(17).then(i.bind(null,533))},"v-6a252d45":function(){return i.e(18).then(i.bind(null,534))},"v-4f51c953":function(){return i.e(20).then(i.bind(null,535))},"v-58f572e4":function(){return i.e(19).then(i.bind(null,536))},"v-19f50016":function(){return i.e(21).then(i.bind(null,537))},"v-11d701b0":function(){return i.e(22).then(i.bind(null,538))},"v-ae3fc19a":function(){return i.e(23).then(i.bind(null,539))},"v-68042ff3":function(){return i.e(24).then(i.bind(null,540))},"v-0670ce5a":function(){return i.e(25).then(i.bind(null,541))},"v-5a12e669":function(){return i.e(26).then(i.bind(null,542))},"v-3a742ac2":function(){return i.e(27).then(i.bind(null,543))},"v-0cdcef91":function(){return i.e(29).then(i.bind(null,544))},"v-2335d15a":function(){return i.e(28).then(i.bind(null,545))},"v-70e16acf":function(){return i.e(30).then(i.bind(null,546))},"v-fa79849a":function(){return i.e(31).then(i.bind(null,547))},"v-0401205a":function(){return i.e(32).then(i.bind(null,548))},"v-2c2d5cdb":function(){return i.e(33).then(i.bind(null,549))},"v-6779dcc1":function(){return i.e(34).then(i.bind(null,550))},"v-00fd3d65":function(){return i.e(35).then(i.bind(null,551))},"v-04ba1293":function(){return i.e(36).then(i.bind(null,552))},"v-5efa98ed":function(){return i.e(39).then(i.bind(null,553))},"v-82e6d25a":function(){return i.e(37).then(i.bind(null,554))},"v-673913da":function(){return i.e(38).then(i.bind(null,555))},"v-6e3f1e13":function(){return i.e(40).then(i.bind(null,556))},"v-33e095f3":function(){return i.e(41).then(i.bind(null,557))},"v-66d83c29":function(){return i.e(42).then(i.bind(null,558))},"v-0a8dba53":function(){return i.e(45).then(i.bind(null,559))},"v-21ecd622":function(){return i.e(43).then(i.bind(null,560))},"v-733fd353":function(){return i.e(46).then(i.bind(null,561))},"v-531b3b1a":function(){return i.e(47).then(i.bind(null,562))},"v-37c7ba37":function(){return i.e(49).then(i.bind(null,563))},"v-62315253":function(){return i.e(50).then(i.bind(null,564))},"v-8e6f27ae":function(){return i.e(48).then(i.bind(null,565))},"v-6c781c1a":function(){return i.e(51).then(i.bind(null,566))},"v-58cd4fb3":function(){return i.e(52).then(i.bind(null,567))},"v-3a8b6533":function(){return i.e(53).then(i.bind(null,568))},"v-47205bd3":function(){return i.e(54).then(i.bind(null,569))},"v-e776b66a":function(){return i.e(55).then(i.bind(null,570))},"v-109f79da":function(){return i.e(56).then(i.bind(null,571))},"v-1091e99e":function(){return i.e(59).then(i.bind(null,572))},"v-1f1ab335":function(){return i.e(60).then(i.bind(null,573))},"v-2a31a573":function(){return i.e(61).then(i.bind(null,574))},"v-dd2f48da":function(){return i.e(44).then(i.bind(null,575))},"v-915cd0da":function(){return i.e(62).then(i.bind(null,576))},"v-d1885d0a":function(){return i.e(57).then(i.bind(null,577))},"v-2d0f5d02":function(){return i.e(64).then(i.bind(null,578))},"v-0dc527bf":function(){return i.e(65).then(i.bind(null,579))},"v-3cd4af93":function(){return i.e(66).then(i.bind(null,580))},"v-dd48008e":function(){return i.e(67).then(i.bind(null,581))},"v-41e4a721":function(){return i.e(70).then(i.bind(null,582))},"v-00834891":function(){return i.e(71).then(i.bind(null,583))},"v-53edfe1a":function(){return i.e(58).then(i.bind(null,584))},"v-3bab3327":function(){return i.e(68).then(i.bind(null,585))},"v-2646021f":function(){return i.e(69).then(i.bind(null,586))},"v-470b6766":function(){return i.e(72).then(i.bind(null,587))},"v-26272be9":function(){return i.e(74).then(i.bind(null,588))},"v-ba66cabe":function(){return i.e(73).then(i.bind(null,589))},"v-10b7977f":function(){return i.e(75).then(i.bind(null,590))},"v-4d91676a":function(){return i.e(63).then(i.bind(null,591))},"v-bb252ada":function(){return i.e(77).then(i.bind(null,592))},"v-3a24bda3":function(){return i.e(76).then(i.bind(null,593))},"v-12d02db9":function(){return i.e(78).then(i.bind(null,594))},"v-d193ea9a":function(){return i.e(79).then(i.bind(null,595))},"v-056fc51a":function(){return i.e(80).then(i.bind(null,596))},"v-3eaf113e":function(){return i.e(81).then(i.bind(null,597))},"v-430e4d1d":function(){return i.e(82).then(i.bind(null,598))},"v-2ba71c73":function(){return i.e(83).then(i.bind(null,599))},"v-63be8269":function(){return i.e(84).then(i.bind(null,600))},"v-5676163e":function(){return i.e(87).then(i.bind(null,601))},"v-39cfce57":function(){return i.e(86).then(i.bind(null,602))},"v-0d497ba1":function(){return i.e(88).then(i.bind(null,603))},"v-5893f913":function(){return i.e(85).then(i.bind(null,604))},"v-61357bbe":function(){return i.e(89).then(i.bind(null,605))},"v-60c8a861":function(){return i.e(90).then(i.bind(null,606))},"v-62b61eb1":function(){return i.e(91).then(i.bind(null,607))},"v-ee6c62be":function(){return i.e(92).then(i.bind(null,608))},"v-1ecbc9e1":function(){return i.e(94).then(i.bind(null,609))},"v-551c7ba1":function(){return i.e(93).then(i.bind(null,610))},"v-547c3061":function(){return i.e(95).then(i.bind(null,611))},"v-49c45526":function(){return i.e(96).then(i.bind(null,612))},"v-63e1089d":function(){return i.e(97).then(i.bind(null,613))},"v-7c9fc59a":function(){return i.e(98).then(i.bind(null,614))},"v-186917a6":function(){return i.e(99).then(i.bind(null,615))},"v-539b4fc1":function(){return i.e(100).then(i.bind(null,616))},"v-c6507cce":function(){return i.e(101).then(i.bind(null,617))},"v-3f086ebe":function(){return i.e(102).then(i.bind(null,618))},"v-2393ae36":function(){return i.e(103).then(i.bind(null,619))},"v-63121a73":function(){return i.e(105).then(i.bind(null,620))},"v-941099be":function(){return i.e(104).then(i.bind(null,621))},"v-3349d5cb":function(){return i.e(106).then(i.bind(null,622))},"v-1bca3f13":function(){return i.e(107).then(i.bind(null,623))},"v-681a3333":function(){return i.e(108).then(i.bind(null,624))}};function Je(e){var t=Object.create(null);return function(i){return t[i]||(t[i]=e(i))}}var et=/-(\w)/g,tt=Je((function(e){return e.replace(et,(function(e,t){return t?t.toUpperCase():""}))})),it=/\B([A-Z])/g,nt=Je((function(e){return e.replace(it,"-$1").toLowerCase()})),rt=Je((function(e){return e.charAt(0).toUpperCase()+e.slice(1)}));function st(e,t){if(t)return e(t)?e(t):t.includes("-")?e(rt(tt(t))):e(rt(t))||e(nt(t))}var at=Object.assign({},Ze,Qe),ot=function(e){return at[e]},lt=function(e){return Qe[e]},ut=function(e){return Ze[e]},ct=function(e){return r.default.component(e)};function dt(e){return st(lt,e)}function ht(e){return st(ut,e)}function pt(e){return st(ot,e)}function ft(e){return st(ct,e)}function mt(){for(var e=arguments.length,t=new Array(e),i=0;i"})).join("\n "):"",this.$ssrContext.canonicalLink=wt(this.$canonicalUrl)}var t},mounted:function(){this.currentMetaTags=Object(Xe.a)(document.querySelectorAll("meta")),this.updateMeta(),this.updateCanonicalLink()},methods:{updateMeta:function(){document.title=this.$title,document.documentElement.lang=this.$lang;var e=this.getMergedMetaTags();this.currentMetaTags=Ct(e,this.currentMetaTags)},getMergedMetaTags:function(){var e=this.$page.frontmatter.meta||[];return yt()([{name:"description",content:this.$description}],e,this.siteMeta,St)},updateCanonicalLink:function(){kt(),this.$canonicalUrl&&document.head.insertAdjacentHTML("beforeend",wt(this.$canonicalUrl))}},watch:{$page:function(){this.updateMeta(),this.updateCanonicalLink()}},beforeDestroy:function(){Ct(null,this.currentMetaTags),kt()}};function kt(){var e=document.querySelector("link[rel='canonical']");e&&e.remove()}function wt(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return e?''):""}function Ct(e,t){if(t&&Object(Xe.a)(t).filter((function(e){return e.parentNode===document.head})).forEach((function(e){return document.head.removeChild(e)})),e)return e.map((function(e){var t=document.createElement("meta");return Object.keys(e).forEach((function(i){t.setAttribute(i,e[i])})),document.head.appendChild(t),t}))}function St(e){for(var t=0,i=["name","property","itemprop"];t=o.parentElement.offsetTop+10&&(!l||n-1&&t.splice(i,1)}}function Kt(e,t){e._actions=Object.create(null),e._mutations=Object.create(null),e._wrappedGetters=Object.create(null),e._modulesNamespaceMap=Object.create(null);var i=e.state;Zt(e,i,[],e._modules.root,!0),Xt(e,i,t)}function Xt(e,t,i){var n=e._vm;e.getters={},e._makeLocalGettersCache=Object.create(null);var r=e._wrappedGetters,s={};zt(r,(function(t,i){s[i]=function(e,t){return function(){return e(t)}}(t,e),Object.defineProperty(e.getters,i,{get:function(){return e._vm[i]},enumerable:!0})}));var a=qt.config.silent;qt.config.silent=!0,e._vm=new qt({data:{$$state:t},computed:s}),qt.config.silent=a,e.strict&&function(e){e._vm.$watch((function(){return this._data.$$state}),(function(){0}),{deep:!0,sync:!0})}(e),n&&(i&&e._withCommit((function(){n._data.$$state=null})),qt.nextTick((function(){return n.$destroy()})))}function Zt(e,t,i,n,r){var s=!i.length,a=e._modules.getNamespace(i);if(n.namespaced&&(e._modulesNamespaceMap[a],e._modulesNamespaceMap[a]=n),!s&&!r){var o=Qt(t,i.slice(0,-1)),l=i[i.length-1];e._withCommit((function(){qt.set(o,l,n.state)}))}var u=n.context=function(e,t,i){var n=""===t,r={dispatch:n?e.dispatch:function(i,n,r){var s=Jt(i,n,r),a=s.payload,o=s.options,l=s.type;return o&&o.root||(l=t+l),e.dispatch(l,a)},commit:n?e.commit:function(i,n,r){var s=Jt(i,n,r),a=s.payload,o=s.options,l=s.type;o&&o.root||(l=t+l),e.commit(l,a,o)}};return Object.defineProperties(r,{getters:{get:n?function(){return e.getters}:function(){return function(e,t){if(!e._makeLocalGettersCache[t]){var i={},n=t.length;Object.keys(e.getters).forEach((function(r){if(r.slice(0,n)===t){var s=r.slice(n);Object.defineProperty(i,s,{get:function(){return e.getters[r]},enumerable:!0})}})),e._makeLocalGettersCache[t]=i}return e._makeLocalGettersCache[t]}(e,t)}},state:{get:function(){return Qt(e.state,i)}}}),r}(e,a,i);n.forEachMutation((function(t,i){!function(e,t,i,n){(e._mutations[t]||(e._mutations[t]=[])).push((function(t){i.call(e,n.state,t)}))}(e,a+i,t,u)})),n.forEachAction((function(t,i){var n=t.root?i:a+i,r=t.handler||t;!function(e,t,i,n){(e._actions[t]||(e._actions[t]=[])).push((function(t){var r,s=i.call(e,{dispatch:n.dispatch,commit:n.commit,getters:n.getters,state:n.state,rootGetters:e.getters,rootState:e.state},t);return(r=s)&&"function"==typeof r.then||(s=Promise.resolve(s)),e._devtoolHook?s.catch((function(t){throw e._devtoolHook.emit("vuex:error",t),t})):s}))}(e,n,r,u)})),n.forEachGetter((function(t,i){!function(e,t,i,n){if(e._wrappedGetters[t])return void 0;e._wrappedGetters[t]=function(e){return i(n.state,n.getters,e.state,e.getters)}}(e,a+i,t,u)})),n.forEachChild((function(n,s){Zt(e,t,i.concat(s),n,r)}))}function Qt(e,t){return t.reduce((function(e,t){return e[t]}),e)}function Jt(e,t,i){return Rt(e)&&e.type&&(i=t,t=e,e=e.type),{type:e,payload:t,options:i}}function ei(e){qt&&e===qt|| /*! * vuex v3.6.2 * (c) 2021 Evan You * @license MIT */ -function(e){if(Number(e.version.split(".")[0])>=2)e.mixin({beforeCreate:i});else{var t=e.prototype._init;e.prototype._init=function(e){void 0===e&&(e={}),e.init=e.init?[i].concat(e.init):i,t.call(this,e)}}function i(){var e=this.$options;e.store?this.$store="function"==typeof e.store?e.store():e.store:e.parent&&e.parent.$store&&(this.$store=e.parent.$store)}}(qt=e)}Gt.state.get=function(){return this._vm._data.$$state},Gt.state.set=function(e){0},Ut.prototype.commit=function(e,t,i){var n=this,r=Jt(e,t,i),s=r.type,a=r.payload,o=(r.options,{type:s,payload:a}),l=this._mutations[s];l&&(this._withCommit((function(){l.forEach((function(e){e(a)}))})),this._subscribers.slice().forEach((function(e){return e(o,n.state)})))},Ut.prototype.dispatch=function(e,t){var i=this,n=Jt(e,t),r=n.type,s=n.payload,a={type:r,payload:s},o=this._actions[r];if(o){try{this._actionSubscribers.slice().filter((function(e){return e.before})).forEach((function(e){return e.before(a,i.state)}))}catch(e){0}var l=o.length>1?Promise.all(o.map((function(e){return e(s)}))):o[0](s);return new Promise((function(e,t){l.then((function(t){try{i._actionSubscribers.filter((function(e){return e.after})).forEach((function(e){return e.after(a,i.state)}))}catch(e){0}e(t)}),(function(e){try{i._actionSubscribers.filter((function(e){return e.error})).forEach((function(t){return t.error(a,i.state,e)}))}catch(e){0}t(e)}))}))}},Ut.prototype.subscribe=function(e,t){return Yt(e,this._subscribers,t)},Ut.prototype.subscribeAction=function(e,t){return Yt("function"==typeof e?{before:e}:e,this._actionSubscribers,t)},Ut.prototype.watch=function(e,t,i){var n=this;return this._watcherVM.$watch((function(){return e(n.state,n.getters)}),t,i)},Ut.prototype.replaceState=function(e){var t=this;this._withCommit((function(){t._vm._data.$$state=e}))},Ut.prototype.registerModule=function(e,t,i){void 0===i&&(i={}),"string"==typeof e&&(e=[e]),this._modules.register(e,t),Zt(this,this.state,e,this._modules.get(e),i.preserveState),Xt(this,this.state)},Ut.prototype.unregisterModule=function(e){var t=this;"string"==typeof e&&(e=[e]),this._modules.unregister(e),this._withCommit((function(){var i=Qt(t.state,e.slice(0,-1));qt.delete(i,e[e.length-1])})),Kt(this)},Ut.prototype.hasModule=function(e){return"string"==typeof e&&(e=[e]),this._modules.isRegistered(e)},Ut.prototype.hotUpdate=function(e){this._modules.update(e),Kt(this,!0)},Ut.prototype._withCommit=function(e){var t=this._committing;this._committing=!0,e(),this._committing=t},Object.defineProperties(Ut.prototype,Gt);var ti=ai((function(e,t){var i={};return si(t).forEach((function(t){var n=t.key,r=t.val;i[n]=function(){var t=this.$store.state,i=this.$store.getters;if(e){var n=oi(this.$store,"mapState",e);if(!n)return;t=n.context.state,i=n.context.getters}return"function"==typeof r?r.call(this,t,i):t[r]},i[n].vuex=!0})),i})),ii=ai((function(e,t){var i={};return si(t).forEach((function(t){var n=t.key,r=t.val;i[n]=function(){for(var t=[],i=arguments.length;i--;)t[i]=arguments[i];var n=this.$store.commit;if(e){var s=oi(this.$store,"mapMutations",e);if(!s)return;n=s.context.commit}return"function"==typeof r?r.apply(this,[n].concat(t)):n.apply(this.$store,[r].concat(t))}})),i})),ni=ai((function(e,t){var i={};return si(t).forEach((function(t){var n=t.key,r=t.val;r=e+r,i[n]=function(){if(!e||oi(this.$store,"mapGetters",e))return this.$store.getters[r]},i[n].vuex=!0})),i})),ri=ai((function(e,t){var i={};return si(t).forEach((function(t){var n=t.key,r=t.val;i[n]=function(){for(var t=[],i=arguments.length;i--;)t[i]=arguments[i];var n=this.$store.dispatch;if(e){var s=oi(this.$store,"mapActions",e);if(!s)return;n=s.context.dispatch}return"function"==typeof r?r.apply(this,[n].concat(t)):n.apply(this.$store,[r].concat(t))}})),i}));function si(e){return function(e){return Array.isArray(e)||Rt(e)}(e)?Array.isArray(e)?e.map((function(e){return{key:e,val:e}})):Object.keys(e).map((function(t){return{key:t,val:e[t]}})):[]}function ai(e){return function(t,i){return"string"!=typeof t?(i=t,t=""):"/"!==t.charAt(t.length-1)&&(t+="/"),e(t,i)}}function oi(e,t,i){return e._modulesNamespaceMap[i]}function li(e,t,i){var n=i?e.groupCollapsed:e.group;try{n.call(e,t)}catch(i){e.log(t)}}function ui(e){try{e.groupEnd()}catch(t){e.log("—— log end ——")}}function ci(){var e=new Date;return" @ "+di(e.getHours(),2)+":"+di(e.getMinutes(),2)+":"+di(e.getSeconds(),2)+"."+di(e.getMilliseconds(),3)}function di(e,t){return i="0",n=t-e.toString().length,new Array(n+1).join(i)+e;var i,n}var hi={Store:Ut,install:ei,version:"3.6.2",mapState:ti,mapMutations:ii,mapGetters:ni,mapActions:ri,createNamespacedHelpers:function(e){return{mapState:ti.bind(null,e),mapGetters:ni.bind(null,e),mapMutations:ii.bind(null,e),mapActions:ri.bind(null,e)}},createLogger:function(e){void 0===e&&(e={});var t=e.collapsed;void 0===t&&(t=!0);var i=e.filter;void 0===i&&(i=function(e,t,i){return!0});var n=e.transformer;void 0===n&&(n=function(e){return e});var r=e.mutationTransformer;void 0===r&&(r=function(e){return e});var s=e.actionFilter;void 0===s&&(s=function(e,t){return!0});var a=e.actionTransformer;void 0===a&&(a=function(e){return e});var o=e.logMutations;void 0===o&&(o=!0);var l=e.logActions;void 0===l&&(l=!0);var u=e.logger;return void 0===u&&(u=console),function(e){var c=Vt(e.state);void 0!==u&&(o&&e.subscribe((function(e,s){var a=Vt(s);if(i(e,c,a)){var o=ci(),l=r(e),d="mutation "+e.type+o;li(u,d,t),u.log("%c prev state","color: #9E9E9E; font-weight: bold",n(c)),u.log("%c mutation","color: #03A9F4; font-weight: bold",l),u.log("%c next state","color: #4CAF50; font-weight: bold",n(a)),ui(u)}c=a})),l&&e.subscribeAction((function(e,i){if(s(e,i)){var n=ci(),r=a(e),o="action "+e.type+n;li(u,o,t),u.log("%c action","color: #03A9F4; font-weight: bold",r),ui(u)}})))}}},pi=i(212),fi=i.n(pi),mi=(i(409),i(213));i(410);r.default.component("skdecide-codegen",(function(){return Promise.all([i.e(0),i.e(4)]).then(i.bind(null,524))})),r.default.component("skdecide-signature",(function(){return Promise.all([i.e(0),i.e(5)]).then(i.bind(null,525))})),r.default.component("skdecide-spec",(function(){return Promise.all([i.e(0),i.e(7)]).then(i.bind(null,526))})),r.default.component("skdecide-summary",(function(){return Promise.all([i.e(0),i.e(8)]).then(i.bind(null,527))})),r.default.component("versions",(function(){return Promise.all([i.e(1),i.e(12)]).then(i.bind(null,467))})),r.default.component("Badge",(function(){return Promise.all([i.e(0),i.e(9)]).then(i.bind(null,625))})),r.default.component("CodeBlock",(function(){return Promise.all([i.e(0),i.e(10)]).then(i.bind(null,528))})),r.default.component("CodeGroup",(function(){return Promise.all([i.e(0),i.e(11)]).then(i.bind(null,529))}));i(411),i(412);var vi={name:"BackToTop",props:{threshold:{type:Number,default:300}},data:function(){return{scrollTop:null}},computed:{show:function(){return this.scrollTop>this.threshold}},mounted:function(){var e=this;this.scrollTop=this.getScrollTop(),window.addEventListener("scroll",Dt()((function(){e.scrollTop=e.getScrollTop()}),100))},methods:{getScrollTop:function(){return window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0},scrollToTop:function(){window.scrollTo({top:0,behavior:"smooth"}),this.scrollTop=0}}},gi=(i(413),Object(Mt.a)(vi,(function(){var e=this.$createElement,t=this._self._c||e;return t("transition",{attrs:{name:"fade"}},[this.show?t("svg",{staticClass:"go-to-top",attrs:{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 49.484 28.284"},on:{click:this.scrollToTop}},[t("g",{attrs:{transform:"translate(-229 -126.358)"}},[t("rect",{attrs:{fill:"currentColor",width:"35",height:"5",rx:"2",transform:"translate(229 151.107) rotate(-45)"}}),this._v(" "),t("rect",{attrs:{fill:"currentColor",width:"35",height:"5",rx:"2",transform:"translate(274.949 154.642) rotate(-135)"}})])]):this._e()])}),[],!1,null,"5fd4ef0c",null).exports),_i=(i(414),i(415),i(225),i(416),i(417),[function(e){var t=e.Vue;e.options,e.router,e.siteData;t.use(hi),t.use(fi.a);var i=new hi.Store({state:mi,getters:{selectedTemplate:function(e){var t={};return["domain","solver"].forEach((function(i){var n=e.templates[i].findIndex((function(t){return t.name==e.selection[i].template}));t[i]=e.templates[i][n]})),t},domainTypes:function(e){var t=Object.values(e.selection.domain.characteristics).filter((function(e){return"(none)"!==e}));return Object.assign.apply(Object,[{}].concat(Object(Xe.a)(t.map((function(t){return e.types.domain[t]})))))}},mutations:{loadSelection:function(e){try{var t=localStorage.getItem("selection");if(t){var i=JSON.parse(t);e.selection=Object(Lt.a)(Object(Lt.a)({},e.selection),i)}}catch(e){console.log(e.message)}},updateSelection:function(e,t){var i=t.selection,n=t.domainOrSolver;e.selection[n]=Object(Lt.a)(Object(Lt.a)({},e.selection[n]),i),localStorage.setItem("selection",JSON.stringify(e.selection))}}});t.mixin({store:i})},{},function(e){e.Vue.mixin({computed:{$dataBlock:function(){return this.$options.__data__block__}}})},{},{},function(e){e.Vue.component("BackToTop",gi)},function(e){var t=e.Vue.config.ignoredElements;t.every((function(e){return"/^mjx-/"!==e.toString()}))&&t.push(/^mjx-/)}]),bi=["BackToTop"];function yi(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}i(119);function xi(e,t){for(var i=0;i2&&void 0!==arguments[2]?arguments[2]:r.default;Ke(t),i.$vuepress.$set("siteData",t);var n=e(i.$vuepress.$get("siteData")),s=new n,a=Object.getOwnPropertyDescriptors(Object.getPrototypeOf(s)),o={};return Object.keys(a).reduce((function(e,t){return t.startsWith("$")&&(e[t]=a[t].get),e}),o),{computed:o}}((function(e){return function(){function t(){yi(this,t)}return ki(t,[{key:"setPage",value:function(e){this.__page=e}},{key:"$site",get:function(){return e}},{key:"$themeConfig",get:function(){return this.$site.themeConfig}},{key:"$frontmatter",get:function(){return this.$page.frontmatter}},{key:"$localeConfig",get:function(){var e,t,i=this.$site.locales,n=void 0===i?{}:i;for(var r in n)"/"===r?t=n[r]:0===this.$page.path.indexOf(r)&&(e=n[r]);return e||t||{}}},{key:"$siteTitle",get:function(){return this.$localeConfig.title||this.$site.title||""}},{key:"$canonicalUrl",get:function(){var e=this.$page.frontmatter.canonicalUrl;return"string"==typeof e&&e}},{key:"$title",get:function(){var e=this.$page,t=this.$page.frontmatter.metaTitle;if("string"==typeof t)return t;var i=this.$siteTitle,n=e.frontmatter.home?null:e.frontmatter.title||e.title;return i?n?n+" | "+i:i:n||"VuePress"}},{key:"$description",get:function(){var e=function(e){if(e){var t=e.filter((function(e){return"description"===e.name}))[0];if(t)return t.content}}(this.$page.frontmatter.meta);return e||(this.$page.frontmatter.description||this.$localeConfig.description||this.$site.description||"")}},{key:"$lang",get:function(){return this.$page.frontmatter.lang||this.$localeConfig.lang||"en-US"}},{key:"$localePath",get:function(){return this.$localeConfig.path||"/"}},{key:"$themeLocaleConfig",get:function(){return(this.$site.themeConfig.locales||{})[this.$localePath]||{}}},{key:"$page",get:function(){return this.__page?this.__page:function(e,t){for(var i=0;i=2)e.mixin({beforeCreate:i});else{var t=e.prototype._init;e.prototype._init=function(e){void 0===e&&(e={}),e.init=e.init?[i].concat(e.init):i,t.call(this,e)}}function i(){var e=this.$options;e.store?this.$store="function"==typeof e.store?e.store():e.store:e.parent&&e.parent.$store&&(this.$store=e.parent.$store)}}(qt=e)}Gt.state.get=function(){return this._vm._data.$$state},Gt.state.set=function(e){0},Ut.prototype.commit=function(e,t,i){var n=this,r=Jt(e,t,i),s=r.type,a=r.payload,o=(r.options,{type:s,payload:a}),l=this._mutations[s];l&&(this._withCommit((function(){l.forEach((function(e){e(a)}))})),this._subscribers.slice().forEach((function(e){return e(o,n.state)})))},Ut.prototype.dispatch=function(e,t){var i=this,n=Jt(e,t),r=n.type,s=n.payload,a={type:r,payload:s},o=this._actions[r];if(o){try{this._actionSubscribers.slice().filter((function(e){return e.before})).forEach((function(e){return e.before(a,i.state)}))}catch(e){0}var l=o.length>1?Promise.all(o.map((function(e){return e(s)}))):o[0](s);return new Promise((function(e,t){l.then((function(t){try{i._actionSubscribers.filter((function(e){return e.after})).forEach((function(e){return e.after(a,i.state)}))}catch(e){0}e(t)}),(function(e){try{i._actionSubscribers.filter((function(e){return e.error})).forEach((function(t){return t.error(a,i.state,e)}))}catch(e){0}t(e)}))}))}},Ut.prototype.subscribe=function(e,t){return Yt(e,this._subscribers,t)},Ut.prototype.subscribeAction=function(e,t){return Yt("function"==typeof e?{before:e}:e,this._actionSubscribers,t)},Ut.prototype.watch=function(e,t,i){var n=this;return this._watcherVM.$watch((function(){return e(n.state,n.getters)}),t,i)},Ut.prototype.replaceState=function(e){var t=this;this._withCommit((function(){t._vm._data.$$state=e}))},Ut.prototype.registerModule=function(e,t,i){void 0===i&&(i={}),"string"==typeof e&&(e=[e]),this._modules.register(e,t),Zt(this,this.state,e,this._modules.get(e),i.preserveState),Xt(this,this.state)},Ut.prototype.unregisterModule=function(e){var t=this;"string"==typeof e&&(e=[e]),this._modules.unregister(e),this._withCommit((function(){var i=Qt(t.state,e.slice(0,-1));qt.delete(i,e[e.length-1])})),Kt(this)},Ut.prototype.hasModule=function(e){return"string"==typeof e&&(e=[e]),this._modules.isRegistered(e)},Ut.prototype.hotUpdate=function(e){this._modules.update(e),Kt(this,!0)},Ut.prototype._withCommit=function(e){var t=this._committing;this._committing=!0,e(),this._committing=t},Object.defineProperties(Ut.prototype,Gt);var ti=ai((function(e,t){var i={};return si(t).forEach((function(t){var n=t.key,r=t.val;i[n]=function(){var t=this.$store.state,i=this.$store.getters;if(e){var n=oi(this.$store,"mapState",e);if(!n)return;t=n.context.state,i=n.context.getters}return"function"==typeof r?r.call(this,t,i):t[r]},i[n].vuex=!0})),i})),ii=ai((function(e,t){var i={};return si(t).forEach((function(t){var n=t.key,r=t.val;i[n]=function(){for(var t=[],i=arguments.length;i--;)t[i]=arguments[i];var n=this.$store.commit;if(e){var s=oi(this.$store,"mapMutations",e);if(!s)return;n=s.context.commit}return"function"==typeof r?r.apply(this,[n].concat(t)):n.apply(this.$store,[r].concat(t))}})),i})),ni=ai((function(e,t){var i={};return si(t).forEach((function(t){var n=t.key,r=t.val;r=e+r,i[n]=function(){if(!e||oi(this.$store,"mapGetters",e))return this.$store.getters[r]},i[n].vuex=!0})),i})),ri=ai((function(e,t){var i={};return si(t).forEach((function(t){var n=t.key,r=t.val;i[n]=function(){for(var t=[],i=arguments.length;i--;)t[i]=arguments[i];var n=this.$store.dispatch;if(e){var s=oi(this.$store,"mapActions",e);if(!s)return;n=s.context.dispatch}return"function"==typeof r?r.apply(this,[n].concat(t)):n.apply(this.$store,[r].concat(t))}})),i}));function si(e){return function(e){return Array.isArray(e)||Rt(e)}(e)?Array.isArray(e)?e.map((function(e){return{key:e,val:e}})):Object.keys(e).map((function(t){return{key:t,val:e[t]}})):[]}function ai(e){return function(t,i){return"string"!=typeof t?(i=t,t=""):"/"!==t.charAt(t.length-1)&&(t+="/"),e(t,i)}}function oi(e,t,i){return e._modulesNamespaceMap[i]}function li(e,t,i){var n=i?e.groupCollapsed:e.group;try{n.call(e,t)}catch(i){e.log(t)}}function ui(e){try{e.groupEnd()}catch(t){e.log("—— log end ——")}}function ci(){var e=new Date;return" @ "+di(e.getHours(),2)+":"+di(e.getMinutes(),2)+":"+di(e.getSeconds(),2)+"."+di(e.getMilliseconds(),3)}function di(e,t){return i="0",n=t-e.toString().length,new Array(n+1).join(i)+e;var i,n}var hi={Store:Ut,install:ei,version:"3.6.2",mapState:ti,mapMutations:ii,mapGetters:ni,mapActions:ri,createNamespacedHelpers:function(e){return{mapState:ti.bind(null,e),mapGetters:ni.bind(null,e),mapMutations:ii.bind(null,e),mapActions:ri.bind(null,e)}},createLogger:function(e){void 0===e&&(e={});var t=e.collapsed;void 0===t&&(t=!0);var i=e.filter;void 0===i&&(i=function(e,t,i){return!0});var n=e.transformer;void 0===n&&(n=function(e){return e});var r=e.mutationTransformer;void 0===r&&(r=function(e){return e});var s=e.actionFilter;void 0===s&&(s=function(e,t){return!0});var a=e.actionTransformer;void 0===a&&(a=function(e){return e});var o=e.logMutations;void 0===o&&(o=!0);var l=e.logActions;void 0===l&&(l=!0);var u=e.logger;return void 0===u&&(u=console),function(e){var c=Vt(e.state);void 0!==u&&(o&&e.subscribe((function(e,s){var a=Vt(s);if(i(e,c,a)){var o=ci(),l=r(e),d="mutation "+e.type+o;li(u,d,t),u.log("%c prev state","color: #9E9E9E; font-weight: bold",n(c)),u.log("%c mutation","color: #03A9F4; font-weight: bold",l),u.log("%c next state","color: #4CAF50; font-weight: bold",n(a)),ui(u)}c=a})),l&&e.subscribeAction((function(e,i){if(s(e,i)){var n=ci(),r=a(e),o="action "+e.type+n;li(u,o,t),u.log("%c action","color: #03A9F4; font-weight: bold",r),ui(u)}})))}}},pi=i(212),fi=i.n(pi),mi=(i(409),i(213));i(410);r.default.component("skdecide-codegen",(function(){return Promise.all([i.e(0),i.e(4)]).then(i.bind(null,524))})),r.default.component("skdecide-signature",(function(){return Promise.all([i.e(0),i.e(5)]).then(i.bind(null,525))})),r.default.component("skdecide-spec",(function(){return Promise.all([i.e(0),i.e(7)]).then(i.bind(null,526))})),r.default.component("skdecide-summary",(function(){return Promise.all([i.e(0),i.e(8)]).then(i.bind(null,527))})),r.default.component("versions",(function(){return Promise.all([i.e(1),i.e(12)]).then(i.bind(null,467))})),r.default.component("Badge",(function(){return Promise.all([i.e(0),i.e(9)]).then(i.bind(null,625))})),r.default.component("CodeBlock",(function(){return Promise.all([i.e(0),i.e(10)]).then(i.bind(null,528))})),r.default.component("CodeGroup",(function(){return Promise.all([i.e(0),i.e(11)]).then(i.bind(null,529))}));i(411),i(412);var vi={name:"BackToTop",props:{threshold:{type:Number,default:300}},data:function(){return{scrollTop:null}},computed:{show:function(){return this.scrollTop>this.threshold}},mounted:function(){var e=this;this.scrollTop=this.getScrollTop(),window.addEventListener("scroll",Dt()((function(){e.scrollTop=e.getScrollTop()}),100))},methods:{getScrollTop:function(){return window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0},scrollToTop:function(){window.scrollTo({top:0,behavior:"smooth"}),this.scrollTop=0}}},gi=(i(413),Object(Mt.a)(vi,(function(){var e=this.$createElement,t=this._self._c||e;return t("transition",{attrs:{name:"fade"}},[this.show?t("svg",{staticClass:"go-to-top",attrs:{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 49.484 28.284"},on:{click:this.scrollToTop}},[t("g",{attrs:{transform:"translate(-229 -126.358)"}},[t("rect",{attrs:{fill:"currentColor",width:"35",height:"5",rx:"2",transform:"translate(229 151.107) rotate(-45)"}}),this._v(" "),t("rect",{attrs:{fill:"currentColor",width:"35",height:"5",rx:"2",transform:"translate(274.949 154.642) rotate(-135)"}})])]):this._e()])}),[],!1,null,"5fd4ef0c",null).exports),_i=(i(414),i(415),i(225),i(416),i(417),[function(e){var t=e.Vue;e.options,e.router,e.siteData;t.use(hi),t.use(fi.a);var i=new hi.Store({state:mi,getters:{selectedTemplate:function(e){var t={};return["domain","solver"].forEach((function(i){var n=e.templates[i].findIndex((function(t){return t.name==e.selection[i].template}));t[i]=e.templates[i][n]})),t},domainTypes:function(e){var t=Object.values(e.selection.domain.characteristics).filter((function(e){return"(none)"!==e}));return Object.assign.apply(Object,[{}].concat(Object(Xe.a)(t.map((function(t){return e.types.domain[t]})))))}},mutations:{loadSelection:function(e){try{var t=localStorage.getItem("selection");if(t){var i=JSON.parse(t);e.selection=Object(Lt.a)(Object(Lt.a)({},e.selection),i)}}catch(e){console.log(e.message)}},updateSelection:function(e,t){var i=t.selection,n=t.domainOrSolver;e.selection[n]=Object(Lt.a)(Object(Lt.a)({},e.selection[n]),i),localStorage.setItem("selection",JSON.stringify(e.selection))}}});t.mixin({store:i})},{},function(e){e.Vue.mixin({computed:{$dataBlock:function(){return this.$options.__data__block__}}})},{},{},function(e){e.Vue.component("BackToTop",gi)},function(e){var t=e.Vue.config.ignoredElements;t.every((function(e){return"/^mjx-/"!==e.toString()}))&&t.push(/^mjx-/)}]),bi=["BackToTop"];function yi(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}i(119);function xi(e,t){for(var i=0;i2&&void 0!==arguments[2]?arguments[2]:r.default;Ke(t),i.$vuepress.$set("siteData",t);var n=e(i.$vuepress.$get("siteData")),s=new n,a=Object.getOwnPropertyDescriptors(Object.getPrototypeOf(s)),o={};return Object.keys(a).reduce((function(e,t){return t.startsWith("$")&&(e[t]=a[t].get),e}),o),{computed:o}}((function(e){return function(){function t(){yi(this,t)}return ki(t,[{key:"setPage",value:function(e){this.__page=e}},{key:"$site",get:function(){return e}},{key:"$themeConfig",get:function(){return this.$site.themeConfig}},{key:"$frontmatter",get:function(){return this.$page.frontmatter}},{key:"$localeConfig",get:function(){var e,t,i=this.$site.locales,n=void 0===i?{}:i;for(var r in n)"/"===r?t=n[r]:0===this.$page.path.indexOf(r)&&(e=n[r]);return e||t||{}}},{key:"$siteTitle",get:function(){return this.$localeConfig.title||this.$site.title||""}},{key:"$canonicalUrl",get:function(){var e=this.$page.frontmatter.canonicalUrl;return"string"==typeof e&&e}},{key:"$title",get:function(){var e=this.$page,t=this.$page.frontmatter.metaTitle;if("string"==typeof t)return t;var i=this.$siteTitle,n=e.frontmatter.home?null:e.frontmatter.title||e.title;return i?n?n+" | "+i:i:n||"VuePress"}},{key:"$description",get:function(){var e=function(e){if(e){var t=e.filter((function(e){return"description"===e.name}))[0];if(t)return t.content}}(this.$page.frontmatter.meta);return e||(this.$page.frontmatter.description||this.$localeConfig.description||this.$site.description||"")}},{key:"$lang",get:function(){return this.$page.frontmatter.lang||this.$localeConfig.lang||"en-US"}},{key:"$localePath",get:function(){return this.$localeConfig.path||"/"}},{key:"$themeLocaleConfig",get:function(){return(this.$site.themeConfig.locales||{})[this.$localePath]||{}}},{key:"$page",get:function(){return this.__page?this.__page:function(e,t){for(var i=0;i - + @@ -29,6 +29,6 @@
GitHub (opens new window)
Base template:
Finetune characteristics (optional):
Agent:
Concurrency:
Constraints:
Dynamics:
Events:
Goals:
Initialization:
Memory:
Observability:
Renderability:
Value:
- + diff --git a/codegen/_solverspec.html b/codegen/_solverspec.html index 4dff1c4a35..c1ab16d911 100644 --- a/codegen/_solverspec.html +++ b/codegen/_solverspec.html @@ -8,7 +8,7 @@ - + @@ -29,6 +29,6 @@ GitHub (opens new window)
Base template:
Finetune characteristics (optional):
Assessability:
Parallelability:
Policy:
Restorability:
- + diff --git a/codegen/index.html b/codegen/index.html index 8107c3f185..9a4089e530 100644 --- a/codegen/index.html +++ b/codegen/index.html @@ -8,7 +8,7 @@ - + @@ -78,13 +78,13 @@ def _state_step(self, action: StrDict[List[D.T_event]]) -> TransitionOutcome[D.T_state, StrDict[Value[D.T_value]], StrDict[D.T_predicate], StrDict[D.T_info]]: pass - def _get_enabled_events_from(self, memory: Memory[D.T_state]) -> Space[D.T_event]: + def _get_action_space_(self) -> StrDict[Space[D.T_event]]: pass def _get_applicable_actions_from(self, memory: Memory[D.T_state]) -> StrDict[Space[D.T_event]]: pass - def _get_action_space_(self) -> StrDict[Space[D.T_event]]: + def _get_enabled_events_from(self, memory: Memory[D.T_state]) -> Space[D.T_event]: pass def _get_observation_space_(self) -> StrDict[Space[D.T_observation]]: @@ -95,6 +95,6 @@
- + diff --git a/contribute.html b/contribute.html index fc54b76e0d..85c927b4ec 100644 --- a/contribute.html +++ b/contribute.html @@ -8,7 +8,7 @@ - + @@ -117,6 +117,6 @@

This post (opens new window) points out good practices to follow to submit great pull requests and review them efficiently.

# Prior checks

Before submitting your pull request, think to

If you do not, you will still be able to see the status of your PR as CI will do these checks for you.

# Reorganizing commits

On your way to implement your contribution, you will probably have lots of commits, some modifying other ones from the same PR, or only modifying the code style.

At the end of your work, consider reorganizing them by

You can use git rebase -i to do that, as explained in git documentation (opens new window).

- + diff --git a/guide/index.html b/guide/index.html index 6c0ba694e8..a3a124f041 100644 --- a/guide/index.html +++ b/guide/index.html @@ -8,7 +8,7 @@ - + @@ -72,6 +72,6 @@ utils.rollout(MyDomain(), mysolver)

# Examples

# Notebooks

Go to the dedicated Notebooks page to see a curated list of notebooks recommended to start with scikit-decide.

# Python scripts

More examples can be found in the examples/ folder, showing how to import or define a domain, and how to run or solve it. Most of the examples rely on scikit-decide Hub, an extensible catalog of domains/solvers.

# Playground

The best example to try out scikit-decide capabilities might be examples/full_multisolve.py. This interactive console experience makes it easy to pick a domain among a pre-defined catalog selection:

...and then solve it with any compatible solver (detected automatically) among following selection:

Note: some requirements declared in above solvers still need fine-tuning, so in some cases an auto-detected compatible solver may still be unable to solve a domain (for now).

These combinations are particularly efficient if you want to try them out:

WARNING

Some domains/solvers might require extra manual setup steps to work at 100%. In the future, each scikit-decide hub entry might have a dedicated help page to list them, but in the meantime please refer to this:

# Code generators

Go to Code generators for assistance when creating a new domain or solver.

# Roadmap

Following features will be added to scikit-decide soon:

- + diff --git a/index.html b/index.html index 6399e5c154..b1c2bbc610 100644 --- a/index.html +++ b/index.html @@ -8,7 +8,7 @@ - + @@ -53,6 +53,6 @@

Problem solving

Describe your decision-making problem once and auto-match compatible solvers.

Growing catalog

Enjoy a growing list of domains & solvers catalog, supported by the community.

Open & Extensible

Scikit-decide is open source and is able to wrap existing state-of-the-art domains/solvers.

# Welcome to scikit-decide

# What is it?

Scikit-decide is an AI framework for Reinforcement Learning, Automated Planning and Scheduling.

This framework was initiated at Airbus (opens new window) AI Research.

TIP

Please refer to the Guide and Reference sections at the top to learn how to use scikit-decide.

- + diff --git a/install.html b/install.html index 9bd46a5e95..6f66e393f3 100644 --- a/install.html +++ b/install.html @@ -8,7 +8,7 @@ - + @@ -112,6 +112,6 @@

Note

Newer versions of gym or gymnasium (opens new window), typically greater than 0.26 are not yet possible because of a conflict between ray[rllib] (opens new window) and stable-baselines3 (opens new window).

- + diff --git a/notebooks/index.html b/notebooks/index.html index 3e280943ad..c61bec5559 100644 --- a/notebooks/index.html +++ b/notebooks/index.html @@ -8,7 +8,7 @@ - + @@ -49,6 +49,6 @@ it has a shaped or dense reward (i.e. not sparse) which can be used successfully when solving, as opposed to the other "Mountain Car" environments. For reminder, a sparse reward is a reward which is null almost everywhere, whereas a dense or shaped reward has more meaningful values for most transitions.

This problem has been chosen for two reasons:

Therefore in this notebook we will go through the following steps:

# Introduction to scheduling

Github (opens new window) Binder (opens new window)

In this notebook, we explore how to solve a resource constrained project scheduling problem (RCPSP).

The problem is made of activities that have precedence constraints. That means that if activity is a successor of activity , then activity must be completed before activity can be started

On top of these constraints, each project is assigned a set of K renewable resources where each resource is available in units for the entire duration of the project. Each activity may require one or more of these resources to be completed. While scheduling the activities, the daily resource usage for resource can not exceed units.

Each activity takes time units to complete.

The overall goal of the problem is usually to minimize the makespan.

A classic variant of RCPSP is the multimode RCPSP where each task can be executed in several ways (one way=one mode). A typical example is :

Mode n°1 'Fast mode': high resource consumption and fast Mode n°2 'Slow mode' : low resource consumption but slow

# Benchmarking scikit-decide solvers

Github (opens new window) Binder (opens new window)

This notebook demonstrates how to run and compare scikit-decide solvers compatible with a given domain.

This benchmark is supported by Ray Tune (opens new window), a scalable Python library for experiment execution and hyperparameter tuning (incl. running experiments in parallel and logging results to Tensorboard).

Benchmarking is important since the most efficient solvers might greatly vary depending on the domain.

# Flight Planning Domain

Github (opens new window) Binder (opens new window)

This notebook aims to make a short and interactive example of the Flight Planning Domain. You can find more information about it in the README file.

- + diff --git a/reference/_skdecide.builders.domain.agent.html b/reference/_skdecide.builders.domain.agent.html index 8d40c29567..332fb8ec2b 100644 --- a/reference/_skdecide.builders.domain.agent.html +++ b/reference/_skdecide.builders.domain.agent.html @@ -8,7 +8,7 @@ - + @@ -45,6 +45,6 @@ GitHub (opens new window)

# builders.domain.agent

Domain specification

Domain

# MultiAgent

A domain must inherit this class if it is multi-agent (i.e hosting multiple independent agents).

Agents are identified by (string) agent names.

# SingleAgent

A domain must inherit this class if it is single-agent (i.e hosting only one agent).

- + diff --git a/reference/_skdecide.builders.domain.concurrency.html b/reference/_skdecide.builders.domain.concurrency.html index 99bf8c147c..dfe7d20670 100644 --- a/reference/_skdecide.builders.domain.concurrency.html +++ b/reference/_skdecide.builders.domain.concurrency.html @@ -8,7 +8,7 @@ - + @@ -45,6 +45,6 @@ GitHub (opens new window)

# builders.domain.concurrency

Domain specification

Domain

# Parallel

A domain must inherit this class if multiple events/actions can happen in parallel.

# Sequential

A domain must inherit this class if its events/actions are sequential (non-parallel).

- + diff --git a/reference/_skdecide.builders.domain.constraints.html b/reference/_skdecide.builders.domain.constraints.html index 4b1ac20ec0..c228246bd2 100644 --- a/reference/_skdecide.builders.domain.constraints.html +++ b/reference/_skdecide.builders.domain.constraints.html @@ -8,7 +8,7 @@ - + @@ -57,6 +57,6 @@

Get the domain constraints.

This is a helper function called by default from Constrained.get_constraints(), the difference being that the result is not cached here.

TIP

The underscore at the end of this function's name is a convention to remind that its result should be constant.

# Returns

The list of constraints.

- + diff --git a/reference/_skdecide.builders.domain.dynamics.html b/reference/_skdecide.builders.domain.dynamics.html index b6fb4515bd..5fb8a61732 100644 --- a/reference/_skdecide.builders.domain.dynamics.html +++ b/reference/_skdecide.builders.domain.dynamics.html @@ -8,7 +8,7 @@ - + @@ -377,6 +377,6 @@ ATARI games), it is recommended to overwrite Environment._step() to call the external environment and not use the Environment._state_step() helper function.

WARNING

Before calling Environment._step() the first time or when the end of an episode is reached, Initializable._reset() must be called to reset the environment's state.

# Parameters

# Returns

The environment outcome of this step.

- + diff --git a/reference/_skdecide.builders.domain.events.html b/reference/_skdecide.builders.domain.events.html index 0843d8ed71..1864d1646b 100644 --- a/reference/_skdecide.builders.domain.events.html +++ b/reference/_skdecide.builders.domain.events.html @@ -8,7 +8,7 @@ - + @@ -271,6 +271,6 @@ memory parameter is mandatory here.

TIP

By default, this function is implemented using the skdecide.core.Space.contains() function on the space of enabled events provided by Events._get_enabled_events_from(), but it can be overridden for faster implementations.

# Parameters

# Returns

True if the event is enabled (False otherwise).

- + diff --git a/reference/_skdecide.builders.domain.goals.html b/reference/_skdecide.builders.domain.goals.html index bfbbaad9a7..7290a6ea3f 100644 --- a/reference/_skdecide.builders.domain.goals.html +++ b/reference/_skdecide.builders.domain.goals.html @@ -8,7 +8,7 @@ - + @@ -67,6 +67,6 @@ self,
observation: StrDict[D.T_observation]
) -> StrDict[D.T_predicate]

Indicate whether an observation belongs to the goals.

TIP

By default, this function is implemented using the skdecide.core.Space.contains() function on the domain goals space provided by Goals._get_goals(), but it can be overridden for faster implementations.

# Parameters

# Returns

True if the observation is a goal (False otherwise).

- + diff --git a/reference/_skdecide.builders.domain.initialization.html b/reference/_skdecide.builders.domain.initialization.html index 1db72235e6..0593be3dd0 100644 --- a/reference/_skdecide.builders.domain.initialization.html +++ b/reference/_skdecide.builders.domain.initialization.html @@ -8,7 +8,7 @@ - + @@ -114,6 +114,6 @@ self
) -> D.T_state

Reset the state of the environment and return an initial state.

This is a helper function called by default from Initializable._reset(). It focuses on the state level, as opposed to the observation one for the latter.

# Returns

An initial state.

- + diff --git a/reference/_skdecide.builders.domain.memory.html b/reference/_skdecide.builders.domain.memory.html index c5f734b0de..2124174459 100644 --- a/reference/_skdecide.builders.domain.memory.html +++ b/reference/_skdecide.builders.domain.memory.html @@ -8,7 +8,7 @@ - + @@ -89,6 +89,6 @@ self,
state: Optional[D.T_state] = None
) -> Memory[D.T_state]

Initialize memory (possibly with a state) according to its specification and return it.

This function is automatically called by Initializable._reset() to reinitialize the internal memory whenever the domain is used as an environment.

# Parameters

# Returns

The new initialized memory.

- + diff --git a/reference/_skdecide.builders.domain.observability.html b/reference/_skdecide.builders.domain.observability.html index f7a722f384..b144d26c67 100644 --- a/reference/_skdecide.builders.domain.observability.html +++ b/reference/_skdecide.builders.domain.observability.html @@ -8,7 +8,7 @@ - + @@ -135,6 +135,6 @@

Check that an observation indeed belongs to the domain observation space.

TIP

By default, this function is implemented using the skdecide.core.Space.contains() function on the domain observation space provided by PartiallyObservable._get_observation_space(), but it can be overridden for faster implementations.

# Parameters

# Returns

True if the observation belongs to the domain observation space (False otherwise).

- + diff --git a/reference/_skdecide.builders.domain.renderability.html b/reference/_skdecide.builders.domain.renderability.html index 920af33906..d94e1b4aa7 100644 --- a/reference/_skdecide.builders.domain.renderability.html +++ b/reference/_skdecide.builders.domain.renderability.html @@ -8,7 +8,7 @@ - + @@ -56,6 +56,6 @@ self,
memory: Memory[D.T_state],
**kwargs: Any
) -> Any

Compute a visual render of the given memory (state or history).

This is a helper function called by default from Renderable._render(), the difference being that the memory parameter is mandatory here.

# Parameters

# Returns

A render (e.g. image) or nothing (if the function handles the display directly).

- + diff --git a/reference/_skdecide.builders.domain.scheduling.conditional_tasks.html b/reference/_skdecide.builders.domain.scheduling.conditional_tasks.html index ea189f8dd7..23533e8ffc 100644 --- a/reference/_skdecide.builders.domain.scheduling.conditional_tasks.html +++ b/reference/_skdecide.builders.domain.scheduling.conditional_tasks.html @@ -8,7 +8,7 @@ - + @@ -186,6 +186,6 @@ self,
task: int
) -> List[int]

Samples the condition distributions associated with the given task and return a list of sampled conditions.

- + diff --git a/reference/_skdecide.builders.domain.scheduling.graph_toolbox.html b/reference/_skdecide.builders.domain.scheduling.graph_toolbox.html index 8939a85766..817b24d3c0 100644 --- a/reference/_skdecide.builders.domain.scheduling.graph_toolbox.html +++ b/reference/_skdecide.builders.domain.scheduling.graph_toolbox.html @@ -8,7 +8,7 @@ - + @@ -45,6 +45,6 @@ GitHub (opens new window)

# builders.domain.scheduling.graph_toolbox

Domain specification

Domain
- + diff --git a/reference/_skdecide.builders.domain.scheduling.modes.html b/reference/_skdecide.builders.domain.scheduling.modes.html index ed3ab0e62f..16ba1ab4e3 100644 --- a/reference/_skdecide.builders.domain.scheduling.modes.html +++ b/reference/_skdecide.builders.domain.scheduling.modes.html @@ -8,7 +8,7 @@ - + @@ -103,6 +103,6 @@ self
) -> Dict[int, Dict[int, ModeConsumption]]

Return a nested dictionary where the first key is a task id and the second key is a mode id. The value is a Mode object defining the resource consumption.

- + diff --git a/reference/_skdecide.builders.domain.scheduling.preallocations.html b/reference/_skdecide.builders.domain.scheduling.preallocations.html index f527b355be..048f53af36 100644 --- a/reference/_skdecide.builders.domain.scheduling.preallocations.html +++ b/reference/_skdecide.builders.domain.scheduling.preallocations.html @@ -8,7 +8,7 @@ - + @@ -57,6 +57,6 @@ self
) -> Dict[int, List[str]]

Return a dictionary where the key is the id of a task (int) and the value indicates the pre-allocated resources for this task (as a list of str)

- + diff --git a/reference/_skdecide.builders.domain.scheduling.precedence.html b/reference/_skdecide.builders.domain.scheduling.precedence.html index ea2aaa1727..704684fc2e 100644 --- a/reference/_skdecide.builders.domain.scheduling.precedence.html +++ b/reference/_skdecide.builders.domain.scheduling.precedence.html @@ -8,7 +8,7 @@ - + @@ -61,6 +61,6 @@

Return the successors of the tasks. Successors are given as a list for a task given as a key.

# _get_successors WithPrecedence

_get_successors(
   self
) -> Dict[int, List[int]]

Return the successors of the tasks. Successors are given as a list for a task given as a key.

- + diff --git a/reference/_skdecide.builders.domain.scheduling.preemptivity.html b/reference/_skdecide.builders.domain.scheduling.preemptivity.html index 32814d6d27..1a10235c46 100644 --- a/reference/_skdecide.builders.domain.scheduling.preemptivity.html +++ b/reference/_skdecide.builders.domain.scheduling.preemptivity.html @@ -8,7 +8,7 @@ - + @@ -165,6 +165,6 @@ 5: ResumeType.Restart 6: ResumeType.NA }

- + diff --git a/reference/_skdecide.builders.domain.scheduling.resource_availability.html b/reference/_skdecide.builders.domain.scheduling.resource_availability.html index c89a79d84f..d636b1cfd5 100644 --- a/reference/_skdecide.builders.domain.scheduling.resource_availability.html +++ b/reference/_skdecide.builders.domain.scheduling.resource_availability.html @@ -8,7 +8,7 @@ - + @@ -94,6 +94,6 @@

Sample an amount of resource availability (int) for the given resource (either resource type or resource unit) at the given time. This number should be the sum of the number of resource available at time t and the number of resource of this type consumed so far).

- + diff --git a/reference/_skdecide.builders.domain.scheduling.resource_consumption.html b/reference/_skdecide.builders.domain.scheduling.resource_consumption.html index feddea85bd..51aae17a98 100644 --- a/reference/_skdecide.builders.domain.scheduling.resource_consumption.html +++ b/reference/_skdecide.builders.domain.scheduling.resource_consumption.html @@ -8,7 +8,7 @@ - + @@ -57,6 +57,6 @@ self
) -> bool

Return true if the domain has variable resource consumption, false if the consumption of resource does not vary in time for any of the tasks

- + diff --git a/reference/_skdecide.builders.domain.scheduling.resource_costs.html b/reference/_skdecide.builders.domain.scheduling.resource_costs.html index 265e356af2..d4a27563ff 100644 --- a/reference/_skdecide.builders.domain.scheduling.resource_costs.html +++ b/reference/_skdecide.builders.domain.scheduling.resource_costs.html @@ -8,7 +8,7 @@ - + @@ -69,6 +69,6 @@ self
) -> Dict[str, float]

Return a dictionary where the key is the name of a resource (str) and the value indicates the cost of using this resource per time unit.

- + diff --git a/reference/_skdecide.builders.domain.scheduling.resource_renewability.html b/reference/_skdecide.builders.domain.scheduling.resource_renewability.html index 53c2abdedc..684dddd8e7 100644 --- a/reference/_skdecide.builders.domain.scheduling.resource_renewability.html +++ b/reference/_skdecide.builders.domain.scheduling.resource_renewability.html @@ -8,7 +8,7 @@ - + @@ -69,6 +69,6 @@ self
) -> Dict[str, bool]

Return a dictionary where the key is a resource name (string) and the value whether this resource is renewable (True) or not (False).

- + diff --git a/reference/_skdecide.builders.domain.scheduling.resource_type.html b/reference/_skdecide.builders.domain.scheduling.resource_type.html index e2453f5c46..d4b031953f 100644 --- a/reference/_skdecide.builders.domain.scheduling.resource_type.html +++ b/reference/_skdecide.builders.domain.scheduling.resource_type.html @@ -8,7 +8,7 @@ - + @@ -83,6 +83,6 @@ An empty dictionary can be used if there are no resource unit matching a resource type.

# _get_resource_units_names WithResourceUnits

_get_resource_units_names(
   self
) -> List[str]

Return the names (string) of all resource units as a list.

- + diff --git a/reference/_skdecide.builders.domain.scheduling.scheduling_domains.html b/reference/_skdecide.builders.domain.scheduling.scheduling_domains.html index 38848014d3..d4401fc2fa 100644 --- a/reference/_skdecide.builders.domain.scheduling.scheduling_domains.html +++ b/reference/_skdecide.builders.domain.scheduling.scheduling_domains.html @@ -8,7 +8,7 @@ - + @@ -2743,6 +2743,6 @@ ATARI games), it is recommended to overwrite Environment._step() to call the external environment and not use the Environment._state_step() helper function.

WARNING

Before calling Environment._step() the first time or when the end of an episode is reached, Initializable._reset() must be called to reset the environment's state.

# Parameters

# Returns

The environment outcome of this step.

- + diff --git a/reference/_skdecide.builders.domain.scheduling.scheduling_domains_modelling.html b/reference/_skdecide.builders.domain.scheduling.scheduling_domains_modelling.html index 4184173c07..3c7d853ef3 100644 --- a/reference/_skdecide.builders.domain.scheduling.scheduling_domains_modelling.html +++ b/reference/_skdecide.builders.domain.scheduling.scheduling_domains_modelling.html @@ -8,7 +8,7 @@ - + @@ -94,6 +94,6 @@ time_progress = True

# Constructor SchedulingAction

SchedulingAction(
   task: Union[int, None],
action: SchedulingActionEnum,
mode: Union[int, None],
time_progress: bool,
resource_unit_names: Optional[Set[str]] = None
)

Initialize self. See help(type(self)) for accurate signature.

- + diff --git a/reference/_skdecide.builders.domain.scheduling.skills.html b/reference/_skdecide.builders.domain.scheduling.skills.html index cee58adc42..aa895b5a11 100644 --- a/reference/_skdecide.builders.domain.scheduling.skills.html +++ b/reference/_skdecide.builders.domain.scheduling.skills.html @@ -8,7 +8,7 @@ - + @@ -98,6 +98,6 @@

Return a nested dictionary where the first key is the name of a task and the second key is the name of a skill. The value defines the details of the skill. E.g. {task: {skill: (detail of skill)}}

- + diff --git a/reference/_skdecide.builders.domain.scheduling.task.html b/reference/_skdecide.builders.domain.scheduling.task.html index 116ec9512d..a0449b85a8 100644 --- a/reference/_skdecide.builders.domain.scheduling.task.html +++ b/reference/_skdecide.builders.domain.scheduling.task.html @@ -8,7 +8,7 @@ - + @@ -45,6 +45,6 @@ GitHub (opens new window)

# builders.domain.scheduling.task

Domain specification

Domain
- + diff --git a/reference/_skdecide.builders.domain.scheduling.task_duration.html b/reference/_skdecide.builders.domain.scheduling.task_duration.html index c1a68dc3c4..ad367ea930 100644 --- a/reference/_skdecide.builders.domain.scheduling.task_duration.html +++ b/reference/_skdecide.builders.domain.scheduling.task_duration.html @@ -8,7 +8,7 @@ - + @@ -157,6 +157,6 @@

Return the upper bound for the task duration of the given task in the given mode.

# _sample_task_duration SimulatedTaskDuration

_sample_task_duration(
   self,
task: int,
mode: Optional[int] = 1,
progress_from: Optional[float] = 0.0
) -> int

Return a task duration for the given task in the given mode.

- + diff --git a/reference/_skdecide.builders.domain.scheduling.task_progress.html b/reference/_skdecide.builders.domain.scheduling.task_progress.html index 6c915134c8..1692d13813 100644 --- a/reference/_skdecide.builders.domain.scheduling.task_progress.html +++ b/reference/_skdecide.builders.domain.scheduling.task_progress.html @@ -8,7 +8,7 @@ - + @@ -55,6 +55,6 @@ self,
task: int,
t_from: int,
t_to: int,
mode: Optional[int],
sampled_duration: Optional[int] = None
) -> float

# Returns

The task progress (float) between t_from and t_to based on the task duration and assuming linear progress.

- + diff --git a/reference/_skdecide.builders.domain.scheduling.time_lag.html b/reference/_skdecide.builders.domain.scheduling.time_lag.html index ad0bdb67de..cd2a7d8903 100644 --- a/reference/_skdecide.builders.domain.scheduling.time_lag.html +++ b/reference/_skdecide.builders.domain.scheduling.time_lag.html @@ -8,7 +8,7 @@ - + @@ -95,6 +95,6 @@ and the second key is the id of another task (int). The value is a TimeLag object containing the MINIMUM and MAXIMUM time (int) that needs to separate the end of the first task to the start of the second task.

- + diff --git a/reference/_skdecide.builders.domain.scheduling.time_windows.html b/reference/_skdecide.builders.domain.scheduling.time_windows.html index c49ed64c12..4f4caa85c2 100644 --- a/reference/_skdecide.builders.domain.scheduling.time_windows.html +++ b/reference/_skdecide.builders.domain.scheduling.time_windows.html @@ -8,7 +8,7 @@ - + @@ -99,6 +99,6 @@ self
) -> Dict[int, TimeWindow]

Return a dictionary where the key is the id of a task (int) and the value is a dictionary of EmptyTimeWindow object.

# Returns

A dictionary of TimeWindow objects.

- + diff --git a/reference/_skdecide.builders.domain.value.html b/reference/_skdecide.builders.domain.value.html index c89767dc1d..2371a5f8b4 100644 --- a/reference/_skdecide.builders.domain.value.html +++ b/reference/_skdecide.builders.domain.value.html @@ -8,7 +8,7 @@ - + @@ -56,6 +56,6 @@ advanced value types).

# Parameters

# Returns

True if the value is compliant (False otherwise).

# _is_positive PositiveCosts

_is_positive(
   self,
cost: D.T_value
) -> bool

Determine if a value is positive (can be overridden for advanced value types).

# Parameters

# Returns

True if the cost is positive (False otherwise).

- + diff --git a/reference/_skdecide.builders.solver.assessability.html b/reference/_skdecide.builders.solver.assessability.html index 90481bae0b..32c0529186 100644 --- a/reference/_skdecide.builders.solver.assessability.html +++ b/reference/_skdecide.builders.solver.assessability.html @@ -8,7 +8,7 @@ - + @@ -77,6 +77,6 @@

where is the current policy, any represents a trajectory sampled from the policy, is the return (cumulative reward) and the initial state for the trajectories.

# Parameters

# Returns

The estimated on-policy utility of the given observation.

- + diff --git a/reference/_skdecide.builders.solver.parallelability.html b/reference/_skdecide.builders.solver.parallelability.html index 7076b79207..321c7e6400 100644 --- a/reference/_skdecide.builders.solver.parallelability.html +++ b/reference/_skdecide.builders.solver.parallelability.html @@ -8,7 +8,7 @@ - + @@ -63,6 +63,6 @@ the set of lambda functions passed to the solver's constructor (e.g. heuristic lambda for heuristic-based solvers), and whether the parallel domain jobs should notify their status via the IPC protocol (required when interacting with other programming languages like C++)

- + diff --git a/reference/_skdecide.builders.solver.policy.html b/reference/_skdecide.builders.solver.policy.html index d2540b1dc8..6dc1ae3182 100644 --- a/reference/_skdecide.builders.solver.policy.html +++ b/reference/_skdecide.builders.solver.policy.html @@ -8,7 +8,7 @@ - + @@ -86,6 +86,6 @@

Check whether the solver's current policy is defined for the given observation.

# Parameters

# Returns

True if the policy is defined for the given observation memory (False otherwise).

# _sample_action Policies

_sample_action(
   self,
observation: StrDict[D.T_observation]
) -> StrDict[List[D.T_event]]

Sample an action for the given observation (from the solver's current policy).

# Parameters

# Returns

The sampled action.

- + diff --git a/reference/_skdecide.builders.solver.restorability.html b/reference/_skdecide.builders.solver.restorability.html index d42b7e72e8..4f0863405a 100644 --- a/reference/_skdecide.builders.solver.restorability.html +++ b/reference/_skdecide.builders.solver.restorability.html @@ -8,7 +8,7 @@ - + @@ -54,6 +54,6 @@

Restore the solver state from given path.

# Parameters

# _save Restorable

_save(
   self,
path: str
) -> None

Save the solver state to given path.

# Parameters

- + diff --git a/reference/_skdecide.core.html b/reference/_skdecide.core.html index fbafc0279b..c1e49c8f11 100644 --- a/reference/_skdecide.core.html +++ b/reference/_skdecide.core.html @@ -8,7 +8,7 @@ - + @@ -171,6 +171,6 @@

Indicate whether this constraint requires the next_state parameter for its computation.

This is a helper function called by default from Constraint.is_constraint_dependent_on_next_state(), the difference being that the result is not cached here.

TIP

The underscore at the end of this function's name is a convention to remind that its result should be constant.

# Returns

True if the constraint computation depends on next_state (False otherwise).

- + diff --git a/reference/_skdecide.domains.html b/reference/_skdecide.domains.html index a2a27d27a2..ae10123562 100644 --- a/reference/_skdecide.domains.html +++ b/reference/_skdecide.domains.html @@ -8,7 +8,7 @@ - + @@ -1936,6 +1936,6 @@ ATARI games), it is recommended to overwrite Environment._step() to call the external environment and not use the Environment._state_step() helper function.

WARNING

Before calling Environment._step() the first time or when the end of an episode is reached, Initializable._reset() must be called to reset the environment's state.

# Parameters

# Returns

The environment outcome of this step.

- + diff --git a/reference/_skdecide.hub.domain.flight_planning.weather_interpolator.weather_tools.common_utils.html b/reference/_skdecide.hub.domain.flight_planning.weather_interpolator.weather_tools.common_utils.html index 49c1f64385..705774a4af 100644 --- a/reference/_skdecide.hub.domain.flight_planning.weather_interpolator.weather_tools.common_utils.html +++ b/reference/_skdecide.hub.domain.flight_planning.weather_interpolator.weather_tools.common_utils.html @@ -8,7 +8,7 @@ - + @@ -54,6 +54,6 @@ :rtype: numpy.array

# intersect_interval

intersect_interval(
   x,
y
)

X and Y given by [low_bound, high_bound]

- + diff --git a/reference/_skdecide.hub.domain.flight_planning.weather_interpolator.weather_tools.interpolator.intergrid.html b/reference/_skdecide.hub.domain.flight_planning.weather_interpolator.weather_tools.interpolator.intergrid.html index f172eb6103..808d163606 100644 --- a/reference/_skdecide.hub.domain.flight_planning.weather_interpolator.weather_tools.interpolator.intergrid.html +++ b/reference/_skdecide.hub.domain.flight_planning.weather_interpolator.weather_tools.interpolator.intergrid.html @@ -8,7 +8,7 @@ - + @@ -51,6 +51,6 @@

query_values = Intergrid(...) ( query_points npt x dim )

# _map_to_uniform_grid Intergrid

_map_to_uniform_grid(
   self,
X
)

clip, map X linear / nonlinear inplace

- + diff --git a/reference/_skdecide.hub.domain.flight_planning.weather_interpolator.weather_tools.std_atm.html b/reference/_skdecide.hub.domain.flight_planning.weather_interpolator.weather_tools.std_atm.html index 09f741ff34..daf6fb66a9 100644 --- a/reference/_skdecide.hub.domain.flight_planning.weather_interpolator.weather_tools.std_atm.html +++ b/reference/_skdecide.hub.domain.flight_planning.weather_interpolator.weather_tools.std_atm.html @@ -8,7 +8,7 @@ - + @@ -239,6 +239,6 @@

Return the speed of sound, given the air temperature.

The temperature units may be deg C, F, K or R ('C', 'F', 'K' or 'R').

The speed units may be 'kt', 'mph', 'km/h', 'm/s' and 'ft/s'.

If the units are not specified, the units in default_units.py are used.

Examples:

Determine speed of sound in knots at 15 deg (default temperature units):

temp2speed_of_sound(15) 661.47882487301808

Determine speed of sound in mph at 120 deg F:

temp2speed_of_sound(120, speed_units = 'mph', temp_units = 'F') 804.73500154991291

- + diff --git a/reference/_skdecide.hub.domain.flight_planning.weather_interpolator.weather_tools.unit_conversion.html b/reference/_skdecide.hub.domain.flight_planning.weather_interpolator.weather_tools.unit_conversion.html index 61786e93ee..c07208d2d2 100644 --- a/reference/_skdecide.hub.domain.flight_planning.weather_interpolator.weather_tools.unit_conversion.html +++ b/reference/_skdecide.hub.domain.flight_planning.weather_interpolator.weather_tools.unit_conversion.html @@ -8,7 +8,7 @@ - + @@ -140,6 +140,6 @@ Thus there will be some variation in density from refinery to refinery.

This function uses the 15 deg C density values provided by BP, with the variation with temperature provided in the Canada Flight Supplement.

The grade may be specified as "80", "100" or "100LL". It defaults to "100LL" if it is not specified.

The temperature defaults to 15 deg C if it is not specified.

- + diff --git a/reference/_skdecide.hub.domain.gym.gym.html b/reference/_skdecide.hub.domain.gym.gym.html index 4ea07463b3..19dc6bd423 100644 --- a/reference/_skdecide.hub.domain.gym.gym.html +++ b/reference/_skdecide.hub.domain.gym.gym.html @@ -8,7 +8,7 @@ - + @@ -1260,6 +1260,6 @@ calling reset() to reset this environment's state.

Accepts an action and returns a tuple (observation, reward, done, info).

# Parameters

# Returns

A tuple with following elements:

# unwrapped Env

unwrapped(
   self
)

Unwrap the scikit-decide domain and return it.

# Returns

The original scikit-decide domain.

- + diff --git a/reference/_skdecide.hub.domain.mastermind.mastermind.html b/reference/_skdecide.hub.domain.mastermind.mastermind.html index 5cd5f1283f..5ef9255498 100644 --- a/reference/_skdecide.hub.domain.mastermind.mastermind.html +++ b/reference/_skdecide.hub.domain.mastermind.mastermind.html @@ -8,7 +8,7 @@ - + @@ -57,6 +57,6 @@

Make a new State object from a sequence or iterable

# _replace State

_replace(
   _self,
**kwds
)

Return a new State object replacing specified fields with new values

- + diff --git a/reference/_skdecide.hub.domain.maze.maze.html b/reference/_skdecide.hub.domain.maze.maze.html index b77e0c77d6..bb34723782 100644 --- a/reference/_skdecide.hub.domain.maze.maze.html +++ b/reference/_skdecide.hub.domain.maze.maze.html @@ -8,7 +8,7 @@ - + @@ -51,6 +51,6 @@

Make a new State object from a sequence or iterable

# _replace State

_replace(
   _self,
**kwds
)

Return a new State object replacing specified fields with new values

# Action

An enumeration.

- + diff --git a/reference/_skdecide.hub.domain.rcpsp.rcpsp_sk.html b/reference/_skdecide.hub.domain.rcpsp.rcpsp_sk.html index fb9f77a0b6..f305ab5df0 100644 --- a/reference/_skdecide.hub.domain.rcpsp.rcpsp_sk.html +++ b/reference/_skdecide.hub.domain.rcpsp.rcpsp_sk.html @@ -8,7 +8,7 @@ - + @@ -45,6 +45,6 @@ GitHub (opens new window)

# hub.domain.rcpsp.rcpsp_sk

Domain specification

Domain
- + diff --git a/reference/_skdecide.hub.domain.rcpsp.rcpsp_sk_parser.html b/reference/_skdecide.hub.domain.rcpsp.rcpsp_sk_parser.html index e27b8e906b..074c016ada 100644 --- a/reference/_skdecide.hub.domain.rcpsp.rcpsp_sk_parser.html +++ b/reference/_skdecide.hub.domain.rcpsp.rcpsp_sk_parser.html @@ -8,7 +8,7 @@ - + @@ -45,6 +45,6 @@ GitHub (opens new window)

# hub.domain.rcpsp.rcpsp_sk_parser

Domain specification

Domain
- + diff --git a/reference/_skdecide.hub.domain.rock_paper_scissors.rock_paper_scissors.html b/reference/_skdecide.hub.domain.rock_paper_scissors.rock_paper_scissors.html index 5dcd66fe21..0a89f19b83 100644 --- a/reference/_skdecide.hub.domain.rock_paper_scissors.rock_paper_scissors.html +++ b/reference/_skdecide.hub.domain.rock_paper_scissors.rock_paper_scissors.html @@ -8,7 +8,7 @@ - + @@ -51,6 +51,6 @@

Make a new State object from a sequence or iterable

# _replace State

_replace(
   _self,
**kwds
)

Return a new State object replacing specified fields with new values

- + diff --git a/reference/_skdecide.hub.domain.simple_grid_world.simple_grid_world.html b/reference/_skdecide.hub.domain.simple_grid_world.simple_grid_world.html index 105a6d23ce..b933d00831 100644 --- a/reference/_skdecide.hub.domain.simple_grid_world.simple_grid_world.html +++ b/reference/_skdecide.hub.domain.simple_grid_world.simple_grid_world.html @@ -8,7 +8,7 @@ - + @@ -51,6 +51,6 @@

Make a new State object from a sequence or iterable

# _replace State

_replace(
   _self,
**kwds
)

Return a new State object replacing specified fields with new values

# Action

An enumeration.

- + diff --git a/reference/_skdecide.hub.solver.aostar.aostar.html b/reference/_skdecide.hub.solver.aostar.aostar.html index 3cf589837b..bbd604cb91 100644 --- a/reference/_skdecide.hub.solver.aostar.aostar.html +++ b/reference/_skdecide.hub.solver.aostar.aostar.html @@ -8,7 +8,7 @@ - + @@ -45,6 +45,6 @@ GitHub (opens new window)

# hub.solver.aostar.aostar

Domain specification

Domain
- + diff --git a/reference/_skdecide.hub.solver.ars.ars.html b/reference/_skdecide.hub.solver.ars.ars.html index 87e1c7777a..65c7a5b250 100644 --- a/reference/_skdecide.hub.solver.ars.ars.html +++ b/reference/_skdecide.hub.solver.ars.ars.html @@ -8,7 +8,7 @@ - + @@ -47,6 +47,6 @@ (opens new window)

# hub.solver.ars.ars

Domain specification

Domain

# flatten

flatten(
   c
)

Generator flattening the structure

- + diff --git a/reference/_skdecide.hub.solver.astar.astar.html b/reference/_skdecide.hub.solver.astar.astar.html index 94437ef7be..aa2971c62c 100644 --- a/reference/_skdecide.hub.solver.astar.astar.html +++ b/reference/_skdecide.hub.solver.astar.astar.html @@ -8,7 +8,7 @@ - + @@ -45,6 +45,6 @@ GitHub (opens new window)

# hub.solver.astar.astar

Domain specification

Domain
- + diff --git a/reference/_skdecide.hub.solver.bfws.bfws.html b/reference/_skdecide.hub.solver.bfws.bfws.html index 52b025f27e..874a3e8063 100644 --- a/reference/_skdecide.hub.solver.bfws.bfws.html +++ b/reference/_skdecide.hub.solver.bfws.bfws.html @@ -8,7 +8,7 @@ - + @@ -45,6 +45,6 @@ GitHub (opens new window)

# hub.solver.bfws.bfws

Domain specification

Domain
- + diff --git a/reference/_skdecide.hub.solver.cgp.cgp.html b/reference/_skdecide.hub.solver.cgp.cgp.html index 60ce9f06aa..e7de26502b 100644 --- a/reference/_skdecide.hub.solver.cgp.cgp.html +++ b/reference/_skdecide.hub.solver.cgp.cgp.html @@ -8,7 +8,7 @@ - + @@ -63,6 +63,6 @@ :param vals: an array of [-1,1] normalised values :param types: the gym types corresponding to vals :return: the same vals array with denormalised values

- + diff --git a/reference/_skdecide.hub.solver.cgp.pycgp.cgp.html b/reference/_skdecide.hub.solver.cgp.pycgp.cgp.html index 91682bbe13..0b435c0e67 100644 --- a/reference/_skdecide.hub.solver.cgp.pycgp.cgp.html +++ b/reference/_skdecide.hub.solver.cgp.pycgp.cgp.html @@ -8,7 +8,7 @@ - + @@ -45,6 +45,6 @@ GitHub (opens new window)

# hub.solver.cgp.pycgp.cgp

Domain specification

Domain
- + diff --git a/reference/_skdecide.hub.solver.cgp.pycgp.cgpes.html b/reference/_skdecide.hub.solver.cgp.pycgp.cgpes.html index aaa74dc80b..61e4c025fb 100644 --- a/reference/_skdecide.hub.solver.cgp.pycgp.cgpes.html +++ b/reference/_skdecide.hub.solver.cgp.pycgp.cgpes.html @@ -8,7 +8,7 @@ - + @@ -45,6 +45,6 @@ GitHub (opens new window)

# hub.solver.cgp.pycgp.cgpes

Domain specification

Domain
- + diff --git a/reference/_skdecide.hub.solver.cgp.pycgp.cgpfunctions.html b/reference/_skdecide.hub.solver.cgp.pycgp.cgpfunctions.html index 43028c8a07..21dabb0c25 100644 --- a/reference/_skdecide.hub.solver.cgp.pycgp.cgpfunctions.html +++ b/reference/_skdecide.hub.solver.cgp.pycgp.cgpfunctions.html @@ -8,7 +8,7 @@ - + @@ -45,6 +45,6 @@ GitHub (opens new window)

# hub.solver.cgp.pycgp.cgpfunctions

Domain specification

Domain
- + diff --git a/reference/_skdecide.hub.solver.cgp.pycgp.evaluator.html b/reference/_skdecide.hub.solver.cgp.pycgp.evaluator.html index 3ff0db03a7..9ac073004f 100644 --- a/reference/_skdecide.hub.solver.cgp.pycgp.evaluator.html +++ b/reference/_skdecide.hub.solver.cgp.pycgp.evaluator.html @@ -8,7 +8,7 @@ - + @@ -45,6 +45,6 @@ GitHub (opens new window)

# hub.solver.cgp.pycgp.evaluator

Domain specification

Domain
- + diff --git a/reference/_skdecide.hub.solver.do_solver.do_solver_scheduling.html b/reference/_skdecide.hub.solver.do_solver.do_solver_scheduling.html index 9aa5a66d45..18249a4214 100644 --- a/reference/_skdecide.hub.solver.do_solver.do_solver_scheduling.html +++ b/reference/_skdecide.hub.solver.do_solver.do_solver_scheduling.html @@ -8,7 +8,7 @@ - + @@ -45,6 +45,6 @@ GitHub (opens new window)

# hub.solver.do_solver.do_solver_scheduling

Domain specification

Domain

# SolvingMethod

An enumeration.

- + diff --git a/reference/_skdecide.hub.solver.do_solver.sk_to_do_binding.html b/reference/_skdecide.hub.solver.do_solver.sk_to_do_binding.html index d9a1d5c846..21e43d133a 100644 --- a/reference/_skdecide.hub.solver.do_solver.sk_to_do_binding.html +++ b/reference/_skdecide.hub.solver.do_solver.sk_to_do_binding.html @@ -8,7 +8,7 @@ - + @@ -45,6 +45,6 @@ GitHub (opens new window)

# hub.solver.do_solver.sk_to_do_binding

Domain specification

Domain
- + diff --git a/reference/_skdecide.hub.solver.gphh.gphh.html b/reference/_skdecide.hub.solver.gphh.gphh.html index 4f2a973dfb..eadbc7a29c 100644 --- a/reference/_skdecide.hub.solver.gphh.gphh.html +++ b/reference/_skdecide.hub.solver.gphh.gphh.html @@ -8,7 +8,7 @@ - + @@ -53,6 +53,6 @@

Will only work if you store cpm results into the object. dirty trick

# feature_lfd

feature_lfd(
   domain: SchedulingDomain,
cpm,
cpm_esd,
task_id: int,
**kwargs
)

Will only work if you store cpm results into the object. dirty trick

# FeatureEnum

An enumeration.

# EvaluationGPHH

An enumeration.

# PermutationDistance

An enumeration.

# PoolAggregationMethod

An enumeration.

- + diff --git a/reference/_skdecide.hub.solver.graph_explorer.DFSExploration.html b/reference/_skdecide.hub.solver.graph_explorer.DFSExploration.html index 91111e829e..eed6739680 100644 --- a/reference/_skdecide.hub.solver.graph_explorer.DFSExploration.html +++ b/reference/_skdecide.hub.solver.graph_explorer.DFSExploration.html @@ -8,7 +8,7 @@ - + @@ -45,6 +45,6 @@ GitHub (opens new window)

# hub.solver.graph_explorer.DFSExploration

Domain specification

Domain
- + diff --git a/reference/_skdecide.hub.solver.graph_explorer.DFS_Uncertain_Exploration.html b/reference/_skdecide.hub.solver.graph_explorer.DFS_Uncertain_Exploration.html index 9e9c90483f..50cb00e099 100644 --- a/reference/_skdecide.hub.solver.graph_explorer.DFS_Uncertain_Exploration.html +++ b/reference/_skdecide.hub.solver.graph_explorer.DFS_Uncertain_Exploration.html @@ -8,7 +8,7 @@ - + @@ -45,6 +45,6 @@ GitHub (opens new window)

# hub.solver.graph_explorer.DFS_Uncertain_Exploration

Domain specification

Domain
- + diff --git a/reference/_skdecide.hub.solver.graph_explorer.FullSpaceExploration.html b/reference/_skdecide.hub.solver.graph_explorer.FullSpaceExploration.html index 1218c8cb8f..359effe918 100644 --- a/reference/_skdecide.hub.solver.graph_explorer.FullSpaceExploration.html +++ b/reference/_skdecide.hub.solver.graph_explorer.FullSpaceExploration.html @@ -8,7 +8,7 @@ - + @@ -47,6 +47,6 @@ (opens new window)

# hub.solver.graph_explorer.FullSpaceExploration

Domain specification

Domain

# reachable_states

reachable_states(
   self,
s0: Any
)

Computes all states reachable from s0.

- + diff --git a/reference/_skdecide.hub.solver.graph_explorer.GraphDomain.html b/reference/_skdecide.hub.solver.graph_explorer.GraphDomain.html index ff3327d6df..9ee5bd278f 100644 --- a/reference/_skdecide.hub.solver.graph_explorer.GraphDomain.html +++ b/reference/_skdecide.hub.solver.graph_explorer.GraphDomain.html @@ -8,7 +8,7 @@ - + @@ -45,6 +45,6 @@ GitHub (opens new window)

# hub.solver.graph_explorer.GraphDomain

Domain specification

Domain
- + diff --git a/reference/_skdecide.hub.solver.graph_explorer.GraphExploration.html b/reference/_skdecide.hub.solver.graph_explorer.GraphExploration.html index 6b04f0dbf4..35d3de38d6 100644 --- a/reference/_skdecide.hub.solver.graph_explorer.GraphExploration.html +++ b/reference/_skdecide.hub.solver.graph_explorer.GraphExploration.html @@ -8,7 +8,7 @@ - + @@ -45,6 +45,6 @@ GitHub (opens new window)

# hub.solver.graph_explorer.GraphExploration

Domain specification

Domain
- + diff --git a/reference/_skdecide.hub.solver.ilaostar.ilaostar.html b/reference/_skdecide.hub.solver.ilaostar.ilaostar.html index 71f9cb5bd2..ab8aad0b08 100644 --- a/reference/_skdecide.hub.solver.ilaostar.ilaostar.html +++ b/reference/_skdecide.hub.solver.ilaostar.ilaostar.html @@ -8,7 +8,7 @@ - + @@ -45,6 +45,6 @@ GitHub (opens new window)

# hub.solver.ilaostar.ilaostar

Domain specification

Domain
- + diff --git a/reference/_skdecide.hub.solver.iw.iw.html b/reference/_skdecide.hub.solver.iw.iw.html index 20aa102ab1..ea3b469693 100644 --- a/reference/_skdecide.hub.solver.iw.iw.html +++ b/reference/_skdecide.hub.solver.iw.iw.html @@ -8,7 +8,7 @@ - + @@ -45,6 +45,6 @@ GitHub (opens new window)

# hub.solver.iw.iw

Domain specification

Domain
- + diff --git a/reference/_skdecide.hub.solver.lazy_astar.lazy_astar.html b/reference/_skdecide.hub.solver.lazy_astar.lazy_astar.html index 670fa03486..eed9e2e6fe 100644 --- a/reference/_skdecide.hub.solver.lazy_astar.lazy_astar.html +++ b/reference/_skdecide.hub.solver.lazy_astar.lazy_astar.html @@ -8,7 +8,7 @@ - + @@ -45,6 +45,6 @@ GitHub (opens new window)

# hub.solver.lazy_astar.lazy_astar

Domain specification

Domain
- + diff --git a/reference/_skdecide.hub.solver.lrtastar.lrtastar.html b/reference/_skdecide.hub.solver.lrtastar.lrtastar.html index 3cec7b7cd5..6ce46c0431 100644 --- a/reference/_skdecide.hub.solver.lrtastar.lrtastar.html +++ b/reference/_skdecide.hub.solver.lrtastar.lrtastar.html @@ -8,7 +8,7 @@ - + @@ -45,6 +45,6 @@ GitHub (opens new window)

# hub.solver.lrtastar.lrtastar

Domain specification

Domain
- + diff --git a/reference/_skdecide.hub.solver.lrtdp.lrtdp.html b/reference/_skdecide.hub.solver.lrtdp.lrtdp.html index ecb68e579d..2138af7469 100644 --- a/reference/_skdecide.hub.solver.lrtdp.lrtdp.html +++ b/reference/_skdecide.hub.solver.lrtdp.lrtdp.html @@ -8,7 +8,7 @@ - + @@ -45,6 +45,6 @@ GitHub (opens new window)

# hub.solver.lrtdp.lrtdp

Domain specification

Domain
- + diff --git a/reference/_skdecide.hub.solver.mahd.mahd.html b/reference/_skdecide.hub.solver.mahd.mahd.html index 485d355eb8..baf431ac69 100644 --- a/reference/_skdecide.hub.solver.mahd.mahd.html +++ b/reference/_skdecide.hub.solver.mahd.mahd.html @@ -8,7 +8,7 @@ - + @@ -45,6 +45,6 @@ GitHub (opens new window)

# hub.solver.mahd.mahd

Domain specification

Domain
- + diff --git a/reference/_skdecide.hub.solver.martdp.martdp.html b/reference/_skdecide.hub.solver.martdp.martdp.html index 751ec95bae..5a98edcbf2 100644 --- a/reference/_skdecide.hub.solver.martdp.martdp.html +++ b/reference/_skdecide.hub.solver.martdp.martdp.html @@ -8,7 +8,7 @@ - + @@ -45,6 +45,6 @@ GitHub (opens new window)

# hub.solver.martdp.martdp

Domain specification

Domain
- + diff --git a/reference/_skdecide.hub.solver.maxent_irl.maxent_irl.html b/reference/_skdecide.hub.solver.maxent_irl.maxent_irl.html index 3e8cc479e2..4ea42b52eb 100644 --- a/reference/_skdecide.hub.solver.maxent_irl.maxent_irl.html +++ b/reference/_skdecide.hub.solver.maxent_irl.maxent_irl.html @@ -8,7 +8,7 @@ - + @@ -45,6 +45,6 @@ GitHub (opens new window)

# hub.solver.maxent_irl.maxent_irl

Domain specification

Domain
- + diff --git a/reference/_skdecide.hub.solver.mcts.mcts.html b/reference/_skdecide.hub.solver.mcts.mcts.html index 8ad2aff9be..8144ab2a63 100644 --- a/reference/_skdecide.hub.solver.mcts.mcts.html +++ b/reference/_skdecide.hub.solver.mcts.mcts.html @@ -8,7 +8,7 @@ - + @@ -45,6 +45,6 @@ GitHub (opens new window)

# hub.solver.mcts.mcts

Domain specification

Domain
- + diff --git a/reference/_skdecide.hub.solver.meta_policy.meta_policies.html b/reference/_skdecide.hub.solver.meta_policy.meta_policies.html index 5574e7ba51..20b2ad901a 100644 --- a/reference/_skdecide.hub.solver.meta_policy.meta_policies.html +++ b/reference/_skdecide.hub.solver.meta_policy.meta_policies.html @@ -8,7 +8,7 @@ - + @@ -45,6 +45,6 @@ GitHub (opens new window)

# hub.solver.meta_policy.meta_policies

Domain specification

Domain
- + diff --git a/reference/_skdecide.hub.solver.pile_policy.pile_policy.html b/reference/_skdecide.hub.solver.pile_policy.pile_policy.html index 0cef8b0ae2..19c476dfd1 100644 --- a/reference/_skdecide.hub.solver.pile_policy.pile_policy.html +++ b/reference/_skdecide.hub.solver.pile_policy.pile_policy.html @@ -8,7 +8,7 @@ - + @@ -45,6 +45,6 @@ GitHub (opens new window)

# hub.solver.pile_policy.pile_policy

Domain specification

Domain

# GreedyChoice

An enumeration.

- + diff --git a/reference/_skdecide.hub.solver.policy_evaluators.policy_evaluator.html b/reference/_skdecide.hub.solver.policy_evaluators.policy_evaluator.html index 22950180dc..3d36fa15b5 100644 --- a/reference/_skdecide.hub.solver.policy_evaluators.policy_evaluator.html +++ b/reference/_skdecide.hub.solver.policy_evaluators.policy_evaluator.html @@ -8,7 +8,7 @@ - + @@ -45,6 +45,6 @@ GitHub (opens new window)

# hub.solver.policy_evaluators.policy_evaluator

Domain specification

Domain
- + diff --git a/reference/_skdecide.hub.solver.pomcp.pomcp.html b/reference/_skdecide.hub.solver.pomcp.pomcp.html index 17f1461f40..6902cba744 100644 --- a/reference/_skdecide.hub.solver.pomcp.pomcp.html +++ b/reference/_skdecide.hub.solver.pomcp.pomcp.html @@ -8,7 +8,7 @@ - + @@ -48,6 +48,6 @@ distribution,
element,
n = 100
)

Utility function to get the probability of a specific element from a scikit-decide distribution (based on sampling if this distribution is not a DiscreteDistribution).

- + diff --git a/reference/_skdecide.hub.solver.ray_rllib.ray_rllib.html b/reference/_skdecide.hub.solver.ray_rllib.ray_rllib.html index 361d37cf2a..f21eb3117b 100644 --- a/reference/_skdecide.hub.solver.ray_rllib.ray_rllib.html +++ b/reference/_skdecide.hub.solver.ray_rllib.ray_rllib.html @@ -8,7 +8,7 @@ - + @@ -111,6 +111,6 @@ self,
memory: Memory[D.T_state]
) -> None

Run the solving process from a given state.

TIP

Create the domain first by calling the @Solver.reset() method

# Parameters

TIP

The nature of the solutions produced here depends on other solver's characteristics like policy and assessibility.

- + diff --git a/reference/_skdecide.hub.solver.riw.riw.html b/reference/_skdecide.hub.solver.riw.riw.html index 9391c56511..a7d88d150a 100644 --- a/reference/_skdecide.hub.solver.riw.riw.html +++ b/reference/_skdecide.hub.solver.riw.riw.html @@ -8,7 +8,7 @@ - + @@ -45,6 +45,6 @@ GitHub (opens new window)

# hub.solver.riw.riw

Domain specification

Domain
- + diff --git a/reference/_skdecide.hub.solver.sgs_policies.sgs_policies.html b/reference/_skdecide.hub.solver.sgs_policies.sgs_policies.html index eaa8a55a85..a6672cb6ef 100644 --- a/reference/_skdecide.hub.solver.sgs_policies.sgs_policies.html +++ b/reference/_skdecide.hub.solver.sgs_policies.sgs_policies.html @@ -8,7 +8,7 @@ - + @@ -45,6 +45,6 @@ GitHub (opens new window)

# hub.solver.sgs_policies.sgs_policies

Domain specification

Domain

# BasePolicyMethod

An enumeration.

- + diff --git a/reference/_skdecide.hub.solver.simple_greedy.simple_greedy.html b/reference/_skdecide.hub.solver.simple_greedy.simple_greedy.html index ebd26e2a8a..c806ebea7a 100644 --- a/reference/_skdecide.hub.solver.simple_greedy.simple_greedy.html +++ b/reference/_skdecide.hub.solver.simple_greedy.simple_greedy.html @@ -8,7 +8,7 @@ - + @@ -45,6 +45,6 @@ GitHub (opens new window)

# hub.solver.simple_greedy.simple_greedy

Domain specification

Domain
- + diff --git a/reference/_skdecide.hub.solver.stable_baselines.stable_baselines.html b/reference/_skdecide.hub.solver.stable_baselines.stable_baselines.html index b495b14c12..28f72e753f 100644 --- a/reference/_skdecide.hub.solver.stable_baselines.stable_baselines.html +++ b/reference/_skdecide.hub.solver.stable_baselines.stable_baselines.html @@ -8,7 +8,7 @@ - + @@ -111,6 +111,6 @@ self,
memory: Memory[D.T_state]
) -> None

Run the solving process from a given state.

TIP

Create the domain first by calling the @Solver.reset() method

# Parameters

TIP

The nature of the solutions produced here depends on other solver's characteristics like policy and assessibility.

- + diff --git a/reference/_skdecide.hub.space.gym.gym.html b/reference/_skdecide.hub.space.gym.gym.html index 530c7192c9..4d095da619 100644 --- a/reference/_skdecide.hub.space.gym.gym.html +++ b/reference/_skdecide.hub.space.gym.gym.html @@ -8,7 +8,7 @@ - + @@ -179,6 +179,6 @@

Convert a batch of samples from this space to a JSONable data type.

# Parameters

# Returns

The resulting JSONable data type.

# unwrapped GymSpace

unwrapped(
   self
) -> gym_spaces.Dict

Unwrap the Gym Dict space (gym.spaces.Dict) and return it.

# Returns

The original Gym Dict space created from the dataclass.

- + diff --git a/reference/_skdecide.parallel_domains.html b/reference/_skdecide.parallel_domains.html index b878c04e6d..31f5ebc6f7 100644 --- a/reference/_skdecide.parallel_domains.html +++ b/reference/_skdecide.parallel_domains.html @@ -8,7 +8,7 @@ - + @@ -61,6 +61,6 @@ domain is chosen and its id is returned to the incoming request.

# Constructor ShmParallelDomain

ShmParallelDomain(
   domain_factory,
shm_proxy,
lambdas = None,
nb_domains = 4,
ipc_notify = False
)

Initialize self. See help(type(self)) for accurate signature.

- + diff --git a/reference/_skdecide.solvers.html b/reference/_skdecide.solvers.html index 5a6ae8ce27..89d494ebdb 100644 --- a/reference/_skdecide.solvers.html +++ b/reference/_skdecide.solvers.html @@ -8,7 +8,7 @@ - + @@ -163,6 +163,6 @@ self,
memory: Memory[D.T_state]
) -> None

Run the solving process from a given state.

TIP

Create the domain first by calling the @Solver.reset() method

# Parameters

TIP

The nature of the solutions produced here depends on other solver's characteristics like policy and assessibility.

- + diff --git a/reference/_skdecide.utils.html b/reference/_skdecide.utils.html index 4174bb733f..153fc2ddb9 100644 --- a/reference/_skdecide.utils.html +++ b/reference/_skdecide.utils.html @@ -8,7 +8,7 @@ - + @@ -49,6 +49,6 @@

This method will run one or more episodes in a domain according to the policy of a solver.

# Parameters

# rollout_episode

rollout_episode(
   domain: Domain,
solver: Optional[Union[Solver, Policies]] = None,
from_memory: Optional[Memory[D.T_state]] = None,
from_action: Optional[StrDict[List[D.T_event]]] = None,
num_episodes: int = 1,
max_steps: Optional[int] = None,
render: bool = True,
max_framerate: Optional[float] = None,
verbose: bool = True,
action_formatter: Optional[Callable[[D.T_event], str]] = None,
outcome_formatter: Optional[Callable[[EnvironmentOutcome], str]] = None,
save_result_directory: str = None
) -> Tuple[List[D.T_observation], List[D.T_event], List[D.T_value]]

This method will run one or more episodes in a domain according to the policy of a solver.

# Parameters

- + diff --git a/reference/index.html b/reference/index.html index b64a9ba0df..fd4b78c76b 100644 --- a/reference/index.html +++ b/reference/index.html @@ -8,7 +8,7 @@ - + @@ -45,6 +45,6 @@ GitHub (opens new window)
- +