code: def get_all_q_values_for_states_and_softmax_probabilities(
      self, states: StateType
  ):
      actions_q_values, softmax_probabilities = None, None
      if self.exploration_policy.requires_action_values():
          outputs = copy(self.networks["main"].online_network.outputs)
          outputs.append(
              self.networks["main"]
              .online_network.output_heads[0]
              .softmax
          )
  
          actions_q_values, softmax_probabilities = self.get_prediction(
              states, outputs=outputs
          )
      return actions_q_values, softmax_probabilities
  
imports: from collections import OrderedDict
  from typing import Union, List
  import numpy
  from rl_coach.agents.agent import Agent
  from rl_coach.core_types import ActionInfo, StateType, Batch
  from rl_coach.filters.filter import NoInputFilter
  from rl_coach.logger import screen
  from rl_coach.memories.non_episodic.prioritized_experience_replay import PrioritizedExperienceReplay
  from rl_coach.spaces import DiscreteActionSpace
  from copy import deepcopy, copy
label_desc: Use image node_id 4 for calling the ValueOptimizationAgent obj's underlying member method code with example usage: obj.get_all_q_values_for_states_and_softmax_probabilities(states) and returns: actions_q_values,  softmax_probabilities