class_docstr: A Qtopt Agent.
  
  Implements the Qt-Opt algorithm from
  
  "QT-Opt: Scalable Deep Reinforcement Learning for Vision-Based Robotic "
    "Manipulation"
  
   Dmitry Kalashnikov et al., 2018
   https://arxiv.org/abs/1806.10293
code: def _compute_next_q_values(
      self, next_time_steps, info, network_state=()
  ):
      if not self._in_graph_bellman_update:
          return info["target_q"]
  
      next_action_policy_step = self._policy.action(
          next_time_steps, network_state
      )
  
      if self._enable_td3:
          q_values_target_delayed, _ = self._target_q_network_delayed(
              (
                  next_time_steps.observation,
                  next_action_policy_step.action,
              ),
              step_type=next_time_steps.step_type,
              network_state=network_state,
              training=False,
          )
  
          (
              q_values_target_delayed_2,
              _,
          ) = self._target_q_network_delayed_2(
              (
                  next_time_steps.observation,
                  next_action_policy_step.action,
              ),
              step_type=next_time_steps.step_type,
              network_state=network_state,
              training=False,
          )
  
          q_next_state = tf.minimum(
              q_values_target_delayed_2, q_values_target_delayed
          )
      else:
          q_next_state, _ = self._target_q_network(
              (
                  next_time_steps.observation,
                  next_action_policy_step.action,
              ),
              step_type=next_time_steps.step_type,
              network_state=network_state,
              training=False,
          )
  
      if self._q_network.state_spec:
          q_next_state = q_next_state[:, 1:]
      return q_next_state
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import typing
  import gin
  import tensorflow
  from tf_agents.agents import data_converter
  from tf_agents.agents import tf_agent
  from tf_agents.networks import utils
  from tf_agents.policies import epsilon_greedy_policy
  from tf_agents.policies import qtopt_cem_policy
  from tf_agents.specs import tensor_spec
  from tf_agents.typing import types
  from tf_agents.utils import common
  from tf_agents.utils import eager_utils
  from tf_agents.utils import nest_utils
label_desc: Use image node_id 16 for calling the QtOptAgent obj's underlying member method code with example usage: obj._compute_next_q_values(next_time_steps, info, network_state) and returns: q_next_state, info