class_docstr: Model-Based Offline Planning (MBOP) learner.
  
  See https://arxiv.org/abs/2008.05556 for more information.
class_docstr_tok: ["Model-Based","Offline","Planning","(","MBOP",")","learner",".","See","https",":","\/\/arxiv.org\/abs\/2008.05556","for","more","information","."]
code: def step(self):
      # Step the world model, policy learner and n-step return learners.
      self._world_model.step()
      self._policy_prior.step()
      self._n_step_return.step()
  
      # Compute the elapsed time.
      timestamp = time.time()
      elapsed_time = (
          timestamp - self._timestamp if self._timestamp else 0
      )
      self._timestamp = timestamp
      # Increment counts and record the current time.
      counts = self._counter.increment(steps=1, walltime=elapsed_time)
      # Attempt to write the logs.
      self._logger.write({**counts})
  
imports: import dataclasses
  import functools
  import itertools
  import time
  from typing import Any, Callable, Iterator, List, Optional
  from acme import core
  from acme import types
  from acme.agents.jax import bc
  from acme.agents.jax.mbop import ensemble
  from acme.agents.jax.mbop import losses
  from acme.agents.jax.mbop import networks
  from acme.jax import networks
  from acme.jax import types
  from acme.jax import utils
  from acme.utils import counting
  from acme.utils import loggers
  import jax
  import jax.numpy
  import optax
label_desc: Use image node_id 2 for calling the MBOPLearner obj's underlying member method code with example usage: obj.step() without return types