public void updateAREDParameters()
    {
        double max_p = getMaxP();
        if ((getAvg() > TARGET_HIGH) && (getMaxP() <= 0.5))
        {
            // increase max_p
            setMaxP(max_p + ALPHA);
        }
        else if ((getAvg() < TARGET_LOW) && (max_p >= 0.01))
        {
            // decrease max_p
            setMaxP(max_p * BETA);
        }

        if ((max_p / 4) < 0.01)
            ALPHA = max_p / 4;
        else
            ALPHA = 0.01;

    }