class_docstr: Defines a configuration class from which QMix can be built.
  
  Example:
      >>> from ray.rllib.examples.env.two_step_game import TwoStepGame
      >>> from rllib_qmix.qmix import QMixConfig
      >>> config = QMixConfig()  # doctest: +SKIP
      >>> config = config.training(gamma=0.9, lr=0.01, kl_coeff=0.3)  # doctest: +SKIP
      >>> config = config.resources(num_gpus=0)  # doctest: +SKIP
      >>> config = config.rollouts(num_rollout_workers=4)  # doctest: +SKIP
      >>> print(config.to_dict())  # doctest: +SKIP
      >>> # Build an Algorithm object from the config and run 1 training iteration.
      >>> algo = config.build(env=TwoStepGame)  # doctest: +SKIP
      >>> algo.train()  # doctest: +SKIP
  
  Example:
      >>> from ray.rllib.examples.env.two_step_game import TwoStepGame
      >>> from rllib_qmix.qmix import QMixConfig
      >>> from ray import air
      >>> from ray import tune
      >>> config = QMixConfig()
      >>> # Print out some default values.
      >>> print(config.optim_alpha)  # doctest: +SKIP
      >>> # Update the config object.
      >>> config.training(  # doctest: +SKIP
      ...     lr=tune.grid_search([0.001, 0.0001]), optim_alpha=0.97
      ... )
      >>> # Set the config object's env.
      >>> config.environment(env=TwoStepGame)  # doctest: +SKIP
      >>> # Use to_dict() to get the old-style python config dict
      >>> # when running with tune.
      >>> tune.Tuner(  # doctest: +SKIP
      ...     "QMix",
      ...     run_config=air.RunConfig(stop={"episode_reward_mean": 200}),
      ...     param_space=config.to_dict(),
      ... ).fit()
docstr: Initializes a PPOConfig instance.
docstr_tok: ["Initializes","a","PPOConfig","instance","."]
imports: from typing import Optional, Type
  from rllib_qmix.qmix.qmix_policy import QMixTorchPolicy
  from ray.rllib.algorithms.algorithm_config import AlgorithmConfig, NotProvided
  from ray.rllib.algorithms.simple_q.simple_q import SimpleQ, SimpleQConfig
  from ray.rllib.execution.rollout_ops import synchronous_parallel_sample
  from ray.rllib.execution.train_ops import multi_gpu_train_one_step, train_one_step
  from ray.rllib.policy.policy import Policy
  from ray.rllib.utils.annotations import override
  from ray.rllib.utils.deprecation import DEPRECATED_VALUE, deprecation_warning
  from ray.rllib.utils.metrics import LAST_TARGET_UPDATE_TS, NUM_AGENT_STEPS_SAMPLED, NUM_ENV_STEPS_SAMPLED, NUM_TARGET_UPDATES, SAMPLE_TIMER, SYNCH_WORKER_WEIGHTS_TIMER
  from ray.rllib.utils.replay_buffers.utils import sample_min_n_steps_from_buffer, update_priorities_in_replay_buffer
  from ray.rllib.utils.typing import ResultDict
label_desc: Use image node_id 1 to create a new QMixConfig object from inherited base classes: SimpleQConfig with example: obj = QMixConfig()