def utilization_threshold_abstract(f, limit, utilization):
    """ The abstract utilization threshold algorithm.

    :param f: A function to calculate the utilization threshold.
     :type f: function

    :param limit: The minimum allowed length of the utilization history.
     :type limit: int

    :param utilization: The utilization history to analize.
     :type utilization: list(float)

    :return: A decision of whether the host is overloaded.
     :rtype: bool
    """
    if (len(utilization) < limit):
        return False
    return f(utilization) <= utilization[-1]