def determine_current_epsilon(time_step,
                              fifty_percent_chance=100,
                              start_epsilon=1.0,
                              min_epsilon=0.1):
    """Determines the current epsilon value.

    :param time_step: The current time step from the training procedure.
    :param fifty_percent_chance: The time step at which epsilon shall be 0.5.
    :param start_epsilon: The initial value for epsilon.
    :param min_epsilon: The minimal value for epsilon.
    :return: A probability for choosing a random action. (epsilon)
    """
    return max(
        min_epsilon,
        start_epsilon / (1 + (time_step / fifty_percent_chance))
    )