class_docstr: Mixin class to add logging capability in N player games with
  discrete actions.
  Logs the frequency of action profiles used
  (action profile: the set of actions used during one step by all players).
class_docstr_tok: ["Mixin","class","to","add","logging","capability","in","N","player","games","with","discrete","actions",".","Logs","the","frequency","of","action","profiles","used","(","action","profile",":","the","set","of","actions","used","during","one","step","by","all","players",")","."]
code: def _accumulate_info(self, *actions):
      id = "_".join([str(a) for a in actions])
      if id not in self.info_counters:
          self.info_counters[id] = 0
      self.info_counters[id] += 1
      self.info_counters["n_steps_accumulated"] += 1
  
file_path: ray/rllib/examples/env/utils/mixins.py
imports: from abc import ABC
  import numpy
  from ray.rllib.examples.env.utils.interfaces import InfoAccumulationInterface
label_desc: Use image node_id 4 for calling the NPlayersNDiscreteActionsInfoMixin obj's underlying member method code with example usage: obj._accumulate_info() without return types