Back off
        Calculate the back off step size
    Inputs : 
        Z_ :
            list of states in current proposal
        r_ : 
            list of back offs in current proposal
        q : 
            step size reduction
        dynamic : 
            set to True if you want to use the dynamic back-off
    Outputs :

def _back_off(self):
        """
    Back off
        Calculate the back off step size
    Inputs : 
        Z_ :
            list of states in current proposal
        r_ : 
            list of back offs in current proposal
        q : 
            step size reduction
        dynamic : 
            set to True if you want to use the dynamic back-off
    Outputs : 
        """
        q = self._step_size
        r = self._r_[-1]
        Z_ = self._Z_
        if self._dynamic:
            p_0   = la.norm(Z_[0]['f'])
            dp_0  = p_0*2*la.norm(Z_[0]['J'])
            p_r   = la.norm(Z_[-1]['f'])
            dp_r  = p_0*2*la.norm(Z_[-1]['J'])
            r_new = optimize(r, p_0**2, dp_0, p_r**2, dp_r)
        else :
            r_new = r * q  
        self._r_.append(r_new)