updated armijo rule in optimizer