class_docstr: A simulator model, which wraps a copy of the true environment.
  
  Assumptions:
    - The environment (including RNG) is fully copyable via `deepcopy`.
    - Environment dynamics (modulo episode resets) are deterministic.
class_docstr_tok: ["A","simulator","model",",","which","wraps","a","copy","of","the","true","environment",".","Assumptions",":","-","The","environment","(","including","RNG",")","is","fully","copyable","via","`","deepcopy","`",".","-","Environment","dynamics","(","modulo","episode","resets",")","are","deterministic","."]
code: def __init__(self, env: dm_env.Environment):
      # Make a 'checkpoint' copy env to save/load from when doing rollouts.
      self._env = copy.deepcopy(env)
      self._needs_reset = True
      self.save_checkpoint()
  
file_path: acme/acme/agents/tf/mcts/models/simulator.py
imports: import copy
  import dataclasses
  from acme.agents.tf.mcts import types
  from acme.agents.tf.mcts.models import base
  import dm_env
label_desc: Use image node_id 1 to create a new Simulator object from inherited base classes: base with example: obj = Simulator(env)