def sample_ars_params(trial: optuna.Trial, n_actions: int, n_envs: int, additional_args: dict) -> dict[str, Any]:
    """
    Sampler for ARS hyperparams.
    :param trial:
    :return:
    """
    # n_eval_episodes = trial.suggest_categorical("n_eval_episodes", [1, 2])
    # From 2**2 to 2**6 = 64
    n_delta_pow = trial.suggest_int("n_delta_pow", 2, 6)

    learning_rate = trial.suggest_float("learning_rate", 1e-5, 0.002, log=True)
    delta_std = trial.suggest_float("delta_std", 0.01, 0.3)
    top_frac_size = trial.suggest_float("top_frac_size", 0.05, 1.0)
    # zero_policy = trial.suggest_categorical("zero_policy", [True, False])

    # net_arch = trial.suggest_categorical("net_arch", ["linear", "tiny", "small"])
    # TODO: optimize the alive_bonus_offset too

    return convert_ars_params(
        {
            # "n_eval_episodes": n_eval_episodes,
            "n_delta_pow": n_delta_pow,
            "learning_rate": learning_rate,
            "delta_std": delta_std,
            "top_frac_size": top_frac_size,
            # "zero_policy": zero_policy,
        }
    )

    Sampler for ARS hyperparams.
    :param trial:
    :return:
    
rl_zoo3/hyperparams_opt.py