docstr: input:  
      obs_n: all agents' observation, shape([B] + shape of obs_n)
  output: 
      act_n: all agents' action, shape([B] + shape of act_n)
docstr_tok: ["input",":","obs_n",":","all","agents","'","observation",",","shape","(","[","B","]","+","shape","of","obs_n",")","output",":","act_n",":","all","agents","'","action",",","shape","(","[","B","]","+","shape","of","act_n",")"]
code: def Q_next(self, obs_n, act_n):
      """input:
          obs_n: all agents' observation, shape([B] + shape of obs_n)
      output:
          act_n: all agents' action, shape([B] + shape of act_n)
      """
      return self.target_model.value(obs_n, act_n)
  
file_path: PARL/parl/algorithms/fluid/maddpg.py
imports: import warnings
  from parl.core.fluid import layers
  from copy import deepcopy
  from paddle import fluid
  from parl.core.fluid.algorithm import Algorithm
  from parl.core.fluid.policy_distribution import SoftCategoricalDistribution
  from parl.core.fluid.policy_distribution import SoftMultiCategoricalDistribution
label_desc: Use image node_id 5 for calling the MADDPG obj's underlying member method code with example usage: obj.Q_next(obs_n, act_n) and returns: self